Vous êtes sur la page 1sur 76

Contents

1. Introduction............................................................................................................1
1.1 Overview................................................................................................................................. 1
1.2 Advantages.............................................................................................................................. 1
1.3 Software Updates .................................................................................................................... 2
2. Glossary ..................................................................................................................3
2.1 Device ..................................................................................................................................... 3
2.2 AS/RS ..................................................................................................................................... 3
2.3 Business Event ........................................................................................................................ 3
2.4 Device Directive ..................................................................................................................... 3
2.5 PLC ......................................................................................................................................... 3
2.6 DS ........................................................................................................................................... 3
2.7 Device Request Message ........................................................................................................ 3
2.8 Device Response Message ...................................................................................................... 4
2.9 Device Response Time............................................................................................................ 4
2.10 CarBri / Carousel Bridge........................................................................................................ 4
3. Schematic Details ...................................................................................................5
3.1 Schematic Diagrams ............................................................................................................... 5
3.2 Brief Description..................................................................................................................... 7
3.3 Recommended Implementation Strategy ................................................................................ 8
4. Setup........................................................................................................................9
4.1 Defining a Device in Oracle WMS ......................................................................................... 9
4.2 Assigning the Device to a WMS Business Event.................................................................. 10
4.3 Details from Device Vendor ................................................................................................. 10
4.4 Setting up the WCS Layer: ................................................................................................... 11
4.4.1 WCS Enable the Organization .................................................................................... 11
4.4.2 Update the Organization Access Form ....................................................................... 11
4.4.3 Setup with Warehouse Control System Responsibility............................................... 12
4.5 Setting up the Middle Tier .................................................................................................... 13
4.5.1 Directory Structure to be created on the Middle Tier ................................................. 13
4.5.2 Create carbri.xml - configuration file for Carousel Bridge ......................................... 14
4.5.3 Create startup script for the Device Simulator – startDS.sh........................................ 16
4.5.4 Create startup script for the CarBri – startCarBri.sh ................................................... 16
5. Runtime.................................................................................................................17
5.1 Starting the listener jobs on the WCS layer .......................................................................... 17
5.2 Starting the real PLC/DS....................................................................................................... 17

Page ii of 76
5.3 Starting the CarBri ................................................................................................................ 18
5.4 Initiating a request from the Mobile UI – Example with Miscellaneous Receipt Business
Event 20
5.5 Simulating a Device Request from CarBri to PLC/DS ......................................................... 22
5.6 Simulating a Device Response from CarBri to Oracle WMS ............................................... 23
5.7 Simulating a Device Response from DS to Oracle WMS via CarBri ................................... 24
6. Application Monitoring .......................................................................................26
6.1 WCS Administrator Home.................................................................................................... 26
6.2 WCS Directive Queue........................................................................................................... 26
6.3 WCS Log .............................................................................................................................. 27
7. Trouble Shooting..................................................................................................29
7.1 I get an exception when I try to run startCarBri.sh ............................................................... 29
7.2 I hit a Control-P from the telnet UI but I do not see a device request on the CarBri ............ 29
7.3 The Carousel Log does not get written ................................................................................. 29
7.4 Get the message NULL Query and hence doing nothing...................................................... 30
7.5 Unable to start more than 2 WCS device listeners................................................................ 30
8. Document Reference............................................................................................35
8.1 Current Document References .............................................................................................. 35
8.1.1 Historical Document References ................................................................................ 35
9. Appendix 1 – List of WMS Business Events......................................................36
10. Appendix 2 – WCS Configuration settings – explained ...................................37
11. Appendix 3 – Sample carbri.xml ........................................................................41
12. Appendix 4 – Case Study.....................................................................................42
12.1 Schematic Process Flow configured for Pick Load Business Event .................................... 42
12.1.1 Identify the WMS Business events ........................................................................... 42
12.1.2 Setup Devices in Oracle WMS and assign them to appropriate Business Event/s.... 43
12.1.3 Procure information Device Request/Response message structure........................... 44
12.1.4 Map the WMS business event with the Device Request Message............................ 44
12.1.5 Use the WCS Administrator responsibility to detail the request structure for each
device-level directive............................................................................................................... 56
12.1.6 Test between DB tier and the CarBri ........................................................................ 13
12.1.7 Test between DB tier, CarBri and the Device Simulator .......................................... 13
12.1.8 Test between DB tier, CarBri and the actual device ................................................. 13
13. Appendix 5 – WMS_DEVICE_REQUESTS_WCSV View details ...................1

Page iii of 76
Table of Figures
Figure 1 - Typical Schematic Diagram............................................................................................. 5
Figure 2 - WCS running with Device Simulator - Without PLC Tier .............................................. 6
Figure 3 - PLC running with Actual Device - With PLC Tier.......................................................... 7
Figure 4 - Define Device Form – New Device Type ‘Work Station’ ............................................... 9
Figure 5 - Output Type - API............................................................................................................ 9
Figure 6 - Multi Sign On Flag ........................................................................................................ 10
Figure 7 - Assign Device to Business Event................................................................................... 10
Figure 8 - Organization Access form.............................................................................................. 12
Figure 9 - WCS Configuration Settings.......................................................................................... 12
Figure 10 - Directory Structure to be created for CarBri on the Middle Tier ................................. 14
Figure 11 - Directory Structure for CarBri on the Middle Tier - View 2........................................ 14
Figure 12 - WCS Administrator Home ........................................................................................... 17
Figure 13 - Response Listener status .............................................................................................. 17
Figure 14 - Start Device Simulator ................................................................................................. 18
Figure 15 - Start CarBri .................................................................................................................. 18
Figure 16 - CarBri Login Screen .................................................................................................... 19
Figure 17 - Carousel Bridge Initialized .......................................................................................... 19
Figure 18 – Sign on to a Work Station before logging on to an ASRS .......................................... 20
Figure 19 - Sign on to ASRS .......................................................................................................... 20
Figure 20 - Initiate Device Request from Miscellaneous Receipt mobile UI ................................. 21
Figure 21 - The device request string sent to the DS via the CarBri............................................... 21
Figure 22 - DONE message in Carousel Log ................................................................................. 22
Figure 23 - Simulate from CarBri................................................................................................... 22
Figure 24 - Simulate Device Request from CarBri......................................................................... 23
Figure 25 - Simulate Device Response from CarBri ...................................................................... 23
Figure 26 - Simulated Device response on the WCS Log............................................................... 24
Figure 27 - Simulated Response from DS to CarBri....................................................................... 25
Figure 28 - Simulated Device Response from DS to WCS Log ..................................................... 25
Figure 29 - WCS Administrator Home ........................................................................................... 26
Figure 30 - WCS Directive Queue.................................................................................................. 27
Figure 31 - WCS Log ..................................................................................................................... 28
Figure 32 - NULL Query Issue on the Carousel Log...................................................................... 30
Figure 33 - Real life MHE Integration Scenario............................................................................. 42
Figure 34 - Subinventory setup....................................................................................................... 43
Figure 35 - Use Case 1 - Define Devices........................................................................................ 43
Figure 36 - Assign Device 'ASRS Crane 1' to Pick Load Business Event...................................... 43
Figure 37 - Sample directive settings based on tech specs for an ASRS and Sortation Conveyor . 44
Figure 38 - Note that there are 2 CarBri directories (1 for ASRS and 1 for Sortation Conveyor).. 10
Figure 39 - CarBri Settings for ASRS_C1...................................................................................... 11
Figure 40 - CarBri Settings for Sortation Conveyor SORT_1 ........................................................ 12

Introduction Page iv of 76
1. Introduction

1.1 Overview
Integration of WMS host systems with material handling equipment and automation systems can
create challenges for logistics. Prior to this release, these integration challenges were addressed
through a combination of Open API’s in Oracle WMS and a joint development with Oracle
Consulting of a warehouse control system layer (WCS), that was external to the Oracle WMS
product.
With this release, the existing Open API integration capability is expanded and a new execution
framework (WCS) has been incorporated into the Oracle WMS product. Together, these provide a
more flexible definition and execution framework for managing existing and more complex
integration requirements such as Pick to Light, A-frame, Conveyors and ASRS systems. During
device setup, business events may be mapped to either the improved execution framework or to
the Open API for the device integration.
Through this flexible support, the management of a large variety of material handling equipment
and automation systems can be managed directly from the host application environment without
the need for an external WCS component.

1.2 Advantages
After 11.5.10 CUI, an Oracle Customer can make use of a Warehouse Control System built into
the E Business Suite, instead of relying on a third party system to communicate to devices such as
• Carousels (Horizontal and Vertical)
• Scales
• Conveyers
• Pick to Light Systems
• Pick to Audio (Pick to Voice)
• Automated Storage and Retrieval Systems (ASRS)
To provide this communication to the devices requires a TCP/IP socket connect at the device level
interface such as one of the following:
• A PLC configured with a NIC card.
• A PC controller with a NIC card for socket communication, which brokers serial,
connects to the device or PLC.
• A Hardware Bridge controller with a NIC card for socket communication, which brokers
serial, connects to the device or PLC.
Till 11.5.10 Oracle WMS provided a stub API. This was to be implemented by the Customer
according to his needs. From 11.5.10.1CU, Oracle WMS provides an implementation of this stub
API along with a framework for defining device request message structure, according to the
device type being used.

Introduction Page 1 of 76
1.3 Software Updates
WCS Carousel Bridge Patch
4580210 - WMS Warehouse Control System Carousel Bridge Patch - with FND Images Pre-
requisite

WCS Desktop Patches


4042499 - Supply Chain Management Family Pack J Rollup Patch 1
4522497 - Material Handling Integration Improvements - Post 11.5.10+
4574068 - Material Handling Integration Improvements - Post 11.5.10+
5200583 - WMS_CAROUSEL_INTEGRATION_PVT.RECEIVE_PIPE_LISTENER Response
length too short

Introduction Page 2 of 76
2. Glossary

2.1 Device
This is equipment, typically used for material handling of large volumes in a warehouse. The
devices currently supported are Carousels (Horizontal and Vertical), Scales, Conveyers, Pick to
Light Systems, Pick to Audio (Pick to Voice) Automated Storage and Retrieval Systems (ASRS).

2.2 AS/RS
Automatic Storage and Retrieval System. Automated, robotic system for storing and retrieving
items in a warehouse.

2.3 Business Event


It is a Functional event, which acts as a trigger for initiating a device request. Pick Load is an
example of a business Event. Refer Appendix 1 for the list of WMS Business Events.

2.4 Device Directive


It is a command string that needs to be sent from the ERP system (or any other system) to make a
device perform a specific task. There are, almost always, multiple tasks (with a corresponding
command string) that a device can perform. Each of these command stings is called a device
directive.
E.g., A light stack can turn on a Green light (task). An example of a command string it expects is
BULK,B1.1.1,GREEN,ON. This message is very device and vendor specific and comprises a
device directive specific to this light stack to turn on the Green Light on it.

2.5 PLC
This stands for a Programmable Logic Controller. The device vendor along with all the supporting
network hardware for his specific device typically provides this. The vendor will also publish the
alphabet of the device i.e., the set of all directives that are understood by the device.

2.6 DS
This stands for a Device Simulator. This is a software component to test the Warehouse Control
System in the absence of a real device.
The Device Simulator is capable of
• Running as a TCP/IP server
• Listening on a specified port number
• Allowing a trusted client IP address to connect from a trusted client port number
• Being configured with an ASCII character to denote end of Request Message
• Sending a configured response when the end of request message is reached
In summary, the DS replicates a PLC, when there is no PLC to test the WCS.

2.7 Device Request Message


A command string (directive), triggered by a business event and sent from the (E Business Suite)
EBS to the device controller to make the device perform a specific device task.

Glossary Page 3 of 76
2.8 Device Response Message
A character string returned by the device controller to the EBS as a response to a Device request
that was sent earlier. The device could respond with a success or failure (with appropriate error
message) or may not respond at all (So the requesting system will always need to assume that the
device directive succeeded). The response characteristics are to be provided by the device vendor.

2.9 Device Response Time


The processors on the PLCs are usually slower compared to the processors that run the ERP
servers. Typically, the PLCs have a response time of 50 to 70 milliseconds. The device vendor for
better integration with the Warehouse Control System of WMS should provide this detail.

2.10 CarBri / Carousel Bridge


