Monday, August 7, 2023

Create Transfer orders from a Warehouse management app in SCM

In this blog post we are going through the Create transfer orders from a mobile device feature and see how it works.

MOBILE DEVICE MENU ITEMS SETUP

Follow these steps to create the mobile device menu item for the transfer order creation.
  • Navigate to: Warehouse management > Setup > Mobile device > Mobile device menu items.
  • Create a new mobile device menu item by selecting “New” on the action pane.
  • Enter a menu name: “Create TO”.
  • Mode: Indirect.
  • Activity Code: Create transfer order from license plates.
  • Transfer order line creation policy: License plate guided with line reservation.
  • Outbound shipment policy: Release and ship confirm. This will release a transfer order to the warehouse and confirm the shipment. 

MOBILE DEVICE MENU SETUP

Follow these steps to add the created mobile device menu item to the Inventory menu.

  • Navigate to: Warehouse management > Setup > Mobile device > Mobile device menu
  • Select the Inventory menu and move the menu item from the available list to the menu structure. 

 


WORK TEMPLATES SETUP

When wave is released, we need to create a work. For this, work templates are used.  the work that is created when the wave is released. 
Follow these steps to setup work templates. 
  • Navigate to: Warehouse management > Setup > Work > Work templates.
  • Select Transfer issue work order type.
  • Select “New” to create a new work template:
  • Sequence Number: 0.
  • Work Template: “51 AutoProcess LP”.
  • Work Template description: “51 AutoProcess LP”.
  • Automatically process: Yes.
  • Create work template lines in the Work template details section. 
  • Work type: Pick
  • Work class ID: TransfOut
  • Add a second line and select:
  • Work Type: Put.
  • Directive code: Baydoor.
  • Work class ID: TransfOut.


  • Select “Edit query” on the action pane.
  • Open the Range tab. Select "Add" and for the created line in the "Field" select Warehouse, in the "Criteria" select 51.
  • Open the Sorting tab. Select "Add" and for the created line in the "Field" select Located license plate ID, in the "Search direction" select Ascending.
  • Select OK. 
  • Select "Work header breaks" in the work template page and then select the “Group by this field” check box.

LOCATION DIRECTIVES SETUP

Follow these steps to create location directive.
  • Navigate to: Warehouse management > Setup > Location directives.
  • Select "Transfer issue" work order type” .
  • Create new location directive.
  • Sequence: 1.
  • Name: 51 TO LP Guided.
  • Wort type: Pick.
  • Warehouse selection: Warehouse and Warehouse 51.
  • In the “Lines” fasttab create a new line.
  • To quantity: 999999.
  • Allow split: Yes (Note: Allow split must be enabled for the License plate guided strategy).
  • In the “Location directive actions” create a new line.
  • Name: LP Guided.
  • Strategy: License plate guided .

SET UP BATCH JOB TO PROCESS WAREHOUSE APP EVENTS 

Follow these steps to set up a batch job to process warehouse app events.

  • Navigate to: Warehouse management > Periodic tasks > Process warehouse app events.
  • Expand “Run in Background” FastTab.
  • Set “Batch Processing” to “Yes”.
  • Select “Recurrence”  and select the desired recurrence.
  • Select “OK” to return to the “Process warehouse app events” page.
  • Select “OK” to add the batch job to the batch queue.

SET UP BATCH JOB TO RELEASE TRANSFER ORDERS AUTOMATICALLY

Follow these steps to set up a batch job to release transfer orders automatically once transfer orders are created by process warehouse app events.

  • Navigate to: Warehouse management > Release to warehouse > Automatic release of transfer orders.
  • Expand "Records to include" section and select "Filter". 
  • Select Filter under the Records to include section.
  • On the Range tab, select Add to add a new line to the query.
    • Table field: Transfer line release to warehouse.
    • Field field:  Outbound shipment policy.
    • Criteria field: Release and ship confirm.
    • For the From warehouse, in the Criteria field, select 51.

 

  • Select OK to return to the main dialog box.
  • Expand Run in the background section and enable Batch processing.
  • Select Recurrence and set up the batch job to process based on interval needed for your business.
  • Select "OK" to return to the main dialog.
  • Select "OK "in the main dialog to have the batch job added to the batch queue.

SET UP BATCH JOB TO PROCESS OUTBOUND SHIPMENT

