Scanning a barcode is basically no more than filling the 'keyboard buffer', the scan head of a scanning device just translates a barcode. An EAN128 barcode looks like a complicated barcode, but it just a row of digits (and some hidden separator signs). Only the meaning and format of the digits is decided by international rules (GS1), so any party in a logistic chain can use the barcode. E-WMS can decode EAN128 bar codes, but needs to know if the input into E-WMS was scanned or by manual input. By using prefix and suffix this distinction can be made.
E-WMS supports the most important of the international EAN128 'application identifiers' (see: Which EAN128 application identifiers are supported by E-WMS). The main purpose of these Application Identifiers is that the actual data is preceded by an identifier code which tells what kind of data is following this code.
For example, an EAN128 barcode could be "0208717496971074101234567890123$15120101". This barcode consists of the following parts:
02
identifier for "GTIN of item" which means "following data is the EAN14 code for the item"
08717496971074
The unique code for the item, always 14 digits,
10
identifier for batch or lot number (batch number for E-WMS)
1234567890123
the actual batch number
$
separator sign to indicate where the batch number ends (batch number has variable length)
15
identifier for 'best before date', fixed format to follow is YYMMDD
120101
best before date for this batch is 01-01-2012
Instead of scanning an EAN128 bar code, a regular item code could be entered manually - not every bar code (not all input) is EAN128 which need to be decoded. So when '020871749697107410BATCH1' was entered, E-WMS should start decoding EAN128. But when '0255131011-A' was entered manually, this could very well be the actual item code and decoding should not be done. This presented a problem to E-WMS: how could the software recognize if something was scanned (EAN128), or typed in manually (item code)? Because for software like E-WMS, there is no way to tell the difference. That is why E-WMS needs 'prefix' and 'suffix' configured when EAN128 bar codes are used. When enabled on a scanner, all scans are preceded by this prefix sign, and followed by the suffix sign. So when configured in E-WMS, E-WMS now knows when to start EAN128 decoding: when 'EAN128' is enabled for the specific E-WMS module, and when the configured prefix and suffix are used in the input field. This also means when prefix/suffix is not configured (empty prefix/suffix), E-WMS will always start decoding EAN128, when the 'EAN128' setting for the specific functionality was enabled. So whether the EAN128 code '020871749697107410BATCH1' was scanned, or the item code '0255131011-A' was entered, E-WMS will try to apply EAN128 decoding for both types of input.
When using several types of bar codes in a warehouse (EAN13 or CODE39, and EAN128) E-WMS still can not tell when to start EAN128 decoding or not. This problem is solved from product update 399 by supporting Code Identifiers (more in: Code Identifier). By using code identifiers, E-WMS knows if actual an EAN128 bar code was scanned, or not.
It does not really matter what prefix, suffix and separator signs are used, as long as the configuration in System/E-WMS/Scanners/General scanner settings is the same as the characters configured on the hand terminal itself. Some guidelines:
A group separator is a symbol to separate parts of an EAN128 barcode which do not have a fixed length. Without the group separator, software which reads EAN128 barcodes, can not determine where a variable length field like 'batch number' or 'quantity' ends. This group separator is a hidden symbol in the barcode itself, but a scan head can translate this symbol to another sign, like "$" or "=". Of course, the party printing the EAN128 bar code labels should use valid bar codes including this hidden character. The group separator has to be configured specifically on the hand terminal. When the variable length field is the last part of a barcode, then a group separator is not required. Sample of barcodes with correct group separator usage:
0208717496971074101234567890123$37100$15120101
0208717496971074101234567890123$37100
In this barcode, '10' (batch number) and '37' (quantity) have variable length and need a group separator. In the second barcode, '37' + quantity 100 are last part of the barcode, and no group separator is needed.
Sample of an invalid barcode, containing no group separator:
02087174969710741012345637100
In this sample, the group separator is missing between 10 and 37. This would result in E-WMS to read the batch number as '12345637100'.