Opqo provides functionality for printing inventory barcode labels to network-connected Zebra printers, via Maximo. Printers and labels can be configured in Maximo, and these will be available for use within Opqo.
There are 2 methods for configuring available printers and labels:
- Specifying the configuration in Automation Scripts that Opqo installs.
- Installing the optional Sharptree Maximo Zebra Printing Extension, and using the Labels and Printers applications this adds. This extension also adds buttons to the Inventory and Receiving applications for printing labels directly from within Maximo.
Specifying the Printers and Labels via the Opqo Automation Scripts
Opqo installs two Automation Scripts for configuration of printers and labels:
- STAUTOSCRIPT.ZEBRALABEL.PRINTERCFG
- STAUTOSCRIPT.ZEBRALABEL.LABELCFG
Each of these automation scripts defines a variable containing the configuration. The following sections contain the configuration details; the details are also available in the comment header in the scripts.
Printers
Printers are defined as an array of values assigned to the printers variable in the STAUTOSCRIPT.ZEBRALABEL.PRINTERCFG automation script.
Each object in the array of printers contains the following attributes:
Attribute | Description |
---|---|
printer | The unique identifier for the printer. |
description | A description of the printer, displayed to the user. |
address | The network host name or IP address of the printer. |
port | The port that the printer is listening on, a value between 0-65535, defaults to 9100, which is the Zebra default port. |
media | The media identifier, typically in HxW (2x1, 4x6 etc) format although non-standard identifiers may be used. |
default | Boolean value that indicates that the printer is the default for the storeroom location. |
orgid | The Maximo Organization identifier for the storeroom location. |
siteid | The Maximo Site identifier for the storeroom location. |
location | The name of the storeroom location where the printer is located. |
Key points to note:
- The orgid, siteid and location identify the storeroom location that the printer resides in.
- This storeroom location is used to filter the printers that are available to those that match the record being printed.
- The media field is used to identify the labels that can be printed on the printer, by finding labels with the same media value.
An example configuration containing a single printer is as follows:
var printers = [ { "printer": "EXAMPLEPRINTER", "description": "Example Printer", "address": "central-printer.acme.com", "port": 9100, "media": "4x2", "default": true, "orgid": "EAGLENA", "siteid": "BEDFORD", "location": "CENTRAL" } ];
Labels
Labels are defined as an array of values assigned to the labels variable in the STAUTOSCRIPT.ZEBRALABEL.LABELCFG automation script.
Each object in the array of labels contains the following attributes:
Attribute | Description |
---|---|
label | The unique identifier for the label. |
description | A description of the label, displayed to the user. |
media | The media identifier, typically in HxW (2x1, 4x6 etc) format although non-standard identifiers may be used. |
usewith | The Maximo object that the label can be used with. INVBALANCES, INVENTORY and MATRECTRANS are supported. |
zpl | The ZPL definition for the label. The ZPL can contain Maximo bind variables (:ATTRIBUTE), such as :ITEMNUM that will be replaced with the value from the provided record. |
default | Boolean value that indicates that the label is the default for the usewith and media combination. |
Key points to note:
- The media field is used to identify the printers that can be used to print the label, by finding printers with the same media value.
An example configuration containing a single label is as follows:
var labels = [ { "label": "EXAMPLELABEL", "description": "Example Label", "media": "4x2", "usewith": "INVBALANCES", "zpl": "^XA^FX Description of the item^CFA,30^FO50,50^FD:ITEM.DESCRIPTION^FS^FO50,120^GB700,3,3^FS^FX Section with bar code.^BY5,2,150^FO100,170^BC^FD:ITEMNUM^FS^XZ", "default": true } ];
Note that JSON does not allow line-breaks so the ZPL must be provided on a single line without line-breaks.
For clarity the ZPL from the example above is provided formatted below. Note the use of :ITEM.DESCRIPTION and :ITEMNUM Maximo bind variables that are replaced with the current Maximo record's values.
^XA ^FX Description of the item ^CFA,30 ^FO50,50^FD:ITEM.DESCRIPTION^FS ^FO50,120^GB700,3,3^FS ^FX Section with bar code. ^BY5,2,150 ^FO100,170^BC^FD:ITEMNUM^FS ^XZ
A full reference for the ZPL commands can be found here: https://www.zebra.com/content/dam/zebra/manuals/printers/common/programming/zpl-zbi2-pm-en.pdf
Labelary provides an excellent tool for creating and editing ZPL labels here: http://labelary.com/viewer.html
Installing the Sharptree Maximo Zebra Printing Extension
Details for installing the Sharptree Maximo Zebra Printing extension are available here:
https://github.com/sharptree/zebra-label
Note: For more information on Opqo configuration and the role and contents of the STAUTOSCRIPT.STAMCONFIG script, see the Configuration Overview article. |
If you have questions please do not hesitate to contact us or create a support ticket for more assistance. |