Production Data

Steps that identify and filter master data for use in the coding scenario.

This tab provides steps that identify and filter master data for use in the coding scenario.


Select product

This action step identifies the product from the master data that matches the input received by the production line. If multiple products match, the user can resolve the collision manually or the system throws an error.

ParameterTypeDescription
Resolve collision manually if multiple products foundMandatoryIf enabled, the user is prompted to select the correct product when multiple products match. If disabled, the system selects automatically.
Lookup columnMandatoryThe column in the master data used to identify the product.

Select production order

This action step identifies the production order from the master data that matches the input received by the production line.

This step has no parameters.


Collect list of products

This action step retrieves a filtered list of products from the master data.

ParameterTypeDescription
Field to filterOptionalThe field in the master data used to filter the product list.
FilterOptionalThe value or pattern applied to the filter field. Only products whose field value matches are included.
Stop by no dataMandatoryIf enabled, the scenario stops when the filter returns no products.

Collect list of orders

This action step retrieves a filtered list of production orders from the master data.

ParameterTypeDescription
Field to filterOptionalThe field in the master data used to filter the order list.
FilterOptionalThe value or pattern applied to the filter field. Only orders whose field value matches are included.
Stop by no dataMandatoryIf enabled, the scenario stops when the filter returns no orders.

Collect list of print jobs

This action step retrieves a filtered list of print jobs from the master data.

ParameterTypeDescription
Field to filterOptionalThe field used to filter the print job list.
FilterOptionalThe value or pattern applied to the filter field.
Stop by no dataMandatoryIf enabled, the scenario stops when the filter returns no print jobs.

Filtered record counter

This action step counts the records in a table that match a filter and makes the count available to subsequent steps.

ParameterTypeDescription
Table to filterMandatoryThe table whose records are counted.
Field to filterMandatoryThe field the filter is applied to.
Filter value(s)OptionalThe value(s) records must match to be counted.
Stop by no dataMandatoryIf enabled, the scenario stops when no records match.

Select logistic unit

This step identifies and selects a logistic unit () from the master data that matches the current coding scenario context.

Available only when the Logistic Units feature is enabled.

ParameterTypeDescription
Logistic unit fieldMandatoryThe field used to identify the logistic unit.
Throw exception if not foundMandatoryIf enabled, the scenario raises an error when no matching logistic unit is found.

Examples

Example 1: Identifying a logistic unit to update its status

When a scan event occurs, the On scan step receives the scan input. The Select logistic unit step uses that input to find and select the matching logistic unit from the master data. The Set status to logistic units step then updates the status of the selected logistic unit.

In this example, Logistic unit field is set to Unique ID to match the logistic unit by its unique identifier. Throw exception if not found is disabled, so the scenario continues even if no matching logistic unit is found.

Example 2: Selecting a logistic unit to send a print job

When data is received over a socket connection, the On socket read step receives the input. The Select logistic unit step uses that input to find and select the matching logistic unit from the master data. The Send print job to printer step then sends the corresponding label to the printer using the data of the identified logistic unit.

In this example, Logistic unit field is set to custom field variant to match the logistic unit by its variant. Throw exception if not found is enabled, so the scenario raises an error if no matching logistic unit is found.

Limitations

  • If multiple logistic units match the input, the first matching record is returned.

Select logistic unit by identifier

This action step identifies and selects a logistic unit from the master data that matches the current coding scenario context. It works like the Select logistic unit step, except that the field used to identify the logistic unit cannot be configured: the logistic unit is always matched by its Unique ID field.

Available only when the Logistic Units feature is enabled.

ParameterTypeDescription
Throw exception if not foundMandatoryIf enabled, the scenario raises an error when no matching logistic unit is found.

Examples

Example 1: Identifying a logistic unit to update its status

When a scan event occurs, the On scan step receives the scan input. The Select logistic unit by identifier step uses that input to find and select the logistic unit whose Unique ID matches. The Set status to logistic units step then updates the status of the selected logistic unit.

Example 2: Selecting a logistic unit to send a print job

