Inventory Costing in AX 2009
I wanted to explore some scenarios that illustrate a few important concepts related to inventory costing-- look at differences between physical and financial inventory, and how this affects inventory values. Please reply to the post if you have questions or comments, or if you are interested in additional posts on this topic. This is not intended to be a comprehensive look at AX inventory costing, but just a few concepts that I view as important to understanding the big picture of AX costing logic.
For my test, I created a new item, using a FIFO costing model. The Inventory model group has three settings I want to point out and illustrate:
- Physical negative inventory
- Financial negative inventory
- Include physical value
Note that the test item has physical and financial negative inventory unmarked, and 'include physical value' is marked:

To start, I create a purchase order line for the item and post the packing slip for a quantity of 10 at $1 each. The PO packing slip is considered a 'physical' inventory update. You'll see the inventory transaction and the item's on hand reflect the physical cost amount:

This is an important concept as you'll see the separation of physical and financial inventory throughout AX. Understanding the impact is important when defining your setup and processes. Below is a list of the transactions that result in physical inventory value and those that result in financial inventory value.
|
Transactions that affect physical value |
|
Purchase order Packing Slip |
|
Sales order Packing Slip |
|
Production order Report as Finished |
|
Production picking list journal |
|
Transactions that affect financial value |
|
Purchase order Invoice |
|
Sales order Invoice |
|
Production order End (This will move the RAF and the Picking List transactions into a financial status) |
|
Inventory Journal (All inventory journals affect financial value only) |
Next, I entered a sales order line for the item, quantity 10, and attempt to post the invoice. Although I have physically received 10 units of this item into stock, my sales invoice posting fails with an error message: "Item consumption for 10.00 cannot be updated because the cost price is known only for 0.00 in stock."
The error is thrown because of the model group setting 'negative financial inventory', which is unmarked for our item, meaning that we don't allow negative Financial inventory. If the sales order was for a quantity of 15, I would receive an error message: "15.00 cannot be picked because only 10.00 is/are available from the inventory"
This error message is driven by the 'Physical negative inventory' checkbox, which does a validation against the current 'total available' on hand inventory for the item. In order to post this invoice, we need to have sufficient financial inventory in stock. To satisfy this requirement, you would have to financially update an outstanding order, or create and post a new order. For our test, I created a separate purchase order for quantity of 10, unit cost $2, and post the Invoice for this purchase order (financially updated). Note that this is a different unit cost, than was used on the previous purchase order($1).
Reviewing the inventory transaction for this new purchase order, you see that a financial cost amount was updated. Additionally, the on-hand for the item now reflects the $10 from the packing slip updated purchase order, as well as the $20 from the invoiced purchase order.

Now that I have sufficient financial inventory, I posted my sales order invoice. There are two important concepts to point out on the sales order inventory transaction after I post the invoice. First, you'll see that the cost of the quantities sold is an average of the two receipts that have been posted: (10@ $1 + 10@ $2) / 20 = $1.50 per unit. Take a look at the previous screenshot and you'll see that in the On Hand form, the 'Cost price' field holds the calculated average cost. Although we defined this item as a FIFO item, the value of the outbound quantities are valued at the current running average for the item. You'll see this approach used for all issue transactions, except for items using a standard cost valuation model.
*Note - Marking may also impact these outcomes.
The second thing is that our model group setting for 'include physical value' has made an impact on the outcome. Since we have it marked for this item, the physically updated purchase order was used in the calculation of the running average. The setting simply tells AX whether or not to use physically updated receipts when calculating the running average for the item. If we had this setting unmarked, only the financially updated receipt would have been used in the calculated value of the issued quantities. We now know that this will have a significant impact on the valuation of outbound quantities at the time of posting.

Since this is a FIFO item, we know that the $15 used to value our sold quantities is incorrect. AX requires that a periodic 'inventory close' be processed in order to align the cost of goods sold with the items' assigned valuation models. After running the close, notice that the sales order transaction now reflects a cost amount $10 with the adjustment of $5. Another thing to point out is that no 'settlement' occurs. Typically, the inventory close process will settle receipts against issues. However, since this sales transaction aligns with a physically updated receipt, no settlement occurs. Once the purchase order is invoiced, the close process will settle the transactions against each other.

