Sunteți pe pagina 1din 21

Support for EAN/UCC-128 Standards

An Oracle White Paper


April 2003
Support for EAN/UCC-128 Standards

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

Support for EAN/UCC-128 Standards Page 2


Support for EAN/UCC-128 Standards

EAN/UCC-128 STANDARDS

OVERVIEW

The EAN/UCC system for identification of products is widely accepted


across industries and geographies. The increasingly popularity has led to a
demand for expanding the EAN/UCC framework beyond primary
identification. EAN/UCC has responded to these demands by developing bar
coding standards that enable companies to encode, in bar code form, more
information than basic product identification. This type of supplementary
information (such as, Lot Number, Serial Number, License Plate Number,
Quantity, etc.) can be used to improve the management of the supply chain.

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.

This document explains how support for EAN/UCC-128 labeling standards


can be achieved using standard functionality available in Oracle WMS.

EAN/UCC APPLICATION IDENTIFIERS


An Application Identifier (AI) is a prefix used to identify the meaning and the
format of the data that follows it (data field). AIs have been defined for
product and LPN identification, lot and serial data, dates, quantity,
measurements, locations, and many other types of information. The data
presented can be alphanumeric or numeric and can be up to 30 characters
in length.

Application Identifiers are conceptually similar to the Data Field Identifiers


(DFI’s) already supported in Oracle mobile applications such as WMS,
MSCA, etc. Similar to DFI, AI is not a part of the data field. Therefore when a
UCC-128 label bar-code is scanned, the AI must be dropped from the
scanned data before it can be used in transactions. EAN/UCC framework
has predefined AIs for commonly used product identification and transaction
data. Appendix-A summarizes the complete list of AIs currently available
within the EAN/UCC framework. Not all the AIs are relevant in Oracle WMS

Support for EAN/UCC-128 Standards Page 3


applications and some relevant AIs (e.g. best by date, expiry date, etc.) are
currently not supported.

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.

HANDLING OF EAN/UCC-128 STANDARDS IN ORACLE WMS

A key factor in managing the cost of merchandise flow is the receipt of


merchandise that has been pre-labeled and is immediately available in the
distribution center for downstream order fulfillment. Therefore merchandise
that requires re-labeling at the time of receipt is costly from both a labor and
customer service perspective.

In order to achieve this objective, Oracle WMS should be capable of


producing UCC-128 compliant labels for outbound shipments and scanning
relevant information on inbound shipments with UCC-128 label. In order to
support EAN/UCC-128 labeling standards, Oracle WMS must satisfy the
generation of UCC-128 labels for outbound containers and scanning of
UCC-128 labels applied on inbound containers.

Generation of UCC-128 Compliant Labels

Warehouse using Oracle WMS to manage its outbound logistics must be


able to generate UCC-128 labels at the time of shipping. The following figure
shows a sample
UCC-128 label that
is fixed to an outbound
container.

Support for EAN/UCC-128 Standards Page 4


Scanning of UCC-128 Compliant Labels

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.

GENERATING EAN/UCC-128 COMPLIANT LABEL IN ORACLE WMS

Oracle Warehouse Management System provides an integration kit to 3rd


Party Label Printing Software packages that allows users to easily print
labels directly from within the WMS environment. In order to print labels,
Oracle WMS extracts the relevant data fields required for label printing and
integrates with the 3rd Party Label Printing Software package using XML
files. The 3rd Party Label Printing Software handles the label format and
printing of bar codes in the correct symbology. In order to do so, Oracle
WMS must provide the relevant data fields required on the label. Existing
label printing functionality in WMS, allows data fields such as Customer
address, Customer’s PO number, item, quantity, lot etc. to be extracted into
an XML file to be printed on the labels. The challenges involving printing of
UCC-128 label are generation of SSCC-18, printing of GTIN and Application
Identifiers. Possible options for generating UCC-128 label involving these
entities are described below:

Serial Shipping Container Code (SSCC)

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

Support for EAN/UCC-128 Standards Page 5


of shipment. Conceptually an SSCC number is identical to the LPN name as
both refer to the container identification.

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:

Extension UCC Company Container Serial Check Digit


Digit Prefix Number
1 0012345 123456789 5
Single digit No 6-10 digit 6-10 Digit Serial Mod 10
Intelligence company Prefix Number Check digit
padded with
leading zeros

The SSCC appears on the label as (00) 1 0012345 123456789 5. In this


