ASNOut (Advanced Ship Notification Out of the warehouse/store) messages are published by a warehouse or
stores system as part of its shipping process. These messages are published
when a truck/train/… is loaded with items destined for a store or warehouse. The
expectation is that the electronic ASNOut message will arrive at the store/Retail
Warehouse Management System (RWMS) or the merchandizing system before the
shipment physically arrives at the store/warehouse. An ASNOut Rib Message node
is specific to a single source/destination combination.
For the destination store or
warehouse, the logic to process these incoming messages is already in place for
the ASNIn (Advanced Ship Notification Into a
warehouse/store). Hence, this TAFR has the purpose to transform the ASNOut
message into an ASNIn message and route the output message to the correct
warehouse instance or store inventory system.
Other interested parties to
the ASNOut messages, such as a merchandizing system, must subscribe to the
original etASNOut topic as a separate subscriber. This TAFR is only concerned
with transforming and routing on behalf of a store or warehouse system.
In RMS, on-line shipping and receiving functionality allows clients to setup their system such that shipping and receiving can be done within RMS if a separate store or warehouse system is not used. Shipments created within RMS will be published out as ASNOut messages.
In RMS, shipments can also be
created for wholesale/franchise returns. These wholesale franchise returns are
essentially transfers from wholesale/franchise stores to company
stores/warehouses. For SIM or RWMS to receive these shipments, they need to
have a valid ASN to receive against. This requires RMS to publish shipments created
for wholesale/franchise returns.
Input Message Routing Information: The routing information for a message should contain the “from location” and
the “to location” specification. If either the “to location” type or the “from
location” type is not found in the routing info, then the message payload is
searched for the location and location type values for both the “to location”
and the “from location”.
The
message will be dropped if both the “from location” type is a store and the “to
location” type is a store and message type is ‘ASNOutCre’.
It is an error for message if
“from_phys_loc_type” in routing information
is not 'w' or 's' or 'e' or 'v' and “to_phys_loc_type” is not 'w' or 's' or 'e'.
ASNOutTafr_Routing.htm contains consolidated list of ASNOut message flows with their routing info and their destinations. The last flow explains how the TO LOC and FROM LOC is calculated by the RIB in case a message is missing the routing info.
Output Message Topic: Published output messages for the warehouse will be
sent to a warehouse specific JMS destination. Published output messages for all
stores will all be published to the same JMS destination.
Output Message Routing Information: The following output message routing info records will
be added if not present on the input message:
a.
facility_type –
the facility type. The value used will come from the default facility type
found in the configuration.
b.
asn_type – a
default of “C' will be used.
RibMessage envelope header fields: Outbound messages will have the same values as the
input messages for the RIB message envelope tags of : <ribmessageID>, <customFlag>,
<customData>, <id>. If one of these input fields is not present,
then the output message will also not contain this tag. Nested tags within
these fields will also be copied. An input message may contain a null or
missing <publishTime>, while the output message may contain a set
publishTime. All output message <publishTime> fields must be set to a
date/time equal to or after the input publishTime.
Message payload XML schema declaration: The
<messageData> or “payload” string will contain a namespace xml schema
declaration detailing the URL of a XML schema definition (XSD) file. The
directory specification in this URL will reside in the configuration, thus
allowing the customer to configure his/her own value. The name of the XSD file
specified will be “ASNInDesc.xsd”.
Payload Processing: Capitalization differences of the input message <type> value
will be ignored. Input messages having a <type> value of “asnoutcre” will
be mapped to an output type of “ASNInCre”. The output payload class type for
this set of messages will be the com.retek.payload.ASNInDesc class. The input
payload class will be the com.retek.payload.ASNOutDesc class. The table below
details the conversion between the ASNOutDesc fields and the ASNInDesc fields. Any
ASNOutDesc field not contained in the table will be ignored.
ASNOutDesc field |
ASNInDesc field |
Required for |
Comment |
to_location |
to_location |
Both |
|
from_location |
from_location |
Both |
|
asn_nbr |
asn_nbr |
ASNIn only |
Implementation
will assume this value is set on input. |
auto_receive |
auto_receive |
Neither
|
|
schedule_nbr |
schedule_nbr |
Neither
|
|
asn_type |
asn_type |
ASNIn only |
Implementation
will assume this value is set on input. |
container_qty |
container_qty |
ASNIn only |
Implementation
will assume this value is set. ASNOutDesc uses integer, ASNInDesc uses String |
bol_nbr |
bol_nbr |
ASNOut
only |
|
shipment_date |
shipment_date |
ASNIn only |
Implementation
will assume this value is set. Hour, minute, second are optional |
est_arr_date |
est_arr_date |
Neither
|
Hour,
minute, second are optional |
ship_address_1 |
ship_address_1 |
Neither |
|
ship_address_2 |
ShipAddress2 |
Neither |
|
ship_address_3 |
ship_address_3 |
Neither |
|
ship_address_4 |
ship_address_4 |
Neither |
|
ship_address_5 |
ship_address_5 |
Neither |
|
ship_city |
ship_city |
Neither |
|
ship_state |
ship_state |
Neither |
|
ship_zip |
ship_zip |
Neither |
|
ship_country_id |
ship_country_id |
Neither |
|
trailer_nbr |
trailer_nbr |
ASNOut
only |
|
seal_nbr |
seal_nbr |
Neither |
|
carrier_code |
carrier_code |
ASNOut
only |
|
comments |
comments |
Neither |
|
|
vendor_nbr |
ASNIn only |
vendor_nbr
does not exist in ASNOutDesc. However, since it is required, the TAFR
will copy an empty string to this field. |
ASNOutDesc
records contain zero or more ASNOutDistro elements. The ASNOutDistro elements will be copied to
ASNInPO elements. Any ASNOutDistro field
not included in the table below will be ignored. On input, ASNOutDistro records
are included in an array of <ASNOutDistro> elements. On output, ASNInPO
records are held in an array of
< ASNInPO > elements.
ASNOutDistro field |
ASNInPO field |
Required for |
Comment |
distro_nbr |
po_nbr |
Both |
|
distro_doc_type |
doc_type |
Both |
|
comments |
comments |
Neither |
|
ASNOutDistro
elements contain 1 or more ASNOutCtn
(ASNOut container) elements. ASNOutCtn elements are copied to ASNInCtn elements
contained in an ASNInPO element according to the table below. Any ASNOutCtn field not included in the table
below will be ignored.
ASNOutCtn field |
ASNInCtn field |
Required |
Comment |
final_location |
final_location |
ASNOut
only |
Also
copied to ASNInItem if not found in ASNOutItem. |
container_id |
container_id |
Both |
|
container_weight |
container_weight |
Neither |
|
container_length |
container_length |
Neither |
|
container_width |
container_width |
Neither |
|
container_height |
container_height |
Neither |
|
container_cube |
container_cube |
Neither |
|
expedite_flag |
expedite_flag |
Neither |
|
in_store_date |
in_store_date |
Neither |
|
rma_nbr |
rma_nbr |
Neither |
|
tracking_nbr |
tracking_nbr |
Neither |
|
freight_charge |
freight_charge |
Neither |
|
comments |
comments |
Neither |
|
ASNOutCtn
elements contain 1 or more
ASNOutItem elements. ASNOutCtn elements
are copied to ASNInItem elements contained in an ASNInPO element according to
the table below. An ASNInPO record
contains both the ASNInCtn and the ASNInItem element arrays for a specific
purchase order. Any ASNOutItem field not
included in the table below will be ignored.
ASNOutItem
field |
ASNInItem field |
Required |
Comment |
item_id |
item_id |
Both |
|
unit_qty |
unit_qty |
Both |
|
priority_level |
priority_level |
Neither |
ASNOutItem
uses integer, ASNInItem uses string |
order_line_nbr |
order_line_nbr |
Neither |
|
lot_nbr |
lot_nbr |
ASNInItem only |
Implementation
will assume lot_nbr set on input |
comments |
comments |
Neither |
|
container_qty |
container_qty |
Neither |
ASNOutItem
uses integer, ASNInItem uses string |
final_location |
final_location |
ASNInItem |
If
final_location is not set in ASNOutItem, use from ASNOutCtn. |
|
distro_nbr |
ASNInItem |
Use
from ASNOutCtn. |
|
distro_doc_type |
ASNInItem |
Use
from ASNOutCtn. |