Question Status

Verified
Nadeem Zafar asked a question on 28 Jun 2011 3:28 AM

Dear All AX Gurus!

Scenario:

 

We are using Dynamics AX 2009, we have an item which have Purchase Unit = m3 (Cubic Meter) and Inventory Unit = LN (Length), and the said item has been already received through PO (Purchase Order), it means this item has transaction against it.

 

Desired Solution:

 

We want to change the Inventory Unit from LN(Length) to m3 (Cubic Meter), as the transaction exist so Dynamics AX 2009 is not allowing to change the Inventory Unit, I know this is the default behavior of Dynamics Ax 2009.

Could anyone tell me any other way out to change the Inventory Unit even the transaction exists?
We must want to keep this Item as it is.

 

Thanks in advance...

Nadeem Zafar

Reply
Brandon Wiese responded on 29 Jul 2011 6:18 PM

If you are still interested in this, please respond to this post, and I will explain how.  It is quite complicated, but possible.

Reply
Nadeem Zafar responded on 29 Jul 2011 10:05 PM

Dear Brandon,

Thanks for the reply, yes still i want to know, actually i was waiting for the answer but nobody replied, i don't know why?

Any ways , please reply me ....

Thanks..

Reply
Brandon Wiese responded on 29 Jul 2011 10:45 PM

I'll try to explain the complexity and the solution by example, but I highly recommend that you discuss this with your partner before seriously considering it.

You have an item called Rope.  You decide to buy and sell it in Ft, but transaction inventory in Inches.

You receive and invoice your first PO for 10 Ft @ $1 purchase unit cost, or $10 total.  Inventory records a receipt of 120 Inches @ $10 total, or 0.083 unit cost.

You ship and invoice your first SO for 5 Ft @ $1 sales unit cost (of goods sold), or $5 total.  Inventory records an issue of 60 Inches @ $5 total, or 0.083 unit cost.

You now have 60 Inches remaining in inventory for a total value of $5, or 0.083 unit cost.

Then you change the inventory unit of measure from Inches to Ft, but change nothing else.  Suddenly you have 60 Ft of stock at $5 total, or $0.083 per Ft.  We already know the unit cost should be $1 per Ft.  And you should have 5 Ft, not 60 Ft.

The numbers only have meaning in the context of their unit of measure, and so if you change the unit of measure, you must change the numbers to match.  Chaning the inventory unit of measure is actually pretty easy, but changing the numbers is the hard part.

Consider for a moment only the inventory onhand quantity (60) and value ($5).  In order to make the transition, you must first write-out all 60 Inches for a total of $5, bringing the total quantity to 0 and value to $0.  Then, change the inventory unit of measure.  Finally, write-in 5 Ft for a total of $5.  Notice how the total value of inventory did not change, but the quantity and unit cost adjusted in context with the new unit of measure.

This is the basic idea behind changing an inventory unit of measure, but it must be applied everywhere.

The basic process would work like this.

For the item --

1.  Invoice all open receipts and issues.

2.  Temporarily remove the deliver remainder for all open sales and purchase orders.  Keep track of the sales and purchase quantities so you can restore the orders later.

3.  Complete all production orders and cancel any unfinished quantities.  Again keep track so you can recreate the necessary orders later, but in the new unit of measure.

4.  Close or cancel any other open transactions for the item.

5.  Write-out any onhand quantity and value.  Keep track of how much.

Ideally here you would recalc and close the item.  That means this is best done on a fiscal boundary.  In some cases it will be the only way to bring the value to $0, but you should already have the quantity at 0.

Now, go into the database using a database tool, locate the InventTableModule record for the item with a Module type of 0 (inventory), and change the unit of measure.

From the item form, remove all old Unit conversion relationships that don't apply, and create new ones that do.  If you're making the new inventory unit of measure the same as the sales ans purchase units, then no unit conversion is required.

Now reverse the steps above.

2. Restore any open sales and purchase orders. Since the sales and purchase units of measure didn't change, the quantities don't need to be adjusted. AX will automatically create new estimated transactions (On order, Ordered, Reserved, etc.) in the new inventory unit of measure according to the unit conversion.  To be safe, create all new orders.

3. Recreate any production orders (or generate them from sales orders). Be careful to adjust the quantities to be in the new unit of measure.  To be safe, create all new orders.

4. Recreate any misc transactions.

5.  Write-in your inventory onhand, this time in the new unit of measure and at the same total cost (giving you a new adjusted unit cost).

Disclaimer:  This is not supported and is complicated and can lead to problems if not done carefully and correctly.  Do this at your own risk.  Do it first in a test environment and make sure you're truly happy with the result.  Practice it and make sure you don't miss anything.  Have someone else look over the results.

Even when done properly, the history will always look funny when comparing records before/after the transition.  Some processes will be thrown off by the change in scale, such as master planning and forecasting.  They will generate numbers that make no sense and you will be forced to manually set safety stock and forecasting for the item for some time (until the old history is out of scope).

Good luck!

Reply
Verified Answer
Kent Carstens responded on 1 Aug 2011 6:14 AM

Nadeem,

The solution Brandon proposed would work but is STRONGLY not recommended.  How many transactions against this item?  If only a few, I would remove the existing stock out of the system using any various method (like profit/loss).  Then discontinue the item and create a new item in the correct unit and bring back in the stock.  

Reply
Firas R. responded on 24 Mar 2012 1:47 AM

Is there a way to transfer stock of one item code to another item code or would we have to perform receiving or item adjustment for the new item code?

Reply
Gray Rogers responded on 17 Dec 2013 4:10 AM

Just do a no cost production order in both cases. In order to convert the inventory units, your raw material would be the quantity of the item you want to convert to another unit, and the finished good would be the same item in the desired unit. Create a phony route step called "conversion" or something like that and make the cost category amounts $0.00.

Reply
TaylorMaker responded on 23 Apr 2014 11:01 AM

Also consider the related Bills of Materials.  I don't think I have seen anyone write about this consideration.

Reply
Verified Answer
Kent Carstens responded on 1 Aug 2011 6:14 AM

Nadeem,

The solution Brandon proposed would work but is STRONGLY not recommended.  How many transactions against this item?  If only a few, I would remove the existing stock out of the system using any various method (like profit/loss).  Then discontinue the item and create a new item in the correct unit and bring back in the stock.  

Reply