case “(00)” is the UCC/EAN-128 application identifier for SSCC.

Generation of SSCC-18 and Printing of UCC-128 label

An SSCC-18 number is required for all outbound containers as per the


UCC/EAN standards. All other information required on a UCC-128 label is
available in Oracle WMS Shipping Content label. SSCC-18 cannot be
generated in the standard Oracle WMS. However its possible to generate
this number externally and use it as an LPN during outbound flow. This
would ensure that SSCC number is populated in delivery line details for
every outbound container and this information can be sent to the customer
using an ASN. Possible options to generate SSCC number are as follows:

Pre-printed LPN labels with SSCC-18 Number


This option involves generation of SSCC-18 outside of Oracle WMS (e.g.
Using MS Excel) and pre-printing LPN labels with the 18-digit number. This
LPN label can be used as either as a “To LPN” at the time of pick load or a
“Drop LPN” at pick drop. WMS will automatically create a new LPN using the
18-digit LPN name. Use the excel worksheet with EAN/UCC-128 number
generation tool (available on Metalink and WMS TOI site) to generate and
print SSCC labels by entering the UCC company prefix and starting
container serial number.

Generation of SSCC-18 Number using 3rd Party Label Printing Software


SSCC number can be generated using third party label printing software e.g.
Loftware. The LPN label with 18-digit SSCC number can be generated at the
time of Pick Load. This number should be used as the “Drop LPN” at the

Support for EAN/UCC-128 Standards Page 6


time of pick drop. The required configuration in Oracle WMS and Loftware is
shown below. Other packages with functionality similar to Loftware can be
used as well. Please refer to Oracle WMS implementation guide for
integration with 3rd party label printing software.

Configurations in Oracle WMS:


a. Enable “Pick Load” business flow to generate an LPN label
b. Define a label format for “LPN Label”

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.

Global Trade Item Number (GTIN)

A GTIN is an umbrella term used to describe the family of EAN.UCC data


structures for global product identification. The four data structures in the
GTIN family are as follows:
EAN.UCC-13 (predominately found in Pacific Rim & Europe)
EAN.UCC-12 (UPC Number, predominately used in North America)
EAN.UCC-14 (worldwide; includes packaging level)
EAN.UCC-8 (mostly in Europe)

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.

Support for EAN/UCC-128 Standards Page 7


However it may be necessary to print GTIN when the item or its packaging
does not have any of the GTIN constituent structures in a bar coded form at
the time of inbound receipts. The following options exist for printing of GTIN.
Since EAN -8, UCC-12 (UPC) and EAN –13 are unique to an item whereas
EAN.UCC-14 is unique to an item and packaging configuration, the printing
strategy will be different for EAN.UCC-14.

EAN -8, UCC-12 (UPC) and EAN -13

EAN-8, UCC-12 and EAN-13 are unique identification assigned to items.


These numbers can be easily maintained as Item Level attributes. Since
item level attributes are enabled for label printing in all the major label types
including material and LPN content label, these GTIN data structures can be
easily printed using standard label printing functionality. The label layout in
the 3rd party label printing software can be designed to print these data
structures in the correct bar-code symbology.

EAN/UCC-14

EAN/UCC-14 is used when identical consumer units are packaged into


standard quantities of intermediate packs or shipping containers. EAN/UCC-
14 is commonly used in a non-retail environment, particularly in distribution
centers dealing with packaged goods. As per EAN/UCC specification,
prefixing 1-digit package level information to the base GTIN number and
recalculating the check digit generates the EAN.UCC-14. This 14-digit code
identifies intermediate packs and shipping containers holding standard
configurations of consumer units.

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

Support for EAN/UCC-128 Standards Page 8


GTIN and last digit as the UCC Mod 10 check digit
(UCCMOD10).
d. If a UCC-128 label with UCC/EAN-14 is desired, the above field
should be configured as a non-printing field. Now define a 16-
character bar code field for UCC/EAN-14 including UCC/EAN-
128 application identifier. Ensure that bar code symbology is
UCC-128 or Code-128 as the case maybe. Configure the data
source for this field as a “Formula”. Edit the formula by
concatenating a “Fixed String of “01” (Corresponding to
application identifier for GTIN) to the number generated in step
c.

In order to generate UCC/EAN-14 bar code for a particular packing


configuration, mobile transactions must be carried out with the appropriate
transaction unit of measure.

