Language switcher

Digging up the dirt. Inside the InventTrans (Part 2)

purchase order

In this part of the series on the inventTrans, we will take a look at one of the processes that uses this table. The previous part can be found here.

Purchase order

The steps of the purchase order process:

  1. Create order
  2. Confirm order
  3. Post arrival journal
  4. Post receipt
  5. Post invoice

To keep things simple, imagine we create a purchase order with a single order line.

Create order

The effects of creating a purchase order (with one purchase order line) on the inventTrans is exactly nothing. Zilch, nada, cero-cero-cero. The inventTrans is not interested in what might be or what never will be. What is a purchase order without confirmation?

Confirm order

Once we confirm our purchase order, we create a new record in InventTrans. Initially this record contains:

  • Date expected (expected date of inventory change for planning purposes)
  • Date status (not what you, or rather I, would think)
  • InventDimId (Order receipt location)
  • InventTransOrigin (RecId from table InventTransOrigin)
  • ItemId
  • MarkingRefInventTransOrigin (maybe)
  • Qty
  • StatusReceipt-Ordered

This all makes perfect sense, doesn’t it? It is the short version of our purchase order line. From it we can see that on date x, we will receive quantity y of item z on location …what comes after z?

This record will accompany your purchase order line for the rest of its natural life and beyond. Yes, there is a one on one relationship…unless:

  1. You cancel the purchase order line. There is no receipt status ‘canceled’ or similar. That’s because inventory doesn’t care why or how. If the goods don’t show, we don’t want to know. Canceling the (qty on the) purchase order line) will delete the inventTrans record.
  2. You split the purchase order line. ”But, but, I didn’t split the line. Why would I split the line?” You did when your supplier decided to send you only half the quantity you ordered. You did when you decided to work with an arrival schedule. You did when you rejected part of your delivery. Whenever the quantity of your order line is split, an additional line is added to the InventTrans.

Date expected

The expected date is either the delivery date of the purchase order line, or (when entered), the confirmed delivery date. If the confirmed delivery date is entered at a later time, then the date on the inventTrans will change accordingly (without the requirement to confirm the PO again).
When no date is given on the order line, then the delivery date from the order header is used as Date expected. Changing the header date has no effect on the inventTrans record.

Date status

This is the actual (system) date that the order status last changed. Manipulating the posting date will not affect this field.


The InventTransOrigin refers (through a cross-reference on the InventTransOrigin table) to the purchase line InventTransId. Therefore all inventTrans records with the same InventTransOrigin tell the whole story of (for example) a purchase order line. The sum of the quantities for these records should match the quantity on the purchase order line.


This field gets populated when inventory is marked or reserved and then contains the RecId of the InventTransOrigin record that calls dibs on your inventory line. Reservations can occur at any time during the process, so not necessarily at this point.

Post arrival

When we (using WMS) post the arrival journal of this purchase order line, the following fields are added to the record:

  • Date inventory
  • StatusReceipt – Registered

Further more the date status changes and the receipt status is bumped up to ‘registered’.

Be aware that registered inventory is available for whatever, including marking and reservation. If the inventory

Date inventory

This is the date of registration. The date the items were added to the inventory.

Post receipt

Did we skip the ‘Arrived’ stage? Yes we did.
Status ‘Arrived’ is related to pallet transport, which you may or may not use.

Posting the purchase order receipt adds the following fields to the inventtrans record:

  • CostAmountPhysical
  • DatePhysical
  • PackingSlipId
  • VoucherPhysical
  • Status receipt – Received

It is clear that this is the posting of the physical receipt. In addition the date status field changes and the receipt status kicks it up a nudge to ‘received’.


The cost of the purchase. Normally this is the purchase price of the item (excluding charges).


This is the date of the posting of the receipt. It is possible to manipulate this date through the posting date on the posting dialog.


The ID of the packing slip…duhh.


The voucher number of the posting.

Post invoice

Finally, we can post the invoice for the purchase order line. This adds the final fields to the inventtrans record:

  • CostAmountPost
  • CostAmountStd
  • CurrencyCode
  • DateFinancial
  • InvoiceId
  • Voucher
  • StatusReceipt – Purchased

The receipt status goes to ‘Purchased’. DateStatus changes to the same value as DateFinancial.

Cost amount

For reasons I trust you’ll understand I’m not going into cost accounting here. Notice however that costs get registered at this time, but not yet settled. That happens during inventory closing.
Cost can occur in any currency. Value only shows in the company currency. To be honest, I don’t know why that is. Maybe that is another reason why I should not go into cost accounting, or any accounting for that matter.

Got a lot

Congratulations, you got a lot. An inventory lot that is, which (as any warehouse manager can tell you) is not the same as a lot of inventory.
Our line of purchase is now successfully converted into a line of inventory containing all the information we need.

Well, not necessarily. I already mentioned cost accounting. Depending on your valuation method you still need to regulate the cost of your lot. Different localizations use additional fields for whatever legal requirement they came up with and we have not looked in detail at the effects of reservation and marking.

All in all the inventTrans is a complex puddle of information. Once you start consuming your lot it unleashes other forces that bear down on your line of inventTrans.
Splitting lines has its own set of consequences.

Just remember that there is a system to the madness. The inventTrans table, your ledger of inventory, is the beating heart of your AX system. It triggers and regulates all other primary processes. This makes understanding the inventTrans (or the transactions form) key to troubleshooting a great variety of inventory related problems.

To be continued…

About the Author


I have over 20 years of experience with ERP systems, of which the last 10 years mostly with Microsoft Dynamics AX. I firmly believe that knowledge should always be shared. It's not what you know, but what you can do with your knowledge that makes you valuable.

3 thoughts on “Digging up the dirt. Inside the InventTrans (Part 2)

  1. Thanks for this paper.

    Regarding the 2 fields StatusIssue and StatusReceipt, in the the Inventtrans table the values are listed as numbers. Do you know what tables hold the related text for these values?


  2. That’s what you get for sneaking in the backdoor.
    They are enumerated types.
    0 – None
    1 – Sold
    2 – Deducted
    3 – Picked
    4 – ReservPhysical
    5 – ReservOrdered
    6 – OnOrder
    7 – QuotationIssue

    0 – None
    1 – Purchased
    2 – Received
    3 – Registered
    4 – Arrived
    5 – Ordered
    6 – QuotationReceipt

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

You may also like these