Sie sind auf Seite 1von 39

PowerView is Off

(0)
Jose (Available) Contact Us Help
APPLIES TO:
Oracle Warehouse Management - Version 11.5.10 to 12.1.3 [Release 11.5 to 12.1]
Information in this document applies to any platform.
ABSTRACT
Advanced Barcode Strategies To Make Barcode Scanning More Efficient And Accurate

HISTORY
Document History

Author : Aditya Agarkar, Contributing Authors: Karun Jain, Wilson Lau, David Wertheimer
Create Date : 01-MAY-2004
Last Update Date : 01-JUN-2005
Expiry Date : N/A
Other Information : N/A
DETAILS

Table of Contents

* Introduction
* Data Field Identifier (DFI)
Advanced Barcode Strategies (Doc ID 297992.1)
To Bottom
Modified: 11-Feb-2014 Type: WHITE PAPER
Page 1 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
* Out of Order Scanning using DFI
* Concatenated Barcode Symbol using Delimiters
* Control Characters in Barcodes
* Global Trade Item Numbers (GTIN)
* Using Customized Bar Code Scanning
* Summary
* Appendix-A: Example GTIN Setup for Various EAN.UCC Barcodes
* Appendix-B: Customized Bar Code Scan Example #1
* Appendix-C: Customized Bar Code Scan Example #2

INTRODUCTION

Barcodes can be thought of as a font for information on a label. Using barcodes as part of any operation has many advantages over other labeling methods.

High Data Accuracy: Barcodes virtually eliminate data entry errors due to labels being misread or typographical errors. Information is entered exactly the
way it appears on the label all the time, every time. If a barcode is illegible (or mis-scanned), the system will not recognize it and generally requires manual
keyed input or a valid scan.
Efficient Data Entry: Barcodes significantly increase the speed of data entry, as it is no longer necessary to carefully type information into a keyboard. The
barcode immediately transmits all encoded information directly to the computer.
Efficient Tracking and Monitoring: Barcodes make higher levels of information tracking possible. Information such as serial number may be difficult to track,
if efficient data collection is not possible using barcodes.

This document contains useful techniques to make barcode scanning more efficient and accurate. The techniques covered in detail are as follows:

Data Field Identifiers (DFI)
Barcodes for Global Trade Item Numbers (GTIN)
Control Characters in Barcodes
Concatenated Barcode Symbol
Customized Barcode Scanning

Using these advanced techniques the following business requirements can be addressed

Out of Order Scanning: This technique involving bar code scanning allows data entry on the correct field in Oracle mobile application (including WMS and
MSCA) irrespective of the cursor position on the mobile form. Out of order scanning can improve worker productivity in the warehouse as scrolling through the
form and identifying the correct field is not required. Out of Order scanning feature is enabled using Data Field Identifiers (DFIs).
Taking Advantage of Compliance Labeling: A compliant label usually has barcodes with DFIs as specified by the standards. Two of the most popular
standards are ANSI/FACT and EAN/UCC. ANSI/FACT Data field identifiers (DFI) or EAN/UCC Application Identifiers (AI) can be modeled using the DFI
functionality. Defining ANSI/FACT Data field identifiers (DFI) or EAN/UCC Application Identifiers (AI) as DFI in Oracle allows you to take advantage of compliance
labeling on products and shipments. Thus if a warehouse receives items from its vendor with labels that are complying to certain standards, its possible to use
these labels in a more effective manner.
Page 2 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
Global Search
Use of Concatenated Barcodes: Concatenated bar codes can improve worker productivity by populating multiple fields in a single scan of barcode.
Concatenated barcodes comprising of Item-Revision, Sub-inventory-Locator and PO-Line are supported using a delimiter character. However more complex
concatenated requirements can be addressed using control characters or customized bar code scanning techniques.
Translation Requirements: This could be required when a particular barcode field has a value that needs to be translated before it can be entered into the
system. For example, a warehouse receives items from a vendor with barcodes comprising of vendor item numbers. A scan of vendor item barcode in item field
should populate the internal item using vendor item cross-reference. Such requirements can be addressed using customized bar code scanning techniques
involving a PL/SQL call-out.
Avoid Item Re-Labeling: Wide adoption of GTIN standards have resulted in most products and their packaging configurations having one of the GTIN data
structures such as 12-digits (the U.P.C.), 14- digits (SCC-14), 13-digits (EAN-13) or 8-digits (EAN-8) in a bar coded form. Usually one of these data structures are
applied the item at the point of manufacture such as UPC Barcode on loose items sold through retail outlets or EAN/UCC-14 barcode on corrugated cartons.
Therefore if the product already has a UPC, EAN-8, EAN-13 or EAN/UCC-14 barcode assigned either by the manufacturer there should not be a need to re-label
the item with an internal SKU number. This requirement is addressed using the GTIN functionality available in Oracle WMS and MSCA from 11.5.9 and onwards.
Identification of Item and its packaging level: As per EAN/UCC-14 standards each standard pack configuration of the item is assigned a distinct 14-digit
number. Warehouse operations can be vastly simplified if the warehouse operator can transact based on standard pack quantities (i.e. Pick 2 Cases, 3 Pallets,
etc.) rather than entering transaction quantities in primary UoM (e.g. 20 EA for 2 Cases or 3000 EA for 3 Pallets). This requirement can be addressed using GTIN
enhancements in 11.5.10