UCC/EAN Application Identifiers

UCC/EAN Application Identifiers is static information e.g. application


identifier for an SSCC will always be “00” for any value of SSCC. Thus
application identifiers can be very easily embedded in the Label Format as
“Fixed” strings to be appended to the variable data e.g. SSCC. Please note
that application identifiers should be excluded in the check digit calculations.
To achieve this, it’s recommended that the required value along with check
digit should be calculated and stored in a non-printing variable. Now
appending a fixed string of AI to this variable can generate the required
UCC-128 bar code.

SCANNING EAN/UCC-128 COMPLIANT LABEL IN ORACLE WMS

Handling of Bar Code Symbol with Single Application Identifier

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

Support for EAN/UCC-128 Standards Page 9


implementation guide on DFIs for additional details on configuring and using
DFIs.

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.

Appendix-B Shows the UCC/EAN-128 application identifiers and the Oracle


WMS fields that can be matched using DFI setup.

Handling of Concatenated Bar Code Symbol with Multiple Application


Identifier

UCC-128 label standards support concatenated bar code symbols. The


concatenated bar code symbol may consist of multiple application identifiers
and their variable values. The following figure shows a sample concatenated
UCC-128 bar code symbol. A single scan of concatenated bar code yields
values for multiple data fields and should populate multiple field values in the
form. In the following example a single scan of the following bar code should
populate the Item, Lot Number, Quantity and Unit of Measure as Kilograms.
Standard DFI functionality in Oracle WMS is not geared to handle this
requirement.

The customized bar code scanning functionality in patchset “I” allows


customization of logic to handle scanned data. Oracle provides two ways of
implementing a user-defined logic to handle concatenated bar code symbol.
Customized bar code scanning functionality enables a scanned input to
make either a PL/SQL or a java custom class callout. The java custom class
is more scalable and will perform better.

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.

PL/SQL Call Out: This option involves modifying the package


INV_PREPROCESS_SCAN. This package also takes in the
current_page_name and the value scanned and should return the value to
replace the scanned value with. However, unlike the java example, this
package does not have access to the other fields but the current field.
Therefore it’s not possible to modify the values of any other field other than
the current field based on the scanned input. It therefore lacks the flexibility
provided with the implementation of the above java class file.

Appendix-C shows an example of a Java call-out implementation to handle a


concatenated UCC-128 bar code symbol. The sample Java code takes the
scanned data from the following symbol as an input and parses it into
individual field values. The individual field values such as GTIN (Item),
Weight (Quantity) and Lot number are populated on mobile screen.

Support for EAN/UCC-128 Standards Page 10


FREQUENTLY ASKED QUESTIONS

Is it possible to generate an ASN with container information for nested


LPNs?

No. Even though it is possible in Oracle WMS to generate and assign an


SSCC-18 number to all levels of LPN hierarchy, the shipping data structure
has information only for the innermost LPNs. As a result the ASN sent to the
customer will not have the SSCC-18 numbers associated with the outermost
LPNs. The solution suggested in this note is recommended only for one-
level of container hierarchy.

Must the Application Identification (AI) appear in the bar coded


symbol?

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.

Must the Application Identification (AI) appear in the human readable


field?

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.

Can I derive supplier ID from the GTIN?

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.

Should Application Identifier “00” be appended to SSCC in ASN?

There are no standards regarding transmission of application identifiers in


outbound ASN. There are customers who accept incoming ASN with 20-digit
container reference. The 20 digit number consists of 18 digit-SSCC number
prefixed with SSCC application identifier “00”. Prefixing “00” to SSCC
number will not change the check digit of SSCC. If a customer requires 20-
digit container reference, a prefix of “00” can be added in either the label
printing software or the prefix of “00” can be added to the extension digit.

Support for EAN/UCC-128 Standards Page 11


APPENDIX-A

UCC/EAN-128 Application Identifiers


