β€œThe more stitches, the less riches” from the “Brave New World” by Aldous Huxley


Barely anyone closes the financial year faster than ER-Consult GmbH. 2021 could only be better than 2020. Indeed, together with Margarita and Chandan we pushed the revenue by 27%, the private equity grew by 34%. ER-Consult has become a forge for Configurable Business Documents and all things Electronic Reporting in Dynamics, with customers in Italy, France and the USA.

However, on the warmest 1st of January ever recorded, a small doubt is allowed whether an infinite growth is possible on a finite planet.

Auto-post inbound delivery notes in a batch

Auto-post inbound delivery notes in a batch

In order to register a manual or an OCR purchase invoice, the accountant should match the quantity against the delivery notes (en-us: packing slip) captured at the warehouse. But what if the inbound area is only equipped with mobile scanners? What if we do not have the carbon copy on hand, or just don’t care about the printed document at all? The shipment may be damaged or incomplete! Indeed, we should only pay for what we’ve physically received:
Register the actual quantity β†’ Post the ‘Product receipt’ with that quantity β†’ Match the invoice against the same β†’ Claim the difference from the supplier, if any.

However, when registering the said delivery note against the purchase order with the Generate / Product receipt button or the respective periodic task, the user must provide the delivery note number as written by the supplier of the goods. This makes an automation with a batch job at the first glance impossible, because it requires human interaction.

Update product receipts

The automatic job Warehouse management / Periodic tasks / Update product receipts is the remedy. For every inbound load within the given constraints, it creates and posts a delivery note aka packing slip with the total registered quantity.
The inbound load does not necessary require any active management. The load may be…

  • Created manually out of the purchase order lines in the Load planning workbench
  • Imported from an ASN, but also
  • Added by the system automatically if the parameter Automatically create at purchase order entry is turned on

If the load is not confirmed, the Update product receipts will confirm it automatically first, then promote to the final status Received. The bogus delivery note number is like LOADID_N, where N is a running number. The quantity is the registered quantity versus the respective load line(s). It does not matter how the registration came about:

  • Mobile scanner PO line/item receiving or PO line/item receiving and put away
  • Mobile scanner License plate receiving or License plate receiving and put away [against an ASN]
  • Mobile scanner Load item receiving or Load item receiving and put away
  • Mobile scanner Mixed license plate receiving or Mixed license plate receiving and put away
  • the new simplified License plate receiving: license-plate-receiving-enhancements
  • the classic inventory Arrival journal
  • and last but not least, the classic Registration at the purchase order line level.

In essence, you just scan the last pallet of the PO and forget. At the end of the working day (or faster, depending on the batch job schedule) the system will process every In process load (i.e. where the receipt of at least one pallet has started) and make as many delivery notes as needed to update the purchase orders.

More on inbound loads

The only limitation is the use of the advanced Warehouse management processes at the warehouse, i.e. the inbound load may only be created at a WHS-enabled warehouse. More on inbound load handing here: https://docs.microsoft.com/en-us/dynamics365/supply-chain/warehousing/inbound-load-handling.

The recent features “Associate purchase order inventory transactions with load” and “Multiple product receipt postings per load” may be beneficial.

Number of records in D365

Number of records in D365

In Dynamics AX2012 there used to be a development tool to quickly count the number of records in all DAX tables: Ctrl-Shift-W, then Tools / Number of records:
Number of records Ax2012

This can be an interesting figure for data migration, measurement of the transaction volume, performance evaluation etc. A similar inquiry in Dynamics 365 for Finance / SCM can be executed in a multitude of ways:

The new grid

At the moment of this publication the grid is still in a preview and slightly defunct, but you can add a grouping into any D365 list and it is going to draw the number of rows inside: right-click a column, say Group by this column and get a counter in the group header:
Count by group in the New grid
The calculation is slow as all records must be loaded from the server into the form data source first. On 10k+ records this method becomes slow to the grade of full impracticability.

Export to Excel

This method works faster than any Data management entity export: press Ctrl-Shift-M to select all records (including invisible / not loaded), then Office button / Export to excel. The success message already gives a clear indication of the total of all records exported: “We finished your export of 6265 rows. The full export took 1.6 minutes.
Export to Excel
This works a way faster, but not the fastest.

Workspace tile

On a screen of your choice, apply a query if needed, then use Options / Add to workspace, then ConfigureShow count on the tile, then check the destination workspace:
Tile counter
This works fast and even provides a drill-down capability, but not techy enough.

Get entity record count

Navigate to Common / Common / Office integration / Excel workbook designer. This little known cockpit let you make magic self-refreshing Excels you can give out to the users. The tailored Excel templates have pre-configured columns and a Microsoft Dynamics Office Add-in conditioned to the current environment. Now look for the entity of your interest and press the sleek button Get entity record count:
Get entity record count
This is a super fast, smart and satisfying method, handicapped by the fact, that not every table in the system is an entity, but it comes the closest to the good old Number of records list.