DATA FIELD IDENTIFIER (DFI)

DFI functionality in Oracle Mobile Applications (MSCA and WMS) allows identification of the type of data that is embedded within a barcode. DFI usually consists
of one to three characters that precede the value of the data that is encoded in the barcode. For instance, a DFI for Part Number might be P+ . If the
part number that were encoded in a given barcode were AS54888 then the barcode would encode the value P+AS54888 to indicate that
the barcode is for a Part Number and that Part Number is AS54888 . Since barcode on products and containers are often used across organizations in
a supply chain, standards have evolved for DFI usage. Popular standards are ANSI/FACT, EAN/UCC, etc. Oracle Applications are seeded with ANSI/FACT DFI
standards. However this functionality can also be used to support Application Identifiers belonging to EAN/UCC standards. DFIs offer the following advantages:

Out of order scanning: Operator need not place the cursor in the field where data is being entered. For example, the cursor could be on PO field while the
item barcode is being scanned. The DFI ensures that correct field is populated.
Data Accuracy. DFIs are useful in reducing error caused by scanning the wrong barcode into a field on a mobile device.

DFI Scanner Configuration

In order to use the DFI functionality in Oracle, the scanning device must be setup to always prefix the Data Stream Indicator on every scan. Oracle certified
scanning devices must allow this configuration. Refer to the User s Guide for the scanning devices for details on configuring the Prefix (or Preamble).

DFI MWA Configuration

Once the device has been configured to prefix the Data Stream Indicator, the mobile server must be configured to recognize the appropriate Data Stream
Indicator. Each device configuration can have a different Data Stream Indicator to support the varying capabilities of different mobile devices. The configuration
setting is located in the device configuration file. The default device configuration setting (default_key.ini) that ships with the mobile server has the Data Stream
Page 3 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
Indicator set to the default: ASCII 28. The character that the device prefixes on scanned entry must match with the entry in the .ini file for the device
configuration being used in order for DFIs to be fully supported.

For more information on mobile device configurations and the configuration .ini file refer to the Oracle Mobile Server User s Guide.

Application Setup

DFI information is stored in the same place that the field labels for the mobile forms are stored the AK Dictionary. This is the same place that changes can
be made to the field labels that show up on the mobile forms if larger, smaller, or more descriptive field labels are required. To access the AK Dictionary, you
must log onto Oracle Applications on the desktop and access the responsibility Application Common Developer. Contact your system administrator if this
responsibility is not assigned to your user.

Verifying DFI Setup

