TransferToStockOrder TAFR

 

Transfer messages are published by a merchandizing system, such as RMS to transfer a known quantity of goods on behalf of a specific store. These messages are closely related to Allocations, but have different business semantics. However, store and warehouse inventory business processes treat both Allocations and Transfers in the same manner. Hence, the store and warehouse systems accept Stock Order messages while the merchandizing system produces both Allocation and Transfer messages. Other business processing systems may also accept separate Allocation or Transfer messages.

 

Transfer messages may denote a transfer of goods from a warehouse to a store, a warehouse to another warehouse, a store to a warehouse or a store to another store.

 

The Transfer to Stock Order TAFR takes Transfer messages and converts them to Stock Order messages. Stock Order messages are subscribed to by both store and warehouse inventory management applications. Besides transforming the message payload formats, the TAFR must also perform routing and filtering operations to insure the message is forwarded to the correct instance of the warehouse or store with warehouse or store specific information.

 

Functional requirements

 

Input message routing info records: The routing information for an input Transfer message is assumed to contain the “from physical location specification” and the “to physical location specification”. All value processing is performed in a case insensitive manner. “To physical loc” and “from physical loc” Location ids should be numeric integer strings, but this TAFR has no requirements for validation of this.

The input message should contain a “facility_type” routing info record. If it does not contain such a record, the configured default facility type identifier is used during processing.

 

The payload denotes a transfer to or from a warehouse by creating in the Rib Message envelope a “to_phys_loc” or “from_phys_loc” routing info record with a detail named “phys_loc_type” with a value of “w”. The location id is specified in this record's “value” tag. The topic messages are published to is dependent on the facility type value and a configuration entry named facilty_id.{facility type}.{location}, where {facility type} is the facility type identifier (see TAFR.6.1.2) and the {location} is the value of the <value> tag for the “to_phys_loc” or the “from_phys_loc” routing info record.

 

The payload denotes a transfer to or from a store by creating in the Rib Message envelope a “to_phys_loc” or “from_phys_loc” routing info record with a detail named “phys_loc_type” with a value of “s”. The location id is specified in this record's “value” tag.

 

An error will occur if the “from_phys_loc” specification or the “to_phys_loc” specification has a “phys_loc_type” value other than “w” or “s”.

 

Warehouse routing configuration entries: Outbound messages to the warehouse system is dependent on the setting for the “WarehouseSystemActive”, “WarehouseSystemRouteToToLoc”, and “WarehouseSystemRouteToFromLoc” configuration properties.

 

Transfer messages denoting a transfer out of a warehouse will be routed to the appropriate warehouse topic only if the “WarehouseSystemActive” and the “WarehouseSystemRouteToFromLoc” configuration properties have both been set to true.

 

Transfer messages denoting a transfer into a warehouse will be routed to the appropriate warehouse topic only if the “WarehouseSystemActive” and the “WarehouseSystemRouteToToLoc” configuration properties have both been set to true.

 

The TAFR will not process any messages successfully if the “WarehouseSystemActive” property is set to “true” and both the “WarehouseSystemRouteToToLoc” and “WarehouseSystemRouteToFromLoc” are set to “false”

 

Store inventory system routing configuration entries: Outbound messages to the store inventory system is dependent on the configuration setting for the “StoreSystemActive”, “StoreSystemRouteToToLoc”, and “StoreSystemRouteToFromLoc” properties.

 

Transfer messages denoting a transfer out of a warehouse will be routed to the store inventory system topic only if the “StoreSystemActive” and the “StoreSystemRouteToFromLoc” have both been set to true.

 

Transfer messages denoting a transfer into a store will be routed to the store inventory system topic only if the “StoreSystemActive” and the “StoreSystemRouteToToLoc” have both been set to true.

 

The TAFR will not process any messages successfully if the “StoreSystemActive” property is set to “true” and both the “StoreSystemRouteToToLoc” and “StoreSystemRouteToFromLoc” are set to “false”

 

RIB Message Envelope processing: Outbound messages will have the same values as the input messages for the RIB message envelope tags of : <ribmessageID>, <customFlag>, <customData>, <hospitalRef>, <hospitalID>, <failure>, <id>. If one of these input fields are 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 Type processing: The table below denotes valid input message type fields found in the Rib Message envelope. Any other message type will result in a processing error. The message type processing is case insensitive.

 

Input message type

Input payload class

output message type

output payload class

transfercre

TsfDesc

socre

SODesc

transferdtlcre

TsfDesc

sodtlcre

SODesc

transferhdrmod

TsfDesc

sohdrmod

SODesc

transferdtlmod

TsfDesc

sodtlmod

SODesc

transferdel

TransferRef

sohdrdel

SORef

transferdtldel

TransferRef

sodtldel

SORef

 

Output message DOCTYPE Declaration: The <messageData> or “payload” string will contain a <DOCTYPE> tag detailing the URL of a document type definition 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 DTD file specified will be either “SODesc.dtd” or “SORef.dtd” depending on if the payload class is an SODesc or an SORef class, respectively.

 

