Overview
This was one of the topics that came up frequently while working with users at the last NAV/BC User Group Summit at Phoenix.
Many people have different opinion to setup their inventory so costing is done properly. Naturally, knowing a few things on how Dynamics 365 Business Central (aka Dynamics NAV) inventory and how inventory costing works, I participated as much of these inventory costing discussions as I could.
One of the features that I always get in an intense discussion on is how the Automatic Cost Adjustment on the Inventory Setup should be done.
Arguments for Setting Automatic Cost Adjustment to Always
I do understand the desire to want to set this property to Always. And why not? Instead of running the Adjust Cost – Item Entries manually, why not let the system run the process every time? And I do mean Every. Single. Time.
Setting the Automatic Cost Adjustment to Always allows for you to have updated and accurate cost at all times. This sounds great!
Arguments Against setting the Automatic Cost Adjustment
It’s great if we can just talk about all the benefits and call it a day. But that’s now we work. Setting this property will come at a cost.
- Performance – During posting, your users will experience delays. How significant this is will depend on how large your database is.
- Locking issues – Dynamics Business Central will lock the ledger entry tables during posting of orders. In addition, it will lock tables when it runs the adjust cost process. Because of the stress on the performance above, the users will experience more locking problems throughout the day as people are posting. If you’re experiencing this now, try setting the Automatic Cost Adjustment to Never.
- Allow Posting From Error – There are some instances where the adjust cost will want to post adjustments into prior periods. Depending on what you setup for your Allow Posting From on the General Ledger Setup and/or on the User Setup, you’ll run into these errors.
If you’re running a micro business with few inventory transactions, setting it to Always will make sense.
However, for a manufacturer or a high transactional volume distributor, you will cause more harm to your environment than not.
This is exponentiated if you’re using reservation or serial/lot tracking.
The Alternative
Instead of running the Adjust Cost – Item Entries process during every single transaction posting. Why not have the process run during off hours?
One of the first things we do for our client after explaining the importance of Adjust Cost – Item Entries is to setup the adjust cost process as job queue to be ran at night when the load on the system is light.
This will prevent locking up users as well as give the system a faster response when they’re doing their daily task. Who doesn’t want a system that’s responsive and allow you to do as much as possible within a shorter amount of time?
Conclusion
In every instance, I will set the Adjust Cost process to be ran automatically on the job queue. I want to give the user the best possible experience working with the system. Every delay causes frustration and we can all use less frustration in our lives.
If the adjust costs runs overnight what will happen to transactions that posted with the potentially incorrect costs? Will they update also?
Regardless of what was posted, it will be adjusted to its correct cost based on whatever is input by the user.
We have problem with production/assembly Items when we use Job Queue.
There items are not update.
You have to get in contact with your NAV partner so they can take a look on why it doesn’t run.
Have you tried any other method in Dynamics 365 Business Central for Cost Adjustment.
What other methods are you referring to? Running the adjust cost on the job queue at night, in my opinion, is the most effective way of running it.
I don’t think this setting to Never solves your 3rd argument.
Also when you run the process via the job queue, the system may want to post the adjustments in a prior period.
This is why the Allow Posting From field on the General Ledger Setup is so important. You need to change this even if you change the Automatic Cost Adjustment to Always because adjust cost process will always back date to the date of the Allow Posting From.
Hi Alex, I agree that the “Allow posting from” is important. It is just not an argument to choose either Never or Always. And if the job queue is carried out by a certain NAS instance you need to be aware of the settings of this “user” in the Setup as well.
There however is a solution for these prior postings by configuring “Inventory periods” and closing these. If you apply this functionality, the adjustment postings will be carried out on the first date in an open inventory period.
Coincidentally, I wrote another blog article on why you don’t need to use the Inventory Periods functionality in NAV.
There are a million different ways you can implement NAV/BC for your customers. I prefer to implement them using the simplest way possible. At the end of the day, they need to be responsible for their system. The less steps/potential problems they encounter the better.
Alex, thanks for the advise. Just curious, what does setting it to “Never” actually do?
It means at the adjust cost process will not run every time a user posts a sales or transfer document.
I had probem where I could not continue run ADJUST COST-ITEM ENTRIES. I could see it comes from one item, but I do not know how to settle it. Someone can help me?
You’ll need to reach out to your Dynamics Business Central (AKA Dynamics NAV) partner to assist you with this. They should know what to do.
With the help of Automatic cost adjustment you can easily resolve locking issues and much more with the help of business central
At the expense of slowing down posting of each transaction and intermittent locking if your database is too big.
Any recommendation for a 24/7 manufacturing company where items(3000+) is tracked with combo of lot# as well as serial#? costing method= FIFO and Specific.
Same. Run it as a job queue more often instead of once per day.
Just wondering, have you changed your thoughts since this article was written? The reason I am asking is because back in the NAV days performance issues was a big reason to set it to Never, but since Business Central performance is much better, does the same reason apply?
My opinion still unchanged. I set this to never and just setup report 795 to run automatically every night. It won’t matter how good the system is. If a process is inefficient, the users WILL feel it. The goal for the daily users is to process their daily transactions quickly. I prefer for the user to not have to “wait” for another process to finish when they’re posting a sales or production order.
When the database is small, no one will care. I just don’t want it to become a problem later. I prefer to set this up right from the beginning so we don’t have to deal with it down the line.