1. Create an LPN with name DFITEST01A using LPN generation concurrent request. Alternatively you can generate this LPN during miscellaneous receipt
transaction on mobile.
2. Navigate to Warehouse->Inquiry->LPN. Scan Barcode in Figure 1. If the scanner is configured correctly, the DFI for LPN field ( J ) will be stripped
from the barcode and LPN details would be displayed. If the scanner is not configured properly, message Invalid LPN will be displayed.
3. Scan of barcode in Figure 2 will work correctly even when the scanner is not configured for DFI because the barcode itself has the data stream indicator
(ASCII 28) prefixed to it.

Please see the Bar Coding Standards chapter in WMS implementation guide for additional details on DFI.

Figure 1: Barcode without prefixed Data Stream Indicator Barcode without embedded Data Stream Indicator (ASCII-28) JDFITEST
Figure 2: Barcode with prefixed Data Stream Indicator Barcode with embedded Data Stream Indicator (ASCII-28) JDFITEST

Fig 1&2

OUT OF ORDER SCANNING USING DFI

When a barcode with a DFI is scanned out of order, the Oracle mobile applications framework detects the field where the scan was intended using the DFI. The
field corresponding to DFI is populated with the scan value irrespective of the current field on the page (i.e. the field on the page where the cursor is placed for
user input). Once the scan is performed, the placement of cursor and field validations depends on the placement of field corresponding to DFI relative to the
current field on the page:

If out of order scan occurs for a field that is above the current field on the page the following actions are performed:

Field validation is performed for the field being scanned out-of-order
The cursor is placed on the immediate next editable field on the page.

Page 4 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
If out of order scan occurs for a field that is below the current field on the page the following actions are performed:

No field validation is performed for the field being scanned out-of-order
The cursor remains on the current field

Example of Out of Order Scan
The following example illustrates an out of order scan using DFI. In the following example, the user scans a sub-inventory barcode with DFI out of order i.e. the
current field is Reason and instead a sub-inventory barcode is scanned. The scanned value is populated in the sub-inventory field on the mobile page.
Since the sub-inventory field is placed above the current field, field validation on sub-inventory will be performed and the immediate next user-enterable field on
the form becomes the current field. In this example, the cursor is placed on locator field.

Fig 3

Recommended Patches Following is a list of patches that are required for out of order scanning of barcodes to work correctly:
Fig 3p

CONCATENATED BARCODE SYMBOL USING DELIMITERS
Concatenated bar code symbol enhances operator productivity by populating multiple fields in a mobile screen using a single bar code scan. Oracle WMS supports
concatenated bar code symbol using a delimiter character

Using Delimiter Characters

Use of a field delimiter is the simplest way to encode a concatenated bar code symbol. However the support for this feature is limited to a few fields. A delimiter
character is defined in profile option. Subsequently a single bar code can be encoded comprising of the following fields with the delimiter character separating the
fields.

a. Item and Revision (Profile Option WMS: Item/Revision Delimiter)
b. Sub Inventory and Locator (WMS: Subinventory/Locator Delimiter)
c. PO and Line (Profile Option WMS: PO Number/Line Delimiter)

Example: A concatenated bar code symbol for Sub-inventory BULK, Locator B1.1.1 and delimiter character # (without the prepended ASCII-28)

Fig 4

The delimiter character # is entered in profile option WMS: Subinventory/Locator Delimiter

DFIs and Concatenated Barcode Symbol with Delimiters

DFIs can also be used within concatenated bar code symbols having a delimiter character. To enable out of order scanning of fields, you only need the DFI for
the first field in the barcode. For example, the single bar-code field comprising of sub-inventory and locator is encoded as follows:

Dashboard Service Requests Knowledge
Page 5 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

"1L" & Sub & # & locator

Where 1L is the DFI for sub- inventory and # is the delimiter character stored in the profile option WMS: Sub-Inventory Locator delimiter. This
approach will work only if the following conditions are met:

a. Delimiter character is different for PO-Line, Item-Revision and Sub-Inventory Locator
b. Parsing of concatenated barcode into individual fields will not happen if the fields in the concatenated barcode is above the current field e.g. Sub-Inventory
and Locator will not be populated in a miscellaneous receipt page if the following barcode is scanned when the current field is item. Please note that item field is
below the sub-inventory field on this page.

Fig 5

