Home > front end >  GS1 barcode parsing - It seems that there is no separating character
GS1 barcode parsing - It seems that there is no separating character

Time:10-22

I have a program for parsing GS1 Barcodes (with Zebra scanner), which worked just fine, atleast I thought it was OK... Until I came across one box with 2 GS1 barcodes.. one "linear" and one data matrix (UDI). For linear, it worked just fine, I successfully got out the GTIN and Serial. But datamatrix is different. For some reason, its content is a bit longer than linear code, it has some production date and something else at the end.

This is the Linear code: (01)00380652555852(17)260221(21)25146965079(30)1 This is data matrix: (01)00380652555852(17)260221(21)2514696507911210222240SA60AT225

I have problems with parsing out the Serial number - 25146965079. Serial number in GS1 has a length of 1-20 characters. This one has 11, but How can I make it stop after the 9 characters? How can I know that the serial ends there? I tried transforming each character to UDI, but it seems that there is no special separating character or anything.. so I honestly donjt know what to do. Does anyone have any idea?

This the code, if anyone wanna try anything https://prnt.sc/1x2sw8l

Those codes/products came right from the manufacturer, so there shouldnt be anything wrong with the code, I guess...

CodePudding user response:

According to the GS1 documentation (page 156 and forwards)

All the fields are correct

(01)00380652555852 --> GTIN

(17)260221 --> Expiration date

(21)25146965079 --> Serial Number

(11)21022 --> Production Date

(22)40SA60AT225 --> Consumer product Variant

I tried scanning the image but the result was the same as yours.

So the problem is that the separators are not there. Which is a problem for you, and there is no way to know where the serial number ends without the separator.

CodePudding user response:

If you verify the barcode with a scanner that is designed to interpret a GS1 structure, you will see that the generated barcode is in fact incorrect.

You are missing a GS after the serial number, these codes must end a variable-length field if it's (a) not fullly used, or (b) the last one

Without this separator you can't know where the serial ends - or, a machine interpreting the code can't know.

Tell the manufacturer that they need to study the GS1 specs.

  • Related