Okay, we've all seen this one before, but before you give up on me and go somewhere else, give me a sec. I got this ticket passed to me by a client. My client is a VAR and their customer is seeing this error. This issue has been going on for two years, I am told. Apparently it works like this:
One person gets the error, then multiple users get it, then nobody can post because of it. The only known workaround is to run Adjust Cost-Item Entries. Once that runs, everyone can post.
I am told they have verified that nobody has invalid posting date ranges. The VAR suggested that the customer change Inventory Setup to Automatic Cost posting at one point but that only made the problem occur more frequently.
Even if the Adjust Cost Item Entries is run the previous evening, users will get the error the next morning. To resolve the problem, they must run it again. It only helps after an error message occurs.
They have debuggered the issue and found the error occurring in Codeunits 21, 90, and 201.
The customer is using NAV 4.0 SP3 with customizations to Jobs.
My client is at a loss and thought that I could put fresh eyes on it, but I cannot reproduce the error with my local copy of the customer database. Anyone ever seen anything like this?
If guns cause crime mine must be defective.
0
Comments
They should change back automatic adjust cost in Setup. And run it manually. What you are describing is definitely caused by this.
Since it's turned on, if an old entry needs to be adjusted, NAV tries to post adjust it and one user gets the error. Then anybody who is posting will get the error as well.
Are they using User Setup to control posting date ranges or GL setup?
Adjust cost is using GL Setup.
CU5895
IF GLSetup.IsPostingAllowed(ItemLedgEntryPostingDate) THEN
ItemJnlLine."Posting Date" := ItemLedgEntryPostingDate
ELSE
ItemJnlLine."Posting Date" := PostingDateForClosedPeriod;
I suggest to tell them that next time they get the error to call you.
Independent Consultant/Developer
blog: https://dynamicsuser.net/nav/b/ara3n
Through Nav or Nas?
I would suggest to look at the adjust cost and check to see that the object does not update the user setup table posting dates and then resets it once it is complete.
Hope this helps.
Albert
Fundamentally you need to check why you have so many back dated entries.
This will address the error. No modifications needed.
AP Commerce, Inc. = where I work
Getting Started with Dynamics NAV 2013 Application Development = my book
Implementing Microsoft Dynamics NAV - 3rd Edition = my 2nd book
They do not want, under any circumstances, to open the date range for all users. They understand that if they open the date ranges that the problem is resolved, but they don't want users posting in the wrong fiscal period.
Inventory setup is for Expected Cost Posting to G/L. They run ACIE and Post Inventory Cost to G/L two to three times per week.
If you change your Automatic Cost Adjustment setting, it will go back and adjust the cost and post it on the date of the outgoing transaction.
If there are no modifications in this area, then I'm pretty sure changing the Allow Posting From on the General Ledger Setup will solve your problem.
From your questions, it sounds like you're pretty new to NAV. Make sure you understand how costing works before you proceed so you can explain it to your customer. My blog actually have a few articles about costing and how it works and what to watch for in case you're interested.
AP Commerce, Inc. = where I work
Getting Started with Dynamics NAV 2013 Application Development = my book
Implementing Microsoft Dynamics NAV - 3rd Edition = my 2nd book
:shock:
AP Commerce, Inc. = where I work
Getting Started with Dynamics NAV 2013 Application Development = my book
Implementing Microsoft Dynamics NAV - 3rd Edition = my 2nd book
If I remember correctly this problem was introduced in version 4.0 and was addressed by the Inventory Period functionality in version 5.0. With this functionality the inventory period could be closed and the eventual rounding amount as above will be posted to the first date of an open period instead.
Although the Inventory Period functionality is not present in version 4 as I recall, I hope this information can help you in this case. Otherwise the only solution I can think of is to actually allow the users to post in earlier periods, and that can of course lead to a lot of undesired problems. As David says, focus on why there is negative stock in the first place (which I am guessing is the issue in this case).
EDIT:
I just reproduced in Cronus (ver 2009 R2) and the scenario I described does not have to be just a rounding issue (I was stuck thinking of another scenario but that´s another story), but can be the adjustment cost. Consider you have a negative transaction and negative stock in August, by that time the expected cost was 10. In G/L Setup you allow posting in August as well as September. In September you post a receipt at the cost of 20. This positive transaction causes an adjustment of 10 on the outbound transaction in August, if the user would be allowed to post in August. But if the users allowed range for posting date would be September, the error occurs and this is triggered in CU 21.
If however the G/L Setup would only include September in the scenario, and that would be the same in actual users setup, the adjustment would be posted in September.
AP Commerce, Inc. = where I work
Getting Started with Dynamics NAV 2013 Application Development = my book
Implementing Microsoft Dynamics NAV - 3rd Edition = my 2nd book
I would disagree. The importance of the Allow Posting From in relations to the books is no joke.
The dates defined on the User Setup and the dates defined on the G/L Setup should be 2 different discussions.
AP Commerce, Inc. = where I work
Getting Started with Dynamics NAV 2013 Application Development = my book
Implementing Microsoft Dynamics NAV - 3rd Edition = my 2nd book
We are now seeing an error with an Inventory Transfer complaining about blocked dimension combinations that are no longer used and are not part of the current transaction - and if I change the Inventory setup flag to "Never" I am able to process the transaction. What is the standard setup for this flag and are there any issues with leaving it set to "Never"?