Other Techniques to Handle Concatenated Barcode

Concatenated barcode using a delimiter will only work for the following set of fields:

Item and Revision
Sub Inventory and Locator
PO and Line

In order to support concatenated barcodes consisting of other fields the following techniques can be used:

Embed Control Character in Barcode
Customized Barcode Scanning

These techniques are covered in detail in the following section.

CONTROL CHARACTERS IN BARCODES

Auto Carriage Return

Scanning efficiency can be greatly enhanced by configuring the scanner to append a carriage return. This implies that the user need not hit the return key after
every scan. Most commonly used scanners allow this configuration using a Suffix setup. The suffix must be set to ASCII-13. Some scanners require
the suffix to be set to 1013 or 7013. Please refer to the users manual for a particular device for steps required for this configuration.

Embedded Control Characters in Barcode

Bar codes labels can be designed with embedded control characters such as Carriage Return (CR or ASCII 13), Group Separator (GS ASCII 29), File separator (FS
ASCII 28) and Horizontal Tab (HT or ASCII 9). Control characters can be encoded in barcodes when they always occur in a particular sequence. For example the
Page 6 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
WMS login can be simplified using a bar code. The bar code can be designed to have an embedded Return after user ID and another return after entry of
password and finally selection of a responsibility. A single scan of this barcode will perform a login and select the first responsibility in the list of responsibilities
available to the user. In Loftware, the bar-code field is encoded in a formula field as follows:

User & CR() & Password & CR() & 1

Similar functionality can be developed elsewhere within WMS using other label printing packages. However this technique will work well only for fields that
appear in the exact same sequence in all the forms.

Out of Order Scanning of Barcodes with Control Characters

DFIs can be used within concatenated bar code symbols with embedded characters. To enable out of order scanning of fields within the concatenated bar code
symbol, the data stream indicator should also be embedded within the barcode. The data stream indicator is maintained in the .ini file associated with the mobile
device. The default Data Stream Indicator is ASCII 28 File Separator. The advantage of this method is that the barcode is independent of the sequence of
data fields in the mobile form e.g. a concatenated barcode with Item and UoM can be defined and this barcode can be used to perform out of order scan of both
item and UoM fields. It should be noted here that Item and UoM are not adjacent fields in the Receipt form however they are adjacent fields on the pick load
form. In Loftware, the bar-code field comprising of DFI for item and UoM is encoded as follows:

"P+" & Item & CR() & FS() & "3Q+" & UoM

Where P+ is the DFI for Item and 3Q+ is the DFI for UoM field. Oracle mobile applications will ensure that a scan of the concatenated bar
code symbol shown in Figure 6 will correctly populate the item (CM10) and UoM (BX5) irrespective of the order of these fields on the mobile form

Fig 6

GLOBAL TRADE ITEM NUMBERS (GTIN)

Global Trade Item Number (GTIN) is a unique number assigned to a product within the EAN/UCC framework for standard product identification. The product
could be a physical item or different packaging configurations of the item. Pre-defined information for the item such as item description, manufacturer, etc. can
be retrieved at any point in the supply chain using the GTIN.

The GTIN is defined as a 14-digit number to accommodate the different structures existing within EAN/UCC system for standard product identification. The
existing EAN/UCC standard data structures such as 12-digits (the U.P.C.), 14- digits (EAN/UCC-14), 13-digits (EAN-13) or 8-digits (EAN-8) will be accommodated
within GTIN. These data structures provide unique identification when they are right justified and zero padded in a 14-digit reference field, called the GTIN.

Please see the Global Trade Item Number chapter in WMS implementation guide for additional details on GTIN.

GTIN and Standard Packs

GTIN functionality in 11.5.9 allows Oracle mobile applications to resolve the internal SKU using GTIN. However since each standard pack configuration of an item
Page 7 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
is a separate GTIN, resolution of only internal SKU is not enough. The exact packaging configuration of the item being transacted is also required. This
requirement has been addressed using the GTIN functionality in 11.5.10. This enhancement recognizes multiple standard packs of the same base item.