Follow these steps to set up a scheduled batch job to run the outbound shipment confirmation for loads ready to ship related to transfer order lines that are "ready to ship".

  • Navigate to: Warehouse management > Periodic tasks > Process outbound shipments.
  • Expand "Records to include" section and select "Filter". 
  • Select "Joins" tab.
  • Expand Loads and Load details from the table hierarchy.
  • Select "Load details" table and select "Add table join" button.
  • Search for n:1 Transfer order lines (Reference) and press the Select button.
  • Select "Transfer order lines" table and select the "Add table join" button.
  • Search on the Relation column for 1:n Invent Transfer Additional Fields (Record-ID) and press the Select button.

 

  • Select the Range tab and select the Add button.
  • Add a range for the table Loads. Set Field to Load status and set Criteria to Loaded.
  • Add a range for the table Invent Transfer Additional Fields. Set Field to Outbound shipment policy and set Criteria to Release and ship confirm.
  • Add a range for the table Load details. Set Field to Reference and set Criteria to Transfer order shipment.
  • Select "OK" to return to the main dialog box.
  • Expand "Run in the background" section and enable Batch processing.
  • Select "Recurrence" and set up the batch job to process based on interval needed for your business.
  • Select "OK" to return to the main dialog.
  • Select "OK" in the main dialog to have the batch job added to the batch queue.


ADD ON-HAND ON A LICENSE PLATE

CREATE AND PROCESS TRANFER ORDERS FROM TEH WAREHOUSE APP 

  • Open the app and sign in as user 51. 
  • Select the menu item Create TO in the Inventory menu.
  • Enter the destination warehouse (To warehouse) in the Warehouse field, enter 61. The new transfer order will be going from current warehouse 51 (From warehouse) to the destination warehouse 61.
  • Notice that Transfer order number is allocated already from the number sequence.
  • Scan a license plate ID in the License plate field. Enter the license plate of the inventory added in an earlier step, LP10.
  • Once LP is scanned, License plate count will be updated accordingly. 

 

  • Scan a license plate ID in the License plate field. Enter the license plate of the inventory added in an earlier step, LP20.

  • As soon as LP scan is done,  Warehouse app event is being created. Since we scanned 2 LPs, you will notice 2 warehouse app events being created. 
    • Navigate to: Warehouse management > Inquiries and reports > Mobile device logs > Warehouse app events. 

  • Go back to the mobile device and select Complete order to finalize the warehouse app transfer order creation.
  •  As soon as Complete order is done,  Warehouse app event for the transfer complete is being created. All warehouse app events will be changed from "Waiting" to "Queued" event state. 

  • Now, the Process warehouse app events batch job will pick up the queued events for the transfer order creation. 
  • As soon as those events are completed, transfer order will be created.


 

  • Notice that Outbound shipment policy is set to None. This will be updated as soon as the Complete transfer order warehouse app event will be updated to Completed. 
  • Once the Process warehouse app events batch job is executed and marked all events as Completed, they will disappear from the Warehouse app events page and transfer order lines will be updated based on the policy set on the mobile device menu item. 


  • Now this transfer order lines can be picked up by the Automatic release of transfer orders batch job. This will create the shipment, the load and the work. 
  • Since the work template is set to Automatically process, the work will be , and the work has been completed.

  • Finally, the “Process outbound shipment” batch job will confirm the shipment and change the load status to “Shipped”.

Monday, July 17, 2023

Defer the creation direct delivery chains in Microsoft Dynamics 365 Supply Chain Management

In this blog post we will be walking through the "Defer creation of direct delivery chains" parameter and what it does. 

When it is applied: In general, if you have item marked as direct delivery, the direct delivery purchase order will be automatically created during sales order entry.  To prevent direct PO's from being automatically created during sales order entry, "Defer creation of direct delivery chains" parameter can be used. And then the Direct Delivery workbench page can be used to process such sales orders. This workbench has a tab to display sales order lines set to Direct that do not yet have purchase order created.

Walkthrough: 

Activate the Accounts receivable parameter - "Defer creation of direct delivery chains" parameter. 


Set the default vendor on the Release products:

Let's activate this product for the direct delivery:


If the direct delivery toggle on the released product is set to Yes, then Direct Delivery flag on the SO line will default to Yes. But Delivery type will be "Stock".

If the direct delivery toggle on the released product is set to No, then Direct Delivery flag on the SO line will default to No, Delivery type will be "Stock" but you can change Direct delivery flag manually on the SO line.  If you do so, then such items will appear in the Direct delivery processing workbench. 

Let's create a sales order and lines.



When creating the SO line, it will default Direct Delivery to “Yes”, keep the Delivery type as “Stock”, and set the delivery status as deferred To be direct delivered.  As of now, no purchase order is created.

Go to Procurement and sourcing > Purchase orders > Direct delivery processing to .


Select Create direct delivery link. Sales order will disappear from Direct Delivery tab and created direct delivery PO will appear on the Confirmation tab. Sales order lines will be updated to Delivery type = Direct delivery and Direct delivery status = Purchase order released. 
Go to Confirmation tab and confirm the direct delivery PO. Select Confirm purchase order link. 


Direct delivery PO will disappear from Confirmation tab and will appear on the Delivery tab.