This is a middleware solution, introduced in 11.5.10CU1, which acts as the transport layer for
Device Request Messages and Device Response Messages between the Database Tier of the E
Business Suite and the PLC.

Glossary Page 4 of 76
3. Schematic Details

3.1 Schematic Diagrams

Figure 1 - Typical Schematic Diagram

Schematic Details Page 5 of 76


Figure 2 - WCS running with Device Simulator - Without PLC Tier

Schematic Details Page 6 of 76


Figure 3 - PLC running with Actual Device - With PLC Tier

3.2 Brief Description


There are 3 layers in the system. They are the database tier, the middle tier (which might be
different from the DB tier where the Carousel Bridge Middleware will run) and the Program Logic
Controller (PLC) layer.
Once the initial setup has been done in EBS (see the section Document Reference), at runtime,
device requests will originate from the Oracle ERP system. The Carousel Bridge middleware will
function as a transport layer – talking to the DB on one end and to the device on the other end (or
an emulator called the DS – Device Simulator)
There will be a one-one mapping between a device defined in the Oracle WMS system and an
instance of the Carousel Bridge on the middle tier. The behavior of the Carousel Bridge (CarBri)
will be controlled be means of a configuration file carbri.xml, which is documented in a later
section.

Schematic Details Page 7 of 76


3.3 Recommended Implementation Strategy
1. Identify the WMS Business events in the Business process where a device will be
invoked. (Refer Appendix 1 for list of WMS Business events)
2. Refer Oracle Warehouse Management System Material Handling Device Integration Kit
for the standard Device setup (Creating Devices in Oracle WMS and assigning them to
the appropriate business event).
3. Procure information from the device Vendor about the Device Request message structure
that the device understands. (E.g., a lightstack can understand 2 request directives – Turn
on Green Light or Turn on Red Light. That is all the alphabet understood by the device)
4. Map the WMS business event with the Device Request Message. (One WMS Business
event may map to more than one Device-level directive)
5. Use the new WCS Admin responsibility to detail the request structure for each device-
level directive.
6. Test between DB tier and the CarBri (set Simulate to Yes in carbri.xml (There is no need
to plug in the Device to test at this point)
7. Test between DB tier, CarBri and the Device Simulator (Set Simulate to No) and
socketHostName to point to the IP address of the DS. Once this testing is satisfactory, the
system is ready to be promoted to UAT. This step can be used to validate the device
directives that are provided by the Device Vendor by testing message sending between
the Device Simulator and the PLC and tweaking the WCS Directive settings if needed.
8. Test between DB tier, CarBri and the actual device. The system will be fully functional at
this point.

Schematic Details Page 8 of 76


4. Setup
The objective of the setup illustrated in the following sections would be to perform ‘Miscellaneous
Receipt’ using a device ‘ASRS_C1’ which has been setup for a Subinventory ‘ASRSC1’ in a
WMS-enabled Organization ‘W1’
Setup checklist:
• Defining a Device in Oracle WMS
• Assigning the Device to a WMS Business Event
• Setting up the WCS Layer

4.1 Defining a Device in Oracle WMS


Defining a device in Oracle WMS is documented in Oracle Warehouse Management System
Material Handling Device Integration Kit. The setup for CU1 functionality is documented below.
From CU1 there will be a new device type supported called ‘Work Station’ which works in
tandem with devices of type ASRS. No WMS task can be dispatched to this type of device. But a
user will need to sign on to a ‘Work Station’ before signing on to a device of Type ASRS to
perform a task. Refer Appendix 4 to know more about usage of a device type Workstation.

Figure 4 - Define Device Form – New Device Type ‘Work Station’


Output Type is typically set to API to make use of the WCS request-processing framework.

Figure 5 - Output Type - API


To accommodate the requirement where more than one user may need to sign-on to a single
ASRS, there is a new check box called ‘Multi Sign On’ provided in CU1. For all device types
other than ASRS, this should be unchecked.

Setup Page 9 of 76
Figure 6 - Multi Sign On Flag

4.2 Assigning the Device to a WMS Business Event


Assigning a device to a Business in Oracle WMS is documented in Oracle Warehouse
Management System Material Handling Device Integration Kit. Please refer the same.

Figure 7 - Assign Device to Business Event

4.3 Details from Device Vendor


Typically the following details must be procured from the device vendor before proceeding.
• Confirm from the device vendor that the device controller is capable of communicating
using TCP/IP protocol and can function as a TCP/IP server socket.
• The device vendor must publish the list of all directives supported by his device and the
corresponding message structure for it.
• For every request message to the device, the vendor must publish if there will be a
response that the device is going to send back to the EBS. If yes, then the message
structure for each of the response messages must be published.
• Any other runtime characteristics of the device - like the device response time. (This
detail can be used to set DIRECTIVE PAUSE DELAY described in Appendix 2)
For our test ASRS crane we assume that a device vendor ‘X’ has provided the following details.
• Directive Name is ‘MISC_RCPT’
• Request Message structure to be sent to the device is
‘ .misc_rcpt.C.0.0.0.0.0000.ACTION..(AS1.1.1)..4.11826.AS1.1.1. ’
(This starts with ASCII 2 and ends with ASCII 3 and contains the transaction details in
the request message)
• Response Message from the device is a constant ‘DONE’
You will be making use of these details when setting up WCS. See the section titled WCS
Configuration Settings

Setup Page 10 of 76
4.4 Setting up the WCS Layer:
Checklist for WCS Setup:
• WCS Enable the Organization
• Update the Organization Access Form
• Setup with Warehouse Control System Responsibility

4.4.1 WCS Enable the Organization


Log in to Oracle Applications EBS with responsibility ‘Warehouse Manager’. On the
‘Organization Parameters’ form check the flag ‘WCS Enabled’
Note: Once this flag is enabled, any custom logic that a Customer had implemented by making use
of the WMS Stub API (See Oracle Warehouse Management System Material Handling Device
Integration Kit in the Document reference section) would not be called anymore. Instead the
WMS-implementation of the stub API would be used to process device requests.

4.4.2 Update the Organization Access Form


Insert 2 records in this form for the chosen Org, Application – ‘Warehouse Management’ and
Name ‘Warehouse Control System User’ and ‘Warehouse Control System Administrator’

Setup Page 11 of 76
Figure 8 - Organization Access form

4.4.3 Setup with Warehouse Control System Responsibility


Log in to Oracle EBS with responsibility ‘Warehouse Control System Administrator’. Click
‘Setup’
Enter the Organization Code when prompted and click on ‘Choose’. (This step will fail even if one
of the first 2 setup steps have not been done correctly)

4.4.3.1 Directive setup steps


This step will be performed from the ‘Configuration’ page
Directive Name, Directive Request Query and Directive Response Query are mandatory for a
WMS Business Event.
Directive Name will be mapped to a directive supported by the device type as provided by the
vendor.
Directive Request Query can be either a constant string (rarely the case) or a query on any
table/view accessible to user APPS, using which, a request can be sent from the Oracle System to
the device at runtime. Executing this query at runtime using bind variables p_request_id and
p_task_id will populate the contents of the request string.
Directive Response Query is also a query on any table/view accessible to user APPS. When WMS
gets a response string from the device, it will compare the incoming string with the expected
response. If they match then that directive will be marked as a ‘Success’.
Note that some devices do not send a response back (this would be in the device specs provided by
the vendor). In such a case the Directive Response Query need not be setup in the Configuration
table and any request sent to the device will immediately be marked as a ‘Success’

Figure 9 - WCS Configuration Settings


Note the following things in the sample config settings for one directive of our test ASRS crane.
(Correlate these with the details provided in the section Details from Device Vendor)

Setup Page 12 of 76
• ‘MISC_RCPT’ is the device directive that we are setting up here.
• Directive Request Query is created based on the directive structure published by the
device vendor. Here the request query is based on the view
WMS_DEVICE_REQUESTS_WCSV (See Appendix 5 for column details of this view).
For a Customer, the source of data for the request message could be any other
table/tables.
• Directive Response Query has been set to a constant ‘DONE’ (as published by the device
vendor). Had it not been a constant string that the device sends as a response message,
then the Directive Response Query would also have been a SQL Query to construct the
message dynamically at runtime based on what the device is expected to send back as
response. (When the expected device response matches the runtime device response then
that directive is marked as a ‘Success’)
• Sequence ID column matches all the 3 configuration records for the same device type and
Business Event. What this means, is that ‘MISC_RCPT’ is a directive published by the
device vendor and the request message that it expects is defined by the Directive Request
Query and the expected response for that directive is defined by a Directive Response
Query. The common thread to list them all is the sequence id.
The above setup process would be repeated for each device directive that we intend to make use
of.

4.4.3.2 Optional setup steps


Refer Appendix 2 for detailed explanation of the WCS Configuration settings.

4.5 Setting up the Middle Tier


Checklist for setting up the Middle Tier
• Create Directory Structure
• Create carbri.xml
• Create startup script for Device Simulator
• Create startup script for Carousel Bridge

4.5.1 Directory Structure to be created on the Middle Tier


The recommended installation location for the CarBri middleware is on the middle tier under
$APPL_TOP/carbri. Create a subdirectory under this for each instance of the CarBri. (Note that
there is a one to one mapping between each device defined in WMS and a CarBri installation on
the middle tier)

Setup Page 13 of 76
Figure 10 - Directory Structure to be created for CarBri on the Middle Tier

Figure 11 - Directory Structure for CarBri on the Middle Tier - View 2

4.5.2 Create carbri.xml - configuration file for Carousel Bridge


Refer Appendix 3 for a sample carbri.xml file. Each element in the configuration file is explained
in the table below

Setup Page 14 of 76
Number Element Sample Value How to get the value Typically
Modified?

Device
1. ID Device ID defined in Oracle Responsibility: Warehouse Manager Y
WMS Form: Define Devices
Query the device that you are
currently setting up. Click on Help >
Diagnostics > Examine.
Enter the apps password if prompted.
Block: DEVICES
Field: DEVICE_ID
Note the value. This will be the value
to be entered in carbri.xml
2. Protocol 2 2 denotes TCP/IP – which is N
currently supported by CarBri
3. JDBCURL jdbc:oracle:thin:@ap6171rt.us. This is the JDBC Url where you need Y
oracle.com:1521:wmsdv11i to specify the Database hostname,
TNS Listener port and Database SID.
4. Simulate No If this element is set to Yes then there Y
is no need to plug in the DS or the
PLC to test the Device Integration
Framework.
If this element is set to No then either
the DS or the PLC must be started up
and made available on the LAN
before starting the CarBri
SocketInfo
5. socketHostName 140.87.204.121 This will be the IP address of the host Y
where the DS is running or the IP
address of the PLC on the network.
This setting will take effect only if
Simulate is set to No.
6. socketPortNumber 4444 This will be the TCP/IP server Y
listener port. If using the DS then this
can be specified as a runtime
parameter.
If using the PLC then this can be
setup-using software usually
provided by the PLC vendor.
7. socketLocalPort 5170 This is the only trusted client port Y
from where the TCP/IP server will
accept connections.
If using the DS then this can be
specified as a runtime parameter.
If using the PLC then this can be
setup-using software usually
provided by the PLC vendor.
SerialPortInfo
9. portName COM2 N
10. serialPortTimeOutMillis 5000 N
11. baudRate 9600 N
12. dataBits 8 N
13. stopBits 1 N
14. parity 0 N
AppsInfo
15. dbcfile /appmgr/wmsspprjappl/fnd/11. On the middle tier look for the DBC Y
5.0/secure/ap6171rt_wmsspprj. file under $FND_TOP/secure.
dbc Specify the full path in this element

Setup Page 15 of 76
Number Element Sample Value How to get the value Typically
Modified?

16. appsuser MFG Oracle Applications username (With Y


WCS User Responsibility)
17. password WELCOME Oracle Applications password Y
applicationshortname WMS N
18.
19. responsibilitykey WMS_WCS_USER N

4.5.3 Create startup script for the Device Simulator – startDS.sh


This sample DS is configured to listen on port number 4444. The only client that it will allow
itself to be connected to is 140.87.204.121 from port number 5170 on the client. On getting ASCII
3 (which identifies end of device request) the DS will respond with a ‘DONE’
##############################Sample startDS.sh##############################
#Param 1: TCP Socket Port number on which the DS is listening
#Param 2: Trusted Client IP Address
#Param 3: Trusted Client IP Port Number
#Param 4: ASCII value, which the DS interprets as end of message from carbri
#Param 5: Message sent back by DS on receiving end of message identifier

java oracle.apps.wms.wcs.device.server.DummyDeviceServer 4444 140.87.204.121 5170 3 DONE


##############################Sample startDS.sh#############################

4.5.4 Create startup script for the CarBri – startCarBri.sh


##############################Sample startCarBri.sh#############################
#Enter the directory where the config file carbri.xml is stored
#setenv WCS_TOP /home/simran/junk/logutr12_CarBri
#In order to see the images correctly on the login screen
#ensure that in the same directory as WCS_TOP, there is a sub-directory
#called 'images'
#with a soft link to the files mentioned below
#You can create a soft link in $WCS_TOP/images by the following commands
#ln -s $FND_TOP/media/appslogo.gif
#ln -s $FND_TOP/media/logo.gif

CLASSPATH=/tmp/patch/wmsspprj_CarBri:$CLASSPATH
java oracle.apps.wms.wcs.carbri.client.CarBriUI
##############################Sample startCarBri.sh#############################

Setup Page 16 of 76
5. Runtime

5.1 Starting the listener jobs on the WCS layer


Log in to EBS with responsibility ‘Warehouse Control System Administrator’. Click on ‘Home’.
Enter Org Code when prompted and click on ‘Choose’.
You will be taken to the WCS Administrator Home. Locate your device and ensure that
• ‘Listener Status’ shows a Green arrow (if it is red, click on it to make it green)
• Click on ‘Job Status’ once to start the listener job.

Figure 12 - WCS Administrator Home


To ensure that the listener job is running ok, navigate to Setup tab > Log

Figure 13 - Response Listener status


Note the last updated column. It will give an indication that the job is running on the DB tier and
listening for incoming requests.

5.2 Starting the real PLC/DS


On the Middle Tier start the DS as shown below. (There will be no output shown on the terminal,
but the DS is listening to incoming requests)

Runtime Page 17 of 76
Figure 14 - Start Device Simulator
For starting the PLS TCP/IP listener, please refer the device vendor documentation.

5.3 Starting the CarBri


On the Middle Tier, in a different terminal window, start the CarBri as shown below.

Figure 15 - Start CarBri


Click Connect on the CarBri Login Screen.

Runtime Page 18 of 76
Figure 16 - CarBri Login Screen
When the Carousel Bridge has initialized successfully, it should appear as shown below.

Figure 17 - Carousel Bridge Initialized

Runtime Page 19 of 76
5.4 Initiating a request from the Mobile UI – Example with Miscellaneous Receipt Business Event
Connect via a telnet client to the MWA server (get the hostname and port number details from
your System Administrator). Login with EBS username/password and responsibility as ‘Whse
Mgmt’
Navigate to ‘Tasks > Change Sign-ons’
Enter ‘Organization Code’ when prompted.
Enter ‘Device’
If the device type being used is ASRS, logon to a ‘Work Station’ before logging on to the ASRS
Device. For all other Device Types, directly log on to the Device.

Figure 18 – Sign on to a Work Station before logging on to an ASRS

Figure 19 - Sign on to ASRS


From the Main Mobile Menu, navigate to Warehousing > Inventory > Receipts > Misc Receipt
Enter the transaction details and hit Ctrl+P
Note:
This Miscellaneous Receipt is an example of a ‘User-Initiated’ device request. All the transaction
details need to be entered by the user and only then can the request be sent to the device based on
the Ctrl+P hotkey. There could also be an ‘Auto-invoked’ device request. For e.g. for Business

Runtime Page 20 of 76
event ‘Pick Load’ if the device is set to auto-invoke true in the ‘Assign Device to Business Events’
form then as soon as the user navigates to the Pick Load page, then the suggested
Subinventory/locator, item, qty etc are used to fire a request to the device automatically (no hotkey
needed).

Figure 20 - Initiate Device Request from Miscellaneous Receipt mobile UI

Figure 21 - The device request string sent to the DS via the CarBri

Note that in the above figure, the DS responded with a ‘DONE’ (as it was configured to) and the
same appears in the WCS Log page shown below.

Runtime Page 21 of 76
Figure 22 - DONE message in Carousel Log

5.5 Simulating a Device Request from CarBri to PLC/DS


It is possible to simulate Device Request (from CarBri to DS/PLC) or Device Response (from
CarBri to WMS). This step can be used to validate the device directives that are provided by the
Device Vendor by testing message sending between the Device Simulator and the PLC and
tweaking the WCS Directive settings if needed.

Figure 23 - Simulate from CarBri


Click on Simulate > Device Request and type a message that you wish to send to the DS/PLC.
Click ‘Send’

Runtime Page 22 of 76
Figure 24 - Simulate Device Request from CarBri
In the above figure, note that the message is appended with ‘$3$’. This will send and ASCII 3 to
the DS/PLC. The DS is configure to respond with a ‘DONE’ on getting an ASCII 3 (which
happens as expected)

5.6 Simulating a Device Response from CarBri to Oracle WMS


Click on Simulate > Device Response and type a message that you wish to send to WMS. Click
‘Send’

Figure 25 - Simulate Device Response from CarBri


Note that $2$ from the CarBri has been sent to the Database as a CHR(2) – which is the ASCII
value of 2. The simulated response can be viewed in the WCS Log shown below.

Runtime Page 23 of 76
If we set Simulate to Yes in carbri.xml then the CarBri will not send any auto-reply. The user will
need to go to menu item 'Simulate' > 'Response' and type the response and hit the 'Send' button so
that the message gets sent to the DB. Note that if you want to have an ASCII character (like an
ASCII 2) in the response then you should type $2$ followed by a space (if it is in the beginning of
a message) or a $2$ with a space before (if the ASCII character is at the end of a message)
e.g.
Message typed in CarBri Simulate > Response dialog window:
$2$ PLT100 PABULK PB1.1.1 500 LOT003 LPN0158 SUCCESS $2$
Here the response message is
PLT100 PABULK PB1.1.1 500 LOT003 LPN0158 SUCCESS
When the user hits the send button then an ASCII 2 will get attached to the front of the message
and an ASCII 3 will get attached to the end of the message. In the Carousel Log it will turn up as
CHR(2) PLT100 PABULK PB1.1.1 500 LOT003 LPN0158 SUCCESS CHR(2)
in a form understandable to the DB
Note 1: ASCII 2 is a non-printable character and will show up as on the CarBri
Note 2: ASCII 2 or 3 or any other character is vendor dependent. It has to be specified in the tech
specs by them. The implementer will need to setup the directive_response_query in the WCS layer
accordingly. In effect we can support any vendor message structure.

Figure 26 - Simulated Device response on the WCS Log

5.7 Simulating a Device Response from DS to Oracle WMS via CarBri


Type a response message on the DS terminal window and hit ‘Enter’. You will see the same
message on the CarBri as shown below.

Runtime Page 24 of 76
Figure 27 - Simulated Response from DS to CarBri
The same will be reflected on the WCS Log as shown below.

Figure 28 - Simulated Device Response from DS to WCS Log


After this step, the DS can be replaced seamlessly by the real PLC (by changing the
socketHostName in carbri.xml - to point to the IP address of the PLC instead of the DS)
The system will be fully functional when all the directives supported by the Device are setup
correctly in the steps described above.

Runtime Page 25 of 76
6. Application Monitoring

6.1 WCS Administrator Home


The WCS Administrator from the Home Page can monitor the Application.
The Administrator can
• Monitor the directives for each individual device
• Get a graphical representation of the same
• Monitor the Employees and the Devices they are currently signed on to
• Sign off users from any device if needed
• Check standard Workflow Notifications

Figure 29 - WCS Administrator Home

6.2 WCS Directive Queue


The Administrator can navigate to this screen by clicking an item in the Message Status Table for
a particular device on the WCS Home Page or navigate via Setup > Directive Queue

Application Monitoring Page 26 of 76


Figure 30 - WCS Directive Queue
Note that a WCS directive record can have one of 5 statuses – Pending, Current, Success, Failure
or Cancelled. Each of these statuses for a record in the Directive Queue table is explained briefly
below:
• Pending: This is the initial status of a record in the Directive Queue table
• Current: This is the status of the record when the request has been sent to the Device and
WCS is waiting for a response
• Success: This is the status of the record when the device has sent a response message,
which exactly matches the expected response configured in WCS. If the device is not
expected to send a response back to WCS, then the record is directly marked as ‘Success’
after sending the request message to the device.
• Failure: This is the status of the record when one of the following occurs – a response
message is received by the WCS from the device which does not match the expected
response or the maximum request attempts (configurable in WCS as DIRECTIVE MAX
ATTEMPTS) are reached or there is no response from the device for a time period more
than the timeout (Configurable in WCS as DIRECTIVE RESPONSE TIMEOUT)
• Cancelled: The WCS Administrator can choose to cancel any directive at any point. Such
records are updated in the queue table with a status of ‘Cancelled’. They will not be
processed when sending messages to the device.

6.3 WCS Log


Whether or not the WCS Log will get written will be governed by the standard INV Debug profile.

Application Monitoring Page 27 of 76


Figure 31 - WCS Log

Application Monitoring Page 28 of 76


7. Trouble Shooting

7.1 I get an exception when I try to run startCarBri.sh


Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'localhost.0'
as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.access$000(X11GraphicsEnvironment.java:53)
at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:142)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:131)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
at java.awt.Window.init(Window.java:270)
at java.awt.Window.<init>(Window.java:318)
at java.awt.Frame.<init>(Frame.java:419)
at oracle.apps.wms.wcs.carbri.client.CarBriUI.<init>(CarBriUI.java:39)
at oracle.apps.wms.wcs.carbri.client.CarBriUI.main(CarBriUI.java:415)
Solution:
Set the value of the Environment Variable DISPLAY correctly
e.g.,
setenv DISPLAY 144.25.77.219:240.0
startCarBri.sh