In this framework, each standard pack of the item is modeled as a Unit of Measure. The quantity of item in the standard pack is specified in the UoM conversion
setup. The Item cross-reference relationship has been enhanced for EAN/UCC-14 to include an item, revision and standard pack (i.e. UoM).
The revision and UoM are optional fields and not required for UCC-12, EAN-8 or EAN-13 data structures.

Using these guidelines, a UoM is defined for each standard pack of the item i.e. pallet, inner pack, master cases, etc. A separate entry in the cross-reference
table would be needed for each standard pack of the item. In this case cross-reference codes corresponding to the EAN/UCC-14 would be associated with the
same item and different UoM for the item.

Appendix-A shows sample GTIN configuration for different EAN/UCC data structures.

Transactions and GTIN

GTIN allows Oracle Mobile transactions to be carried out by scanning one of its constituent data structures in bar coded format. Whenever a GTIN data structure
(i.e. UCC-12, EAN-8, EAN-13 or EAN/UCC-14) is scanned in the item field, Oracle mobile application converts it into GTIN by right justifying and zero padding into
a 14-digit field. This 14-digit number is used to lookup for the item, revision and its packaging configuration in the GTIN cross-reference relationship table. If a
match exists for the GTIN, the referenced item is substituted in the item field and revision if any is populated. In 11.5.10, if a EAN.UCC-14 barcode is scanned,
the transaction Unit of measure is also substituted with the UoM from the cross-reference table. In case of pick tasks, the suggested pick quantity is recomputed
in terms of the transaction unit of measure.

GTINs in 11.5.9 and 11.5.10

The following table summarizes the features related to GTIN that are available in release 11.5.9 and 11.5.10:

GTIN 1

GTIN Example

Item NA100AX (UPC: 012345678905) comes in two standard pack configurations, a master case (EAN.UCC-14: 20012345678909) containing 10 EA and a pallet
(EAN.UCC-14: 50012345678900) containing 100 EA. The GTIN cross reference setup for this item will be as follows:

GTIN 2
GTIN 3

USING CUSTOMIZED BAR CODE SCANNING

The customized bar code scanning functionality available in 11.5.9 allows customization of logic to handle scanned data. In order to use customized scan, profile
option MWA: Pre- process scanned input must be enabled. Oracle provides two ways of implementing a user-defined logic to handle concatenated bar
Page 8 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
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. Please see the white paper on EAN/UCC-128 for a sample
java code that implements customized bar code scanning. In appendix A there is another example that explains how this feature was used to increase the
scanning efficiency on one of the transactions.

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.

SUMMARY

This section summarizes the interplay of various techniques discussed in this document. Figure 7 shows the sequence in which scanned data is interpreted and
used by the application.

Fig 7

The following table summarizes some common barcode related requirements and techniques used to address them:

Table 1
Table 2
APPENDIX A

EXAMPLE GTIN SETUP FOR VARIOUS EAN.UCC BARCODES

The following table shows sample GTIN configuration for different EAN/UCC data structures. These data structures could be stored in different bar-code
symbology.

Appendix A
APPENDIX B

CUSTOMIZED BAR CODE SCAN EXAMPLE #1
Page 9 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

This sample java code example shows how a user can use the Java callout for a scanned input to increase Picking efficiency. 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.

Problem Detail

In the Pick Load page for a lot and serial controlled item the cursor is on the confirm subinventory field and expecting the subinventory to be scanned. The user
scans the subinventory, locator barcode and wants the cursor to move to the field after locator, which is the item field. Also then the user scans the lot number
and wants the item, unit of measure and lot number to be defaulted and move the cursor to the serial number field. This is useful in situations where you have a
lot number tied to one and only one item and also you are always dealing in one of the UOMs for that item.

PL

If the page is not Pick Load page, the callout routine needs to make a call to the PL/SQL callout routine. If you have created the Java callout then by design, the
server will not make a callout to the PL/SQL routine. However, if you have a lot of code implemented already in the PL/SQL routine and want to utilise it without
having to rewrite it in Java for all other pages other than the Pick Load page, the call out to the same PL/SQL routine can be made from this java call out very
easily as you would see in this example.

