Boxwise wordt veel gebruikt in omgevingen waar men ook veel GS1 coderingen tegenkomt. Dit kunnen GS1 artikelbarcodes zijn of SSCC labels t.b.v. verzending i.c.m. EDI berichtgeving. In beide gevallen is het wenselijk om in de labels de barcodes zo op te maken dat deze een valide GS1 barcode of datamatrix is.
Hierbij spelen de volgende zaken een rol:
- Datamatrix coderen als GS1-datamatrix
- Code-128 coderen als GS1-128 barcode
- Juiste gebruik codeset A, B of C binnen code-128 om ruimte te besparen
Datamatrix coderen als GS1-datamatrix
Binnen Bartender is het mogelijk om direct een GS1-datamatrix in te voegen in een label. Dit is in combinatie met Boxwise onwenselijk. De datamatrix wordt dan namelijk afgedrukt via een soort hashcode, waardoor het gebruik van onze placeholders onmogelijk wordt. Het is daarom noodzakelijk om een reguliere datamatrix in te voegen. Hierbinnen kunnen dan de rubrieken van GS1 worden opgenomen als placeholders:
Dit levert de volgende ZPL code op voor de datamatrix:
^XA
^SZ2^JMA
^MCY^PMN
^PW822
~JSN
^JZY
^LH0,0^LRN
^XZ
^XA
^FO349,120
^BY4^BXN,4,200,,,5^FD01>IN&17&EXPYYMMDD&10&LOTCODE&^FS
^FT12,238
^CI0
^A0N,34,46^FD1>IN&17&EXPYYMMDD&10&LOTCODE&^FS
^PQ1,0,1,Y
^XZ
Aan deze code moet het volgende worden toegevoegd om de datamatrix om te zetten naar een GS1-datamatrix:
^BY4^BXN,4,200,,,5^FD01>IN&17&EXPYYMMDD&10&LOTCODE&^FS
Wordt:
^BY4^BXN,4,200,,,,_5^FD_101>IN&17&EXPYYMMDD&10&LOTCODE&^FS
Er wordt dus een ,_ na de laatste komma en een _1 na de FD toegevoegd. Wanneer er meer rubrieken voorkomen met een variabele lengte die moeten worden beëindigd met een FNC1 karakter, dan dien je hier ook de _1 na te plaatsen.
Code-128 coderen als GS1-128 barcode
Wat voor datamatrix geldt, is ook op code-128 van toepassing. Voeg in Bartender een reguliere code-128 toe en plaats hierin alle gewenste GS1 rubrieken als placeholder. Het is verder verstandig om als uitgangspunt Codeset B te nemen, aangezien deze alle reguliere tekens dekt (hoofd- en kleine letters, cijfers en leestekens):
Dat levert de volgende ZPL op voor de barcode:
^BY1^BCN,102,N,N^FD>:01>IN&17&EXPYYMMDD&10&LOTCODE&^FS
Hieraan moet worden toegevoegd:
^BY1^BCN,102,N,N^FD>:>801>IN&17&EXPYYMMDD&10&LOTCODE&^FS
Er wordt dus een >8 toegevoegd na FD>_. Wanneer gekozen is voor codeset B zal dit altijd FD>: zijn, maar codeset A zal FD>9 zijn en codeset C zal FD>; zijn.
Juiste gebruik codeset A, B of C binnen code-128 om ruimte te besparen
Als je van te voren niet kan voorspellen hoe de opmaak van een placeholder zal zijn, dan is het advies om uit te gaan van codeset B binnen code-128. Deze ondersteunt de meeste karakters. Als je van te voren echter weet dat een deel van de code een even aantal nummers zal zijn, dan kun je beter codeset C gebruiken. Dit scheelt fysiek de helft in het aantal streepjes in de barcode. Vervolgens schakel je weer terug naar codeset B voor het variabele deel. Concreet pas je op bovenstaande voorbeeld het volgende aan:
^BY1^BCN,102,N,N^FD>;>801>IN&17&EXPYYMMDD&10>6&LOTCODE&^FS
Door FD>: aan te passen naar FD>; begint de barcode nu in codeset C. Hierna volgen de volgende rubrieken:
- 01 -> GTIN rubriek
- GTIN: 14 posities
- 17 -> Houdbaarheidsdatum
- EXPYYMMDD: Houdbaarheid 6 posities
- 10 -> Partijnummer
Deze rubrieken hebben altijd een vaste lengte en het totaal komt uit op een even aantal getallen. Hierdoor kan je codeset C gebruiken.
Het partijnummer wat hierna volgt kan een variabele lengte hebben, daarom stap je over op codeset B door >6 tussen de barcode te plaatsen.
Bron: https://supportcommunity.zebra.com/s/article/Creating-GS1-Barcodes-with-Zebra-Printers-for-Data-Matrix-and-Code-128-using-ZPL?language=nl_NL