7.2 I hit a Control-P from the telnet UI but I do not see a device request on the CarBri
Solution:
Check the Directive Request Query for syntactic correctness
Check that the device ID in carbri.xml matches the Device, which is initiating the request.

7.3 The Carousel Log does not get written


Solution:
Enable the INV Debug profile before using WCS.

Trouble Shooting Page 29 of 76


7.4 Get the message NULL Query and hence doing nothing

Figure 32 - NULL Query Issue on the Carousel Log


Solution:
Ensure that the Directive Name is not too long (it has a limit of 16 characters).
e.g.
Directive name setup as SEND_DELETE_WAVE_014 will result in an error shown above.
Directive name setup as PAN_014 will work fine.

7.5 Unable to start more than 2 WCS device listeners


Run the following query. Notice that the default value for parameter job_queue_processes is 2.

Trouble Shooting Page 30 of 76


At the SQL* Prompt SET JOB_QUEUE_PROCESSES to at least the number of devices (Check
with the DBA on the number of processes permitted for the current user)

On the WCS Admin Home Page, click on Stop all Jobs

Trouble Shooting Page 31 of 76


Click on Recreate All Jobs

Click on Start All Jobs

Trouble Shooting Page 32 of 76


Query the Carousel Log on the Setup tab without any query criteria

Trouble Shooting Page 33 of 76


Here you would be able to see all the listeners (corresponding to each device) up and running.

Trouble Shooting Page 34 of 76


8. Document Reference

8.1 Current Document References

Document Name Comments

Release 11i10 Consolidated Update 1 (CU1) Version: 1.0


Oracle Supply Chain Management Section 3.2.2.4 Built-in Material Handling Control
System (WCS)
Oracle® Warehouse Management User’s Guide Release 11i Explaining Material Handling Devices
Pages 6-26 to 6-41

8.1.1 Historical Document References

Author Document Name URL

Paul Taylor Oracle Warehouse Management https://metalink.oracle.com/cgi-


System Material Handling Device bin/cr/getfile.cgi?p_attid=151811.1:283345
Integration Kit

Document Reference Page 35 of 76


9. Appendix 1 – List of WMS Business Events
• Cycle Count
• Direct Receipt
• Inspection
• Misc/Acct Receipt
• Misc/Acct Issue
• Move Order Task Allocation
• Organization Transfer
• Pick Load
• Pick Drop
• Pick Release
• Putaway Drop
• Ship Confirm
• Standard/Inspection Receipt
• Subinventory Transfer
• Task Cancel
• Task Complete
• Task Confirm
• Task Skip
• Truck Load
• Truck Load and Ship
• WIP Pick Release