Code Logic

The first part where the user wants to default the subinventory/locator in one scan can be implemented in one of the three ways:
c. One of the ways would be to have a concatenated barcode which has subinventory value followed by a carriage return followed by the locator value followed
by another carriage return.
d. The other way is by using delimiter characters as explained in this document above.
e. A third way is how it is implemented in this Java callout. In this we insert a session variable, AUTO_ENTER as TRUE. This method is particularly useful if you
do not want to change all the barcodes in your facility, as both the first two methods would require you to put the barcodes in a special way. In our example the
barcode being scanned is simply Subinventory DFI followed by Subinventory Value followed by locator seperator . followed by Locator DFI and then
the Locator Value with a carriage return appended by the gun. AUTO_ENTER processes the code as if one and only one carriage return was scanned after
processing the current scanned value.

PL2

Next the user scans the Lot Number when in the item field. In the example you will se that the suggested value of the item is populated in the item field, the
cursor is moved to the next field (UOM Field) because of the carriage return scanned as part of the lot number scan, the AUTO_ENTER is used to take it past the
UOM Field and also the lot number is entered in the lot number field. One additional thing the code needs to do is take the user past the Lot Number field as
well. Now since AUTO_ENTER behaves as if one carriage return was scanned, we need to find a way to reset the AUTO_ENTER variable to TRUE when it is
processing the carriage return in the UOM Field. For this if you look at the code, we have added a simple field listener to the UOM Field and all it does is reset
this variable in the session.

Page 10 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
So on processing the first AUTO_ENTER, the server fires the field exit in the UOM field and while it is doing that, because another AUTO_ENTER exists in the
session, it processes another carriage return and fires the field exit of the next field (Lot Number) in this case.

PL3


Code 1
Code 1.1 Code 1.2
Code 1.3
Code 1.4
Code 1.5
Code 1.6
Code 1.7
Code 1.8
Code 1.9

APPENDIX C

CUSTOMIZED BAR CODE SCAN EXAMPLE #2

This sample java code example shows how a user can use the Java callout for a scanned input to avoid having to relabel the warehouse or perform multiple
scans if locator-only labels are applied to all the locators. This is different from the first example in that this behavior will apply to all mobile pages, not just the
pick load, and it automatically populates the subinventory by just scanning the locator field, rather than requiring a concatenated subinventory / locator field.
Please note that the following code has been provided to demonstrate the customizable bar code scanning functionality. Oracle will not be responsible for
maintaining it1. The following code can be modified and distributed without permission from Oracle.

Problem Detail

Although MSCA in a non-WMS enabled organization supports non-locator controlled subinventories, the greater inventory visibility required for a WMS enabled
organization means that all subinventories should be locator controlled. Indeed, with very limited exceptions, all mobile screens that request stock location
information does so in two fields, by requesting first the subinventory and then the locator within that subinventory. While many workarounds to allow both the
subinventory and locator field to be populated in a single scan were presented earlier in this paper (concatenated barcodes with DFIs, special characters
configured by profile options, embedded carriage returns, etc.), all of the solutions required some form of special labeling of the locators. This is reasonable if
warehouse re-labeling was necessary for some other reason, or for a new warehouse, but this is a costly proposition if re-labeling was not already in the project
plan.

Code Logic

Thus, the desired functionality is to populate both the subinventory and locator if the locator is scanned while the active field is the subinventory field. Note that
this can be used alongside DFIs as well for out-of-order scanning. The complete functionality is as follows:
Page 11 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

1) If a non-subinventory value is scanned while in the subinventory field:
a) Check if value is a locator defined in that organization & if so, find subinventory for loc
i) If no locator is found, show No result is found & exit
b) Place subinventory associated to locator on subinventory field
c) Perform subinventory field exit validation
i) If subinventory fails validation, exit
d) Place scanned locator on locator field
e) Perform locator field exit validation
i) If locator fails validation, exit f) Move active field to next field

2) If a subinventory value is scanned while in the subinventory field process scan normally