AI Content Format
0 SSCC n2+n18
1 GTIN n2+n14
Identification of Trade Items Contained In a
2 Logistics Unit n14
10 Batch or Lot Number n2+an..20
11 (*) Production Date n2+n6
13 (*) Packaging Date n2+n6
151 (*) Sell By Date n2+n6
17 (*) Expiration Date n2+n6
20 Product Variant n2+n2
21 Serial Number n2+an..20
Secondary Data for Specific Health Industry
22 Products n2+an..29
23 (**) Lot Number n3+n..19
Additional Product Identification assigned by the
240 Manufacturer n3+an..30
241 Customer Part Number n3+an..30
250 Secondary Serial Number n3+an..30
30 Variable Count n2+n..8
310 (***) Net Weight, Kilograms n4+n6
311 (***) Length or 1st Dimension, Meters n4+n6
312 (***) Width, Diameter or 2nd Dimension, Meters n4+n6
313 (***) Depth, Thickness, Height or 3rd Dimension, Meters n4+n6
314 (***) Area, Square Meters n4+n6
315 (***) Volume, Liters n4+n6
316 (***) Volume, Cubic Meters n4+n6
320 (***) Net Weight, Pounds n4+n6
321 (***) Length or 1st Dimension, Inches n4+n6
322 (***) Length or 1st Dimension, Feet n4+n6
323 (***) Length or 1st Dimension, Yards n4+n6
324 (***) Width, Diameter, or 2nd Dimension, Inches n4+n6
325 (***) Width, Diameter, or 2nd Dimension, Feet n4+n6
326 (***) Width, Diameter, or 2nd Dimension, Yards n4+n6
327 (***) Depth, Thickness, Height or 3rd Dimension, Inches n4+n6
328 (***) Depth, Thickness, Height or 3rd Dimension, Feet n4+n6
329 (***) Depth, Thickness, Height or 3rd Dimension, Yards n4+n6
330 (***) Gross Weight, Kilograms n4+n6
331 (***) Length or 1st Dimension, Meters, Logistics n4+n6
Width, Diameter or 2nd Dimension, Meters,
332 (***) Logistics n4+n6

Support for EAN/UCC-128 Standards Page 12


Depth, Thickness, Height or 3rd Dimension,
333 (***) Meters, Logistics n4+n6
334 (***) Area, Square Meters, Logistics n4+n6
335 (***) Gross Volume, Liters n4+n6
336 (***) Gross Volume, Cubic Meters n4+n6
340 (***) Gross Weight, Pounds n4+n6
341 (***) Length or 1st Dimension, Inches, Logistics n4+n6
342 (***) Length or 1st Dimension, Feet, Logistics n4+n6
343 (***) Length or 1st Dimension, Yards, Logistics n4+n6
Width, Diameter or 2nd Dimension, Inches,
344 (***) Logistics n4+n6
345 (***) Width, Diameter or 2nd Dimension, Feet, Logistics n4+n6
Width, Diameter or 2nd Dimension, Yards,
346 (***) Logistics n4+n6
Depth, Thickness, Height or 3rd Dimension,
347 (***) Inches, Logistics n4+n6
Depth, Thickness, Height or 3rd Dimension, Feet,
348 (***) Logistics n4+n6
Depth, Thickness, Height or 3rd Dimension, Yards,
349 (***) Logistics n4+n6
350 (***) Area, Square Inches n4+n6
351 (***) Area, Square Feet n4+n6
352 (***) Area, Square Yards n4+n6
353 (***) Area, Square Inches, Logistics n4+n6
354 (***) Area, Square Feet, Logistics n4+n6
355 (***) Area, Square Yards, Logistics n4+n6
356 (***) Net Weight, Troy Ounce n4+n6
360 (***) Volume, Quarts n4+n6
361 (***) Volume, Gallons n4+n6
362 (***) Gross Volume, Quarts n4+n6
363 (***) Gross Volume, Gallons n4+n6
364 (***) Volume, Cubic Inches n4+n6
365 (***) Volume, Cubic Feet n4+n6
366 (***) Volume, Cubic Yards n4+n6
367 (***) Gross Volume, Cubic Inches n4+n6
368 (***) Gross Volume, Cubic Feet n4+n6
369 (***) Gross Volume, Cubic Yards n4+n6
37 County of Trade Items Contained in a Logistic Unit n..8
400 Customer’s Purchase Order Number n3+an..30
401 Consignment Number n3+an..30
402 Shipment Identification Number n3+n17
403 Routing Code n3+an..30
“Ship To - Deliver To” EAN/UCC Global Location
410 Number n3+n13
“Bill To - Invoice To” EAN/UCC Global Location
411 Number n3+n13

Support for EAN/UCC-128 Standards Page 13