Receive the delivery. 
If you select Full product receipt, product receipt will be automatically posted. Direct delivery number number sequence from the Procurement and sourcing parameters will be used for the Product receipt number. 
If you select Partial product receipt, Posting product receipt dialog will be opened. Product receipt number must be entered manually. 

That's it!

Thursday, June 29, 2023

Testing WMS labels in Dynamics 365 SCM: Virtual ZPL printer, Local file and SCM External service

As you might know the existing  Chrome ZPL Printer extension is not supported any more. Within this blog post I would like to provide other ways of printing labels in Supply Chain management.

Virtual ZPL Printer

An Ethernet based virtual Zebra Label Printer that can be used to test applications that produce bar code labels. This application uses the Labelary service found at http://labelary.com.

The idea is pretty much the same as it was before with Chrome extension. 

You need to perform the following to make it work:

Local file


You need to perform the following to make it work:
  • Create or update any existing printers. To update the printer properties, select Print Properties.
  • Select the Ports tab and select Add Port.
  • Select Local port and select New Port
  • For the port name, enter a file name: C:\Labels\Zebra.TXT
  • Run the installation program for the Zebra Printer Drivers (ZD220/ZD230 Desktop Printer Support | Zebra) and select a printer you would like to use, for instance ZDesigner ZD220-203dpi ZPL printer). Select the port you have just created and Finish the installation.

Now when Zebra.TXT is updated with printed label, you can open txt file, copy the values and paste it into Labelary Online ZPL Viewer

SCM External services

If you want to get around the pain of setting up DRA for label printing, with new feature available since 10.0.33 you can use External services to test your label printing.

You need to perform the following to make it work:



  • Set up External service instance - make sure you put something into the authentication secret, doesn't matter what:


  • Set up Label printers:


  • Set up Label layouts. For the simplicity of the demonstration, I am going to use custom label layouts feature to print location labels. 



 Let's print the label from the locations: 


And the results (custom label of location 10000 to Printer2) :

 

It is super convenient to set up and use it. 
That's it!

Wednesday, April 5, 2023

Date, time and number format in layouts

Walkthrough for Date, time and number format on the Label layouts work in the Microsoft Dynamics 365 SCM

In this blogpost I am going to explain the Date, time, and number format configuration available in the Label layout page and how to make it work.

Go to Warehouse management > Setup > Document routing > Label layout.
You will notice Date, time, and number format field there. This field control how numbers and dates were formatted on the printed label. For example, you can have a requirement that numbers need to be formatted - the decimal dot/comma and the thousands dot/comma/tick and so on. Previously it was not possible, for example, to use US number format with European WMA user (or vice-versa). Now you can have it configurable.

Let's imagine that I have the following label layout for license plate labels. I have both number field -Qty and date field - PrintedDate.

Label layout for license plate labels


^XA

^FX Top section 
^CFA,30
^FO50,100^FDOrder Number: $OrderNum$^FS
^FO50,200^FDLicense plate: $LicensePlateId$^FS
^FO50,300^FDProduct: $ItemId$^FS
^FO50,400^FDPrinted Date: $PrintedDate$^FS
^FO50,500^FDQuantity: $Qty$^FS

^FO50,690^GB700,3,3^FS
^FO50,700^FDFrom Location: $WMSLocationIdFrom$^FS
^FO50,750^FDTo Location: $WMSLocationIdTo$^FS
^FO50,800^GB700,3,3^FS

^XZ

In my scenario, I will be using Chrome emulator to present the results. 

So, if you try to print license plate label using the layout above no matter what you select in the Date, time, and number format, it will not change formatting of the date and number. 

But as soon as you add :d to the Date field, it will make a difference.

^FO50,400^FDPrinted Date: $PrintedDate:d$^FS

I have printed 3 labels and for each label I changed the Date, time, and number format field. Pay attention to the Printed Date on the label and how it changes. 

DA Label

DE Label

JA Label

The same story with the Qty.

As soon as you add :N to the number field, it will make a difference.

^FO50,500^FDQuantity: $Qty:N$^FS

I have printed 2 labels and for each label I changed the Date, time, and number format field. Pay attention to the Quantity on the label and how it changes. 
DE-AT Label

EN-US Label


That's it! I hope it helps.


Friday, March 24, 2023

How you print custom labels in SCM

Custom label layout type feature that has been released in 10.0.33 allows you to print any labels for any tables. It is a beneficial especially in the retail industry, for food and beverage customers .

With this feature you can print the following at the minimum:

  • Item labels
  • Item barcode labels
  • Customer labels
  • Vendors labels
  • Locations
  • Fixed locations for items
  • On hand
  • LPs
  • Container Ids

You might be aware of other ISV solutions that have this capability like DSI Print Envoy (ISV), but now SCM also supports this out of the box.

