Multithreaded Execution Of The Calculate Sales Totals Batch Job in Dynamics 365 Finance and Operations
In this blog post, we will learn about a new feature released in D365 Finance and Operations Platform updates 10.0.29 i.e., Multithread capability in the "Calculate sales totals" batch.
Modules -> Sales and marketing -> Periodic tasks -> Calculate sales totals
The business functionality of this batch job was introduced about 3 to 4 years ago in Dynamics 365 FO mainly to bridge the gap in data synchronization between Dynamics 365 Sales & Dynamics 365 Finance and Operations.
In the scenario of Dynamics 365 Cross-apps when Dual-write is installed and all sales orders are created and updated in Dynamics 365 FO and then changes are reflected in Dynamics 365 Customer Engagement app when Calculate Sales Totals is executed in Dynamics 365 FO (Not before).
Basically, the main purpose of this batch job is the calculation and synchronization of monetary value.
Why Multi-thread approach required?
In the real-life business world, the sales department often demands accurate sales order totals displayed, besides the sales order grid.
Originally this batch job was designed to manage the performance issues by having two dedicated tables such as SalesOrderTotals and SalesOrderLineTotals. However, the average throughput of the total amount to be updated which includes invoiced and backorder lines was not great and impacted business users' downstream processes.
This feature helps improve system performance by enabling the system to use parallel processing when calculating sales totals in batches.
How does it work?
The feature adds a new "Number of threads" field to the "Calculate sales totals" dialog. If you choose to run the calculation in batch, you'll also be able to use this field to set the maximum number of threads. A value of zero or one uses a single thread, while values higher than 1 enable multithreading.
Note: This batch job does not change in Dynamics 365 FO Sales order header and Sales order line. The tables i.e., sales and line total tables populated to enable data sync to Dataverse (and CE).
A faster time to initiate downstream processes with correct sync data values across Dynamics 365 Apps.
I hope this article was a good read for you. Do share it with your friends and other peers.
Thank you for Reading - Let's Connect!