Note 1:
Till 11.5.10CU1 there is no capability for WCS to provide a response to complete the functional
WMS transaction. We do have the task confirmation API but is it limited in the business events
that it can be used to confirm. For the workaround refer Appendix 2 under Configuration
Parameter DIRECTIVE EXECUTE ACTION. That is an example of how to complete a WMS
functional flow (Org transfer in this case) at the end of processing a set of device directives for
moving the material.
Note 2:
There are a number of autonomous systems provided by various device vendors which function as
Autonomous Cycle Counting systems (No request needs to be sent from the ERP system before
the MHE comes back with the results of the Cycle Count). Such systems can be supported once
there is an open API provided by Oracle WMS for Cycle Counting. This is not currently supported
and is planned for a future release.

Appendix 1 – List of WMS Business Events Page 36 of 76


10. Appendix 2 – WCS Configuration settings – explained
These are the details of the settings that the WCS Administrator needs to perform before using
WCS functionality of Oracle WMS. The mandatory setups have been marked with a ‘Y’

Configuration Default
Functional Description Mandatory
Parameter Value
DEVICE N
ACCESS Placeholder for future enhancement
TIMEOUT
DEVICE N
Placeholder for future enhancement
ACCESS TYPE
There should be at least one Directive defined for a device type, Y --
DIRECTIVE
business event, and sequence combination. This Directive will
NAME
have a corresponding Request/Response query.
DIRECTIVE If set to 'Y' and if the current directive fails due to max attempts N
CASCADE reached, then the rest of the directives in sequence too get marked
FAILURE as failed.
This config parameter is to configure a certain block of directives N --
fire only when an earlier block of directives has completed.
DIRECTIVE
This config parameter is used to define the segment locator to
DEPENDENCY
start the comparison in determining the sequence id dependency.
SEG ID
This is not used unless the DIRECTIVE DEPENDENCY SEQ ID
is set and active.
DIRECTIVE N --
This config parameter is to setup a list of dependent directives to
DEPENDENCY
execute in a particular order.
SEQ ID
If the value of this parameter is set then the device id stamped in N
the directive queue record will be sourced from this configuration
DIRECTIVE
setting for the business event, sequence, and device type
DEVICE ID
combination. If this value is NULL then the value of the task
device id will be utilized.
A device directive will succeed in 1 way; but may fail in many N
different ways. This is a configuration setting, which will allow
the user to configure the directive error message that can be
DIRECTIVE coming back from the device.
ERROR 1 Note: Directive Error Name is configurable, but the action that is
supposed to happen when the directive errors is not configurable.
This could be reserved for later with the Edge Server and BRM
(Business Rules Manager) coming into the picture.
DIRECTIVE N
-Do-
ERROR 2
DIRECTIVE N
-Do-
ERROR 3
DIRECTIVE -Do- N

Appendix 2 – WCS Configuration settings – explained Page 37 of 76


ERROR 4
DIRECTIVE N
-Do-
ERROR 5
If a particular directive has this configuration value set to 'Y', N N
when we fire the device request, then instead of sending a
directive to the DBMS PIPE, we will do an execute immediate for
that directive.

A good example for this is when the user wishes to perform an


DIRECTIVE Organization transfer as the last step in a sequence of 5 device
EXECUTE directives. He can set up the last directive with the Directive
ACTION Execute Action set to 'Y' and for that Directive Request Query, he
will make an API call for the Organization Transfer.

With this approach, we do not need any code changes to support


different APIs that may need to get called at the directive level for
each different Customer-Device Vendor configurations (the
directives are Device Vendor dependent)
This configuration is to set the maximum number of times that N 3
DIRECTIVE
WMS will try to send a directive to the device (without getting a
MAX
response) before marking the directive as a Failure in the queue
ATTEMPTS
table. By default, we will try to send the directive 3 times.
Configurable parameter to slow down the application at directive N 0
request level if the hardware is unable to keep pace. The delay
specified for this configuration value will be in seconds. There are
DIRECTIVE
some devices, which have a response times varying between 50
PAUSE DELAY
milliseconds and a few seconds. By making this a configurable
parameter, WMS can support very fast and relatively slow
devices. By default, the value for this configuration is set to 0.
If the value of this parameter is set then the pipe name stamped in N
the directive queue record will be sourced from this configuration
DIRECTIVE PIPE
setting for the business event, sequence, device type combination.
NAME
If this value is NULL then the value of the pipe name will be
taken from the PIPE_NAME configuration value.
A good example is the locator full scenario, where we are using N P
the ASRS to Putaway material to a locator, which is Full. The
device returns an error condition and we want an alternate
directive to fire. These are called fallback directives. These are set
to be initially in Cancelled state ('X') and will become Current
DIRECTIVE ('C') only when the previous directive has failed with a 'FULL'
QUEUE STATUS condition. This fallback directive will fire and route the material
from the ASRS to an Exceptions station where the Supervisor can
take corrective action.

If this is not set, then the default will be 'P' Pending. For fallback
directives, this should be set to 'X' Cancelled.
DIRECTIVE When we try to update the directive queue table to any status N
QUEUE UPDATE (Current/Failure/Pending/Success/Cancelled), we will take the

Appendix 2 – WCS Configuration settings – explained Page 38 of 76


device type, business event, sequence combination and query this
configuration setting. This will yield the Directive that we are
trying to narrow down and update in the queue table. (The 3rd
directive should not be marked as a Success when we get a
response for the 1st directive)

This is applicable only when we need to make use of dependent


directives.
This can be a query or an API call (provided Directive Execute Y --
DIRECTIVE Action is set to 'Y'). At runtime, WMS will perform an execute
REQUEST immediate on this configuration value, populate the directive
QUERY queue table and fire the request to the DBMS PIPE on which the
Carousel Bridge is listening.
This will be the response that we are expecting back from the Y
DIRECTIVE
device. If the actual response matches the one that we are
RESPONSE
expecting then the directive queue record will be marked as a
QUERY
success.
This configuration setting is to control the number of seconds N 20
DIRECTIVE
that the 'Current' directives in the queue table should remain in
RESPONSE
that state before timing out. By default, the timeout delay is 20
TIMEOUT
seconds.
This configuration serves as the 'ON/OFF' switch for the DBMS N ON
job which is listening to the responses coming back from the
device (there will be one job per device). At runtime, when the
WCS Administrator tries to create a new job from the OAF Home
then this configuration setting will be created in the configuration
PIPE LISTENER
table and the value is defaulted to 'ON'.
SWITCH
From the UI, if the Administrator wishes to suspend the job then,
he can click a UI control, which set this configuration to 'OFF'.
The UI control serves as a toggle and can be used to turn the
listener ON or OFF any number of times.
There will be 2 pipes associated with each device. They will be N Device
OUT_<PIPE_NAME> and IN_<PIPE_NAME> See Section 6.3 Id
schematic diagram. The value for this configuration parameter
should be set to the Device Id (in the Define Devices form) and
the sequence should also be set to the device id.
PIPE NAME
If this configuration does not exist when the WCS Administrator
tries to start a listener job on the DB then there will be a
PIPE_NAME configuration created in the config table with the
default value as the device id for which he is trying to start the
DBMS JOB.
Inside the listener process, when we call the DBMS N 5
PIPE.receive_message API then we need to specify a pipe
PIPE TIME OUT
timeout period. If there is no record in the config table then the
default value is taken as 5 seconds.
QUEUE PURGE The directive queue table can grow very quickly. Every time we N 3600

Appendix 2 – WCS Configuration settings – explained Page 39 of 76


INTERVAL process the directive queue, we also purge the queue. All records
with status Success, Failure, Pending are candidates for purging.
How often we need to purge can be configured using this
parameter.

By default, we will purge the records once every hour.

Note: If there are dependent directives and at least one of them is


a fallback directive then the queue_purge_interval should be set to
a high value. Otherwise, the fallback directives, which have the
status ‘Cancelled’ to start with will get purged before the earlier
directive, can fail.
This configuration parameter is set at device type and business N --
event level. This will be utilized be the Carousel Bridge
component when it writes to the IN Pipe. It will write to things to
the pipe, the TASK_ADDR and the actual response string.
TASK ADDR
This is for backward compatibility, where some devices need to
identify the hardware needs to identify itself to WMS as the
source of the response.
TASK N
ALTERNATIVE Unused
SEGMENT
This parameter is used to control task grouping at the time of N F
processing the request. If this parameter is set to 'T' then skip the
TASK GROUP whole group of tasks. This ensures that it is an all or nothing
condition. Using this parameter it is possible to control the load
on a device (requests / hour)
For a device type and business event, this can be configured. This N --
TASK ZONE will get stamped on the Directive queue record. But later in the
code it is unused.

Appendix 2 – WCS Configuration settings – explained Page 40 of 76


11. Appendix 3 – Sample carbri.xml
Given below is a sample carbri.xml file. This controls the runtime behavior of the CarBri
Middleware. Typically modified element values are highlighted in bold red.

<?xml version="1.0" encoding="windows-1252" ?>


<CarBriSetup>

<Device>
<ID>12</ID>
<Protocol>2</Protocol>
<JDBCURL>jdbc:oracle:thin:@ap6171rt.us.oracle.com:1521:wmsdv11i</JDBCURL>
<Simulate>No</Simulate>
</Device>
<SocketInfo>
<socketHostName>140.87.204.121</socketHostName>
<socketPortNumber>4444</socketPortNumber>

<!—This is the Trusted Client Port Number -->


<socketLocalPort>5170</socketLocalPort>
</SocketInfo>
<SerialPortInfo>
<portName>COM2</portName>
<serialPortTimeOutMillis>5000</serialPortTimeOutMillis>

<baudRate>9600</baudRate>
<dataBits>8</dataBits>
<stopBits>1</stopBits>
<parity>0</parity>
</SerialPortInfo>
<AppsInfo>
<dbcfile>/appmgr/wmsspprjappl/fnd/11.5.0/secure/ap6171rt_wmsspprj.dbc</dbcfile>
<appsuser>MFG</appsuser>
<password>WELCOME</password>

<applicationshortname>WMS</applicationshortname>
<responsibilitykey>WMS_WCS_USER</responsibilitykey>
</AppsInfo>

</CarBriSetup>

Appendix 3 – Sample carbri.xml Page 41 of 76


12. Appendix 4 – Case Study

12.1 Schematic Process Flow configured for Pick Load Business Event
Here is a scenario, which is more complex and is closer to what you would typically expect at a
Customer site.

Figure 33 - Real life MHE Integration Scenario


In the scenario illustrated above, a user signs-on to a workstation (there are typically 3-4
workstations) and an ASRS Crane. The user initiates a device request to perform a ‘Pick Load’
Business event. This sets off a chain of directives to be sent to two devices (ASRS Crane and
Sortation Conveyor), in a controlled fashion so that they work in tandem to complete the ‘Pick
Load’ operation without the user having to move from his workstation.
In this Business use case we will make use of the Recommended Implementation Strategy
elucidated in Section 3.3

12.1.1 Identify the WMS Business events


Identify the WMS Business events in the Business process where a device will be invoked. (Refer
Appendix 1 for list of WMS Business events). In the present use case the WMS Business event
being implemented is ‘Pick Load’

Appendix 4 – Case Study Page 42 of 76


12.1.2 Setup Devices in Oracle WMS and assign them to appropriate Business Event/s
Refer Oracle Warehouse Management System Material Handling Device Integration Kit for the
standard Device setup (Creating Devices in Oracle WMS and assigning them to the appropriate
business event). In the present use case,

Figure 34 - Subinventory setup

Figure 35 - Use Case 1 - Define Devices

Figure 36 - Assign Device 'ASRS Crane 1' to Pick Load Business Event

Appendix 4 – Case Study Page 43 of 76


12.1.3 Procure information Device Request/Response message structure
Procure information from the device Vendor about the Device Request message structure that the
device understands. After perusing the technical specifications supplied by the device vendor, we
are in a position to fill the following table. This would be helpful in creating the WCS
Configuration settings.