With this logic, the user has the option of scanning either the subinventory or the locator in the subinventory field, with no changes to any of the locator labeling
required.

1 Note: there is a known issue in the sample code whereby it will not auto-populate the from or to locator fields when doing a subinventory transfer of loose /
non-LPN controlled material.

Code 1.99
Code 2
Code 2.1
Code 2.2
Code 2.3


SUMMARY
SUMMARY
This section summarizes the interplay of various techniques discussed in this document. Figure 7 shows the sequence in which scanned data is interpreted and
used by the application.
Page 12 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
The following table summarizes some common barcode related requirements and techniques used to address them:
Page 13 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 14 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
Page 15 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
APPENDIX A

EXAMPLE GTIN SETUP FOR VARIOUS EAN.UCC BARCODES
The following table shows sample GTIN configuration for different EAN/UCC data structures. These data structures could be stored in different bar-code
symbology.
Page 16 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
Page 17 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
APPENDIX B

CUSTOMIZED BAR CODE SCAN EXAMPLE #1
This sample java code example shows how a user can use the Java callout for a scanned input to increase Picking efficiency. 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.
Problem Detail
In the Pick Load page for a lot and serial controlled item the cursor is on the confirm subinventory field and expecting the subinventory to be scanned. The user
scans the subinventory, locator barcode and wants the cursor to move to the field after locator, which is the item field. Also then the user scans the lot number
and wants the item, unit of measure and lot number to be defaulted and move the cursor to the serial number field. This is useful in situations where you have a
lot number tied to one and only one item and also you are always dealing in one of the UOMs for that item.

If the page is not Pick Load page, the callout routine needs to make a call to the PL/SQL callout routine. If you have created the Java callout then by design, the
server will not make a callout to the PL/SQL routine. However, if you have a lot of code implemented already in the PL/SQL routine and want to utilise it without
having to rewrite it in Java for all other pages other than the Pick Load page, the call out to the same PL/SQL routine can be made from this java call out very
easily as you would see in this example.
Page 18 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Code Logic
The first part where the user wants to default the subinventory/locator in one scan can be implemented in one of the three ways:
c. One of the ways would be to have a concatenated barcode which has subinventory value followed by a carriage return followed by the locator value followed
by another carriage return.
d. The other way is by using delimiter characters as explained in this document above.
e. A third way is how it is implemented in this Java callout. In this we insert a session variable, AUTO_ENTER as TRUE. This method is particularly useful if you
do not want to change all the barcodes in your facility, as both the first two methods would require you to put the barcodes in a special way. In our example the
barcode being scanned is simply Subinventory DFI followed by Subinventory Value followed by locator seperator . followed by Locator DFI and then
the Locator Value with a carriage return appended by the gun. AUTO_ENTER processes the code as if one and only one carriage return was scanned after
processing the current scanned value.
Next the user scans the Lot Number when in the item field. In the example you will se that the suggested value of the item is populated in the item field, the
cursor is moved to the next field (UOM Field) because of the carriage return scanned as part of the lot number scan, the AUTO_ENTER is used to take it past the
UOM Field and also the lot number is entered in the lot number field. One additional thing the code needs to do is take the user past the Lot Number field as
well. Now since AUTO_ENTER behaves as if one carriage return was scanned, we need to find a way to reset the AUTO_ENTER variable to TRUE when it is
processing the carriage return in the UOM Field. For this if you look at the code, we have added a simple field listener to the UOM Field and all it does is reset
this variable in the session.
Page 19 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
So on processing the first AUTO_ENTER, the server fires the field exit in the UOM field and while it is doing that, because another AUTO_ENTER exists in the
session, it processes another carriage return and fires the field exit of the next field (Lot Number) in this case.
Page 20 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 21 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 22 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 23 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 24 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 25 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 26 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 27 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 28 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 29 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 30 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
APPENDIX C

