Adjust Cost Endless Loop on attain 3.6

Hi, Anybody experience Adjust Cost Endless Loop on Attain 3.6 ??? I got problem with with “Adjust cost - ITem Entries” on two database(our customer database running on SQL Server with Hotfix 1 - hotfix 14) and my NTR(Singapore) said fixing from request No. “DE-690-496-RGXV” should solve the problem,but I’d tried several times on Local database only (Native DB) but still couldn’t finish the adjust cost, And then I tried fixing from request no. DE-750-440-XEGV that include request no. CZ-803-600-KKG8 and CZ-210-619-3CDY but the result is same. And the other bad news is I can’t reproduce our customer database problem on Cronus Database, so I will not get quick solution from our NTR. please help!!!

Are you using Manufacturing? And do you have multi level Production BOMs? If so you may have problems. What I have seen, is that the routine does apear to be in a continuous loop, and many times just gave up. In the end, I just made a copy of the database and ran it off line, after many hours of processing it then completed. The next time was faster, and after running the routine three or four times, the run time became acceptable. It would apear that if using multi level BOMs, and especially if there is any chance of recursion, it is best to run the Adjust Cost routine every day. If you are not using Manufacturing, I would like to hear more.

And if you are using multi-level production BOMS, it appears that the the process time will depend upon the inventory costing method associated with the item. I haven’t tried to benchmark this in a controlled environment (watching paint dry is a much more exciting hobby), but I would expect it to be faster with standard cost because of the logic associated with it.

Yes, we had that problem on a site running v3.10. I do not believe this customer used multi level BOM’s. None of the hotfixes fixed it - although they were supposed to. Navision in Australia passed the issue onto Denmark who in turn passed it onto a company in Germany who developed much of the costing area. We were finally supplied with a new report which has since completed. I suggest you have your NTR contact Australia. Quote NZ-497-440-C5E8 if they like. This request was closed prior to full details being recorded against it, however it does include the contact names of those people who worked on it, and they should be able to help. Regards Craig

HI, Craig it’s right we are not using Manufacturing, and I always tried the batch job on Local database(off line). Yesterday when I tried rollback Codeunit 5895 before Hotfix 10, one’s of the two database could finish the job only 5 minute. Today i’ll try the suggest from Craig to contact our NTR regarding request no. NZ-497-440-C5E8 from Australia because i couldn’t found on the Partnerguide.

HI Craig, Could you give me a detail steps how to reproduce your problem ???

Hi guys! Try this request:HU-888-304-QKPA (it took 4 months to get this solution) The calculation, where costs are transfered to fixed applied entries, was done all the time, because the newly calculated cost was compared to an uninitialized variable. Under certain circumstances, this could cause an endless loop. Now the newly calculated cost is compared with the correct cost, so an endless loop is avoided. COD5895: LOCAL PROCEDURE AdjustFixedApplications@9(VAR PosItemApplnEntry@1000 : Record 339;AverageCost… … UnitCost@1011 : Decimal; // add line UnitCostACY@1010 : Decimal; // add line … IF (AdjustedCost <> PosValueEntry.“Adjusted Cost”) OR // delete line (AdjustedCostACY <> PosValueEntry.“Adjusted Cost (ACY)”) // delete line IF (AdjustedCost <> “Adjusted Cost”) OR // add line (AdjustedCostACY <> “Adjusted Cost (ACY)”) // add line THEN BEGIN … MODIFY; END; END ELSE BEGIN // add lines start PosValueEntry.SETCURRENTKEY(“Item Ledger Entry No.”); PosValueEntry.SETRANGE(“Item Ledger Entry No.”,“Item Ledger Entry No.”); PosValueEntry.SETRANGE(Inventoriable,TRUE); PosValueEntry.SETRANGE(“Entry Type”,PosValueEntry.“Entry Type”::“Direct Cost”); PosValueEntry.SETRANGE(“Item Charge No.”,’’); PosValueEntry.FIND(’-’); REPEAT UnitCost := ROUND(PosValueEntry.“Adjusted Cost” / Quantity,GLSetup.“Unit-Amount Rounding Precision”); UnitCostACY := ROUND(PosValueEntry.“Adjusted Cost (ACY)” / Quantity,Currency.“Unit-Amount Rounding Precision”); IF (UnitCost <> PosValueEntry.“Cost per Unit”) OR (UnitCostACY <> PosValueEntry.“Cost per Unit (ACY)”) THEN BEGIN PosValueEntry.“Cost per Unit” := UnitCost; PosValueEntry.“Cost per Unit (ACY)” := UnitCostACY; PosValueEntry.MODIFY; END; UNTIL PosValueEntry.NEXT = 0; END; // add lines end // Update transfers, consumptions PosItemLedgEntry.GET(“Item Ledger Entry No.”);

HI Soya, Thanks for your reply but i can’t implement that solution because version 3.01 code it’s very different from 3.6 code, but today I found the solution on the comment from request No. DE-141-21-4H7H because now all our customer database could finished the batchjob not more than 2 minute.