Pick Pack and Ship Using Shipping Application Programming Interface - 06 - 06
Pick Pack and Ship Using Shipping Application Programming Interface - 06 - 06
Introduction:
The shipping Public APIs(Application Program Interface) are pl/sql packages which
when called using wrapper files will perform the same actions possible from the Shipping
applications UI.
The real time nature of the shipping APIs in Release 11i and R12 has provided options
for the customers to customize their shipping flows as per the business needs.
In order to call these APIs we only need to pass the required parameters. It is mandatory
that all the required parameters need to be initialized before they are passed to the called
shipping API. The optional parameters are optional and can be passed as additional
information if needed.
The parameters can also be classified as standard parameters and specific parameters.
Standard parameters are almost common to all the shipping APIs and the Specific
Parameters are specific to a particular shipping API and are discussed separately for each
of the API called in the flow. These standard and specific parameters can be one of the
mandatory or option parameter.
Summary of the Flow Sequence:
We have created the following business flow to demonstrate the usage of various
shipping public APIs during Pick, Pack and Ship activities.
The diagram also shows the relevant shipping APIs used during each of these specific
steps.
Standard Parameters:
3. p_commit: Will commit the changes to the database. The Default Value is
FND_API.G_FALSE
4. x_return_status: Requests that the API return the status of the data after it completes
its function.
6. x_msg_data: Returns error message text. If the x_msg_count is equal to 1, then this
contains the actual message.
Its necessary that the application context need to be set before making a call to the
shipping APIs from sql*plus.
This is done by calling FND_GLOBAL.APPS_INITIALIZE() procedure in the beginning
of the wrapper file.
The procedure APPS_INITIALIZE takes the following parameters
FND_GLOBAL.APPS_INITIALIZE(user_id IN number,
resp_id IN number,
resp_appl_id IN number,
security_group_id IN number);
You can obtain the valid values for each of these parameters from the application forms
session.
1. Arguments (input)
2. USER_ID - User ID number.
Book order:
Create an Order from order management Super User, Vision Operations (USA)
responsibility with the following details
As a next step to booking, a new delivery needs to be created. In order to create a new
delivery we need to call the shipping API
WSH_DELIVERIES_PUB.Create_update_delivery by passing the required and
optional parameter values.
Specific parameters:
The sample script attached here can be used to create a new delivery.
CREATE_DELIVERY.s
ql
(Please note it is necessary to make the changes suggested in these scripts for them
to work correctly in your application environment)
Assign delivery detail to delivery:
The delivery detail can be assigned to the newly created delivery by using the public API
WSH_DELIVERY_DETAILS_PUB. Detail_to_Delivery.
Specific Parameters:
The sample script attached here can be used to assign the delivery detail to the newly
created delivery.
ASSIGN_DETAIL_TO
_DELIVERY.sql
Specific Parameters:
p_action_code = > PICK_RELEASE
p_delivery_id/p_delivery_name => Id/name of delivery
Refer to the attached PICK_RELEASE.sql sample script which will pick releases lines
for a given delivery.
PICK_RELEASE.sql
1. Creation of LPNs:
LPN creation is done using the public API WSH_CONTAINER_PUB.
Create_Container
Specific Parameters:
p_container_item_id => Key flexfield Id for the container
p_organization_id => Organization ID for the container.
p_quantity => Number of containers created
p_container_name => Container name if creating just one container
x_container_ids => Table of the newly created container IDs of type
WSH_UTIL_CORE.ID_TAB_TYPE, which is a table of
type number indexed by binary integers
Refer to the attached CREATE_CONTAINER.sql sample script, which will enable the
creation of containers
CREATE_CONTAINE
R.sql
LPN Created
2. Perform Manual Pack operation using the LPN created previously
In order to pack the delivery detail line item using the LPN created previously, we can
use the public API WSH_CONTAINER_PUB.Container_Actions.
Specific Parameters:
p_container_name => Name of the container
p_action_code => Action code PACK
p_detail_tab => Delivery detail to be packed. Input table of delivery detail ids of
type WSH_UTIL_CORE.ID_TAB_TYPE, which is a table of
type Number indexed by binary integers.
Refer to the attached MANUAL_PACK.sql sample script, which will enable the packing
action on the created LPNs.
MANUAL_PACK.sql
Packing completed. LPN (CT-13) is displayed in the Parent LPN field of the delivery
detail
Unpack:
We can unpack the packed delivery line by making call to the container public API
WSH_CONTAINER_PUB.Container_Actions
Specific Parameters:
p_container_name=> Name of the container
p_action_code => Action code UNPACK
p_detail_tab => Delivery detail to be unpacked. Input table of delivery detail ids of type
WSH_UTIL_CORE.ID_TAB_TYPE which is a table of type Number
indexed by binary integers.
UNPACK.sql
The delivery detail for the LPN line, which was unpacked, previously needs to be
unassigned from the delivery.
Specific parameters:
p_TabOfDelDets => Table of Delivery Detail ids
p_action => Action UNASSIGN
p_delivery_id or delivery_name => Delivery id or delivery name to which the detail
lines will be assigned
UNASSIGN_FROM_D
ELIVERY.sql
Auto Pack Master:
The Auto-Pack Master behaves very much similar to Auto-Pack except that it goes one
step further and packs the created detail containers into one or more parent (master)
container(s).
Specific Parameters:
P_entity_tab => Table of ids of either lines or containers or deliveries that need to
be autopacked of type WSH_UTIL_CORE.ID_TAB_TYPE
which is a table of type Number indexed by binary integers.
P_entity_type => Type of entity id contained in the entity_tab that needs to be
autopacked ('L' - lines, 'C' -containers or 'D' - deliveries).
P_group_id_tab => Table of ids (numbers that determine the grouping of lines for
packing into containers) of type
WSH_UTIL_CORE.ID_TAB_TYPE which is a table of type
Number indexed by binary integers.
P_pack_cont_flag=> A 'Y' or 'N' value to determine whether to autopack the detail
containers that are created into parent containers.
X_cont_inst_tab => Table of container IDs created during the autopacking process of
type
AUTOPACK_MASTER
.sql
Autopack completed. The item being shipped is packed in LPN 251 and
the LPN 251 is further packed on to Master LPN 252 (shown under
Parent LPN field)
Specific Parameters:
p_changed_attributes=>Attributes of ChangedAttributesTabType that are to be
updated.
p_source_code => Code for source system which updates wsh_delivery_details
table(always set to OE)
In order to specify in your logic about backorder or staged quantities you can use the
following logic
-- Ship all quantities
UPDATE_SHIPPING_
ATTRIBUTES.sql
Specific Parameters:
p_action_code(Required) => action to be performed on Delivery
p_delivery_id (Required) => delivery id on which the action is performed
p_trip_name => Trip identifier for assignment of trip to delivery
p_asg_pickup_loc_code => Stop location code for pickup assignment
p_asg_pickup_dep_date => Stop location departure date for pickup assignment
p_asg_dropoff_loc_code=> Stop location code for dropoff assignment
p_asg_dropoff_dep_date=> Stop location departure date for dropoff assignment
p_sc_action_flag => Ship Confirm option - S, B, T, A, C. Used
p_sc_intransit_flag => Ship Confirm set in-transit flag.
p_sc_close_trip_flag => Ship Confirm close trip flag.
p_sc_create_bol_flag => Ship Confirm create Bill of Lading flag
p_sc_stage_del_flag => Ship Confirm create delivery for stage quantity flag
p_sc_trip_ship_method => Ship Confirm trip ship method.
p_wv_override_flag => Override flag for weight volume calculations.
x_trip_name => Name of autocreated trip.
SHIP_CONFIRM.sql
In some cases , calls to these APIs may not be successful. In such cases calling the
shipping debugger package(WHS_DEBUG_SV) in the wrapper file will result in the
creation of a detailed debug log file based on the various debug profiles setup for
shipping module .
The steps given below will show the step by step approach to generate debug log file
during the call to Shipping Public APIs.
1. Add the following lines into the Wrapper file before making a call to the shipping
We are trying to create a delivery and have ensured that the organization passed is not
valid. The wrapper file has been embedded with lines calling the Shipping Debugger. The
Debug file generated in this case has the relevant debug messages.
Refer to the sample wrapper file with enabled debugging and the debug log file
generated as a result of passing invalid organization id.
CREATE_DELIVERY_ R3_10370163.dbg
WITH_DEBUGGER_ON.sql
References:
Oracle Order management Open Interfaces, API, & Electronic Messaging Guide
Release 12
Oracle Order Management Implementation Manual - Release 12
Oracle Shipping Execution User Guide - Release 12