Documente Academic
Documente Profesional
Documente Cultură
EAN/UCC-128 STANDARDS......................................................................3
Overview.............................................................................................................3
EAN/UCC APPLICATION IDENTIFIERS .............................................3
EAN/UCC-128 SYMBOLOGY ....................................................................4
Handling of EAN/UCC-128 standards in Oracle WMS.............................4
Generation of UCC-128 Compliant Labels ..............................................4
Scanning of UCC-128 Compliant Labels ..................................................5
Generating EAN/UCC-128 compliant label in Oracle WMS ....................5
Serial Shipping Container Code (SSCC) ....................................................5
Generation of SSCC-18 and Printing of UCC-128 label.........................6
Global Trade Item Number (GTIN) .........................................................7
UCC/EAN Application Identifiers............................................................9
Scanning EAN/UCC-128 compliant label in Oracle WMS........................9
Handling of Bar Code Symbol with Single Application Identifier ........9
Handling of Concatenated Bar Code Symbol with Multiple
Application Identifier .................................................................................10
FREQUENTLY ASKED QUESTIONS ...................................................11
Appendix-A ......................................................................................................12
Appendix-B.......................................................................................................15
Appendix-C ......................................................................................................16
EAN/UCC-128 STANDARDS
OVERVIEW
The two main components of EAN/UCC bar code standards are Application
Identifiers (AI) and symbology. Application identifiers (AI) facilitate in auto-
identification of the data and provide a standard for the data structure. The
symbology refers to the physical representation of the data in a bar code
symbol.
EAN/UCC-128 SYMBOLOGY
The EAN/UCC-128 bar code symbology is a variant of 'Code 128' and EAN
International and the Uniform Code Council (UCC) exclusively reserve its
use.
The EAN/UCC-128 symbology allows the encoding of the full 128 ASCII
character set. At the same time it allows generation of a compact bar code
symbol. EAN/UCC-128 symbology can also be used to generate
concatenated bar code symbols combining multiple AIs and their fields into a
single bar code.
Warehouse must be able to scan the UCC-128 label provided by the vendor
to manage its inbound logistics and warehouse operations using Oracle
WMS. This would mean support for EAN/UCC Application Identifiers to
match the bar code data to appropriate data field on the Mobile forms.
Generation of SSCC number The EAN/UCC System defines a method of unique serialized codes for
is not yet supported within containers used for shipping. This serialized code is also referred as Serial
Oracle WMS. Shipping Container Code (SSCC) or Shipping Container Marking (SCM)
number. The standard format for serializing cartons and shipping containers
is an 18-digit number encoded in UCC/EAN-128 symbology. This system is
SSCC Number can be
used in conjunction with ASN to tie the container or pallet to a specific
generated externally and used purchase order number. Since SSCC provides unique identification to
as a License Plate Number containers, it can be effectively used to send container information in ASN.
This enables the customer to pre-create LPNs using container information in
ASN and perform express receipt. This eliminates the need to physically
inspect the contents of every container thus improving the warehouse
productivity.
SSCC may or may not appear on the same label used for product
identification and is not generally added to the box or container until the time
The Serial Shipping Container Code (SSCC) is different from the EAN/UCC-
14 that is assigned to intermediate packs and shipping containers of
consumer units. EAN/UCC-14 is assigned only to identical packaging
configurations of the same product whereas a Serial Shipping Container
Code (SSCC) is a unique number assigned to each container as it is
shipped. Since SSCC number is unique, it can be used as a reference
number tying the contents of a specific container to information about the
shipment including the purchase order(s) it should be applied to, carrier,
date of shipment, etc. It is used in conjunction with the EDI 856 Advance
Shipping Notice (ASN), UCC/EAN-128 with an Application Identifier of "00".
The data structure for the 18-digit number consists of the following:
Configurations in Loftware:
a. Define a Label format using the name defined in step b. of
configurations in Oracle WMS
b. Define a 6-10 character text field for UCC Company prefix and
extension digit. Configure the data source for this field as “Fixed”
and enter the extension digit and 6-10 digit UCC assigned company
prefix. Using the properties window configure this field as a non-
printing field. Optionally a prefix of “00” can be added if the customer
desires a 20-digit LPN number comprising of Application Identifier of
“00” and 18-digit SSCC number.
c. Define a 6-10 character text field for Serial Number. Configure the
data source for this field as a “Serial Number”. Using the “Edit” serial
number file option, enter a starting serial number for the SSCC.
Using the properties window configure this field as a non-printing
field. This number can be padded with leading zeros to ensure that
the resulting SSCC number is an 18-digit number.
d. Define an 18-character bar code field for SSCC. Configure the data
source for this field as a “Formula”. Edit the formula to generate
SSCC number by concatenating the company prefix, serial number
and last digit as the UCC Mod 10 check digit (UCCMOD10). Using
the properties window configure this field as a printing field.
The above configuration would print an LPN label with an 18 digit SSCC-18
number. At the time of pick drop, this number should be used as a “Drop
LPN”. At this time Shipping Content Label has all the required information,
including SSCC number, ship to address, Customer PO number, etc. to print
an UCC-128 compliant label.
In Patchset “I” and above, the relationship between GTIN and item can be
maintained in a cross-reference relationship table. In addition Oracle Mobile
transactions have been enhanced to lookup the cross-relationship and
default the internal item ID in mobile transactions when a GTIN is scanned.
Since current label printing functionality does not retrieve data from the
cross-reference relationship table, printing of GTIN is not directly supported.
EAN/UCC-14
The material label with transaction unit of measure can be used to print
EAN/UCC-14 label. This approach involves defining a Unit of Measure and
item-specific conversion for every unique packaging configuration that exists
in the warehouse. The Unit of Measure should be defined in such a way as
to contain the UCC packaging level e.g. BX1, PT5 where 1 and 5 are the
UCC packaging indicators for generating EAN/UCC-14 label. In order to
generate EAN/UCC-14 labels, the material label format should be modified
to include Unit of Measure and item attribute containing 12-digit base GTIN.
The 12-digit base GTIN is generated by stripping the check digit, right
justifying and zero padding the resulting number to make it 12-digits. The
required configuration in Loftware is shown below. Other packages with
functionality similar to Loftware can be used as well.
a. Define a 12-character text field for Base GTIN. The name of this
field should be identical to the variable name in the Oracle WMS
label format corresponding to 12 –digit base GTIN. Using the
properties window configure this field as a non-printing field.
b. Define a 3-character text field for Serial Number. The name of
this field should be identical to the variable name in the Oracle
WMS label format corresponding to Unit of Measure. Using the
properties window configure this field as a non-printing field.
c. Define a 14-character bar code field for UCC/EAN-14. Configure
the data source for this field as a “Formula”. Edit the formula to
generate UCC/EAN-14 number by stripping the packaging
indicator from the UoM and concatenating it with 12-digit base
Performing express receipts As mentioned earlier, Application Identifiers are conceptually similar to the
can substantially optimize Data Field Identifiers (DFI’s) already supported in Oracle. The standard DFI
functionality can be configured to support UCC/EAN-128 application
inbound Logistics. To identifiers. The setup to enable DFI support involves three steps.
perform express receipt, The mobile device must be configured to prefix an ASCII control
SSCC number can be character for every scan.
scanned in the LPN field of The Mobile Server must be configured to recognize the proper ASCII
the express receipt page. control character as indicating a scanned entry.
The Applications must be set up to recognize DFIs for each field on
the mobile forms.
Vendor needs to send ASN Refer to the DFI chapter in WMS implementation guide for complete
with SSCC number and hardware and software configuration steps to enable DFIs.
containers with UCC-128
labels. DFI information in Oracle Application is stored in the AK Dictionary. For
each form prompt, DFIs may be registered at two different levels – the
Attributes level or the Region Items level. Region Items are basically
Attributes that have been assigned to a Region. DFIs registered at the
Region Items level take precedence over DFIs registered at the Attribute
level. DFI strings or the UCC/EAN-128 application identifier strings must be
defined for individual prompts at any of these two levels. Refer to
Not all Oracle Mobile Form prompts have DFIs and conversely all UCC/EAN-
128 Application Identifiers do not have relevant mobile prompts. Commonly
used UCC/EAN-128 data structures e.g. SSCC and GTIN can be mapped to
“LPN” and “Item” fields respectively.
Java Call Out: This option involves creation of a java class with embedded
user defined logic. Make sure that this class is compiled with Oracle apps.zip
in the classpath. After compilation make sure that a file
CustomScanManager.class is created. Move this file to
$CUSTOM_DIRECTORY/xxx/custom and add $CUSTOM_DIRECTORY to
the classpath of your mobile server. $CUSTOM_DIRECTORY, can be any
directory on the file system.
Yes. The AI must appear in the bar code symbol along with the data.
However the AI must appear in the symbol without the parenthesis.
Yes. The AI must appear in the human readable field in parenthesis. The AI
is coded in the bar coded symbol but not the parenthesis.
No. The EAN/UCC company prefix is not a company identifier. The company
prefix in GTIN ensures globally unique product identification. The objective is
not to determine the vendor or manufacturer identifier. Parsing of company
prefix from GTIN to identify manufacturer is not recommended by EAN/UCC.
The resulting vendor or manufacturer maybe inaccurate as companies have
multiple EAN/UCC Company prefixes due to mergers and acquisitions. In
addition, different divisions of a company may have distinct UCC company
prefixes.
Sample Java Code for handling scanned input from a concatenated UCC-
128 bar code symbol. Please note that the following code has been
provided to demonstrate the customizable bar code scanning functionality.
Oracle will not be responsible for maintaining it. The following code can be
modified and distributed without permission from Oracle.
/*=====================================================+
|Copyright (c) 2000 Oracle Corporation,
|Redwood Shores, CA, USA |
| All rights reserved.
|
+======================================================+
| FILENAME
|
| ScanManager.java
|
| DESCRIPTION
|
|Class to manage the scans. It will pre-process the
| scans. |
|
|
| NOTES
|
| DEPENDENCIES
|
| HISTORY
|
| 10-Oct-02 Karun Jain created.
|
+=====================================================*/
package xxx.custom;
import oracle.apps.mwa.container.*;
import oracle.apps.mwa.beans.*;
import java.util.*;
import java.sql.*;
/**
* <code>CustomScanManager</code> is the customizable
* call out to pre-process a scanned barcode.
* It has reference to the current MWA Session, and the
* page the scan was performed on. One can access the
* database session using the MWA
* session passed in. Please refer to the MWA API
* documentation or the WMS Customization document for
* more information and ways to customize the class.
**/
oracle.apps.mwa.beans.PageBean curtPage,
java.lang.String val) {
// This will log a message in the server trace file if
// you have the MWA server running in the trace mode.
// Pleade preceede your messages with CTM.
FileLogger.getSystemLogger().trace("CTM: Pre-
preocessing the scan");
Vector fieldBeanList =
curtPage.getFieldBeanList();
int qtyFieldIndex = 0;
int lotNumFieldIndex = 0;
int lotQtyFieldIndex = 0;
// Get the index for the other three fields from the
// list of fields
for (int i=itemFieldIndex;
i<fieldBeanList.size(); i++) {
String name =
((FieldBean)fieldBeanList.elementAt(i)).getName();
if (name != null && name.equals("INV.QTY"))
qtyFieldIndex = i;
if (name != null && name.equals("INV.LOT"))
lotNumFieldIndex = i;
if (name != null &&
name.equals("INV.LOT_QTY"))
lotQtyFieldIndex = i;
}
remainingValue.substring(x+qtyFieldDFIs[j].length(
),
x+qtyFieldDFIs[j].length()+6);
((InputableFieldBean)qtyField).setValue(qtyValue);
FileLogger.getSystemLogger().trace("CTM: Qty
value:"+qtyValue);
if (remainingValue.length() >
(qtyFieldDFIs[j].length()+6)) {
doneQty = true;
remainingValue =
remainingValue.substring(x+qtyFieldDFIs[j].length()+6);
FileLogger.getSystemLogger().trace("CTM: Remaining
value:"+remainingValue);
} else remainingValue = "";
break;
}
}
}
}
// Set the value for the lot number and lot qty field
if (doneQty && lotNumFieldIndex > 0) {
FileLogger.getSystemLogger().trace("CTM:
Found the lot Num field");
((InputableFieldBean)(fieldBeanList.elementAt(lotQ
tyFieldIndex))).setValue(qtyValue);
FieldBean lotNumField =
((FieldBean)(fieldBeanList.elementAt(lotNumFieldIndex)))
;
String [] lotNumFieldDFIs = null;
if (isInputableField(lotNumField)) {
lotNumFieldDFIs =
((InputableFieldBean)lotNumField).getDFIs();
if (lotNumFieldDFIs != null) {
// if prefix of value is in curt field DFI, strip it,
// and setFieldValue
for (int j=0; j < qtyFieldDFIs.length;
j++) {
int x =
remainingValue.indexOf(lotNumFieldDFIs[j]);
if (x == 0) {
// found a DFI in the value, let's strip it
String lotNumValue =
((InputableFieldBean)lotNumField).setValue(lotNumV
alue);
FileLogger.getSystemLogger().trace("CTM: Lot
value:"+lotNumValue);
}
}
}
}
}
}
}
}
}
return itemValue;
} else {
return val;
}
}
}
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
www.oracle.com