In this blogpost, I will go through some of the example above.

Let's start with printing locations. 

Print locations

1. Set up Label layout data source

Go to Warehouse management > Setup > Document routing > Label layout data source.
Select New and set the following values:
  • Label layout data source ID: Locations.
  • Description: Locations.
  • Label layout type: Custom label.
  • Custom label root table: WMSLocation.
Label Layout data source

2. Set up Custom label layout

Go to Warehouse management > Setup > Document routing > Label layout.
Set the Label layout type field to Custom Label.
Select New and set the following values:.
  • Label layout ID: Locations.
  • Description: Locations.
  • Label layout data source ID: Locations.
On the Printer text Layout FastTab, enter the ZPL code below.

CT~~CD,~CC^~CT~
^XA~TA000~JSN^LT0^MNM,0^MTT^PON^PMN^LH0,0^JMA^PR8,8~SD15^JUS^LRN^CI27^PA0,1,1,0^XZ
^XA
^MMT
^PW831
^LL609
^LS0
^FT40,59^A0N,28,28^FH\^CI28^FDLocation^FS^CI27
^FT19,148^A0N,42,43^FH\^CI28^FDLocationID: ^FS^CI27
^FT230,148^A0N,42,43^FH\^CI28^FD$WMSLocation_1.wMSLocationId$ ^FS^CI27
^BY3,3,180^FT116,525^BCN,,Y,N
^FH\^FD^FS
^PQ1,0,1,Y^XZ

 Label layout

3. Set up Warehouse management parameters

Go to Warehouse management > Setup > Warehouse management parameters.
On the Reports tab, on the Custom labels FastTab, set the Display custom label print buttons option to On all forms.

Warehouse management parameters
 

4. Printer setup 

Go to Organization administration > Setup > Network printers
Make sure Printer is Active
Network printers       

5. Print location label

Go to Warehouse management > Setup > Warehouse > Locations.
Select one or more records.
On the Action pane, on the Options tab, in the Custom labels group, select Print locations.

Location label

In the Print custom labels dialog box, set the following fields:

  • Label layout ID: Locations.
  • Printer name: Select the printer that you want to print from.

 

Print custom labels

 Notification will appear stating how many labels were sent to print.

Print location

And 2 labels will be printed.
Printed labels


If you want to have multiple labels for the same data source, you can also do it. 
For instance, to the example above we would like to have different labels for the locations and locations with on-hand details from the locations. First label we have configured already. Now let's set it up the second label with on hand details:


Go to Warehouse management > Setup > Document routing > Label layout data source.
Select New and set the following values:
  • Label layout data source ID: LocationsInventSum.
  • Description: Locations (+InventSum).
  • Label layout type: Custom label.
  • Custom label root table: WMSLocation.

Label data source 

On the Action Pane, select Edit query.
On the Joins tab, add the InventSum table through Inventory dimensions table.
Select OK.

 

Edit query


Go to Warehouse management > Setup > Document routing > Label layout.
Set the Label layout type field to Custom Label.
Select New and set the following values:.
  • Label layout ID: LocationsInventSum.
  • Description: Locations (+ InventSum).
  • Label layout data source ID: LocationsInventSum.
On the Printer text Layout FastTab, enter the ZPL code below.
 
{{LabelStart
^FX ... ZPL commands that will be printed on every label ...
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNM,0
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR8,8
~SD15
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW831
^LL609
^LS0
}}
{{Header
^FT31,59^A0N,28,28^FH\^CI28^FDLocation with on-hand^FS^CI27
^BY3,3,180^FT116,300^BCN,,Y,N
^FH\^FD$WMSLocation_1.wMSLocationId$^FS
}}
{{Row Table=InventSum_1 StartY=400 IncY=68 RowsPerLabel=5
^FT19,$position.YPos$^A0N,42,43^FH\^CI28^FDLine:^FS^CI27
^FT128,$position.YPos$^A0N,42,43^FH\^CI28^FD$InventSum_1.ItemId$^FS^CI27
^FT250,$position.YPos$^A0N,42,43^FH\^CI28^FD$InventSum_1.AvailPhysical$^FS^CI27
}}
{{LabelEnd
^PQ1,0,1,Y
^XZ
}}

Go to Warehouse management > Setup > Warehouse > Locations.
Select one or more records.
On the Action pane, on the Options tab, in the Custom labels group you can see 2 buttons since we have multiple label data sources for the same root table
Locations


On the Action pane, on the Options tab, in the Custom labels group, select Print Locations (Locations (+ InventSum)).
In the Print custom labels dialog box, set the following fields:

  • Label layout ID: LocationsInventSum.
  • Printer name: Select the printer that you want to print from.

Print locations with InventSum

Label is then printed

 

Printed label

That's it for today!