CUSTOMIZED BAR CODE SCAN EXAMPLE #2
This sample java code example shows how a user can use the Java callout for a scanned input to avoid having to relabel the warehouse or perform multiple
scans if locator-only labels are applied to all the locators. This is different from the first example in that this behavior will apply to all mobile pages, not just the
pick load, and it automatically populates the subinventory by just scanning the locator field, rather than requiring a concatenated subinventory / locator field.
Please note that the following code has been provided to demonstrate the customizable bar code scanning functionality. Oracle will not be responsible for
maintaining it1. The following code can be modified and distributed without permission from Oracle.
Problem Detail
Although MSCA in a non-WMS enabled organization supports non-locator controlled subinventories, the greater inventory visibility required for a WMS enabled
organization means that all subinventories should be locator controlled. Indeed, with very limited exceptions, all mobile screens that request stock location
information does so in two fields, by requesting first the subinventory and then the locator within that subinventory. While many workarounds to allow both the
subinventory and locator field to be populated in a single scan were presented earlier in this paper (concatenated barcodes with DFIs, special characters
configured by profile options, embedded carriage returns, etc.), all of the solutions required some form of special labeling of the locators. This is reasonable if
warehouse re-labeling was necessary for some other reason, or for a new warehouse, but this is a costly proposition if re-labeling was not already in the project
plan.
Page 31 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
Code Logic
Thus, the desired functionality is to populate both the subinventory and locator if the locator is scanned while the active field is the subinventory field. Note that
this can be used alongside DFIs as well for out-of-order scanning. The complete functionality is as follows:
1) If a non-subinventory value is scanned while in the subinventory field:
a) Check if value is a locator defined in that organization & if so, find subinventory for loc
i) If no locator is found, show No result is found & exit
b) Place subinventory associated to locator on subinventory field
c) Perform subinventory field exit validation
i) If subinventory fails validation, exit
d) Place scanned locator on locator field
e) Perform locator field exit validation
i) If locator fails validation, exit f) Move active field to next field
2) If a subinventory value is scanned while in the subinventory field process scan normally
With this logic, the user has the option of scanning either the subinventory or the locator in the subinventory field, with no changes to any of the locator labeling
required.
1 Note: there is a known issue in the sample code whereby it will not auto-populate the from or to locator fields when doing a subinventory transfer of loose /
non-LPN controlled material.
Page 32 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 33 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 34 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 35 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Page 36 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...

Copyright 2003 Oracle Corporation. All rights reserved. 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.
Disclaimer: This document is provided for information purposes only and the contents hereof are subject to change without notice. Oracle
Corporation does not warrant that this document is error-free, nor does it provide any other warranties or conditions, whether expressed
orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. Oracle Corporation
specifically disclaims any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this
document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose,
without the prior written permission of Oracle Corporation.
Page 37 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
<>
Attachments
Appendix A (70.18 KB)
Code 1 (48.33 KB)
Code 1.1 (75.55 KB)
Code 1.2 (75.2 KB)
Code 1.3 (70.33 KB)
Code 1.4 (46.16 KB)
Code 1.5 (87.05 KB)
Code 1.6 (81.39 KB)
Code 1.7 (87.34 KB)
Code 1.8 (60.83 KB)
Code 1.9 (33.93 KB)
Code 1.99 (43.11 KB)
Code 2 (65.86 KB)
Code 2.1 (81.31 KB)
Code 2.2 (35.35 KB)
Code 2.3 (39.77 KB)
Fig 1 and 2 (24.19 KB)
Fig 3 (29.96 KB)
Fig 3p (11.9 KB)
Fig 4 (15 KB)
GTIN 2 (6.99 KB)
GTIN 3 (17.82 KB)
GTIN 1 (18.11 KB)
PL2 (18.34 KB)
PL3 (19.76 KB)
Related
Products
Page 38 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...
Oracle E-Business Suite > Logistics > Logistics > Oracle Warehouse Management > Materials Management > Materials Management
Keywords
BARCODE; BARCODES; GTIN; MSCA; WHITE PAPER
Back to Top

Copyright (c) 2014, Oracle. All rights reserved.

Legal Notices and Terms of Use

Privacy Statement
Page 39 of 39 Document 297992.1
11/06/2014 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=339019086799426&id=297992.1&displayIndex=2&_afrWindowM...