“Purchase From “ EAN/UCC Global Location
412 Number n3+n13
“Ship For - Deliver For - Forward To” UCC/EAN
413 Global Location Number n3+n13
Identification of a Physical Identification, EAN/UCC
414 Global Location Number n3+n13
“Ship To - Deliver To” Postal Code Within a Single
420 Postal Authority n3+an..20
“Ship To - Deliver To” Postal Code With 3-Digit ISO
421 Country Code Prefix n3+n3+an..9
422 Country of origin of a trade item n3+n3
Roll products - Width, Length, Core Diameter,
8001 Direction and Splices n4+n14
8002 Cellular Mobile Telephone Identifier n4+an..20
8003 Global Returnable Asset Identifier n4+n14+an..16
8004 Global Individual Asset Identifier an..30
8005 Price Per Unit of Measure n6
8006 Identification of the components of a trade item n4+n14+n2+n2
8018 Global Service Relation Number n4+n18
Coupon Extended Code - Number System
8100 Character and Offer n4+n1+n5
Coupon Extended Code - Number System
8101 Character, Offer, and End of Offer n4+n1+n5+n4
Coupon Extended Code - Number System
8102 Character preceded by zero n4+n1+n1
Information mutually agreed between trading
90 partners n2+an..30
91 Intra-Company n2+an..30
92 Intra-Company n2+an..30
93 Intra-Company n2+an..30
94 Intra-Company n2+an..30
95 Internal-Carriers n2+an..30
96 Internal-Carriers n2+an..30
97 Intra-Company n2+an..30
98 Intra-Company n2+an..30
99 Internal n2+an..30
(*) : To indicate only year and month, DD must be filled with “00”
(**) : Plus one digit for length indication
(***) : Plus one digit for decimal point indication
Data Value Representation:
a alphabetic characters
n numeric characters
an alphanumeric characters
an..3 up to 3 alphanumeric
n3 3 numeric characters, fixed length
an3 3 alphanumeric characters, fixed length
a..3 up to 3 alphabetic characters
n..3 up to 3 numeric characters
a3 3 alphabetic characters, fixed length

Support for EAN/UCC-128 Standards Page 14


APPENDIX-B

DFI String setup for supporting UCC/EAN-128 Application Identifiers


Mobile Prompt EAN/UCC 128 AI DFI String
LPN 00 DFI=00 REQ=N
ParentLPN 00 DFI=00 REQ=N
Create LPN 00 DFI=00 REQ=N
Inner LPN 00 DFI=00 REQ=N
Outer LPN 00 DFI=00 REQ=N
LPN 00 DFI=00 REQ=N
Acc LPN 00 DFI=00 REQ=N
Rej LPN 00 DFI=00 REQ=N
From LPN 00 DFI=00 REQ=N
To LPN 00 DFI=00 REQ=N
Drop LPN 00 DFI=00 REQ=N
Res LPN 00 DFI=00 REQ=N
Child LPN 00 DFI=00 REQ=N
PO Num 400 DFI=400 REQ=N
Item 01 DFI=01 REQ=N
Alloc Qty 30 DFI=30 REQ=N
Deliv Qty 30 DFI=30 REQ=N
Insp Qty 30 DFI=30 REQ=N
Lot Qty 30 DFI=30 REQ=N
Miss Qty 30 DFI=30 REQ=N
Rcpt Qty 30 DFI=30 REQ=N
Req Qty 30 DFI=30 REQ=N
Ship Qty 30 DFI=30 REQ=N
Total Qty 30 DFI=30 REQ=N
Ship Qty 30 DFI=30 REQ=N
Acc Qty 30 DFI=30 REQ=N
Rej Qty 30 DFI=30 REQ=N
Ea Lot Qty 30 DFI=30 REQ=N
Qty 30 DFI=30 REQ=N
Res Qty 30 DFI=30 REQ=N
Split Qty 30 DFI=30 REQ=N
Ret Qty 30 DFI=30 REQ=N
From SN 21 DFI=21 REQ=N
To SN 21 DFI=21 REQ=N
SN 21 DFI=21 REQ=N
Serial 21 DFI=21 REQ=N
SN 21 DFI=21 REQ=N
From Lot 10 DFI=10 REQ=N
To Lot 10 DFI=10 REQ=N
Lot 10 DFI=10 REQ=N
Res Lot 10 DFI=10 REQ=N

Support for EAN/UCC-128 Standards Page 15


APPENDIX-C

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.
**/

