Skip to main content
Dynamics 365

Receiving a pallet with mixed items based on a packing structure using License plate receiving mobile device menu item

Initial description

The license plate receiving method on a mobile device lets you expedite the receiving process. If you receive advanced shipping notices (ASNs) from a vendor, and you trust the accuracy of the document, you can use the packing structure information in the ASN to automatically create put away work. The work is created when you scan the license plate on the pallet that you are receiving.

This is a significant advantage over other mobile device receiving methods, where you would need to scan in all of the shipment contents order by order, or item by item.

The packing structure is created in the following ways:

  • Manually created. This can be done from a selected inbound load based on one or more purchase orders. Typically, this process is used when an EDI is not set up with a vendor, but ASNs are received for incoming shipments anyway.
  • Automatically created when an ASN is imported import for purchase orders. See my previous post about importing an ASN.
  • Automatically created for transfer orders that were shipped by using the waves functionality. Note that if legacy WMS processes were used to ship a transfer order, you cannot use the license plate receiving method to receive it.

Today, the license plate receiving method is the only receiving method that allows you to receive one pallet that contains multiple purchase order lines for same or different items.


Setting up the mobile device menu item

To receive orders, you will need to create a mobile device menu item where Mode is set to Work, and Work creation process is set to License plate receiving, as shown in the below screenshot.


There is confusion in the community about this menu item because, unlike other receiving methods, it does not have an “and put away” counterpart. This is because license plate receiving always executes the put away work to move the goods from the inbound area. In fact, it could be renamed to “License plate receiving and put away.”

Mobile device menu items

Settings on the menu item

If Display disposition code is selected on the menu item, the worker will have to select a disposition code after entering the license plate ID. Disposition codes help workers to ensure that a procedure is in place for receiving items that are damaged or unusable, without knowing all the details about the process. Applicable only for purchase orders, disposition codes help ensure that the correct location directives for put away are used. Disposition codes also set the inventory status of the received items.


You want to clean all items that are dirty when they arrive, and you don’t want the items to be available to other processes during cleaning. You can create a disposition named “Dirty” that puts the items is an unavailable, or blocked, status. You can also set up a location directive to move the items to a dedicated area. Workers select the disposition code “Dirty” and instructions for handling the items are displayed.

Audit template ID enables various customizable actions when performing work. Audit templates are triggered when the value in a selected field is changed. The following are some examples of actions:

  • Printing a certain report when a work order is completed.
  • Capture temperature data during the receiving process.

This field is available for the most mobile device menu items. I will not describe it in this blog post.

Display inventory status is also available for most mobile device menu items for pick and put work. If selected, the inventory status of the work line that is being processed is displayed.

Cumulative Update 8

In cumulative update 8 for Microsoft Dynamics AX 2012 R3, a check box named Print label has been added to the mobile device menu item for license plate receiving. If it is selected, and printing is configured in the Document routing form, the parent license plate ID for a pallet and all of the nested license plate IDs for cases are printed when goods are received. This happens before creating the put away work so the user can attach the labels to the cases. This is especially useful in a cross-docking scenario, where received cases are dispatched right away.

If you don’t select this check box, you can still print the parent license plate by adding a “Print” step to the work template.


After you create the menu item, you then need to add it to a mobile device menu so that workers can access it on mobile devices. After that, the worker needs only to provide the ID of the license plate for the received pallet. Instructions for what to do next are displayed on the mobile device.

I have added a menu item to the Inbound mobile device menu, as shown in the following illustration.

Mobile device menus

Walkthrough: Receive a shipment that contains multiple purchase orders

To get started, we need two purchase orders. Each purchase order will contain a line for two different WHS-enabled items. The following illustrations show the purchase orders that I have created.

Purchase order 000412

Purchase order 000413


The purchase orders are for the same vendor, and the lines are coming to warehouse 42. The orders can be shipped as a consolidated shipment, and the items can be placed onto the same license plate.

Now that we have the purchase orders, we need to create a load, shipment, and packing structure. To simulate the receipt of an ASN from a vendor, I will import an ASN document with the XML shown below. The XML file for the ASN is also available in my OneDrive.

 1: <?xml version="1.0" encoding="utf-8"?>

 2: <Envelope xmlns="">

 3:     <Header>

 4:         <MessageId>{5603D03A-4473-404D-9F27-738BE0FEA99E}</MessageId>

 5:         <Action></Action>

 6:     </Header>

 7:     <Body>

 8:         <MessageParts>

 9:             <WHSShipmentASN xmlns="">

 10:                  <WHSShipmentTable class="entity">

 11:                      <ShipmentId>CUSTREF-004</ShipmentId>

 12:                      <WHSUOMStructure class="entity">

 13:                          <LicensePlateId>LP2POs001</LicensePlateId>

 14:                          <WHSASNItem class="entity">

 15:                              <ItemId>000148_202</ItemId>

 16:                              <PurchId>000412</PurchId>

 17:                              <Qty>15</Qty>

 18:                              <UOM>ea</UOM>

 19:                              <InventDim class="entity">

 20:                              </InventDim>

 21:                          </WHSASNItem>

 22:                          <WHSASNItem class="entity">

 23:                              <ItemId>000147_202</ItemId>

 24:                              <PurchId>000413</PurchId>

 25:                              <Qty>10</Qty>

 26:                              <UOM>ea</UOM>

 27:                              <InventDim class="entity">

 28:                              </InventDim>

 29:                          </WHSASNItem>

 30:                      </WHSUOMStructure>

 31:                      <DirPartyPostalAddressView class="entity">

 32:                          <City>Redmond</City>

 33:                          <CountryRegionId>USA</CountryRegionId>

 34:                          <State>WA</State>

 35:                          <Street>123 Coffee Street</Street>

 36:                          <ZipCode>98052</ZipCode>

 37:                      </DirPartyPostalAddressView>

 38:                  </WHSShipmentTable>

 39:              </WHSShipmentASN>

 40:          </MessageParts>

 41:      </Body>

 42:  </Envelope>