12.1.4 Map the WMS business event with the Device Request Message
Map the WMS business event with the Device Request Message. (One WMS Business event may
map to more than one Device-level directive)
Note: For a device type-business event-sequence id combination, if
DIRECTIVE_EXECUTE_ACTION is set to ‘Y’ then the contents of
‘DIRECTIVE_REQUEST_QUERY’ will be executed at the time of firing a request. This feature
can be made use of to call a PL/SQL API or execute an anonymous PL/SQL block.
Else if DIRECTIVE_EXECUTE_ACTION is not set or set to ‘N’ then there is no API call made.
Instead the Request Message is sent to the Device via the CarBri.
This is detailed in Column 3 of the table below.
Also note that the directives in red italics are initially set to ‘Cancelled’ using the directive queue
status. They are activated at runtime if some directive upstream fails (and that upstream directive
has Directive Cascade failure set to ‘N’)
Figure 37 - Sample directive settings based on tech specs for an ASRS and Sortation
Conveyor

Seq. Directive For request: What does it Sample Sample Comments on WCS settings
No. Send do and why? Request Response
Message or Message Message
Execute code

1 RESET_ATTEMP Execute What: Resets


TS Code attempts and DIRECTIVE_QUEUE_STATUS is X
last update on (cancelled) to start with. This can be
reset to P (pending) and then when the
the Directive
Device request is fired, this directive
queue table will take effect and update the queue
for 3 business table and insert into the log table. If
events. DIRECTIVE_QUEUE_STATUS is not
Also inserts a set then the default value is taken as P
record in the
Carousel Log
table If Directive RESET_ATTEMPTS fails
then the rest of the directives must not
Why: For a fail. So
trial run DIRECTIVE_CASCADE_FAILURE
must be set to N
during
testing, the
PLC needs to At runtime no messages are to be sent.
be reset so Rather an anonymous PL/SQL program
that the unit is to be called.
consultant DIRECTIVE_EXECUTE_ACTION is
can create a set to Y
fresh
environment
for the PLC This directive is to be attempted only
once. If it fails after the first attempt it
to function.
is to be marked as a failure. So set
This optional DIRECTIVE_MAX_ATTEMPTS to 1.
directive

Appendix 4 – Case Study Page 44 of 76


Seq. Directive For request: What does it Sample Sample Comments on WCS settings
No. Send do and why? Request Response
Message or Message Message
Execute code

invokes any
PL/SQL code We are to wait for 1 second for a
that may need response. Set
DIRECTIVE_RESPONSE_TIMEOUT
to be invoked
to 1.
at the time of
initialization.

2 RESET_ROUTE Execute What: Calls


Code an API If this directive fails then the rest of the
reset_directive directives in queue should also fail. For
_execution this feature, set
DIRECTIVE_CASCADE_FAILURE
Why: When to Y
there is an
alternative
route needed Since this is a call to an API set
by a tote due to DIRECTIVE_EXECUTE_ACTION to
an unexpected Y
full slot, there
can be an API
setup with this This directive is to be attempted only
directive to once. If it fails after the first attempt it
suggest an is to be marked as a failure. So set
alternative DIRECTIVE_MAX_ATTEMPTS to 1.
destination for
the tote
(usually the This directive is always supposed to
Exceptions fire. It should not be in cancelled state
Station) to start with. Set
DIRECTIVE_QUEUE_STATUS to P

We are to wait for 1 second for a


response. Set
DIRECTIVE_RESPONSE_TIMEOUT
to 1.

10 PickASRS_61_71 Send What: Fires _61,1,__,00


Message the request 00,DONE00 If this directive fails then the rest of the
message to ,,AS1.1.1._ directives in queue should also fail. For
the ASRS_C1 this feature, set
DIRECTIVE_CASCADE_FAILURE
to PICK from to Y
Rack and
Load shuttle
This directive is to be tied to the next 2
Why: This is directives. This will comprise a set of
a step in the dependent directives. i.e., The request
series of for the second directive should fire only
messages to when the first directive is marked as a
be sent to the success. Since there are 3 directives in
device for the dependent set the
DIRECTIVE_DEPENDENCY_SEG_I
making the
D to 1,2,3
various parts
of the device This directive is the first in the set of 3
to perform in dependent directives. Set the
tandem. This DIRECTIVE_DEPENDENCY_SEQ_I
will be in D to 10

Appendix 4 – Case Study Page 45 of 76


Seq. Directive For request: What does it Sample Sample Comments on WCS settings
No. Send do and why? Request Response
Message or Message Message
Execute code

accordance
with the This directive is to be attempted 20
message times. If it fails after that it is to be
marked as a failure. So set
structure
DIRECTIVE_MAX_ATTEMPTS to
published by 20.
the device
vendor.
This directive is always supposed to
fire. It should not be in cancelled state
to start with. Set
DIRECTIVE_QUEUE_STATUS to P

We are to wait for 60 seconds for a


response. Set
DIRECTIVE_RESPONSE_TIMEOUT
to 60.

20 Divert4SHT_63_7 Send What: Fires a 63,1,13,0000, _63,1,__,00


2 Message request to DIVERT,,AS1. 00,DONE00 If this directive fails then the rest of the
DIVERT to 1.1. ,,AS1.1.1._ directives in queue should also fail. For
this feature, set
Exit the
DIRECTIVE_CASCADE_FAILURE
Crane / to Y
Unload the
Shuttle
This directive is to be attempted 20
Why: This is times. If it fails after that it is to be
a step in the marked as a failure. So set
series of DIRECTIVE_MAX_ATTEMPTS to
messages to 20.
be sent to the
device for
making the This directive is always supposed to
fire. It should not be in cancelled state
various parts
to start with. Set
of the device DIRECTIVE_QUEUE_STATUS to P
to perform in
tandem. This
will be in We are to wait for 60 seconds for a
accordance response. Set
with the DIRECTIVE_RESPONSE_TIMEOUT
message to 60.
structure
published by
the device
vendor.

30 RESETSCAN_00_ Send What: This is _75,6,16,00


75 Message the reset scan 00,DONE00 If this directive fails then the rest of the
for the tote. ,,0000.00.0. directives in queue should also fail. For
0000_ this feature, set
DIRECTIVE_CASCADE_FAILURE to
Why: This is Y
a reset

Appendix 4 – Case Study Page 46 of 76


Seq. Directive For request: What does it Sample Sample Comments on WCS settings
No. Send do and why? Request Response
Message or Message Message
Execute code

message
specific to a The request message should be routed
scanner (as to the CarBri corresponding the CarBri
for the Conveyor. (There is one CarBri
specified by
for every device defined in WMS)
the vendor) Set the
DIRECTIVE_DEVICE_ID to 41 This is
the Device ID from the Define Devices
form for the Sortation conveyor
SORT_1. (If DIRECTIVE_DEVICE_ID
is not set then the request will be sent
by default to the ASRS_C1 device.)

This directive is to be attempted 240


times. If it fails after that it is to be
marked as a failure. So set
DIRECTIVE_MAX_ATTEMPTS to 240.

DIRECTIVE_PIPE_NAME must be set


to the same value as
DIRECTIVE_DEVICE_ID – 41 in this
case.

DIRECTIVE_QUEUE_STATUS is X
(cancelled) to start with. This can be
reset to P (pending) at runtime and then
when the Device request is fired, this
directive will take effect. If
DIRECTIVE_QUEUE_STATUS is not
set then the default value is taken as P

We are to wait for 30 seconds for a


response. Set
DIRECTIVE_RESPONSE_TIMEOUT
to 30.

40 Divert2WS_63_6 Send What: Fires a 63,6,06,0000, _63,6,__,00


4 Message request to DIVERT,,AS1. 00,DONE00 When a ‘Cancel Task’ is performed,
DIVERT to 1.1. ,,AS1.1.1._ there should be a way to isolate all the
Sortation records, which are candidates to be
marked with X (Cancelled). The way to
conveyor
accomplish this is to set the
DIRECTIVE_CANCEL_TASK to
Why: This is Divert2WS_63_64 (same as the
one of the Directive).
messages that
needs to be
sent in the If this directive fails then the rest of the
message directives in queue should also fail. For
sequence to this feature, set
route the tote DIRECTIVE_CASCADE_FAILURE
from the to Y

Appendix 4 – Case Study Page 47 of 76


Seq. Directive For request: What does it Sample Sample Comments on WCS settings
No. Send do and why? Request Response
Message or Message Message
Execute code

ASRS to the
Pick Station. When a ‘Complete Task’ is performed,
there should be a way to isolate all the
records, which are candidates to be
marked with S (Success). The way to
accomplish this is to set the
DIRECTIVE_COMPLETE_TASK to
Divert2WS_63_64 (same as the
Directive).

The request message should be routed


to the CarBri corresponding the CarBri
for the Conveyor. (There is one CarBri
for every device defined in WMS)
Set the
DIRECTIVE_DEVICE_ID to 41 This
is the Device ID from the Define
Devices form for the Sortation
conveyor SORT_1. (If
DIRECTIVE_DEVICE_ID is not set
then the request will be sent by default
to the ASRS_C1 device.)

This directive is to be attempted 15


times. If it fails after that it is to be
marked as a failure. So set
DIRECTIVE_MAX_ATTEMPTS to
15.

DIRECTIVE_PIPE_NAME must be set


to the same value as
DIRECTIVE_DEVICE_ID – 41 in this
case.

This directive is always supposed to


fire. It should not be in cancelled state
to start with. Set
DIRECTIVE_QUEUE_STATUS to P

We are to wait for 120 seconds for a


response. Set
DIRECTIVE_RESPONSE_TIMEOUT
to 120.

When a ‘Skip Task’ is performed, there


should be a way to isolate all the
records, which are candidates to be
marked with X (Cancelled). The way to
accomplish this is to set the
DIRECTIVE_SKIP_TASK to
Divert2WS_63_64 (same as the
Directive).

Appendix 4 – Case Study Page 48 of 76


Seq. Directive For request: What does it Sample Sample Comments on WCS settings
No. Send do and why? Request Response
Message or Message Message
Execute code

44 TaskComplete44 Send What: This _99,6,16,00


Message fires the last 00,TC0000, When a ‘Cancel Task’ is performed,
directive to LPN26A,00 there should be a way to isolate all the
00.00.0.000 records, which are candidates to be
get the LPN
0_ marked with X (Cancelled). The way to
to the
accomplish this is to set the
Workstation DIRECTIVE_CANCEL_TASK to
where the TaskComplete44 (same as the
operator is Directive).
stationed

Why: To If Directive TaskComplete44 fails then


indicate the the rest of the directives must not fail.
the ERP So
system that DIRECTIVE_CASCADE_FAILURE
the task is must be set to N
done.
When a ‘Complete Task’ is performed,
there should be a way to isolate all the
records, which are candidates to be
marked with S (Success). The way to
accomplish this is to set the
DIRECTIVE_COMPLETE_TASK to
TaskComplete44 (same as the
Directive).

The request message should be routed


to the CarBri corresponding the CarBri
for the Conveyor. (There is one CarBri
for every device defined in WMS)
Set the
DIRECTIVE_DEVICE_ID to 41 This
is the Device ID from the Define
Devices form for the Sortation
conveyor SORT_1. (If
DIRECTIVE_DEVICE_ID is not set
then the request will be sent by default
to the ASRS_C1 device.)

This directive is to be attempted 9


times. If it fails after that it is to be
marked as a failure. So set
DIRECTIVE_MAX_ATTEMPTS to 9.

DIRECTIVE_PIPE_NAME must be set


to the same value as
DIRECTIVE_DEVICE_ID – 41 in this
case.

Appendix 4 – Case Study Page 49 of 76


Seq. Directive For request: What does it Sample Sample Comments on WCS settings
No. Send do and why? Request Response
Message or Message Message
Execute code

This directive is always supposed to


fire. It should not be in cancelled state
to start with. Set
DIRECTIVE_QUEUE_STATUS to P

We are to wait for 400 seconds for a


response. Set
DIRECTIVE_RESPONSE_TIMEOUT
to 400.

When a ‘Skip Task’ is performed, there


should be a way to isolate all the
records, which are candidates to be
marked with S (Success). The way to
accomplish this is to set the
DIRECTIVE_SKIP_TASK to
TaskComplete44 (same as the
Directive).

50 NULL4SCAN_00 Send What: Fires a _75,6,16,00


