The Retail statement functionality in D365F&O is the process that puts everything together and makes sure transactions from POS flows into D365F&O HQ. Microsoft have made some improvements to the statement functionality that you can read here : https://docs.microsoft.com/en-us/dynamics365/unified-operations/retail/statement-posting-eod. I wanted to show how to combine these 3 processes into a single batch job.
The following drawing is an oversimplification of the process, but here the process starts with the opening of a shift in the POS (with start amount declaration), and then start selling in POS. Each time the job P-0001 upload channel transaction is executed, the transactions are fetched from the channel databases, and imported to D365F&O. If you are using shift-based statements, a statement will be calculated when the shift is closed. Using shift-based closing can be tricky, but I highly recommend doing this! After the statement is calculated and there are no issues, the statement will be posted, and an invoiced sales order is created. Then you have all your inventory and financial transactions in place.
What I often do see, is that customers are using 3 separate batch jobs for this. The results in the user experience that the retail statement form contains many calculated statements waiting for statement posting. Some customers say they only want to see statements where there are issues (like cash differences after shift is closed).
By combining the batch jobs into a sequenced batch job, then the calculated statements will be posted right again, instead of waiting until the post statement batch job is executed. Here is how to set this up:
1. Manually create a new “blank” batch job
2. Click on “View Tasks”.
3. Add the following 4 classes:
RetailCDXScheduleRunner – Upload channel transaction (also called P-job)
RetailTransactionSalesTransMark_Multi – Post inventory
RetailEodStatementCalculateBatchScheduler– Calculate statement
RetailEodStatementPostBatchScheduler – Post statement
Here I choose to include upload of transactions, post inventory, calculate statement and post statement into a single batch-job.
Also remember to ignore task failures.
And remember to click on the “parameters” to set the parameters on each task, like what organization notes that should be included.
On each batch task I also add conditions, so that the previous step needs to be completed before the batch-job starts on the next.
Then I have 1 single batch job, and when executing it spawns subsequent tasks nicely.
The benefit of this is that when you are opening the statements workspace you mostly see statements where there are cash differences, or where the issues on master data.
Take case and post your retail statements.