public class CustomScanManager {

private void CustomScanManager() {};

Support for EAN/UCC-128 Standards Page 16


public static boolean isInputableField(FieldBean f) {
if ((f instanceof InputableFieldBean) &&
(((InputableFieldBean) f).isEditable()))
return true;
else
return false;
}
/**
* This is a customizable method.
**/
/**
* In this example we have scanned a concatenated UCC128
* barcode which has Item, quantity, lot_number and
* lot_quantity.
* With one scan we want to populate all the above fields
* on the PO Receipt page.
* It returns the value to be set for the current field:
* in our example is item.
**/
// curtPage passes the current MWA Page
// curtSession passes the java session
// val has the value that was scanned

public static String


processScan(oracle.apps.mwa.container.Session
curtSession,

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");

FieldBean curtBean = curtPage.getCurrentFieldBean();


if (curtBean instanceof
oracle.apps.inv.lov.server.ItemLOV) {
int itemFieldIndex =
curtPage.getCurrentFieldIndex();
String itemValue = val;
String [] curtFieldDFIs = null;
int intemDFILength = 0;
if (isInputableField(curtBean)) {
curtFieldDFIs =
((InputableFieldBean)curtBean).getDFIs();
int itemDFILength = 0;
if (curtFieldDFIs != null) {
// if prefix of value is in curt field DFI, strip it,
// and setFieldValue
for (int i=0; i < curtFieldDFIs.length; i++) {
int x = itemValue.indexOf(curtFieldDFIs[i]);
if (x == 0) {
// found a DFI in the value, let's strip it
itemDFILength = curtFieldDFIs[i].length();
FileLogger.getSystemLogger().trace("CTM:
found matching Item DFI "+ curtFieldDFIs[i]);

Support for EAN/UCC-128 Standards Page 17


FileLogger.getSystemLogger().trace("CTM:
Item DFI Length: "+ itemDFILength);
break;
}
}

// After stripping the DFI only the first 14 characters


// are for item Process the remaining characters for the
// remaining fields
if (itemValue.length() > (14+itemDFILength)) {

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;
}

// Get the value for the item field


String remainingValue =
itemValue.substring(14+itemDFILength);
itemValue =
itemValue.substring(0,(14+itemDFILength));
FileLogger.getSystemLogger().trace("CTM: Item
value: "+ itemValue);
FileLogger.getSystemLogger().trace("CTM:
Remaining value: "+ remainingValue);

String qtyValue = "";


// Found qty field so set the value for the quantity
if (qtyFieldIndex > 0) {
FileLogger.getSystemLogger().trace("CTM:
Found the qty field");
boolean doneQty = false;
String [] qtyFieldDFIs = null;
FieldBean qtyField =
((FieldBean)(fieldBeanList.elementAt(qtyFieldIndex)));
if (isInputableField(qtyField)) {
qtyFieldDFIs =
((InputableFieldBean)qtyField).getDFIs();
if (qtyFieldDFIs != null) {
// if prefix of value is in curt field DFI, strip it,
// and setFieldValue
FileLogger.getSystemLogger().trace("CTM:
Got the dfi for qty fld");

Support for EAN/UCC-128 Standards Page 18


for (int j=0; j < qtyFieldDFIs.length;
j++) {
int x =
remainingValue.indexOf(qtyFieldDFIs[j]);
FileLogger.getSystemLogger().trace("CTM:
"+j+"th DFI:"+qtyFieldDFIs[j]);
if (x == 0) {
// found a DFI in the value, let's strip it
qtyValue =

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 =

Support for EAN/UCC-128 Standards Page 19


remainingValue.substring(x+lotNumFieldDFIs[j].length());

((InputableFieldBean)lotNumField).setValue(lotNumV
alue);

FileLogger.getSystemLogger().trace("CTM: Lot
value:"+lotNumValue);
}
}
}
}
}
}
}
}
}
return itemValue;
} else {
return val;
}
}
}

Support for EAN/UCC-128 Standards Page 20


Support for EAN/UCC-128 Standards
April 2003
Author: Aditya Agarkar
Contributing Authors: Karun Jain

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

Oracle Corporation provides the software


that powers the internet.

Oracle is a registered trademark of Oracle Corporation. Various


product and service names referenced herein may be trademarks
of Oracle Corporation. All other product and service names
mentioned may be trademarks of their respective owners.

Copyright © 2000 Oracle Corporation


All rights reserved.

S-ar putea să vă placă și