_75 Message null request 00,DONE00 If this directive fails then the rest of the
and expects a ,LPN30B,00 directives in queue should also fail. For
response 00.00.0.000 this feature, set
0_ DIRECTIVE_CASCADE_FAILURE
containing the to Y
LPN
information
to come back
from the The request message should be routed
device for the to the CarBri corresponding the CarBri
LPN scan for the Conveyor. (There is one CarBri
for every device defined in WMS)
event from
Set the
the Sortation DIRECTIVE_DEVICE_ID to 41 This
Conveyor is the Device ID from the Define
Devices form for the Sortation
Why: This conveyor SORT_1. (If
message is DIRECTIVE_DEVICE_ID is not set
needed to then the request will be sent by default
initiate a scan to the ASRS_C1 device.)
event from
the sortation
conveyor.
DIRECTIVE_PIPE_NAME must be set
to the same value as
DIRECTIVE_DEVICE_ID – 41 in this
case.

This directive is always supposed to


fire. It should not be in cancelled state
to start with. Set
DIRECTIVE_QUEUE_STATUS to P

Appendix 4 – Case Study Page 50 of 76


Seq. Directive For request: What does it Sample Sample Comments on WCS settings
No. Send do and why? Request Response
Message or Message Message
Execute code

We are to wait for 30 seconds for a


response. Set
DIRECTIVE_RESPONSE_TIMEOUT
to 30.

60 Divert2ASRS63_ Send What: Sends 63,6,05,0000, _63,6,05,00


64 Message the directive DIVERT,,AS1. 00,DONE00 If this directive fails then the rest of the
to DIVERT 1.1. ,,AS1.1.1._ directives in queue should also fail. For
the LPN to this feature, set
DIRECTIVE_CASCADE_FAILURE
the ASRS to Y

Why: This is
one of the The request message should be routed
steps in the to the CarBri corresponding the CarBri
series of for the Conveyor. (There is one CarBri
operations to for every device defined in WMS)
be performed Set the
in the entire DIRECTIVE_DEVICE_ID to 41 This
ASRS pick is the Device ID from the Define
Devices form for the Sortation
cycle. This is
conveyor SORT_1. (If
in accordance DIRECTIVE_DEVICE_ID is not set
with the then the request will be sent by default
message to the ASRS_C1 device.)
structure
specified by
the Device
Vendor. This directive is to be attempted 15
times. If it fails after that it is to be
marked as a failure. So set
DIRECTIVE_MAX_ATTEMPTS to
15.

DIRECTIVE_PIPE_NAME must be set


to the same value as
DIRECTIVE_DEVICE_ID – 41 in this
case.

We are to wait for 120 seconds for a


response. Set
DIRECTIVE_RESPONSE_TIMEOUT
to 120.

70 PICK2CS_61_71 Send What: Sends _61,1,__,00


Message the second 00,DONE00 If this directive fails then the rest of the
part of the ,,AS1.1.1._ directives in queue should also fail. For
this feature, set
directive to
DIRECTIVE_CASCADE_FAILURE
route the LPN to Y
to the Crane

Why: This is This directive is to be attempted 20


one of the times. If it fails after that it is to be
steps in the marked as a failure. So set
series of DIRECTIVE_MAX_ATTEMPTS to
operations to 20.

Appendix 4 – Case Study Page 51 of 76


Seq. Directive For request: What does it Sample Sample Comments on WCS settings
No. Send do and why? Request Response
Message or Message Message
Execute code

be performed
in the entire We are to wait for 60 seconds for a
ASRS pick response. Set
DIRECTIVE_RESPONSE_TIMEOUT
cycle. This is
to 60.
in accordance
with the
message
structure
specified by
the Device
Vendor.
80 PUT4SHT_62_72 Send What: Sends 62,1,09,0000, _62,1,__,00
Message the directive PUTAWY,,AS 00,DONE00 If this directive fails then the rest of the
to 1.1.1. ,,AS1.1.1._ directives in queue should also fail. For
this feature, set
PUTAWAY
DIRECTIVE_CASCADE_FAILURE
the LPN to to Y
the Load
Shuttle
This directive is to be attempted 20
Why: This is times. If it fails after that it is to be
one of the marked as a failure. So set
steps in the DIRECTIVE_MAX_ATTEMPTS to
series of 20.
operations to
be performed
in the entire We are to wait for 60 seconds for a
response. Set
ASRS pick
DIRECTIVE_RESPONSE_TIMEOUT
cycle. This is to 60.
in accordance
with the
message
structure
specified by
the Device
Vendor.
90 TOTE4SHT_63_7 Send What: If the 63,1,1,13,,D _63,1,__,0
2 Message directives that IVERT,LPN1 000,DONE If this directive fails then the rest of the
are ahead in 03A,AS1.1.1. 00,LPN34 directives in queue should also fail. For
this feature, set
the queue fail A,AS1.1.1.
DIRECTIVE_CASCADE_FAILURE
and they are _ to Y
set to
Directive
Cascade This directive is to be attempted 20
Failure N times. If it fails after that it is to be
then these marked as a failure. So set
directives can DIRECTIVE_MAX_ATTEMPTS to
be fired. 20.

Appendix 4 – Case Study Page 52 of 76


Seq. Directive For request: What does it Sample Sample Comments on WCS settings
No. Send do and why? Request Response
Message or Message Message
Execute code

These are
termed as the DIRECTIVE_QUEUE_STATUS is X
fallback (cancelled) to start with. This can be
reset to P (pending) at runtime and then
directives or
when the Device request is fired, this
Plan B directive will take effect. If
directives. DIRECTIVE_QUEUE_STATUS is not
set then the default value is taken as P
Why: This is
a provision
for a fallback
plan. We are to wait for 60 seconds for a
response. Set
DIRECTIVE_RESPONSE_TIMEOUT
to 60.

100 Send What: Sends 63,6,06,000 _63,6,__,0


Message the second 1,DIVERT,LP 000,DONE If this directive fails then the rest of the
part of the N34A,AS1.10 00,LPN34 directives in queue should also fail. For
this feature, set
directive to 23.21. A,AS1.21.3
DIRECTIVE_CASCADE_FAILURE to
the Sortation 45._ Y
Conveyor for
step 2 of Plan
B The request message should be routed
to the CarBri corresponding the CarBri
Why: This is for the Conveyor. (There is one CarBri
part of the for every device defined in WMS)
fallback plan. Set the
DIRECTIVE_DEVICE_ID to 41 This is
the Device ID from the Define Devices
form for the Sortation conveyor
SORT_1. (If DIRECTIVE_DEVICE_ID
is not set then the request will be sent
by default to the ASRS_C1 device.)

This directive is to be attempted 20


times. If it fails after that it is to be
marked as a failure. So set
DIRECTIVE_MAX_ATTEMPTS to 20.

We are to wait for 60 seconds for a


response. Set
DIRECTIVE_RESPONSE_TIMEOUT
to 60.

DIRECTIVE_QUEUE_STATUS is X
(cancelled) to start with. This can be
reset to P (pending) at runtime and then
when the Device request is fired, this
directive will take effect. If
DIRECTIVE_QUEUE_STATUS is not
set then the default value is taken as P

Appendix 4 – Case Study Page 53 of 76


Seq. Directive For request: What does it Sample Sample Comments on WCS settings
No. Send do and why? Request Response
Message or Message Message
Execute code

DIRECTIVE_PIPE_NAME must be set


to the same value as
DIRECTIVE_DEVICE_ID – 41 in this
case.

110 FullASRS_61_71 Send What: This _61,0,__,0


Message kicks off the 000,DONE If this directive fails then the rest of the
chain of 00,0F0000 directives in queue should also fail. For
events when ,AS1.1090. this feature, set
DIRECTIVE_CASCADE_FAILURE to
the ASRS is 21._ Y
FULL

Why: If the This directive is to be attempted 20


storage times. If it fails after that it is to be
location is marked as a failure. So set
full then the DIRECTIVE_MAX_ATTEMPTS to 20.
system must
be setup to
handle such DIRECTIVE_QUEUE_STATUS is X
(cancelled) to start with. This can be
an
reset to P (pending) at runtime and then
eventuality. when the Device request is fired, this
This is the directive will take effect. If
means of DIRECTIVE_QUEUE_STATUS is not
achieving it. set then the default value is taken as P

We are to wait for 60 seconds for a


response. Set
DIRECTIVE_RESPONSE_TIMEOUT
to 60.

120 Full4SHT_63_72 Send What: This 63,8,13,000 _63,4,__,0


Message directive will 0,DIVERT,8F 000,DONE If this directive fails then the rest of the
be fired when 0000,AS1.109 00,4F0000 directives in queue should also fail. For
the shuttle is 8.23. ,AS1.1034. this feature, set
DIRECTIVE_CASCADE_FAILURE to
full and the 23._ Y
remaining
directives
need to wait This directive is to be attempted 15
for sometime times. If it fails after that it is to be
so that they marked as a failure. So set
can make use DIRECTIVE_MAX_ATTEMPTS to 15.
of the shuttle

Why: This is DIRECTIVE_QUEUE_STATUS is X


(cancelled) to start with. This can be
to handle the
reset to P (pending) at runtime and then
queue when when the Device request is fired, this
many totes directive will take effect. If
are vying to DIRECTIVE_QUEUE_STATUS is not
be put onto set then the default value is taken as P
the shuttle

Appendix 4 – Case Study Page 54 of 76


Seq. Directive For request: What does it Sample Sample Comments on WCS settings
No. Send do and why? Request Response
Message or Message Message
Execute code

before
moving on to We are to wait for 60 seconds for a
the ASRS response. Set
DIRECTIVE_RESPONSE_TIMEOUT
locator.
to 60.

130 Send What: This 63,6,06,000 _63,6,__,0


Message will send the 0,DIVERT,5F 000,DONE If this directive fails then the rest of the
second part of 0000,AS1.102 00,4F0000 directives in queue should also fail. For
the directive 5.25. ,AS1.1304. this feature, set
DIRECTIVE_CASCADE_FAILURE to
to the device 20._ Y
for the Shuttle
Full message
The request message should be routed
Why: This is to the CarBri corresponding the CarBri
needed to for the Conveyor. (There is one CarBri
indicate to for every device defined in WMS)
any incoming Set the
requests for DIRECTIVE_DEVICE_ID to 41 This is
the Device ID from the Define Devices
occupation of
form for the Sortation conveyor
the shuttle by SORT_1. (If DIRECTIVE_DEVICE_ID
totes [via is not set then the request will be sent
scans]. This by default to the ASRS_C1 device.)
will indicate
to the totes
whether they DIRECTIVE_PIPE_NAME must be set
can occupy to the same value as
the shuttle or DIRECTIVE_DEVICE_ID – 41 in this
not. case.

DIRECTIVE_QUEUE_STATUS is X
(cancelled) to start with. This can be
reset to P (pending) at runtime and then
when the Device request is fired, this
directive will take effect. If
DIRECTIVE_QUEUE_STATUS is not
set then the default value is taken as P

Appendix 4 – Case Study Page 55 of 76


12.1.5 Use the WCS Administrator responsibility to detail the request structure for each
device-level directive
These changes are to be done on the screen shown in “Figure 9 - WCS Configuration Settings”.
The values that are to be filled up in this configuration table will be as discussed in the previous
section (based on the technical specifications of the device messages provided by the device
vendor and after mapping the appropriate directives to the WMS Business Events)

Appendix 4 – Case Study Page 56 of 76


