14.4 Label Layouts, Document Routing, Wave Label Printing, and GS1 Number Sequences

Key Takeaways

  • The Use label layouts for license plate labels toggle on Warehouse management parameters chooses between basic document routing label layouts and advanced label layouts that support data-source joins and repeating rows.
  • Document routing records are evaluated in ascending Sequence number order and the first record whose criteria match wins, so the most specific routing needs the lowest sequence number.
  • Setting Use specified printer to Always disables dynamic printer selection, while As fallback printer keeps work-user, warehouse, location, and zone resolution with a named safety-net printer.
  • Wave label printing adds the waveLabelPrinting wave step so carton and pallet labels exist before picking, and the Wave level type field on unit sequence group lines converts work line quantity into label count.
  • For a GS1-compliant SSCC-18, the Number sequence segment length must equal 16 minus the GS1 company prefix length, and extensions are supported out of the box only for license plate, container, wave label, and BOL IDs.
Last updated: September 2026

14.4 Warehouse Label Printing: Label Layouts, Document Routing, Wave Labels, and GS1 Number Sequences

Quick Answer: Dynamics 365 Supply Chain Management prints warehouse labels through four distinct frameworks. Document routing label layouts provide basic license plate labels; label layouts add data-source joins, formatting, and repeating header/row/footer templates; wave label printing creates carton, pallet, and break labels during wave execution before work is picked; and custom labels add a Print button to ordinary pages such as Released products and Locations. The Document routing record is the matching engine that decides which Zebra Programming Language (ZPL) layout goes to which printer under which conditions. Number sequence extensions make license plate IDs, container IDs, wave label IDs, and bill of lading (BOL) IDs GS1-compliant by assembling a GS1 prefix, an application identifier (AI), a serial segment, and a modulo 10 check digit.


1. Four Label Printing Frameworks

MB-330 asks you to choose the right framework for a business requirement, not to write ZPL. Learn the decision boundaries.

FrameworkSetup locationBest forKey limitation
Document routing label layoutWarehouse management > Setup > Document routing > Document routing layoutSimple license plate labels using fields on the license plate itselfNo joins to related tables, no repeating rows
Label layoutWarehouse management > Setup > Document routing > Label layoutLicense plate and custom labels needing related data, date/number formatting, or repeating rowsRequires a label layout data source for joins
Wave label printingWarehouse management > Setup > Document routing > Wave label layouts / types / templatesCarton and pallet shipping labels with SSCC codes, enumeration ("1/124"), and break labels, produced during the waveAdds a wave step; does not replace document routing printing
Custom labelWarehouse management > Setup > Document routing > Label layout with Label layout type = Custom LabelProduct labels, location labels, customer labels printed on demand from a list pageRoot table must be a real table, not a temporary table

The fourth row is how a functional consultant satisfies a product label requirement: there is no dedicated "product label" module. You define a custom label whose Custom label root table is InventTable, and Supply Chain Management then exposes a Print button on Product information management > Products > Released products.


2. Warehouse Management Parameters: The Master Switches

Four settings on Warehouse management > Setup > Warehouse management parameters gate the whole label subsystem. Missing one of these is the most common reason a correctly authored layout never prints.

Tab / FastTabFieldEffect
General > License platesUse label layouts for license plate labelsYes routes license plate printing through label layouts; No uses document routing label layouts
GeneralGS1 company prefixFeeds every number sequence extension that includes a GS1 prefix segment
Reports > Custom labelsDisplay custom label print buttonsSet to On all forms to surface Print buttons for custom labels
ReportsGenerate BOL number when printing wave labelsCreates the bill of lading ID in advance so it can be printed on the carton label; visible only when wave label printing is enabled
Number sequencesLicense plate / wave label / container / BOL sequencesAssigns a number sequence extension to each of the four supported IDs

Exam trap: the Use label layouts for license plate labels toggle is exclusive. If a scenario says a license plate label must show the purchase order number joined from another table, the toggle must be Yes, because document routing label layouts cannot join.


3. Label Layouts and Label Layout Data Sources

Create a layout at Warehouse management > Setup > Document routing > Label layout, first setting Label layout type to License Plate Label or Custom Label.

