Change on the Horizon: WORK Transactions Deprecated in D365 Finance & Supply Chain

By - February 1, 2024

We want to ensure you know of an upcoming change to how inventory transactions associated with WORK/inventory movements within an advanced warehouse are handled in base D365 Finance & Supply Chain (F&SC). Starting with 10.0.41, generally available Sept. 13th, 2024, this functionality will be deprecated. 

What does “deprecated” mean?
  • The feature isn’t in active development and might be removed in a future update. You’ll still be able to rely on inventory transactions from WORK, but you need to start planning for this to be removed as early as Sept. 2025 and migrate to warehouse transactions.  
What does this mean for me?
  • You should configure the new “Warehouse transactions” functionality, which replaces inventory transactions associated with WORK with Warehouse transactions. All integrations and modifications utilizing WORK transactions must also be reconfigured to utilize “Warehouse transactions.”
What are the primary advantages of warehouse transactions?
  • Faster processing due to bulk updates, even across multiple tracking dimensions.
  • There is no financial impact and a significant reduction in indexes at the database level. We have seen clients where Microsoft’s automatically created indexes for Inventory Transactions and Inventory Dimensions represent ~250 GB of disk, so this change can significantly reduce storage overages.  
  • Warehouse transactions are frequently archived, again reducing database storage requirements.
  • Reduction of inventory dimensions/inventory on hand records, even though “blank.” Reducing the amount of inventory transactions flowing through user locations will make the on-hand inventory form less cluttered. 

Warning: You can stop reading if you’re already sold on this change. Below this line, you’re getting into full technical details about warehouse transactions.

Here’s what happens when you try to enable Warehouse transactions in Warehouse Management parameters:
  1. There’s a check to see if you have any extensions to obsolete code:
  2. This rolls through a known list of obsoleted classes/methods and looks for extensions. If extensions are found, you cannot proceed, and error two below will be thrown.
  3. If you have extensions to obsoleted methods and have validated they will still work with warehouse transactions, you can extend
  4. WHSWarehouseInventoryTransactionFeatureExtensionValidator.BuildValidatedModuleSet() and add your module(s).
  5. NOTE: This validation does not check if you have code that assumes an inventory transaction will be written from WORK. IE
    1. A custom tracing tool that reads all inventory transactions
    2. Pre/post handlers that evaluate inventory transactions and create some type of business event to an external system based on WORK moving inventory to a specific location in the warehouse
    3. A reporting solution over Inventory Transactions where you expect to see transactions from WORK

Error 1: If you have a managed code from an ISV that the validator can’t see the module name of, you will get the error “Could not resolve X++ type class ‘ClassName_ExtensionHere’ to a managed type.” In this scenario, you must work with the ISV supplying this code to resolve. This hard stop will prevent you from enabling warehouse inventory transactions.

Error 2: The warehouse-specific inventory transactions mechanism cannot be enabled due to unmitigated extensions. The extensions must be mitigated before the warehouse-specific inventory transactions can be used in any scenario. For more information, see https://go.microsoft.com/fwlink/?linkid=2175071.

D365 enables required process jobs:

  • Warehouse Inventory transactions archival job
  • Cleanup archived reservations job (optional)

  • Both of these jobs can be maintained at Sys Admin -> Setup -> Process Automations -> Background processes:

Here are some notes about working with this functionality in D365 once enabled:
  • Inventory transactions before: Note that you see four WORK transactions, with physical dates, and one PICKED transaction for the sales order you picked against.

  • Inventory transactions after you enable warehouse transactions, you just have a “Picked” inventory transaction:

  • But you also can review Warehouse transactions and note the following:
    a.) Only the Sales Order reference has a Lot ID because that’s the only record with a corresponding inventory transaction
    b.) You still have four WORK transactions as the inventory moves from the picking location, into/out of the user location, and to the bay door
    c.) You have four new transactions around reservation management

  • You can also select any record, likely Sales Orders with transaction type “Registered issue,” and click the “Warehouse transactions for dimensions,” which will allow you to find all WORK that processed this item/inventory dimensions.

Consideration points as an end user:
  • You can’t launch the Warehouse Transactions form wide open like you could Inventory Transactions. An active buffer is required; you need to launch it from the Released Product -> Manage Inventory tab in the action pane -> Warehouse Transactions or the On-Hand list.
  • You may want to make a menu item that surfaces ALL warehouse transactions. Creating a form with the view: WHSInventTransAndWarehouseTransactionView as its data source might be a good starting point. You can browse this data by removing &defaultDashboard from your URL and replace with &mi=SysTableBrowser&TableName=WHSInventTransAndWarehouseTransactionView

Additional details from Microsoft can be found here or contact us if you have any questions!

With two decades of experience, Colby specializes in providing supply chain consultation to manufacturing and distribution clients, focusing on warehouse management and production control. He advises on complex supply chain matters in his current role, assists in process design and application configuration using the Microsoft stack, and ensures clients maintain the highest service standards.

Receive Posts by Email

Subscribe and receive notifications of new posts by email.