Inventory journals


The inventory journals in Supply Chain Management are used to post physical inventory transactions of various types, such as the posting of issues and receipts, inventory movements, the creation of bills of materials (BOMs), and the reconciliation of physical inventory. All of these inventory journals are used in a similar way, but are divided into different types.

The following types of inventory journals are available:

  • Movement
  • Inventory adjustment
  • Transfer
  • BOM
  • Item arrival
  • Production input
  • Counting
  • Tag counting


When you use an inventory movement journal, you can add cost to an item when you add inventory, but you must manually allocate the additional cost to a general ledger account by specifying a general ledger offset account when you create the journal. This inventory journal type is useful if you want to overwrite the default posting accounts.

Watch this video to see a demonstration of the inventory movement journal:

Inventory adjustment

When you use an inventory adjustment journal, you can add cost to an item when you add inventory. The additional cost is automatically posted to a specific general ledger account, based on the setup of the item group posting profile.

Use this inventory journal type to update gains and losses to inventory quantities when the item should keep its default general ledger offset account. When you post an inventory adjustment journal, an inventory receipt or issue is posted, the inventory values are changed, and ledger transactions are created.


You can use transfer journals to transfer items between stocking locations, batches, or product variants with and without cost/financial implications, which all depends on the specific transfer journal line and general setup.

For instance, you can transfer items from one warehouse to another warehouse within the same company. When you use a transfer journal, you must specify both the From and To inventory dimensions, for example, for Site and Warehouse.

The on-hand inventory for the defined inventory dimensions is changed accordingly. Inventory transfers reflect the immediate movement of material. In-transit inventory isn't tracked. If in-transit inventory must be tracked, you should use a transfer order instead. When you post a transfer journal, two inventory transactions are created for each journal line:

  • An inventory issue at the From location.
  • An inventory receipt at the To location.


When you report a BOM as finished, you can create a BOM journal. By using a BOM journal, you can post the BOM directly. This posting generates an inventory receipt of the product, together with an associated BOM and an inventory issue of the products that are included in the BOM. This inventory journal type is useful in simple or high-volume production scenarios where routes aren't required.

Item arrival

You can use the item arrival journal to register the receipt of items (for example, from purchase orders). An item arrival journal can be created as part of arrival management from the Arrival overview page, or you can manually create a journal entry from the Item arrival page.

If you enable the item arrival journal name to check for picking locations, Supply Chain Management looks for a location for received items and, if there is room, generates location destinations for the incoming items.

Production input

Production input journals work like the item arrival journals but are used for production orders.


Counting journals let you correct the current on-hand inventory that is registered for items or groups of items, and then post the actual physical count so that you can make the adjustments that are required to reconcile the differences.

You can associate counting policies with counting groups to help group items that have various characteristics so that those items can be included in a counting journal.

For example, you can set up counting groups to count items that have a specific frequency, or to count items when stock falls to a predefined level.

By creating lines on the Tag counting page, you place a tag number on each inventory item, such as a number from 1 to 500.

During the count, you can enter the item number and the quantity on a corresponding tag. This tag can then be used as the basis for input in the tag counting journal. After you post the tag counting journal, a new counting journal is created on the Counting page.

The new journal is based on the tag counting journal lines that you created. To tag-count items by a specific inventory dimension, select the dimension on the Display dimension page that is displayed when you create the tag counting journal.

For example, to count items in a specific warehouse, select the Warehouse check box. If the Lock items during count slider on the Inventory and warehouse management parameters page is selected, items can't be physically updated during counting. However, items in tag counting journals aren't locked during counting. Inventory transactions aren't created until the tag counting lines are posted and transferred to a counting journal. If tags are entered randomly, and you want to identify missing tags, select the Tag column header to sort the lines by tag

Tag counting

Inventory tag counting is mostly used in a retail company. Tag counting journals are used to assign a numbered tag to a count lot. The tag should contain a tag number, item number, and item quantity. To ensure that a tag is used only one time, and that all tags are used, every item number should have a unique set of tags that has its own number sequence. Three status values can be set for each tag:

  • Used – The item number is counted for this tag.
  • Voided – The item number is voided for this tag.
  • Missing – The item number is missing for this tag.

When you post a tag counting journal, a new counting journal is created, based on the tag counting journal lines.

Warehouse management on-hand entries cleanup job

The Maximum execution time for the warehouse management on-hand entries cleanup job feature lets you establish the maximum time allowed for processing the on-hand entries cleanup job. If the job doesn't complete before the specified number of hours, it will save the work completed so far and then exit. This capability is especially relevant for implementations that have high inventory usage. In this case you should schedule the job to run at times when the system is as lightly loaded as possible. Enter a value of "0" (or leave blank) to allow the batch job to continue running until it has finished.

When calculating the on-hand inventory, the number of records in the tables involved influences the queries' performance. One way to improve this performance is to decrease the quantity of records considered by the database.

For items enabled for warehouse management processing, the InventSum and WHSInventReserve tables store on-hand data. Deleting these records can significantly improve on-hand calculations (these are referred to as WHS items.)

The on-hand entries cleanup job deletes any records in the WHSInventReserve and InventSum tables where all the field values are 0 (zero). These records can be deleted because they don't contribute to the on-hand information. The job deletes only records that are below the Location level.

Schedule and configure the cleanup job

The on-hand entries cleanup job is available in Inventory management > Periodic tasks > Clean up > Warehouse management on-hand entries cleanup. To control the scope and schedule for running the job, use the standard job settings. The following settings are also available:

  • Delete if not updated for this many days – Enter the minimum number of days the job must wait until an on-hand entry that has dropped to zero is deleted. This helps to reduce the risk of deleting on-hand entries that are still being utilized. Either enter 0 (zero) or leave the field blank if you want cleanup to occur as soon as possible.

  • Maximum execution time (hours) – Enter the maximum cleanup job time in hours. If the job isn't finished before this time passes, it will save the work it's done so far and then closes itself. This capability is particularly relevant for inventory-intensive implementations. You should schedule the clean up when the system load is as light as possible in these cases. If you want the batch job to continue until completed, either enter 0 (zero) or leave the field blank.

    Screenshot of the Warehouse management on-hand entries cleanup page with the parameters highlighted.

While you might be able to run the job during regular business hours, we suggest that you run it outside of work hours. Doing so helps prevent conflicts when a user works with a record that is in the process of being cleaned.

If the job attempts to remove a record for an item that is currently in use, there is a deadlock error for the cleanup job, or if a user attempts to access a record that has already been cleaned then the error message will appear.

When the job runs, the commit size is 100. In other terms, deletions will take place in groups of 100. However, since specific deletions are set-based, there might be cases where the same operation will delete more than 100 records. When this happens, lock escalations may occur. Lock escalations mean that you have too many locks on specific rows in a table. Once you exceed the maximum allowed number of locks by row, the entire table is locked.