Header fields you must know:

  • Definition typeZPL sends raw Zebra code; Variables and Variables (script) send field values to an external label service that owns the design file. Choose a Variables definition type when the customer maintains label artwork in NiceLabel or BarTender rather than in Supply Chain Management.
  • Label layout data source ID — leave blank when only license plate fields are needed; select a data source when the label must show joined data.
  • Enable label template support — set to Yes to unlock {{LabelStart}}, {{Header}}, {{Row Table=... StartY=... IncY=... RowsPerLabel=...}}, and {{LabelEnd}} elements for repeating content. A data source is mandatory before this option can be used, even if the data source defines no joins.
  • Printer stock type — describes the paper a printer loads, so dynamic printer selection can route a 4×6 shipping label away from a 2×1 bin-label printer.
  • Date, time, and number format — the language used to format values rendered into the layout.

Field placeholders in ZPL are wrapped in dollar signs, for example $LicensePlateId$ or $WHSWorkLine_1.ItemID$. Joined tables are suffixed with _#.

Data sources are defined at Warehouse management > Setup > Document routing > Label layout data source:

  • Custom label root tableWMSLocation for location labels, InventTable for product labels, CustTable for customer labels.
  • Join typeInner returns rows only where both tables match; Outer returns every root row. An outer join to the batch table lets one license plate layout serve both batch-tracked and non-batch items, avoiding a second data source.
  • Parameters — runtime prompts such as label_quantity, referenced in ZPL as $dsparams.label_quantity$. Only the String data type is supported.

4. Document Routing: Matching Layouts to Printers

Warehouse management > Setup > Document routing > Document routing decides which layout prints where. Records are filtered by Work order type (for example, Purchase orders) and evaluated in ascending Sequence number order — the first record whose criteria match wins, so the most specific routing must carry the lowest sequence number.

Criteria on the Overview FastTab, each blank meaning "any": Warehouse, Mobile device user ID, Account number (vendor), Carrier, Work template, and the From zone ID/To zone ID range. Setting Run query to Yes exposes Edit query for arbitrary additional ranges.

On the Document routing printers FastTab you pair a printer with a layout:

  • Name — the network ZPL printer registered through the Document Routing Agent. Leave blank to force dynamic printer selection.
  • Use specified printerAlways disables dynamic printer selection; As fallback printer keeps dynamic selection and uses the named printer only when no more specific match exists.
  • Label layout ID — the layout to render.

Dynamic printer selection resolves a printer from the current work user, warehouse, location, and zone, so a picker walking from the freezer zone to the dock automatically gets the nearest printer without any change to the routing record.

Printing is finally triggered from the mobile side: on Warehouse management > Setup > Mobile device > Mobile device menu items, set Print label to Yes on the receiving menu item (for example, Work creation process = Mixed license plate receiving) so a label is produced on every registration.


5. Wave Label Printing: Labels Before the Pick

Classic document routing prints a label after a worker completes work. Large retail customers that scan every carton at receipt need the carton label before picking so the picker can apply it in the aisle. Wave label printing adds a wave step method that creates label records during wave processing.

Configuration sequence:

  1. Warehouse management > Setup > Waves > Wave process methods — confirm waveLabelPrinting is listed; select Regenerate methods if it is absent. Select Make method repeatable when more than one label tier is needed.
  2. Warehouse management > Setup > Waves > Wave templates — move Wave label printing into Selected methods and assign a Wave step code such as PrintLabel, Carton, or Pallet. Repeating the method with different step codes produces multi-tier labels.
  3. Warehouse management > Setup > Document routing > Wave label layouts — enter ZPL in the Header section, Body section, and Label footer fields, then open Wave label row settings to define the repeating region: Row table name (WHSWaveLabel for one label per carton, WHSWorkLine for one label per work line), Row start position, Row height (positive for horizontal labels, negative for vertical), and Rows per page. The footer ^PQn value sets the copy count.
  4. Warehouse management > Setup > Document routing > Wave label types — create the label tiers, for example Carton and Pallet.
  5. Warehouse management > Setup > Warehouse > Unit sequence groups — set Wave level type on the relevant unit line (BoxCarton, PLPallet). This is what converts a work line quantity into a label count.
  6. Warehouse management > Setup > Document routing > Wave label templates — set Wave step code, Warehouse, and Wave label type, add layout/printer rows on Wave label template details, then use Wave label template group to select Label build ID (creates the "Carton 1 of X" sequence per grouping field) and Print break label (inserts a divider label between shipments).