Recap:
- AX tracks inventory value in two separate buckets: Physical and Financial
- All issue transactions are valued at the current running average cost price for the item
- You can select whether physically updated receipts are included in the running average calculation
- A periodic inventory close must be run to align the COGS with the item's valuation model
More about the 'include physical value' setting:
This should only be used for certain scenarios. Weighted average models should not use the setting due to the following scenario:
1. Receive 10 @ $100 each (Financial/Invoice posted)
2. Receive 10 @ $200 each (Physical/packing slip post)
3. Issue 15 @ $150 each (Financial/invoice post). $150 each is due to the fact that 'include physical' is marked for the item. Also, this transaction requires that negative financial inventory is allowed for the item.
4. Run inventory close
Results:
10 of the 15 issue quantities are settled against the $100 receipt and the other 5 remain unsettled at the $150 cost price. This leaves us with 5 on hand, valued at $250 each (which is higher than any single receipt cost we have)
Other resources:
https://mbs.microsoft.com/customersource/training/trainingmaterials/student/course50191.htm
http://dynamics.microsoftelearning.com/eLearning/courseDetail.aspx?courseid=94369
http://www.axapta.cn/?/question/32
Inventory Costing in AX 2009的更多相关文章
- How to Debug Enterprise Portal Code in Dynamics AX 2009
转载 To set up debugging for pages1. Log into the server that is running the AOS.2. Open the Microsoft ...
- AX 2009中Set运用
Set运行: 例子: Set m_set = new Set(Types::String); m_set.add("AAA"); m_set.add("BBB" ...
- Microsoft Dynamics AX 2009 White Paper: Close Non-Financial Transfers
http://www.microsoft.com/en-us/download/confirmation.aspx?id=12174
- AX 2009中现有量画面修改
前端时间开发一个东西,需要在现有量画面增加一个字段 但是发现这个display方法写在任何数据源下面都不行,数据取的不对. 因为InventSum这个表只有所有维度都出来时才会有对应关联的invent ...
- Dynamics AX Hostory
现在谈起Dynamics AX,在微软Dynamics系列产品当中,作为最受瞩目和最有前景的Dynamics套装产品线,很多人也许只知道它曾经由于资本市场的上市和并购,前后经历了三个“东家”.对于它长 ...
- [转]Dynamics AX and Generic collections of .Net
转自:http://blogs.msdn.com/b/emeadaxsupport/archive/2009/04/23/dynamics-ax-and-generic-collections-of- ...
- Temporary Tables and the TableType Property [AX 2012]
Temporary Tables and the TableType Property [AX 2012] 1 out of 1 rated this helpful - Rate this topi ...
- Temporary InMemory Tables [AX 2012]
Temporary InMemory Tables [AX 2012] This topic has not yet been rated - Rate this topic Updated: Oct ...
- Table Properties [AX 2012]
Table Properties [AX 2012] 1 out of 2 rated this helpful - Rate this topic Updated: July 20, 2012 Ap ...
随机推荐
- python笔记1:python函数的使用
一.函数:len() 1:作用:返回字符串.列表.字典.元组等长度 2:语法:len(str) 3:参数: str:要计算的字符串.列表.字典.元组等 4:返回值:字符串.列表.字典.元组等元素的长度 ...
- LeetCode之412. Fizz Buzz
-------------------------------------------- 虽然是从最简单的开始刷起,但木有想到LeetCode上也有这么水的题目啊... AC代码: public cl ...
- 比较典型的带case的group by语句
2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-10 负 2005-05-10 负 如果要生成下列结果 ...
- MVC自动绑定整数数组
昨天恰好遇到这个问题,stackoverflow上已经有人回答过了,拿过来在这里做个笔记.当然下面的例子可以修改,我比较喜欢使用ImodelBinder. 自定义模型绑定器 public class ...
- Reversing Bits in C
英文原文: http://corner.squareup.com/2013/07/reversing-bits-on-arm.html 本文讲解翻转bit位的一些方法,例如如何将1001 1101变为 ...
- nodejs review-04
79 Secure your projects with HTTPS Express 生成SSL证书 openssl genrsa -out privkey.pem 1023 openssl req ...
- asp.net 数据库面试题(基础)
今天到某公司笔试,数据库考的比较多,但是说老实话,考的也比较基础.现在趁回忆得起来,将数据库知识简单整理如下: 一.建表指令 比如创建一个学生表student,它由学号Sno,姓名Sname,性别Ss ...
- NOIP200805 笨小猴(低效算法)(一大桶水)【A006】
[A006]笨小猴[难度A]—————————————————————————————————————————————————————————————— [题目要求] 笨小猴的词汇量很小,所以每次做英 ...
- T-SQL Recipes之 Table Variables and Temporary Tables
Problem 许多时候, 我们想要Table Variables在动态SQL中执行,但现实是很骨感的.比如这个示例: DECLARE @sql_command NVARCHAR(MAX); DECL ...
- php_codesninffer phpcs用法学习使用:
18:34 2016/1/12php_codesninffer phpcs用法学习使用:可以加一个参数设置结果输出为各种格式:如source格式:$ phpcs -s --report=source ...