When data is received over a socket connection, the On socket read step receives the input. The Select logistic unit by identifier step uses that input to find and select the logistic unit whose Unique ID matches. The Send print job to printer step then sends the corresponding label to the printer using the data of the identified logistic unit.

Limitations

  • If multiple logistic units match the input, the first matching record is returned.

Select logistic unit by status

This action step searches the master data for logistic units that have a selected status and selects exactly one of them. Which unit is selected is determined by a configurable order column and direction: the step returns the logistic unit with either the lowest or the highest value in that column, for example the unit with the lowest NVE/SSCC number. The fields of the selected logistic unit are made available to subsequent steps. Use this step to process logistic units that share the same status in a defined order.

Available only when the Logistic Units feature is enabled.

ParameterTypeDescription
StatusMandatoryThe status to filter by.
Order by columnMandatoryThe column used to order the matching logistic units.
Order directionMandatoryWhether the step selects the logistic unit with the Lowest value or the Highest value in the order column.
Throw exception if not foundMandatoryIf enabled, the scenario raises an error when no logistic unit with the selected status is found. If disabled (default), the scenario stops silently.

Examples

Example 1: Selecting a logistic unit to send a print job

When a product or production order is assigned to the production line, the Product or order assigned step starts the sequence. The Select logistic unit by status step searches for logistic units with the selected status and selects one of them according to the configured order column and direction. The Send print job to printer step then sends the corresponding label to the printer using the data of the selected logistic unit.


Create logistic unit from ZPL

This action step creates a new logistic unit record from ZPL print data received earlier in the sequence, for example over a socket connection. The unique identifier of the new logistic unit, typically the SSCC, is extracted from the ZPL string using a configurable regular expression. The created logistic unit is persisted and available to subsequent steps, for example to append further data to it.

Available only when the Logistic Units feature is enabled.

ParameterTypeDescription
Unique field regexMandatoryA regular expression that extracts the unique identifier of the logistic unit from the ZPL. The default value is (?<=\(00\))\d{18}, which extracts the 18-digit SSCC that follows the GS1 application identifier (00). The regular expression can be adjusted per scenario step to match the format of the ZPL data.

Examples

Example 1: Creating a logistic unit from ZPL received over a socket connection

When ZPL data is received over a socket connection, the On socket read step receives the input. The Create logistic unit from ZPL step applies the configured regular expression to the ZPL string, extracts the unique identifier, and creates a new logistic unit with it.


Create logistic unit from printer log

This action step creates a new logistic unit record from a printer log entry. The printer log entry is provided by a preceding print step or by the On printer log trigger step. The unique identifier of the new logistic unit is taken from the configured unique id field, either a layout mapping field or a printer log field. The logistic unit is also initialized with the printed variables, the data of the linked product and production order, the production line it was created on, and the creation timestamp. It is persisted and available to subsequent steps, for example to append further data to it.

ParameterTypeDescription
Unique id fieldOptionalThe layout mapping field that provides the unique identifier of the new logistic unit.
Unique id field (PrinterLog)OptionalThe printer log field that provides the unique identifier of the new logistic unit.
Link product and orderOptionalIf enabled, the new logistic unit is linked to the current product and production order.
Get production info from printer logOptionalIf enabled, the product and production order to link are identified from printer log fields instead of the current line context.
Production order id field (PrinterLog)OptionalThe printer log field that identifies the production order to link.
Product id field (PrinterLog)OptionalThe printer log field that identifies the product to link.

Examples

Example 1: Creating a Logistic Unit for Each Printed Label

When a product or production order is assigned to the production line, the Product or order assigned step starts the sequence. The Send print job to printer step sends the label to the printer. The Create logistic unit from printer log step then creates a new logistic unit from the resulting printer log entry, initialized with the printed variables and linked to the current product and production order.

Example 2: Creating Logistic Units for Print Jobs Requested via API

When a print job request is received via the API, the On print jobs API request step triggers the scenario. The Send print job to printer step sends the label to the printer. The Create logistic unit from printer log step then creates a new logistic unit from the printer log entry of the printed label, so every printed label results in a traceable logistic unit.

Limitations

  • The step requires a printer log entry in the scenario; place it after a print step or use it with the On printer log trigger step.