The table below details the conversion between the TsfDesc fields and the SODesc fields. Any TsfDesc field not contained in the table will be ignored.

 

TsfDesc field

SODesc field

Required by

Comment

tsf_no

distro_nbr

Both

 

doc_type

document_type

Both

 

physical_from_loc

dc_dest_id

Both

 

pick_not_before_date

pick_not_before_date

Both

Year, month, day ,hour, minute, second copied

pick_not_after_date

pick_not_after_date

Both

Year ,month, day, hour, minute, second copied

not_after_date

not_after_date

Neither

 

default_order_type

order_type

Both

 

priority

priority

Both

 

 

TsdDesc records may contain zero or more TsfDtl (Transfer detail) records. TsfDtl records will be copied to SODtlDesc records according to the table below. Any TsfDtl field not included in the table below will be ignored. On input, Transfer Detail records are included in an array of <TsfDtl> elements. On output, SODtlDesc records are held in an array of <SODtlDesc> elements.

 

TsfDtl field

SODtl field

Required by

Comment

 

dest_id

Both

See Note below.

 

item

item_id

Both

 

tsf_qty

requested_unit_qty

Both

 

price

retail_price

SODtl Only

“price” is an optional field that RMS always publishes. 'retail_price' is mandatory as per the XSD or DTD. The implementation will assume the presence of “price”.

selling_uom

selling_uom

Neither

 

priority

priority

Neither

 

ticket_type_id

ticket_type

Neither

 

store_ord_mult

store_ord_mult

Neither

 

expedite_flag

expedite_flag

Neither

 

 

Note: the <dest_id> field of the SODtl record will use the same value as the <physical_to_loc> found in the TSFDesc record of the payload. This means that every SODtl will have the same value for all of the <dest_id> fields. Furthermore, <physical_to_loc> is defined to be a string, but <dest_id> is a long. The system will assume <physical_to_loc> is an integer string and an error will occur if it isn't.

 

TsfDtl records may contain zero or more TsfDtlTckt (transfer detail ticket) records. TsfDtlTckt records will be copied to SODtlTckt records according to the table below. The same parent/child relationship between TsfDesc/TsfDtl/TsfDtlTckt records will be maintained within the SODesc/SODtlDesc/SODtlTcktDesc hierarchy.

Any TsfDtlTckt field not included in the table below will be ignored.
TsfDtlTckt field

SODtlTcktDesc field

Required by

Comment

 

distro_nbr

SODtlTcktDesc and TsfDesc

See Note 1 below

 

document_type

SODtlTcktDesc and TsfDesc

The <distro_nbr> and <document_type> fields of the output SODtlTcktDesc will be set with the same value as found in the <tsf_no> and <doc_type> fields in the TsfDesc record. This means that all SODtlTcktDesc records will have the same values for <distro_nbr> and <document_type>.

 

 

item_id

TsfDesc only

The <item_id> field of the output SODtlTcktDesc will be set with the same value of the <item> field found in the input TsfDtlTckt's parent TsfDtl record. This means that all SODtlTcktDesc records for a given SODtlDesc will have the same <item_id> value.

comp_item

component_item_id

SODtlTcktDesc and TsfDtlTckt

 

 

retail_price

SODtlTcktDesc Only

The <price> field of the output SODtlTcktDesc will be set with the same value as the <price> field found in the input TsfDtlTckt's parent TsfDtl record. This means that all SODtlTcktDesc records for a given SODtlDesc will have the same <retail_price> value.

 

selling_uom

SODtlTcktDesc Only

The <selling_uom> field of the output SODtlTcktDesc will be set with the same value as the <selling_uom> field found in the input TsfDtlTckt's parent TsfDtl record. This means that all SODtlTcktDesc records for a given SODtlDesc will have the same <selling_uom> value.




Input messages having a <type> value of “transferdel” or “transferdtldel” will have an output message <type> value of “sodel” or “sodtldel”, respectively. The output payload class type for this set of messages will be the com.retek.payload.SORef class. The input payload class will be the com.retek.payload.TsfRef class. The table below details the conversion between the TsfRef fields and the SORef fields. Any TsfRef field not contained in the table will be ignored.

 

TsfRef field

SORef field

Required by

Comment

tsf_no

distro_nbr

Both

 

doc_type

document_type

Both

 

physical_from__loc

dc_dest_id

Both

 

 

 

TsfDtlRef records will be copied to SODtlRef records according to the table below. Any TsfDtlRef field not included in the table below will be ignored. On input, TsfDtlRef records are included in an array of <TsfDtlRef> elements. On output, SODtlRef records are held in an array of <SODtlRef> elements. The SODtlRef array is optional.

TsfDtlRef field

SODtlRef field

Required by

Comment

 

dest_id

SODtlRef field and TsfRef

See Note below.

item

item_id

Both

 

Note: The dest_id field of the SODtlRef object will come from the TsfRef <physical_to_loc> field. Hence, the same <dest_id> value will be present in all details.

 

 

 

Disclaimer: This document is a general data mapping and reference guide for data coming in and out of Oracle Retail application systems via RIB messages; it is not meant to give detailed information about every possible data scenario.