Title: Looping Compaction for Logistics Using Composites and GTAG
1Looping Compaction for Logistics Using Composites
and GTAG
- Ted Williams
- December 2, 2000
? Uniform Code Council, Inc. 2000
2Logistical AIDC Application for Mixed Pallets
3Required Mixed Pallet Data
- Currently SSCC-18 primary data can be
supplemented with a single AI 02 (GTIN) and AI 37
(Qty) to define the pallet contents. - Mixed pallets cannot use this scheme as it would
require multiple occurrences of AI 02 and AI 37. - EANUCC System prohibits repeated AIs with
differing data.
4Looping Solution
- Solution encode data with a flag to indicate
that the data violates the no repeat AI rule. - Define additional structures (looping) to define
which attributes go with which items. - Encode the data in the 2D Composite following a
unique Composite character and a flag digit of 0. - When read, the mixed pallet data will be prefixed
with a unique symbology identifier e1 and 0
flag.
5Looping Implementation
- The shipper builds a database table with the
pallet contents as the pallet is built. - The database table provides the data necessary
for the Composite pallet label. - EANUCC will provide encoding and decoding models
to handle the structured data.
6Looping Compaction Model
- Reads the pallet tables data.
- Validates that the correct AIs are used.
- Compacts the data using several different
schemes. - Produces an output string with the looping
structure to give to the label printing software.
7SSCC-18 Composite with Mixed Pallet Data
(00)006141410000000012 (02)00614141000050
(37)10(10)AB123456(17)123105(400)12345678 (02)0061
4141000067(37)5(10)CD987654(17)123105(400)12345678
(02)00614141000081(37)23(10)EFG65432(17)123105(40
0)12345678
8Looping De-compaction Model
- Receives the Composite data from the bar code
reader. - Looks for the e1 symbology identifier and 0
flag. - Reverses the data compaction.
- Builds a table using the looping structures.
- Writes the table to a flat file.
9Composite Symbol Expanded Capabilities
10Composite Data Structures
- Composite symbols can encode new features beyond
the standard UCC/EAN-128 AI element string data
structure. - The symbol separator allows new structures such
as looping to be used for logistics applications.
11Composite Data Structures
- The escape mechanism allows new data encoding
such as foreign language characters. - The use of a flag character(s) to specify a
specific application will allow the possibility
of defining many new application for Composites.
12Composite Data Structures
- The standard Composite symbols encode AI element
strings. - A new symbology identifier of e0 is used to
differentiate the data transmission from
UCC/EAN-128 because the data may easily exceed
the 48 character limit for UCC/EAN-128.
13Symbol Separators
- The 2D composite symbols support the encoding of
a symbol separator character, which causes the
scanner/reader to begin transmitting a new
message with the symbology identifier e1.
14Escape Mechanism
- The composite symbols CC-B and CC-C support the
encoding of a escape mechanism, which causes the
scanner/ reader to begin transmitting a new
message with the symbology identifier e2 or
e3 (supporting ECIs). - Following the escape mechanism character, the
data encoding changes to allow full 8-bit and
16-bit data to be encoded.
15New Symbology Identifiers
message content
separator e0 standard AI element
strings none e1f new ISO 646 structures symbol
separator e2f ISO 8859-1 8-bit data codeword gt
899 e3f ECI escapes and 8/16-bit data codeword gt
899 f format identifier
16Mixed Pallet or Looping Data
- The symbol separator with flag 0 is defined for
mixed pallet looping data structures. - The compacted mixed pallet data will directly
follow symbol separator and zero flag. - A scanner will identify the mixed pallet data in
the 2D Composite Component by preceding the
compacted looping data with the symbology
identifier prefix and zero flag character e10.
17Looping Data Compaction
18Removing Duplicate Element Strings
- Mixed pallet items often have duplicated element
strings from line to line. - These element strings can be defaulted to the
element string in a previous line. - AI 02 GTIN and AI 400 purchase order have a scope
of the entire pallet. - Supplementary attributes such as lot number or
expiration date only have a scope across a GTIN.
19Removing Duplicate Purchase Orders
- If there are more duplicate AI 400 - purchase
orders in the pallet than AI 02 GTIN items, - Then the compaction hierarchy will be P.O.s
first then GTINs. - In the following example, pallet A has 3
duplicate P.O. numbers and 1 duplicate GTIN.
20Table of Mixed Pallet A Contents
21Compacted Mixed Pallet A Data
22Removing Duplicate GTINs
- If there are more duplicate AI 02 GTIN items on
the pallet than AI 400 - purchase orders, - Then the compaction hierarchy will be GTINs
before P.Os. - In the following example, pallet B has 4
duplicate GTINs and no duplicate P.O. numbers. - Notice that the lot number duplicates were also
removed.
23Table of Mixed Pallet B Contents
24Compacted Mixed Pallet B Data
25Removing Quantities of One with Serial Numbers
- Any line items which contain a serial number are
assumed to have a quantity of one, so the
quantity field can be removed. - In the following example, there are five cases of
the same item on pallet C, each case with its
serial number.
26Table of Mixed Pallet C Contents
27Compacted Mixed Pallet C Contents
28Compaction Optimized forNumeric Encodation
- The most efficient encoding mode for 2D Composite
Components is numeric encodation. - A digit or FNC 1 ( represented by a , pound
sign, for the encoder model) can be encoded in
3.5 bits. - Consecutive FNC 1 characters are not allowed.
- The encoding of level changes, quantity fields
and macros have been designed to use numeric
encodation.
29Element String Compaction
- Certain AI element strings have predictable
formats and redundant information. - GTINs on a given pallet may duplicate the same
manufacturers number and other contiguous
digits. - Some element strings such as AI 37 can be
run-length encoded. - In the following example the AI 02 GTIN and AI 37
quantity data is compacted by 60.
30Element String Compaction
- GTIN check digit stripping
- 0200614141000012373 to
- 020061414100001373
- Shortening common sub-strings by use of macros
- 020061414100001373 to
- 021001373
- Compaction of AI 37 quantity element strings
- 021001373 to
- 0210013 (60 total data reduction)
31Looping Compaction Model
32Looping Compaction Model
- Reads a text flat file containing the mixed
pallet contents. - Compacts the data and outputs a file formatted
for input into the RSSENC.EXE encoder model. - The model will produce a logistical composite
symbol from the output file.
33Input Flat File
- The flat file will define the pallet contents
including all the AI supplementary data. - The flat file will use tabs to separate the
element strings and _at_ to separate the AIs from
the data. - The first line of the file will define the pallet
SSCC-18 and any logistical attributes. - The following line will define the items and
attributes on the pallet. - The flat file will include a level number at the
start of each line to define the looping
structure of the pallet contents.
34Flat File Example
1 00_at_123456789012345675 3302_at_001234 2
02_at_0012345678905 37_at_12 10_at_1234ABC 400_at_12345678 2
02_at_0098765432105 37_at_3 17_at_021231 400_at_12345678
The table defines the (00) SSCC-18 and (3302)
logistical weight of the pallet at looping level
1. At looping level 2, there are two different
(02) GTINs with (37) quantities 12 and 3. One
GTIN has a (10) lot number and the other has a
(17) expiry date. Both are part of (400)
purchase order 12345678. If the data includes
POs, the flat file repeats the PO element string
with each item.
35Looping De-compaction Model
36Looping De-compaction Model
- Reads the scanner output and de-compacts the
looping data. - Creates a flat file which is the equivalent of
the original flat file input. - Line item and supplementary element strings
within each line item may be re-sequenced.
37Compacted Data Formats
38Compacted Output File Data Fields
SSCC and logistical attributes
Composite, Symbol Separator and flag
Primary macro definitions
Supplementary macro definitions
Compacted looping data
39SSCC-18 and Logistical Attributes
- The first line of the flat file is encoded in the
UCC/EAN-128 linear component. - The data is not compacted as it must be able to
be interpreted as a standard SSCC-18 symbol with
optional attributes. - An example of this data field encoding an SSCC-18
and a logistical weight - 001234567890123456753302001234
40Composite, Symbol Separatorand Flag
- This data field defines the start of the 2D
composite and the start of the looping
compaction. - The encoder model uses a character to
indicate the start of the 2D composite component
data. - A is used to indicate a symbol separator
character. - A flag character of 0 following the symbol
separator indicates looping compaction. - The field therefore contains the text 0.
41Macros
- Macros allow repeated element string text to be
defined once in a macro definition and replaced
in the element string by a one or two-character
macro flag. - The compaction model supports two macro types
- primary macros for SSCC-18 and GTIN element
strings - supplementary macros for supplementary AI element
strings.
42Primary Macro Definitions
- Up to ten primary macros can be defined, numbered
0 to 9. - The definition starts with the largest macro
number to be defined followed by a FNC 1 . - Each macro string is then listed in sequence,
each terminated by a FNC 1 . - For example macro strings 11111, 222222 and 3333
would be defined as - 2111112222223333
43Primary Macro Data Compaction
- If only a single primary macro is defined, the
macro text in the element string is replaced with
a FNC 1 . - For example if the macro definition is
- 00123456
- then the GTIN
- 010012345600001
- would be encoded
- 01000001.
44Primary Macro Data Compaction
- If two or more macros are defined, the macro text
in the element string is replaced with a FNC 1
followed by the macro number, 0 to 9. - For example if the macro definition is
- 1012345698765432
- then the GTIN
- 019876543200001
- would be encoded
- 01100001.
45Primary Elements Strings without Macros
- If a primary element string does not use a macro,
then the element string is unchanged. - The de-compaction model can recognize the lack of
a macro as no FNC 1 appears in the fixed
length element string data.
46Secondary Macros
- Sets of secondary macros can be defined for
multiple AI element strings. - For example a set of macros could be defined for
AI 10, lot number, and a different set of macros
could be defined for AI 21, serial number. - The set is identified by the first two digits of
the AI, so AI 400, purchase order, and AI 401,
consignment number, would share the same macro
set. - Only variable length AI element strings can use
secondary macros.
47Secondary Macro Definitions
- Up to nine secondary macros can be defined for
each AI set, numbered 0 to 8 (9 is used as a null
macro to indicate no macro is used). - The definition starts with the largest macro
number to be defined followed by a FNC 1 . - The first two digits of the AI are next encoded.
- Each macro string is then listed in sequence,
each terminated by a FNC 1 . - For example macro strings 11111, 222222 and 3333
for AI 10 would be defined as - 210111112222223333
48Secondary Macro Definitions
- If there are no primary macros defined, but there
are secondary macro definitions, the secondary
definitions are prefixed by a FNC 1 . - If there are multiple sets defined, each set is
concatenated with the others. - For example if there are no primary macros and
macro strings 11111, 222222 and 3333 for AI 10
and macro string ABCD for AI 400 would be defined
as - 210111112222223333040ABCD
49Secondary Macro Data Compaction
- The secondary macro text in the element string is
replaced with a FNC 1 followed by the macro
number, 0 to 8. - For example if the macro definition is
- 140ABC123XYZ456
- then the AI 400 purchase order element string
- 400ABC123456
- would be encoded
- 4000456.
50Null Secondary Macro
- If a set of macros is defined for the leading two
digits of an AI, all element strings with those
two digits must contain either a macro or the
null macro number 9. - For example if the macro definition is
- 040ABC123
- then the AI 400 purchase order element string
- 400MNO98765
- would be encoded
- 4090MNO98765.
-
51Compacted Looping Data
52Special Purpose AIs
- AIs 02, 37, and 23 are used as special flags in
compacted data. - AI 02 is encoded as an AI 01 in compacted data,
allowing 02 to be used for loop begin. - AI 37 quantity data is encoded at the end of the
first element string, leaving 37 to be used for
loop end. - AI 23 is converted to AI 10, leaving 23 to be
used for force new line.
53Defining the Looping Level
- The first line encodes the pallet SSCC and is
always level 1. - The second line is the first line of the looping
data and is level 2. - The contents of totes and containers on the
pallet is level 3. - Levels higher than 3 would indicate contents of
contents
54Defining the Looping Level
- The special purpose AI 02 is used to increase the
level by one when the level goes above 2. - The special purpose AI 37 is used to decrease the
level by one. It may be used consecutively to
decrease the level by more than one. - The AI 37 is not used at the end of the compacted
data, as all loops automatically terminate at the
end.
55Defining the Looping Level
- Example flat file and compacted data
- 001234567890123456733020012340
- 0000614141000000001
- 02010098765432103170263140012345678
- 370000614141000000002
- 020100987654321031703181
1 00_at_123456789012345675 3302_at_001234 2
00_at_006141410000000012 3 02_at_0098765432105 37_at_3
17_at_021231 400_at_12345678 2 00_at_006141410000000029 3
02_at_0098765432105 37_at_3 17_at_030331 400_at_12345678
56Defining the Start of a Line Item
- An AI 00 or and AI 01 will always indicate the
start of a new line. - If the AI 01 is a duplicate, then the occurrence
of a repeating supplementary attribute will start
a new line, for example - 01000123456789021ABC123
- 21ABC124
- and
- 0100012345678902015
- 201
57Defining the Start of a Line Item
- If the AI 01 is a duplicate and there is only one
or more new supplementary attributes on the new
line, then the special force new line AI 23 is
used to start a new line, for example - 01000123456789051012345678
- 23599ABCDEF
- Note that the AI 23 encodes the quantity using
method one described later.
58Encoding Pallet Content Line Items
- For each line, repeated element strings are not
encoded, but are defaulted from the previous
line. - An element string can be redefined by a new
occurrence or be removed by the null data (e.g.
10 to signal no lot number). - A new GTIN, SSCC-18 or level change causes the
default element strings to be reset. - AI 400 (purchase order) is the exception, it is
not reset, but has scope across the pallet.
59Encoding Null Data AIs with Secondary Macros
- If an AI has a defined secondary macro, the null
data cannot be encoded as in the normal form,
e.g. 10. - The null macro number 9 must also be encoded,
examples - 109
- 4090
- 80901
60Encoding Quantities
- The data from the quantity AI 37 is encoded
directly following the first data element of a
new line item without using the AI 37. - A line containing a SSCC-18 AI 00 does not encode
the quantity as the quantity must be one. - A line containing an AI 01 will be encoded with a
quantity of one as an AI 02 is converted to an AI
01 during compaction.
61Lines Containing AI 21 Serial Number
- If the line includes an AI 21 serial number, the
quantity is omitted as it is also assumed to be
one. - The compactor will re-sequence the attributes to
place the AI 21 string first so it will be
recognized by the de-compactor. - If an AI 21 follows a GTIN in a line, a FNC 1
is inserted before the 21 so that the first 2 of
the 21 will not be interpreted as a quantity of 2
by the de-compactor - 01006141410123421ABC1234
62Quantity Encoding
- Line item quantities are encoded following one of
two methods depending on whether the first
element sting in the line ends in a FNC 1 . - Fixed length element strings use the first method
with the exception of null element strings, e.g.
17, or primary element string ending in a singly
defined macro, e.g. 019. - All other compacted strings end in a FNC 1
and use the second method to avoid double FNC 1
characters from being encoded.
63Quantity Encoding Method One
- This encoding method is used for element strings
which do not end in a FNC 1 . - quantity 1 is encoded as
- quantity 2-9 is encoded as 2-9
- quantity 10-19 is encoded as 10-19
- quantity nn gt 19 is encoded as 0nn
- Examples
- 010061414100001 encodes quantity 1
- 0100614141000010999 encodes quantity 999
64Quantity Encoding Method Two
- This encoding method is used for element strings
which end in a FNC 1 . - quantity 1-9 is encoded as 1-9
- quantity nn gt 9 is encoded as 0nn
- Examples
- 10ABC1231 encodes quantity 1
- 10ABC123010 encodes quantity 10
65Stripping Check Digits
- AI 00 and AI 01 element strings will be stripped
of their check digits. - The check digits are stripped before macro logic
is applied. - During de-compaction, macros are inserted before
the check digits are calculated and inserted.
66Compacting Date Fields
- AI 11 to AI 19 will be treated as dates and the
date compacted from six digits to five digits. - The compacted five-digit date value is
- YY1000 MM50 DD
- For example
- 17050931 would be encoded as 1705481
67Compacting Variable Measure Fields
- AI starting with 31 to 36 will be treated as
containing six-digit data values and truncated if
the data value has two or more leading zeroes. - A FNC 1 will be used two terminate four or
fewer digits. - Examples
- 3202000123 is compacted as 3202123
- 3202001234 is compacted as 32021234
- 3202012345 remains 3202012345
68RFID Logistics Application
69RFID Use for Logistics
- RFID tag will be used to identify logistical
containers and contents where - Composite symbols cannot be used because of the
container or printing or scanning
environment. - The container is reusable and the RFID tag can be
permanently installed. - A read/write capability is required for
supplementary applications.
70RFID Logistics Implementation
- The RFID tag will be organized to support data
objects which can be independently written and
read. - One object will store the primary data, e.g. SSCC
and logistical attributes. - Another object will store the 2nd and higher
level looping data. - The same data compaction schemes will be used as
used for Composites.
71GDD/AI Schema
72GDD/AI Schema
- The specialized flat file format must be
eventually changed into a database which can
serve as input to the Advance Ship Notice or
Despatch Advice EDI transactions as well as the
AI mixed pallet applications. - This will require a one-to-one correspondence
between the EDI ASN/DESADV Item_IDs and the
application identifiers.
73Data Table
- Shippers scan cases as they build a mixed pallet
(pick/pack). - The system builds a multi-level table
representing the contents of the pallet. - The data table provides the information to
generate Ship Notice/Manifest XML transaction. - The data table also provides the data for the
AIDC, Composite or RFID, logistical data.
74Logistical Data Table
GDD/AI x-ref table
Scan and build pallet
Logistical Data Table
XML
Composite
RFID
75GDD Item_IDs
- The Ship Notice transaction gets trade item and
attribute data from scanning in the pick/pack
operation. - These Item_IDs for the transaction would be the
same as the SSCC, GTIN and trade item attribute
element strings. - Therefore, the GDD should define Item_IDs that
directly correspond with the AIs.
76Proposed GDD/AI Schema
Alignment rule converts date and variable
measure formats ISO code conversion. Special
rule specifies composite AIs.
77Logistical Data Table Example