Device Seq Biz Active
Name Value
Type Id Event Ind
Pick
DIRECTIVE RESET_ATTEMPTS ASRS 1 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE N ASRS 1 Y
Load
Pick
DIRECTIVE_EXECUTE_ACTION Y ASRS 1 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 1 ASRS 1 Y
Load
Pick
DIRECTIVE_QUEUE_STATUS X ASRS 1 Y
Load
select 'declare '
||chr(10)||'l_dummy number;'
||chr(10)||'pragma autonomous_transaction; '
||chr(10)||'begin '
||chr(10)||'UPDATE WMS_CAROUSEL_DIRECTIVE_QUEUE
SET ATTEMPTS = 0, LAST_UPDATE_DATE = SYSDATE,
LAST_ATTEMPT = SYSDATE WHERE BUSINESS_EVENT_ID
IN (3,5,10) AND SEQUENCE_ID > 1 AND REQUEST_ID = '||
request_id||' AND -99 != :P_REQUEST_ID AND -99 != :P_TASK_ID; ' Pick
DIRECTIVE_REQUEST_QUERY ASRS 1 Y
||chr(10)||'insert into wms_carousel_log Load
(carousel_log_id,text,device_id,last_update_date,last_updated_by,
creation_date,created_by,last_update_login) values
(wms_carousel_log_s.nextval,'||'''RESET ATTEMPTS at request: '||
request_id||''''||',12,sysdate,-1,sysdate,-1,-1); '
||chr(10)||'COMMIT; '
||chr(10)||'end; '
from wms_device_requests_wcsv where request_id=:p_request_id
and task_id=:p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 1 ASRS 1 Y
Load
Pick
DIRECTIVE RESET_ROUTE ASRS 2 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 2 Y
Load
Pick
DIRECTIVE_EXECUTE_ACTION Y ASRS 2 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 1 ASRS 2 Y
Load
Pick
DIRECTIVE_QUEUE_STATUS P ASRS 2 Y
Load
select 'declare '
Pick
DIRECTIVE_REQUEST_QUERY ||chr(10)||'l_dummy varchar2(32);' ASRS 2 Y
Load
||chr(10)||'begin '

Appendix 4 – Case Study Page 1 of 76


||chr(10)||'select * INTO l_dummy from dual where -99 != :p_request_id
and -99 != :p_task_id; '
||chr(10)||'reset_directive_execution('||request_id||','||''''||lpn||''''||');
'
||chr(10)||'end; '
from wms_device_requests_wcsv where request_id=:p_request_id
and task_id=:p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 1 ASRS 2 Y
Load
Pick
DIRECTIVE PickASRS_61_71 ASRS 10 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 10 Y
Load
Pick
DIRECTIVE_DEPENDENCY_SEG_ID 1,2,3 ASRS 10 Y
Load
Pick
DIRECTIVE_DEPENDENCY_SEQ_ID 10 ASRS 10 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 20 ASRS 10 Y
Load
Pick
DIRECTIVE_QUEUE_STATUS P ASRS 10 Y
Load
select '_61,' ||
substr(nvl(SEGMENT2,'C0'),length(nvl(SEGMENT2,'C0')),1) ||',__,'||
lpad(nvl(SEGMENT4,'0'),4,'0') || Pick
DIRECTIVE_RESPONSE_QUERY ASRS 10 Y
',DONE00,'||LPN||','||SEGMENT1||'.'||SEGMENT2||'.'||SEGMENT3||'.'|| Load
SEGMENT4||'_' from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 60 ASRS 10 Y
Load
Pick
DIRECTIVE Divert4SHT_63_72 ASRS 20 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 20 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 20 ASRS 20 Y
Load
Pick
DIRECTIVE_QUEUE_STATUS P ASRS 20 Y
Load
select chr(2)||'63,'||
substr(nvl(SEGMENT2,'C0'),length(nvl(SEGMENT2,'C0')),1) ||','||
lpad(decode(substr(nvl(SEGMENT1,'0Q'),2,1),'Q',
decode(nvl(SEGMENT3,'0'),1,14,2,15,0),13),2,'0') ||','||
Pick
DIRECTIVE_REQUEST_QUERY lpad(nvl(SEGMENT4,'0'),4,'0') || ASRS 20 Y
Load
',DIVERT,'||LPN||','||SEGMENT1||'.'||SEGMENT2||'.'||
SEGMENT3||'.'||SEGMENT4||chr(3)
from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id

Appendix 4 – Case Study Page 2 of 76


select '_63,'||
substr(nvl(SEGMENT2,'C0'),length(nvl(SEGMENT2,'C0')),1) ||
',__,'||
Pick
DIRECTIVE_RESPONSE_QUERY lpad(nvl(SEGMENT4,'0'),4,'0') || ASRS 20 Y
Load
',DONE00,'||LPN||','||SEGMENT1||'.'||SEGMENT2||'.'||SEGMENT3||'.'||
SEGMENT4||'_' from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 60 ASRS 20 Y
Load
Pick
DIRECTIVE RESETSCAN_00_75 ASRS 30 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 30 Y
Load
Pick
DIRECTIVE_DEVICE_ID 41 ASRS 30 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 240 ASRS 30 Y
Load
Pick
DIRECTIVE_PIPE_NAME 41 ASRS 30 Y
Load
Pick
DIRECTIVE_QUEUE_STATUS X ASRS 30 Y
Load
select '' from wms_device_requests_wcsv Pick
DIRECTIVE_REQUEST_QUERY ASRS 30 Y
where request_id=:p_request_id and task_id=:p_task_id Load
select '_75,6,16,0000,DONE00,'||LPN||',0000.00.0.0000_'
Pick
DIRECTIVE_RESPONSE_QUERY from wms_device_requests_wcsv ASRS 30 Y
Load
where request_id = :p_request_id and task_id = :p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 30 ASRS 30 Y
Load
Pick
DIRECTIVE Divert2WS_63_64 ASRS 40 Y
Load
Pick
DIRECTIVE_CANCEL_TASK Divert2WS_63_64 ASRS 40 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 40 Y
Load
Pick
DIRECTIVE_COMPLETE_TASK Divert2WS_63_64 ASRS 40 Y
Load
Pick
DIRECTIVE_DEVICE_ID 41 ASRS 40 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 15 ASRS 40 Y
Load
Pick
DIRECTIVE_PIPE_NAME 41 ASRS 40 Y
Load
Pick
DIRECTIVE_QUEUE_STATUS P ASRS 40 Y
Load
DIRECTIVE_REQUEST_QUERY select chr(2)||'63,6,'|| ASRS 40 Pick Y

Appendix 4 – Case Study Page 3 of 76


lpad(decode(nvl(wdat.DEVICE_ID,'19'),0,0,19,6,7),2,'0') ||','|| Load
lpad(nvl(wdrw.SEGMENT4,'0'),4,'0') ||',DIVERT,'||
wdrw.LPN||','||wdrw.SEGMENT1||'.'||wdrw.SEGMENT2||'.'||
wdrw.SEGMENT3||'.'||
wdrw.SEGMENT4||chr(3)
from wms_device_requests_wcsv WDRW,
wms_device_assignment_temp wdat
where wdat.device_id IN (19,20)
and wdat.LAST_UPDATED_BY = fnd_global.user_id
and wdrw.request_id = :p_request_id
and wdrw.task_id = :p_task_id
select '_63,6,__,' ||
lpad(nvl(SEGMENT4,'0'),4,'0')||',DONE00,'||
Pick
DIRECTIVE_RESPONSE_QUERY LPN||','||SEGMENT1||'.'||SEGMENT2||'.'||SEGMENT3||'.'|| ASRS 40 Y
Load
SEGMENT4||'_' from wms_device_requests_wcsv
where request_id = :p_request_id and task_id = :p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 120 ASRS 40 Y
Load
Pick
DIRECTIVE_SKIP_TASK Divert2WS_63_64 ASRS 40 Y
Load
Pick
DIRECTIVE TaskComplete44 ASRS 44 Y
Load

Pick
DIRECTIVE_CANCEL_TASK TaskComplete44 ASRS 44 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE N ASRS 44 Y
Load
Pick
DIRECTIVE_COMPLETE_TASK TaskComplete44 ASRS 44 Y
Load
Pick
DIRECTIVE_DEVICE_ID 41 ASRS 44 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 9 ASRS 44 Y
Load
Pick
DIRECTIVE_PIPE_NAME 41 ASRS 44 Y
Load
Pick
DIRECTIVE_QUEUE_STATUS P ASRS 44 Y
Load
select '' from wms_device_requests_wcsv Pick
DIRECTIVE_REQUEST_QUERY ASRS 44 Y
where request_id=:p_request_id and task_id=:p_task_id Load
select '_99,6,16,0000,TC0000,'||LPN||',0000.00.0.0000_'
Pick
DIRECTIVE_RESPONSE_QUERY from wms_device_requests_wcsv ASRS 44 Y
Load
where request_id = :p_request_id and task_id = :p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 400 ASRS 44 Y
Load
Pick
DIRECTIVE_SKIP_TASK TaskComplete44 ASRS 44 Y
Load

Appendix 4 – Case Study Page 4 of 76


Pick
DIRECTIVE NULL4SCAN_00_75 ASRS 50 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 50 Y
Load
Pick
DIRECTIVE_DEVICE_ID 41 ASRS 50 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 240 ASRS 50 Y
Load
Pick
DIRECTIVE_PIPE_NAME 41 ASRS 50 Y
Load
Pick
DIRECTIVE_QUEUE_STATUS P ASRS 50 Y
Load
select '' from wms_device_requests_wcsv Pick
DIRECTIVE_REQUEST_QUERY ASRS 50 Y
where request_id=:p_request_id and task_id=:p_task_id Load
select '_75,6,16,0000,DONE00,'||LPN||',0000.00.0.0000_'
Pick
DIRECTIVE_RESPONSE_QUERY from wms_device_requests_wcsv ASRS 50 Y
Load
where request_id = :p_request_id and task_id = :p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 30 ASRS 50 Y
Load
Pick
DIRECTIVE Divert2ASRS63_64 ASRS 60 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 60 Y
Load
Pick
DIRECTIVE_DEVICE_ID 41 ASRS 60 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 15 ASRS 60 Y
Load
Pick
DIRECTIVE_PIPE_NAME 41 ASRS 60 Y
Load
Pick
DIRECTIVE_QUEUE_STATUS P ASRS 60 Y
Load
select chr(2)||'63,6,'||
lpad(decode(substr(nvl(SEGMENT2,'C0'),
length(nvl(SEGMENT2,'C0')),1),1,5,2,4,3,3,4,2,5,1,0),2,'0') ||','||
lpad(nvl(SEGMENT4,'0'),4,'0') ||','|| Pick
DIRECTIVE_REQUEST_QUERY ASRS 60 Y
'DIVERT,'||LPN||','||SEGMENT1||'.'||SEGMENT2||'.'|| Load
SEGMENT3||'.'||SEGMENT4||chr(3)
from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id
select chr(2)||'63,6,'||
lpad(decode(substr(nvl(SEGMENT2,'C0'),
length(nvl(SEGMENT2,'C0')),1),1,5,2,4,3,3,4,2,5,1,0),2,'0') ||','||
Pick
DIRECTIVE_RESPONSE_QUERY lpad(nvl(SEGMENT4,'0'),4,'0') ||','|| ASRS 60 Y
Load
'DIVERT,'||LPN||','||SEGMENT1||'.'||SEGMENT2||'.'||
SEGMENT3||'.'||SEGMENT4||chr(3)
from wms_device_requests_wcsv

Appendix 4 – Case Study Page 5 of 76


where request_id=:p_request_id and task_id=:p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 120 ASRS 60 Y
Load
Pick
DIRECTIVE PICK2CS_61_71 ASRS 70 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 70 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 20 ASRS 70 Y
Load
select '_61,' ||
substr(nvl(SEGMENT2,'C0'),
length(nvl(SEGMENT2,'C0')),1) ||',__,0000' ||
Pick
DIRECTIVE_RESPONSE_QUERY ',DONE00,'||LPN||','||SEGMENT1||'.'||SEGMENT2||'.'|| ASRS 70 Y
Load
SEGMENT3||'.'||SEGMENT4||'_'
from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 60 ASRS 70 Y
Load
Pick
DIRECTIVE PUT4SHT_62_72 ASRS 80 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 80 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 20 ASRS 80 Y
Load
select chr(2)||'62,'||
substr(nvl(SEGMENT2,'C0'),length(nvl(SEGMENT2,'C0')),1) ||','||
lpad(decode(nvl(SEGMENT3,'0'),1,9,2,10,0),2,'0') ||','||
Pick
DIRECTIVE_REQUEST_QUERY lpad(nvl(SEGMENT4,'0'),4,'0') ||',PUTAWY,'|| ASRS 80 Y
Load
LPN||','||SEGMENT1||'.'||SEGMENT2||'.'||SEGMENT3||'.'||SEGMENT4||chr(3)
from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id
select '_62,'||
substr(nvl(SEGMENT2,'C0'),length(nvl(SEGMENT2,'C0')),1) ||',__,'||
lpad(nvl(SEGMENT4,'0'),4,'0') ||',DONE00,'|| Pick
DIRECTIVE_RESPONSE_QUERY ASRS 80 Y
LPN||','||SEGMENT1||'.'||SEGMENT2||'.'||SEGMENT3||'.'||SEGMENT4||'_' Load
from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 60 ASRS 80 Y
Load
Pick
DIRECTIVE TOTE4SHT_63_72 ASRS 90 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 90 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 20 ASRS 90 Y
Load
DIRECTIVE_QUEUE_STATUS X ASRS 90 Pick Y

Appendix 4 – Case Study Page 6 of 76


Load
select chr(2)||'63,'||
substr(nvl(SEGMENT2,'C0'),length(nvl(SEGMENT2,'C0')),1) ||','||
lpad(decode(substr(nvl(SEGMENT1,'0Q'),2,1),'Q',
decode(nvl(SEGMENT3,'0'),1,13,2,13,0),13),2,'0') ||','||
Pick
DIRECTIVE_REQUEST_QUERY lpad(nvl(SEGMENT4,'0'),4,'0') || ASRS 90 Y
Load
',DIVERT,'||LPN||','||SEGMENT1||'.'||SEGMENT2||'.'||
SEGMENT3||'.'||SEGMENT4||chr(3)
from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id
select '_63,'||
substr(nvl(SEGMENT2,'C0'),length(nvl(SEGMENT2,'C0')),1) ||
',__,'||
lpad(nvl(SEGMENT4,'0'),4,'0') || Pick
DIRECTIVE_RESPONSE_QUERY ASRS 90 Y
',DONE00,'||LPN||','||SEGMENT1||'.'||SEGMENT2||'.'|| Load
SEGMENT3||'.'||SEGMENT4||'_'
from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 60 ASRS 90 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 100 Y
Load
Pick
DIRECTIVE_DEVICE_ID 41 ASRS 100 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 20 ASRS 100 Y
Load
Pick
DIRECTIVE_PIPE_NAME 41 ASRS 100 Y
Load
Pick
DIRECTIVE_QUEUE_STATUS X ASRS 100 Y
Load
select chr(2)||'63,6,06,'||lpad(nvl(SEGMENT4,'0'),4,'0') ||',DIVERT,'||
LPN||','||SEGMENT1||'.'||SEGMENT2||'.'||SEGMENT3||'.'||SEGMENT4|| Pick
DIRECTIVE_REQUEST_QUERY ASRS 100 Y
chr(3) from wms_device_requests_wcsv Load
where request_id=:p_request_id and task_id=:p_task_id
select '_63,6,__,'||lpad(nvl(SEGMENT4,'0'),4,'0') ||',DONE00,'||
LPN||','||SEGMENT1||'.'||SEGMENT2||'.'||SEGMENT3||'.'||SEGMENT4||'_' Pick
DIRECTIVE_RESPONSE_QUERY ASRS 100 Y
from wms_device_requests_wcsv Load
where request_id=:p_request_id and task_id=:p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 60 ASRS 100 Y
Load
Pick
DIRECTIVE FullASRS_61_71 ASRS 110 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 110 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 20 ASRS 110 Y
Load

Appendix 4 – Case Study Page 7 of 76


Pick
DIRECTIVE_QUEUE_STATUS X ASRS 110 Y
Load
select '_61,'||
substr(nvl(SEGMENT2,'C0'),length(nvl(SEGMENT2,'C0')),1) ||',__,'||
lpad(nvl(SEGMENT4,'0'),4,'0') ||',DONE00,'||substr(nvl(SEGMENT2,'C0'),
Pick
DIRECTIVE_RESPONSE_QUERY length(nvl(SEGMENT2,'C0')),1)||'F'||lpad(nvl(SEGMENT4,'0'),4,'0')||','|| ASRS 110 Y
Load
SEGMENT1||'.'||SEGMENT2||'.'||SEGMENT3||'.'||SEGMENT4||'_'
from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 60 ASRS 110 Y
Load
Pick
DIRECTIVE Full4SHT_63_72 ASRS 120 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 120 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 15 ASRS 120 Y
Load
Pick
DIRECTIVE_QUEUE_STATUS X ASRS 120 Y
Load
select chr(2)||'63,'||
substr(nvl(SEGMENT2,'C0'),length(nvl(SEGMENT2,'C0')),1) ||','||
lpad(decode(substr(nvl(SEGMENT1,'0Q'),2,1),'Q',
decode(nvl(SEGMENT3,'0'),1,13,2,13,0),13),2,'0') ||','||
lpad(nvl(SEGMENT4,'0'),4,'0') || Pick
DIRECTIVE_REQUEST_QUERY ASRS 120 Y
',DIVERT,'||substr(nvl(SEGMENT2,'C0'), Load
length(nvl(SEGMENT2,'C0')),1)||'F'||lpad(nvl(SEGMENT4,'0'),4,'0')||','||
SEGMENT1||'.'||SEGMENT2||'.'||SEGMENT3||'.'||SEGMENT4||chr(3)
from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id
select '_63,'||
substr(nvl(SEGMENT2,'C0'),length(nvl(SEGMENT2,'C0')),1) ||
',__,'||
lpad(nvl(SEGMENT4,'0'),4,'0') ||
Pick
DIRECTIVE_RESPONSE_QUERY ',DONE00,'||substr(nvl(SEGMENT2,'C0'), ASRS 120 Y
Load
length(nvl(SEGMENT2,'C0')),1)||'F'||lpad(nvl(SEGMENT4,'0'),4,'0')||','||
SEGMENT1||'.'||SEGMENT2||'.'||SEGMENT3||'.'||SEGMENT4||'_'
from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 120 ASRS 120 Y
Load
Pick
DIRECTIVE_CASCADE_FAILURE Y ASRS 130 Y
Load
Pick
DIRECTIVE_DEVICE_ID 41 ASRS 130 Y
Load
Pick
DIRECTIVE_MAX_ATTEMPTS 15 ASRS 130 Y
Load
DIRECTIVE_PIPE_NAME 41 ASRS 130 Pick Y
Appendix 4 – Case Study Page 8 of 76
Load
Pick
DIRECTIVE_QUEUE_STATUS X ASRS 130 Y
Load
select chr(2)||'63,6,06,'||
lpad(nvl(SEGMENT4,'0'),4,'0') ||','||
'DIVERT,'||
substr(nvl(SEGMENT2,'C0'), Pick
DIRECTIVE_REQUEST_QUERY ASRS 130 Y
length(nvl(SEGMENT2,'C0')),1)||'F'||lpad(nvl(SEGMENT4,'0'),4,'0')||','|| Load
SEGMENT1||'.'||SEGMENT2||'.'||SEGMENT3||'.'||SEGMENT4||chr(3)
from wms_device_requests_wcsv
where request_id=:p_request_id and task_id=:p_task_id
select '_63,6,__,'||
lpad(nvl(SEGMENT4,'0'),4,'0') ||',DONE00,'||
substr(nvl(SEGMENT2,'C0'),
Pick
DIRECTIVE_RESPONSE_QUERY length(nvl(SEGMENT2,'C0')),1)||'F'||lpad(nvl(SEGMENT4,'0'),4,'0')||','|| ASRS 130 Y
Load
SEGMENT1||'.'||SEGMENT2||'.'||SEGMENT3||'.'||SEGMENT4||'_'
from wms_device_requests_wcsv where request_id=:p_request_id and
task_id=:p_task_id
Pick
DIRECTIVE_RESPONSE_TIMEOUT 120 ASRS 130 Y
Load

Appendix 4 – Case Study Page 9 of 76


Figure 38 - Note that there are 2 CarBri directories (1 for ASRS and 1 for Sortation Conveyor)

Appendix 4 – Case Study Page 10 of 76


Figure 39 - CarBri Settings for ASRS_C1

Appendix 4 – Case Study Page 11 of 76


Figure 40 - CarBri Settings for Sortation Conveyor SORT_1

Appendix 4 – Case Study Page 12 of 76


12.1.6 Test between DB tier and the CarBri

Test between DB tier and the CarBri (set Simulate to Yes in carbri.xml (There is no need to plug in the Device to test at this point)

12.1.7 Test between DB tier, CarBri and the Device Simulator


Test between DB tier, CarBri and the Device Simulator (Set Simulate to No) and socketHostName to point to the IP address of the DS. Once
this testing is satisfactory, the system is ready to be promoted to UAT. This step can be used to validate the device directives that are provided
by the Device Vendor by testing message sending between the Device Simulator and the PLC and tweaking the WCS Directive settings if
needed.

12.1.8 Test between DB tier, CarBri and the actual device


Test between DB tier, CarBri and the actual device. The system will be fully functional at this point.

Appendix 4 – Case Study Page 13 of 76


13. Appendix 5 – WMS_DEVICE_REQUESTS_WCSV View details
This is a view introduced in 11.5.10.1CU. One of the Database Entities that this view is based on
is WMS_DEVICE_REQUESTS WDR. Usually most of the Directive Request Queries can be
based on this view. There could a Customer requirement where

# Column Name Data Type

== ==================== ===============

1 REQUEST_ID NUMBER

2 TASK_ID NUMBER

3 SEQUENCE_ID NUMBER

4 TASK_TYPE_ID NUMBER

5 QUANTITY NUMBER

6 SUBINVENTORY_CODE VARCHAR2 (30)

7 LOCATOR VARCHAR2 (4000)

8 DEVICE_NAME VARCHAR2 (30)

9 DEVICE_ID NUMBER

10 DEVICE_TYPE_ID NUMBER

11 BUSINESS_EVENT VARCHAR2 (80)

12 BUSINESS_EVENT_ID NUMBER

13 RELATION_ID NUMBER

14 LPN VARCHAR2 (30)

15 ITEM VARCHAR2 (40)

16 SEGMENT1 VARCHAR2 (40)

17 SEGMENT2 VARCHAR2 (40)

18 SEGMENT3 VARCHAR2 (40)

19 SEGMENT4 VARCHAR2 (40)

20 SEGMENT5 VARCHAR2 (40)

21 SEGMENT6 VARCHAR2 (40)

22 SEGMENT7 VARCHAR2 (40)

23 SEGMENT8 VARCHAR2 (40)

Appendix 5 – WMS_DEVICE_REQUESTS_WCSV View details Page 1 of 76


24 SEGMENT9 VARCHAR2 (40)

25 SEGMENT10 VARCHAR2 (40)

26 SEGMENT11 VARCHAR2 (40)

27 SEGMENT12 VARCHAR2 (40)

28 SEGMENT13 VARCHAR2 (40)

29 SEGMENT14 VARCHAR2 (40)

30 SEGMENT15 VARCHAR2 (40)

31 SEGMENT16 VARCHAR2 (40)

32 SEGMENT17 VARCHAR2 (40)

33 SEGMENT18 VARCHAR2 (40)

34 SEGMENT19 VARCHAR2 (40)

35 SEGMENT20 VARCHAR2 (40)

36 TASK_SUMMARY VARCHAR2 (1)

37 LOCATOR_ID NUMBER

38 TRANSFER_ORG_ID NUMBER

39 TRANSFER_SUB_CODE VARCHAR2 (30)

40 TRANSFER_LOC_ID NUMBER

41 INVENTORY_ITEM_ID NUMBER

42 REVISION VARCHAR2 (10)

43 UOM VARCHAR2 (3)

44 LOT_NUMBER VARCHAR2 (30)

45 LOT_QTY NUMBER

46 SERIAL_NUMBER VARCHAR2 (30)

47 TRANSACTION_QUANTITY NUMBER

48 STATUS_CODE VARCHAR2 (1)

49 STATUS_MSG VARCHAR2 (240)

50 OUTFILE_NAME VARCHAR2 (255)

Appendix 5 – WMS_DEVICE_REQUESTS_WCSV View details Page 2 of 76


White Paper Title Oracle Warehouse Management System: Release 11.5.10.CU1 Warehouse Control System (WCS) / Material Handling Equipment (MHE)
Implementation Guide
March 2006
Author: Syed Mudassir Imran
Reviewers: Karun Jain, Aditya Agarkar

Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores,
CA 94065
U.S.A.

Worldwide Inquiries:
Phone: +1.650.506.7000125
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.

Appendix 5 – WMS_DEVICE_REQUESTS_WCSV View details Page 3 of 76

Vous aimerez peut-être aussi