As you can see from the file, both purchase orders are part of a shipment with the reference number CUSTREF-004, and both items are placed on the same pallet with license plate ID LP2POs001.

After importing the ASN, a load with the following packing structure will be created.

Packing structure

We are now ready to use the License plate receiving menu item that we created earlier. But before we do, I want to show some additional setups. These setups will ensure that items are put on the same pallet and in the same location when they are received:

  • Location directives
  • Location profiles for the locations
  • Stocking limits for the locations

We need to ensure that the locations are allowed to have multiple different items (as shown in the example above), and that the quantity can fit in the location. We’ll have a problem if the entire quantity won’t fit, because our location directive doesn’t allow us to split quantities across locations.

Here’s how I have set up my location directives and the location profile.

Location directives

Location profiles

I have assigned the location profile to location LP-002, which has enough room to store the 25 pieces I am about to receive (it is currently empty) and the stocking limit allows up to 5 PL.

On hand by location

We can now receive the shipment, so let’s open the Warehouse Mobile Device Portal (WMDP) and go to the menu item we created for License Plate receiving.

Step 1

As described above, the mobile device user only needs to scan the license plate on the received pallet.

License plate receiving, step 1


You cannot partially receive a pallet by scanning one of the nested license plates for cases. You must always scan in the parent license plate ID.

Step 2

After confirming the license plate, a confirmation screen displays a list of the contents of the pallet. This includes the order information and the item quantities on the pallet. Quantities are shown as totals for each item, even though the item is on more than one order line.

License plate receiving, step 2


The Exception button lets you indicate that the receipt did not go as planned. You can select a work exception of the type Receiving to add an entry to the work exceptions log.

Step 3

When you confirm the receipt, work is created to put away the goods and the Pick screen is displayed. We are picking up the pallet with the license plate ID at the inbound dock location shown below. The pallet contains multiple items with a total quantity of 25 eaches.

The corresponding work line #1 changes status to In process.

License plate receiving, step 3

Step 4

Confirming the pick closes the pick work line and starts the put work line. We are putting multiple items on the same pallet that they were received on at location LP-002.

License plate receiving, step 4


You can click Override to change the put location for the items. This button is available because the Allow put location override is selected on the work user setup for Worker 42.

Step 5

When we confirm that the put work is completed, we’re finished receiving the license plate and can move on to receive the next pallet.

License plate receiving, step 5

Result of license plate receiving

The following status changes happen as a result of license plate receiving:

  • The status of the work becomes Closed
  • The status of the load becomes In process
  • The status of the purchase orders remains Open.

The following illustration shows the work that was performed.



If you look closely at the work lines you will notice that we actually had two separate put lines, one for each of the items, but we only saw one step on the mobile device. This is how WMDP optimizes the process when items are going to the same location, which in our case they were.

What next?

You should then follow the process your company uses for completing procurement, for example, by posting the product receipt document to update the status of the purchase orders on the load to Received.

Walkthrough: Receiving a transfer order shipped using Warehouse management features

A walkthrough is already provided in the Warehouse management system implementation guide, so I’ll just link to it here instead of duplicating it.

You will note that, from a receiving standpoint, the process is the same for purchase orders. All you have to do is scan the license plate and perform the put away work.

How license plate receiving actually works

The following list summarizes what the system does if you use license plate receiving on a mobile device to process a receipt.


  • Examine the packing structure for the specified license plate, taking the pallets first and then cases for that pallet.
    • Create the license plate specified on the packing structure (pallet or case) in AX.
    • Register the items on the parent license plate by looping through all the ASN items with the specified license plate. Even if cases are used, the items are still registered on the parent license plate.
      • For purchases, register items at the default receiving location for the warehouse that the worker is in. If a worker selects a disposition code, the inventory status for the code is used. Otherwise, the inventory status for the purchase order line is used.
      • For transfers, register items at the default receiving location of the “To warehouse” from the transfer order. When the line is registered in inventory, also receive the corresponding transfer order line.  You can later view the history of the transfer order history to see that each line was received separately.
    • Revisit the ASN items for the specified license plate, and create put work for each item.
      • If multiple lines are linked to the same load line, and they have the same inventory dimensions, group them by consolidating the quantity to put away on the work lines that are already created.
      • Update each processed ASN item line by increasing the value in the WorkCreatedQty field (Quantity for which work has already been created). Also update the corresponding field on the related load line.
      • Use location directives for purchase orders and transfer orders to determine the put away location, and break work into multiple pieces where necessary. This process is not specific to license plate receiving. It is the same for all processes that create put work in the Warehouse management module.
      • Create the work header, set the appropriate warehouse and target license plate on the license plate from the packing structure.
      • Create the pick line. There will only be one pick line for the aggregated quantity to put away. Use the location that is specified as the default receipt location for the warehouse.
      • Create work inventory transactions for all the work lines.
    • If labor standards are enabled for the warehouse, calculate the estimated execution time for each work line.
    • (CU8) If the mobile device menu item is set up to print labels, print the labels for the parent and nested license plates (pallet and cases).
    • Proceed to actually performing the work.
      • The work execution is not specific to license plate receiving, so all of the mechanisms are identical to other Pick/Put operations.
Technical information

Most of the non-generic business logic of processing the receipt of a license plate is consolidated in the following classes:



The code is similar to other classes for mobile device receiving and work creation, debugging should not be a problem.

All right, that’s it. If you have questions or comments, don’t be shy 🙂