Create logistic unit from scan

This action step creates a new logistic unit record from a scanned string. The scanned string is used as the unique identifier of the new logistic unit. If the coding scenario data contains production information, the current product and production order are linked to the created logistic unit. The created logistic unit is persisted and available to subsequent steps for further processing.

Available only when the Logistic Units feature is enabled.

This step has no parameters.

Examples

Example 1: Creating a logistic unit from a scan and updating its status

When a scan event occurs, the On scan step receives the scan input. The Create logistic unit from scan step creates a new logistic unit that uses the scanned string as its unique identifier and links it to the current product and production order. The Set status to logistic units step then updates the status of the newly created logistic unit.

Limitations

  • The scanned string must be unique, because it is used as the identifier of the logistic unit.

SQL Executor

This action step runs an SQL query against an external database and makes the result available to subsequent steps.

ParameterTypeDescription
UrlMandatoryThe JDBC URL of the target database.
UsernameMandatoryThe database user name.
PasswordMandatoryThe database password.
SQL queryMandatoryThe SQL query to execute.
First record onlyMandatoryIf enabled, only the first record of the result is used.

Append data to Logistic Unit

This action step takes the value of a layout field that was printed earlier in the sequence and appends it to a field of the last logistic unit created on the production line.

Available only when the Logistic Units feature is enabled.

ParameterTypeDescription
Layout fieldMandatoryThe printed layout field whose value is appended.
Logistic unit fieldMandatoryThe logistic unit field the value is appended to.

Examples

Example 1: Appending printed data after a print job import

When print jobs are imported, the On print jobs import step receives the print job data. The Send print job to printer step prints the label and makes the printed layout field values available. The Append data to Logistic Unit step then appends the value of the selected layout field to the selected field of the last logistic unit created on the line.

Example 2: Appending printed data to a newly created logistic unit

When data is received over a socket connection, the On socket read step receives the input. The Create logistic unit from ZPL step creates a new logistic unit from the ZPL print data. The Send print job to printer step prints the label and makes the printed layout field values available. The Append data to Logistic Unit step then appends the value of the selected layout field to the selected field of the newly created logistic unit, which is the last logistic unit created on the line.

Limitations

  • This step uses the printed layout fields as its data source, so it can only be used in a sequence that contains a printing step. If no printing step has run before it, there is no data to append.
  • If the selected layout field is not part of the printed data, the step completes without changing the logistic unit.

Assign aggregation to logistic unit

This action step assigns an aggregation layer to the current logistic unit. The logistic unit is created or selected by a preceding step, and the layer defines its position in the configured logistic unit hierarchy, for example Pallet as the upper layer and Box as the layer below it. Assigning the layer is what makes a logistic unit part of that hierarchy: units of a lower layer can then be aggregated under a unit of the layer above, for example by the Link logistic units from FIFO step. Use this step both in the scenario that creates the units to be aggregated and in the scenario that creates the unit they are aggregated under.

ParameterTypeDescription
Aggregation layerMandatoryThe layer of the logistic unit hierarchy assigned to the current logistic unit, for example Pallet or Box. The available layers come from the logistic unit layer configuration.

Examples

Example 1: Assigning the Upper Layer to a Pallet before Aggregating Boxes

When a scan event occurs, the On scan step receives the scan input. The Create logistic unit from scan step creates the logistic unit of the pallet from the scanned value, and the Assign aggregation to logistic unit step assigns the pallet layer to it. The Link logistic units from FIFO step then aggregates the configured number of logistic units under that pallet, and the Flush FIFO step removes the units left in the queue.

Example 2: Assigning the Lower Layer to a Box before Queuing It

When ZPL data is received over a socket connection, the On socket read step receives the input. The Create logistic unit from ZPL step creates the logistic unit of the box from the ZPL print data, and the Assign aggregation to logistic unit step assigns the box layer to it. The FIFO push item step then adds the box to the queue, so that a pallet coding scenario can aggregate it later.

Limitations

  • The step requires a logistic unit created or selected by a preceding step; place it after the step that creates or selects the logistic unit.
  • The layers available for selection must be defined in the logistic unit layer configuration beforehand.