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.
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.
| Framework | Setup location | Best for | Key limitation |
|---|---|---|---|
| Document routing label layout | Warehouse management > Setup > Document routing > Document routing layout | Simple license plate labels using fields on the license plate itself | No joins to related tables, no repeating rows |
| Label layout | Warehouse management > Setup > Document routing > Label layout | License plate and custom labels needing related data, date/number formatting, or repeating rows | Requires a label layout data source for joins |
| Wave label printing | Warehouse management > Setup > Document routing > Wave label layouts / types / templates | Carton and pallet shipping labels with SSCC codes, enumeration ("1/124"), and break labels, produced during the wave | Adds a wave step; does not replace document routing printing |
| Custom label | Warehouse management > Setup > Document routing > Label layout with Label layout type = Custom Label | Product labels, location labels, customer labels printed on demand from a list page | Root 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 / FastTab | Field | Effect |
|---|---|---|
| General > License plates | Use label layouts for license plate labels | Yes routes license plate printing through label layouts; No uses document routing label layouts |
| General | GS1 company prefix | Feeds every number sequence extension that includes a GS1 prefix segment |
| Reports > Custom labels | Display custom label print buttons | Set to On all forms to surface Print buttons for custom labels |
| Reports | Generate BOL number when printing wave labels | Creates 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 sequences | License plate / wave label / container / BOL sequences | Assigns 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 type — ZPL 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 table —
WMSLocationfor location labels,InventTablefor product labels,CustTablefor customer labels. - Join type — Inner 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 printer — Always 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:
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.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.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 (WHSWaveLabelfor one label per carton,WHSWorkLinefor one label per work line), Row start position, Row height (positive for horizontal labels, negative for vertical), and Rows per page. The footer^PQnvalue sets the copy count.Warehouse management > Setup > Document routing > Wave label types— create the label tiers, for example Carton and Pallet.Warehouse management > Setup > Warehouse > Unit sequence groups— set Wave level type on the relevant unit line (Box → Carton, PL → Pallet). This is what converts a work line quantity into a label count.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).
| Scenario | Wave label type | Row table | Result |
|---|---|---|---|
| One SSCC label per carton, no containerization | Carton on the Box unit line | WHSWaveLabel | One label per carton; enumeration per load line |
| Containerization already splits cartons | Leave blank | WHSWorkLine | Container ID acts as the SSCC placeholder; no wave label records |
| Multi-tier carton + pallet + break labels | Carton and Pallet | WHSWaveLabel | Repeatable 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 type | Value | Purpose |
|---|---|---|
| Constant | Free text | Fixed literal such as a site code |
| Number sequence | # per visible character | The serial reference; only the right-most characters are shown |
| GS1 prefix | Read-only | Injects GS1 company prefix from Warehouse management parameters |
| Application identifier | 00 for SSCC, 420 for BOL | The GS1 AI that precedes the data |
| Packing type | Always P (length 1) | Takes the packing value from the unit sequence group; 0 for mixed-SKU license plates |
| Check digit | Always ^ (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.
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 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 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?