ScenarioWave label typeRow tableResult
One SSCC label per carton, no containerizationCarton on the Box unit lineWHSWaveLabelOne label per carton; enumeration per load line
Containerization already splits cartonsLeave blankWHSWorkLineContainer ID acts as the SSCC placeholder; no wave label records
Multi-tier carton + pallet + break labelsCarton and PalletWHSWaveLabelRepeatable method run twice with different step codes

Labels are auditable and reprintable from All shipments, All loads, All waves, Wave labels, and Warehouse management > Enquiries and reports > Wave label history, where labels can also be voided after a short pick and reprinted.


6. GS1 Number Sequence Extensions

Standard number sequences cannot satisfy GS1, because they calculate no check digit and force manual maintenance of the company prefix. Warehouse management > Setup > Number sequence extensions solves this; Create default setup on the Action Pane generates a GS1-compliant BOL sequence plus three SSCC sequences sized to your prefix.

On the Segments FastTab, each row takes one segment type:

Segment typeValuePurpose
ConstantFree textFixed literal such as a site code
Number sequence# per visible characterThe serial reference; only the right-most characters are shown
GS1 prefixRead-onlyInjects GS1 company prefix from Warehouse management parameters
Application identifier00 for SSCC, 420 for BOLThe GS1 AI that precedes the data
Packing typeAlways P (length 1)Takes the packing value from the unit sequence group; 0 for mixed-SKU license plates
Check digitAlways ^ (length 1)Modulo 10 check digit

The rule the exam tests: for a valid SSCC-18, the Number sequence segment length must equal 16 minus the length of the GS1 company prefix. With a 7-digit prefix, the serial segment is 9 characters, which with the extension/prefix digits and the trailing check digit produces the required 18-digit SSCC.

Finally, return to Warehouse management > Setup > Warehouse management parameters > Number sequences and assign each extension. Only four ID types support extensions out of the box: license plate IDs, container IDs, wave label IDs, and BOL IDs. Any ID left unassigned continues to use plain number sequence logic.


7. Implementation Scenarios and Exam Traps

Scenario — the label prints to the wrong printer. Two document routing records match the same purchase order receipt. Because evaluation is ascending by Sequence number and stops at the first match, a generic "any warehouse" routing numbered 1 silently shadows a warehouse-specific routing numbered 2. Renumber so the specific record is evaluated first.

Scenario — dynamic printer selection is ignored. The routing line has a printer in Name and Use specified printer set to Always. Change it to As fallback printer to restore work-user, warehouse, location, and zone resolution while keeping a safety-net printer.

Scenario — wave labels never generate. The wave template has the Wave label printing method selected, but the Wave level type field on the unit sequence group line is empty, so no wave label records are created for the quantity. Alternatively, the wave label template's Wave label type was deliberately left blank, which is correct only for the containerization pattern.

Trap — product labels. Candidates look for a product label module. There is none. Product labels are custom labels built on the InventTable root table with Display custom label print buttons enabled.

Trap — custom labels on the Registration page. Purchase order registration uses the temporary table TmpInventTransWMS, so a custom label cannot be defined against it. Point the data source at a standard table instead.

Trap — wave label printing as a replacement. Wave label printing supplements rather than replaces document routing printing. A design that must print a license plate label at receipt and a carton label during the wave needs both frameworks configured.

Loading diagram...
Choosing and routing a warehouse label in D365 SCM
Test Your Knowledge

A distribution center ships to a large retailer that scans every carton at receipt. Pickers must apply a GS1 SSCC-18 carton label in the aisle while picking, each label enumerated as "Carton 1 of X" per load line, and containerization is not used. How should the functional consultant configure Dynamics 365 Supply Chain Management?

A
B
C
D
Test Your Knowledge

A customer requires a license plate label that lists up to five received work lines with item number and quantity in a repeating block, plus the related purchase order number pulled from another table. The consultant has already set Use label layouts for license plate labels to Yes. What else must be configured on the label layout?

A
B
C
D
Test Your Knowledge

A company has been issued a seven-digit GS1 company prefix and must generate GS1-compliant SSCC-18 numbers for its license plate IDs. On the Segments FastTab of the number sequence extension, what length must the Number sequence segment be, and what else is required before the new logic takes effect?

A
B
C
D