Counting status registration policy

There are few parameters that impact counting in MSDyn365FO. We all know about “Lock items during count” parameter that locks the item for any inventory update (Registration, Product receipt posting, Picking, Packing slip posting, etc.) if you have an open counting journal with it.


Another setup that you should know about is Warehouse items. It gives the ability to define different counting groups for different warehouses, setup default receipt/issue or picking location for an item in a particular warehouse and review counting status (i.e. whether item is being counted and in what journal it’s included). Therefore, if you have multiple warehouses and want to count the stock on each warehouse separately you should setup Warehouse items per each warehouse you have.


However, we still have limitations here. Setting up warehouse items per warehouse gives the ability to add same item to different counting journal with different warehouse, but you cannot do it per location.

The simple scenario that you can think of, is when several people do a stocktake and everyone counts different locations. In this case, if the same item has stock in multiple locations and we have an open counting journal for this item we will get next warning: “Item XXX is locked for updates in warehouse YYY because it is being counted.” when we try to add it to another counting journal.

Of course, you can build the process to have only one journal for all items that are being counted and then someone will go and update it with actual values. But what we really want, is to have a counting journal for every worker, so the user can work only with lines he needs.

In previous versions it was not possible, but now we have “Counting status registration policy” field on the counting journal name and header. The field has two options: Enable counting status registration and Disable counting status registration.

When it’s set to “Disable…” we are able to add same item into multiple counting journals (which solves the issue), at the same time “Enable…” keeps original validation described above.


Good to see that we have options now and more flexibility even in this pretty straight forward process.

For those of you who cannot find it in your AX 2012 environment, you can get this feature by installing KB4057006.


TMS: Automatic freight invoice reconciliation

I have a post about inbound load rating that describes how you can apply freight costs manually without using rating functionality in Transportation management (TMS). However, it describes only a part of the process, because after we allocate charges against the shipment we should perform freight invoice reconciliation at some stage.

In standard D365FO we can do reconciliation either manually or automatically (more info here). As you already noticed from the post name, I am going to focus here on automatic reconciliation process.

With this functionality we can define criteria where D365FO automatically matches and approves freight bill and invoice, for example, we can configure the system to do this when we the variance of the invoice amount is less than 10% .

For automatic reconciliation, we must specify the schedule for reconciliation, the invoices and shipping carriers to use (refer to the docs article for step by step description).

I am going to use same flow as in this post to assign charges, therefore I will use same carrier and create additional configuration.

Freight bill type

Here we should specify how freight bills and carrier invoices should be matched, in my setup we are matching by Load id and by Billing group id.

TMSAutoReconciliation_Freight bill type

Freight bill type assignment

This setting maps the bill type with the carrier.

TMSAutoReconciliation_Freight bill type assignments

Audit master

The audit master defines the tolerance limits and how to handle discrepancies.

TMSAutoReconciliation_Audit masters

Then, as a precondition for the freight reconciliation process, we should have a purchase order with a load that has rate assigned.

Create a purchase order, specify shipping carrier information and mode if delivery:


Create a load, rate and confirm it:


If we did everything properly we should see miscellaneous charges assigned to the purchase order lines:


Also at this stage we should have a freight bill generated:

TMSAutoReconciliation_Load_Freight bill details

TMSAutoReconciliation_Freight bill details

In real life scenario vendor sends us a freight invoice (for example, via email or EDI) which represents a freight bill invoice in D365FO. In the system we can generate it form existing freight bill or create it manually from Freight invoice details form (Transportation management > Inquiries and reports).

In this demonstration, I will generate the freight bill invoice and on this step D365FO prompts me to enter Vendor invoice number:


For automatic matching we should enable “Invoice is ready for automatic matching” on the freight invoice detail for the invoce. Here I will also adjust invoice amount to be greather than initial charge value:


In addition, we should have two batch jobs running periodically: Auto match batch (performs matching) and Process reviewed matches and reconciliations (approves freight invoices), both can be found under: Transportation management > Freight bills and invoices.

After Auto match batch  finishes, we can see that workflow status for this freight invoice changes to “ReadyToProcess” and  invoice amount is matched with original value.


When Process reviewed matches and reconciliations batch runs the workflow status automatically changes to Approved (deactivate “Hide approved” to see Approved invoices in the grid). We can also notice that Vendor invoice journals button is enabled now, clicking on it shows the reference to AP journal:



From the Vendor invoice journal form we can jump to the Journal details:


This functionality is relatively new and has powerful features, however, is not well documented and I hope this post will shed some light on it.

Warehouse app. Scan barcodes using device camera.

I have been waiting for this feature for a long time!

Now it is much easier to scan barcodes using warehouse app. In version we can use device camera for a barcode scanning.

Here what you need to setup to make it work:

Firstly, in the Warehouse app field names form set preferred input mode to “Scanning” for required fields:


Then, in the mobile device in the Display settings activate Use camera as scanner:

WHSAPPBarcodeCamera_Use_camera for barcode scanner

All done, try it on any flow you like:



I find it very useful, we can use it for demo purposes or in when if RF gun is not available.

For more info refer to the docs article.


Partial location cycle counting

Let’s say that we need to periodically count specific item, in the warehouse this item is stored together with other products. Therefore, we a looking for an option to perform counting of one product ignoring all other stock at location.

So, if you are on July release (7.2) or later version, then you are lucky to have this as part of standard functionality; otherwise you can install KB4025460 “Guided partial location item cycle count where you don’t need to count the full content of location.”

To set this process up we should create work template for cycle counting:


On the work template we have “Work line breaks” button where you can specify grouping, i.e. if you want to create cycle counting work for item or product variant. If you need a counting work per product variant then you should choose both options, since AX won’t let you proceed without this setup:

Partial_Location_Counting_Work_Template_Line breaks_message

The setup I did as below:

Partial_Location_Counting_Work_Template_Line breaks

Next step is to create cycle count plan and attach it to the work template that we have just created.


And add product variant criteria to the query:


Current on-hand information looks as follows:


Now, after we have processed cycle count template we see that counting work was generated for our product variants ignoring other stock from this location:


In mobile device menu item setup there is a “Display item number” parameter that you can enable, so users can see on mobile device what item they count.

D365FO: Using Bar codes, External codes and GTIN in Warehouse app to identify an item.

D365FO: Using Bar codes, External codes and GTIN in Warehouse app to identify an item.

In almost every workflow of the warehouse app you will be prompted to enter an item number to proceed further. We can consider options like:

  • Design a label that has AX item number as a barcode that you can scan. However, this will require labeling the stock before you do anything in the system. Moreover, current WHS functionality does not allow you to print labels from AX web client beforehand so it is more likely a change or something that is managed outside of the system.
  • Create new or modify standard receipt list report to contain item number as a barcode that you scan on PO receipt and print label when registering stock on mobile device.

Anyway, none of the above options is great since vendor delivery note usually contains supplier part number, which might not be same as AX item number. If we are talking about food industry, you can get a GS1-128 barcode on a product package that you can use to book stock in.

Let’s review the setup required to achieve this. I will go through few different options that are available out of the box in D365FO Release 7.3.

Firstly, we will create a purchase order and then we will review three different ways how we can receive it on a mobile device using standard “Purchase order item receiving” menu item.


External item numbers

We can use external item numbers to capture manufacturer item number and then, when receiving PO, on mobile device we can scan manufacturer item id rather than AX item number.

To create External item number for Item go to the purchase tab of the Released product form and create new record.

WHSApp_Rel_product_External items

Since the item number that I am using has Product subtype = Product master I can set required product dimensions for it:

WHSApp_External item

Now we are ready to login on mobile device and perform purchase receipt.

Enter PO number:


Enter External item number into the Item number field:


Click OK, gives:


As you see from the above screenshot the system, identified AX item number based on external item number value.

Bar codes

We can predefine barcodes for an item in AX that also can be used on receiving flow. Bar codes for an item can be created from Released product form:


Make sure that you activated Scanning field, otherwise Bar code would not be recognized. Product dimensions can be predefined here in case if we are using item with product subtype = Product master.


In the warehouse app we enter Bar code value:


Click OK, gives same result, Bar code is automatically replaced with Item number by the app:


GTIN codes

Similar to Bar codes, we can create GTIN codes for an item that will be also recognized by warehouse app. To create a GTIN code click on the GTIN code button from the released products form:


Do not forget to populate product dimensions for if you are using Product master.


Enter GTIN in the warehouse app:




As you can see, it is very easy to set it up and it helps a lot during receiving process since it automatically matches Bar code/GTIN or manufacturer item information against AX item code and populates product dimensions based on a setup from release product. Note, there is one more option that I did not cover with the example, it is Product search name field and yes, Warehouse app also accepts it as an input value.

I like it!

D365FO: Manual inbound load rating

I have seen many blogs describing how to setup rating and routing functionality in TMS to calculate charge value and allocate it to the purchase order lines. If you require this functionality then be prepared that it will take some of your time to make it work.

However, what if we have a simple scenario when we do not need to capture rates and routing information and we already know shipping charges. I am thinking about the process when we manually rate inbound load once we receive freight invoice from the vendor and by confirming the load we are allocationg those charges against the purchase lines.

So, what is the minimum setup required to achieve that?

1. Terms of delivery that are used on the purchase order should have enabled “Add transportation charges to the orders”:

TMS_manual_rating_Terms of delivery

2. Shipping carrier used should be active for carrier rating:

TMS_manual_rating_Shipping carrier3. We should have a setup of miscellaneous charge codes for vendors:

TMS_manual_rating_Miscellaneous charges

Now we will create two purchase orders. Make sure that you use items which are enabled for transportation management processes and warehouse is enabled for warehouse management processes.





NOTE: I have set same terms of delivery and shipping carrier for both orders.

Then, create an inbound load and add to it PO lines from orders created above. We can do it from the Load planning workbench screen (one of the places where you can find it: Warehouse tab on the purchase order form):

TMS_manual_rating_Inbound load

Right, all lines are on the load and now it is time to rate it!

Click Manual rating button on the load for and select rate type and value:

TMS_manual_rating_Route rate details

If you review Route information afterwards, you will see that the load has route with manual rate assigned:


To confirm inbound load (and allocate charges) click on the inbound shipment button:

TMS_manual_rating_Confirm shipment

This will change route status to “Confirmed” and allocate miscellaneous charge against all PO lines from the load:

TMS_manual_rating_Routes confirmed

To check the charge, from the purchase order line click Financials > Maintain charges:

TMS_manual_rating_PO line_miscellaneous charge

At that stage, we have following information on the orders:

Purchase order

Item number Quantity







A0002 5 5.84
PO#101 T0100 7




As you see from above table, the charge is allocated proportionally; there is one more field that was used in charges calculation – Gross weight from the item master, in our example it was:

Item number

Quantity Gross weight

Gross weight x qty


10 3 30


5 2


T0100 7 0.2




The formula is:

Line Charge = Gross weight * Quantity / Total weight * Total charge = 3 * 10 / 51.4 * 15 = 8.75

In case, if you do not record weight for the item the values would be proportionally allocated across all lines.

Lastly you will need to post freight invoice for this load and you are done.


D365FO: Fulfilment policies

Those of you who have used fulfilment policies in AX may remember that it was available only for sales orders. In last release (Update 7.3) this functionality is expanded and some useful changes are done:

1. Main setup is changed to make all settings consistent. 

In previous versions AR parameters and customer master table had all required fields to define fulfilment rule (on the below screenshot we see customer details information as example).

With this approach when multiple customers had similar settings you still need to configure fulfilment rules separately for every customer. Also there was no visibility in AX on how much variations of fulfilment policy rules are currently used.

Fulfilment policy_Customer_master_old

In new release this part was optimized, new “Fulfilment policies” form has been created under Warehouse management parameters, where we can setup fulfilment policies with different rules. All settings now are in the same place, AR parameters and customer master table were modified to store fulfilment policy value rather than all required field separately. It is much easier now to maintain the setup. Below are the examples of fulfilment policy master table and customer details forms from Update 7.3.

Fulfilment policy master

2. Fulfilment rules and partial TO release become available.

The functionality is now expanded to support transfer orders. In addition to the parameters from p.1 we have new inventory parameter that is used in Transfer order release:

Fulfilment policy_Inventory parameters

Finally, we can define fulfilment rule for transfer orders and partially release it for WHS warehouses.

Fulfilment policy_TO validation

3. Override fulfilment policy at release to warehouse

Now there is an option to override fulfilment order policy when release sales and transfer orders, this is supported from the Release to warehouse form:

Fulfilment policy_WHS release to warehouse

That is all, good to see that with every release AX supports more and more scenarios.