K Appendix: Open Transaction Seed

Overview

Merchandising Solution usually goes live prior to the SIOCS system. The integration layer supports the flow of foundation data via BDI (bulk data import) process or via RIB Messages. As the customer is currently in the transition phase that is, cutover from old system to Oracle Cloud Solution, the complete transaction freeze for the stores may not be achievable. There would be few transactions which would be currently in In-Progress states which means they are either not fully received, closed or cancelled. This data needs to be imported into SIOCS as these are open transactions.

Third Party Open TX data imports open transaction data for three main areas.

  1. Purchase Order

  2. Direct Store Deliveries from Supplier

  3. Transfer / Allocations

Third party transaction import is considered to be one time activity before go live and not a practice for transactional data flow. The system would allow creating new transaction and updating existing transaction only if the sanity of the transaction i.e. the current state in SIOCS database is same.

As the transaction import is from external system the identifier generated for the transactions on the external system will also be mapped to the external identifier of SIOCS transactional data.

The complete integration of data import direct from Merchandising similar to foundation data import is currently not supported. The implementation team would be responsible for source this data via flat file via BDI CLI (command line interface).

The BDI CLI will process this data and post this to SIOCS BDI tables and return a unique generated data set identifier. This identifier can then be used to process this data further to SIOCS database.

The following Transaction Import batches are independent of each other and would be responsible for processing the transaction to SIOCS database.

Direct Delivery - Transaction Import

Imports the direct delivery transaction imported from Merchandising / Third Party System posted on SIOCS BDI table i.e. EXT_DSD_IN. The job supports only creation of the deliveries of ASN types. Data validation is also part of processing and proper error mechanism will log the error against each batch execution. This job do not support the importing UINs and Custom Attributes.

Transfer - Transaction Import

Imports the transfer and allocation records from Merchandising / Third Party System posted on SIOCS BDI table that is, EXT_TSF_IN. The job support creates the transfer / allocation records in SIOCS database and makes them accessible on UI for users to use them. The inventory in-transit calculation post the importing of transaction will also be taken care by this batch job. Data validation is also part of processing and proper error mechanism will log the error against each batch execution.

Purchase Order - Transaction Import

Import the purchase order records from Merchandising / Third Party System posted on SIOCS BDI table that is, EXT_PURCH_ORDER. This job creates the purchase order records in SIOCS database and makes them accessible on UI for users to use them. Data validation is also part of processing and proper error mechanism will log the error against each batch execution.

The job would be available for the Admin user who is authorized to access/run the Data Seeding batch processes via EICS user interface. User will need to navigate to following screen to access and run these batch processes.

  1. Login to EICS via browser

  2. On Navigation Menu select Admin - Technical Maintenance - Job Admin - Data Seed

  3. User will be navigate to Data Seed Screen.

  4. Select the above mention job and specify the data set identifier.

  5. Click on Start Job.

  6. User would be navigate to Job Admin Screen.

In case of failure the job will be listed to Job Admin Screen (as default filter criteria load the failed batch job records). User can click on the link and navigate to the detail screen to see the exact reason of failure.

Technical Design

The technical design for this requirement was made in considering that the data can be posted without any constraint being applied on the database level. This will be help speeding up the data being available for the SIOCS batch jobs to process them further.

The following are few key points for the technical design of transaction data import:

  1. Flattening the database tables

    Flattened database architecture makes the query execution much faster than the normalized form. Each row on the table would denote a line item with complete information of the transaction it belong to and what line item attribute values are.

    This reduces the overhead cost of join and querying multiple tables to get the complete transaction detail identified by a particular identifier.

    Each Column would mapped to the data column of the SIOCS transactional tables. Flatten tables on SIOCS BDI are mapped as follow:

    Table K-1 Flattened Database Table Mapping

    Flattened Table SIOCS Transactional Tables

    EXT_DSD_IN

    DSD

    DSD_CARTON

    DSD_LINE_ITEM

    DSD_ADJUSTMENT

    EXT_TSF_IN

    TSF

    TSF_LINE_ITEM

    TSF_ALLOCATION

    EXT_PURCH_ORDER_IN

    PURCHASE_ORDER

     

    PURCHASE_ORDER_LINE_ITEM


    For the detail column level mapping please refer to the Data Mapping section.

  2. Data Validation

    First and foremost step of the transaction import is validating the data against the values available. The transaction import batch processes would validate the complete data as the data would then be processed to the SIOCS transaction tables. The basic validations which would be performed are as follows:

    1. Is transaction for a valid store?

    2. Is transaction from a valid source? (store, warehouse, finisher or supplier)

    3. Is item identifier exist on item master table of SIOCS database?

    4. Is the status / types specified on data denotes valid information as per the SIOCS technical design?

    Please refer to Exception Handling section for more details.

  3. Parallel Processing

    The batch process will split the data into partition by the transaction external identifiers to support the parallel processing of the transaction import. Each partition will contain the list of transaction identifiers which are to be processed. The number of partition in which the data would be divided is defined by an existing system admin configuration parameter (Batch Maximum Threads). The default value for this parameter is set to 5. Each thread would be assigned a partition to be processed.

    So if there are 10000 transactions to be imported 5 separate thread processed would be instantiated to process a work load of 2000 transactions per thread.

    The partition feature used here is as per JSR 352 specification defined for Java EE 7 and Java SE 6 platforms.

  4. Data Import

    The partitioned transaction external identifier will be validated against the existing transactions on the SIOCS database (if any exists). If the no matching transactions are found, a new transaction would be added to the respective transaction table. If the transaction identifier match to an existing record, then that transaction would be updated the latest data from the flattened staging table. The data import process does not update the state of transaction.

    The data import processes the data into chunks and failover mechanism is added to process the correct data and mark the invalid data as failed. This also helps improving the server performance as not all transactions on a partition are imported at one go. The chunk process will further break the partition in sub-lists and process the data in group of records reducing the server overhead and memory consumption.

  5. Inventory Correction

    The inventory correction logic is not applicable for purchase order processing as there are no inventory bucket to be updated.

    For the transfer transaction which are currently approved, the transfer reserved bucket of the item's inventory at source store need to be corrected once the transaction is successfully imported into the system.

    For the Direct Store Delivery transaction (if associated with customer order), picking quantity would need to be updated when the received delivery is created depending on a system parameter.

    Below are the configuration parameter to be considered while processing the direct store delivery which has a container in Received status.

    Table K-2 Configuration Parameters for DSD Received Status

    Parameter Name Description

    Reserve Customer Order Inventory Upon Receiving

    Update the customer order reserved bucket while creating a new transaction.

    Auto Pick On Receive - Direct Delivery

    Will update the picked quantity on customer order (if exists).

    Auto Pick Mixed Containers

    Will update the picked quantity on customer order (if exist) for a container which contains both customer order related items and normal items.


Technical Architecture

The diagram below depicts the high level architecture of Transaction Import Process Flow.

Figure K-1 Transaction Import Process Flow

Transaction Import Process Flow
  1. Merchandising System / External System

    The Merchandising / External system is the source for transaction import data.

  2. Extracting Data

    System implementer / Consulting Team will be responsible to extract the transactions to be imported in SIOCS to flat files. This flat files are feed to the BDI command line interface to further process and import the data from files to the BDI Schema.

  3. BDI Processing

    BDI command line interface will read the data on the files and create the record on SIOCS BDI Schema _OUT table. This table maps to _IN (Flattened Table) on SIOCS BDI Schema. Once the records are created on the SIOCS BDI table, a control record for the module and interface will be added. The data control id would be returned to the user which can used on EICS to start the batch process.

  4. SIOCS Batch Process

    Using the control id generated by BDI process user will need to start the job to process the record from SIOCS BDI schema to SIOCS schema. To start the batch job user will need to login to EICS Application and navigate to:

    Admin - Technical Maintenance - Job Admin - Data Seed

    User can select the appropriate batch job from the drop down, enter the data control id and start the job.

Data Process Flow

The flow chart below shows the process of data flow for the Transaction Import Batch Process once the data is available in SIOCS BDI Tables.

Figure K-2 Transaction Import Batch Process Data Process Flow

Transaction Import Batch Process Data Process Flow

Exception Handling

This section describe the error message with which batch would be marked as failed due to the invalid data on transaction import file.

Each error message will be prefixed with following text to denote the error recorded is for which particular row value in respective BDI transaction import table.

Prefix Text: Validation failed for Row Sequence: <BDI_SEQ_ID>

Table K-3 1. Purchase Order

Error Cause Data Column with Error

Purchase Order:<PO_EXT_ID> has invalid store information.

Store identifier is not a valid store for a new purchase order.

PO_STORE

Purchase Order:<PO_EXT_ID> has invalid supplier information.

Supplier identifier is not a valid supplier for a new purchase order.

PO_SUPPLIER

Purchase Order:<PO_EXT_ID> has no status information.

Status is either null or not valid value for purchase order status for a new purchase order.

PO_STATUS

Purchase Order:<PO_EXT_ID> has no external status information.

External status is either null or not valid value for purchase order external status for a new purchase order.

PO_EXT_STATUS

Purchase Order:<PO_EXT_ID> has invalid store information that does not match to existing transaction.

Store identifier doesn't match to the existing purchase order.

PO_STORE

Purchase Order:<PO_EXT_ID> has invalid supplier information that does not match to existing transaction.

Supplier identifier doesn't match to the existing purchase order.

PO_SUPPLIER

Purchase Order:<PO_EXT_ID> has invalid status code.

Status is either null or not valid value for purchase order status for an existing purchase order.

PO_STATUS

Purchase Order:<PO_EXT_ID> has status which does not match the existing data.

Status is not same as that for the existing purchase order.

PO_STATUS

Purchase Order:<PO_EXT_ID> has external status information which is not valid for existing transaction.

External status is either null or not a valid value for an existing transaction.

PO_EXT_STATUS

Purchase Order:<PO_EXT_ID> Item:<ITEM_ID> is not ranged for store.

Item is not range to the store.

PO_LINE_ITEM

PO_STORE

Purchase Order:<PO_EXT_ID> Item:<ITEM_ID> is not ranged for supplier.

Item is not ranged to the supplier.

PO_LINE_ITEM

PO_SUPPLIER

Purchase Order:<PO_EXT_ID> Item:<ITEM_ID> has no supplier country information.

Item Supplier country information is not available on the SIOCS.

PO_LINE_ITEM

PO_SUPPLIER

PO_LINE_SUPP_COUNTRY


Table K-4 2. Transfer

Error Cause Data Column with Error

Transfer:<TSF_EXT_ID> has invalid source information.

Transfer source is not valid.

TSF_SRC

Transfer:<TSF_EXT_ID> has invalid destination information.

Transfer destination is not valid.

TSF_DEST

Transfer:<TSF_EXT_ID> is not a valid store transfer.

Transfer is not valid store transfer that is, both source and destination is not a store.

TSF_SRC_TYPE

TSF_DEST_TYPE

Transfer:<TSF_EXT_ID> has invalid status information.

Transfer Status is null or not valid value.

TSF_STATUS

Transfer:<TSF_EXT_ID> has source identifier which does not match the existing data.

Transfer source identifier does not match to the existing transfer transaction on SIOCS.

TSF_SRC

Transfer:<TSF_EXT_ID> has destination identifier which does not match the existing data.

Transfer destination identifier does not match to the existing transfer transaction on SIOCS.

TSF_DEST

Transfer:<TSF_EXT_ID> has status which does not match the existing data.

Transfer status does not match to the existing transaction state on SIOCS.

TSF_STATUS

Transfer:<TSF_EXT_ID> is already approved and use available flag value doesn't match existing data.

Use available flag is changed for the existing approved transfer transaction.

TSF_USE_AVAILABLE

Transfer:<TSF_EXT_ID> has no source type information.

Transfer source type is either null or an invalid value.

TSF_SRC_TYPE

Transfer:<TSF_EXT_ID> has no destination type information.

Transfer destination type is either null or an invalid value.

TSF_DEST_TYPE

Transfer:<TSF_EXT_ID> Item:<ITEM_ID> is not ranged for source.

Item is not ranged for the source.

TSF_LINE_ITEM

TSF_SRC

Transfer:<TSF_EXT_ID> Item:<ITEM_ID> is not ranged for destination.

Item is not ranged for the destination.

TSF_LINE_ITEM

TSF_DEST


Table K-5 3. Allocation

Error Cause Data Column with Error

Allocation:<TSF_ALLOCATION_ID> has source information which does not match existing data.

Allocation source is not valid for the existing transaction.

TSF_SRC

Allocation:<TSF_ALLOCATION_ID> has invalid source information.

Allocation source is either null or not a valid value.

TSF_SRC

Allocation:<TSF_ALLOCATION_ID> has invalid destination information.

Allocation destination is either null or not a valid value.

TSF_DEST

Allocation:<TSF_ALLOCATION_ID> Item:<ITEM_ID> is not ranged for source.

Item is not ranged to the allocation source.

TSF_LINE_ITEM

TSF_SRC

Allocation:<TSF_ALLOCATION_ID> Item:<ITEM_ID> is not ranged for destination.

Item is not ranged to the allocation destination.

TSF_LINE_ITEM

TSF_DEST

Allocation:<TSF_ALLOCATION_ID> has invalid status code.

Allocation status is not valid.

TSF_STATUS

Allocation:<TSF_ALLOCATION_ID> has status which does not match the existing data.

Allocation status does not match to the existing transaction status.

TSF_STATUS

Allocation:<TSF_ALLOCATION_ID> has no expected quantity.

Allocation quantity is null.

TSF_LINE_EXPECTED


Table K-6 4. Direct Store Delivery (DSD)

Error Cause Data Column with Error

DSD ASN is null.

DSD ASN is null.

DSD_ASN

DSD:<ASN> has invalid store identifier.

Store identifier is either null or not a valid store.

DSD_STORE

DSD:<ASN> has invalid supplier identifier.

Supplier identifier is either null or not a valid supplier.

DSD_SUPPLIER

DSD:<ASN> has invalid status code.

Delivery status is either null or not a valid status value.

DSD_STATUS

DSD:<ASN> has invalid carrier type code.

Specified Carrier Type value is not valid.

DSD_CARRIER_TYPE

DSD:<ASN> has store identifier which doesn't matches to existing delivery.

Store identifier does not match to the existing delivery transaction.

DSD_STORE

DSD:<ASN> has supplier identifier which doesn't matches to existing delivery.

Supplier identifier does not match to the existing delivery transaction.

DSD_SUPPLIER

DSD:<ASN> has invalid status code for existing delivery.

Status code is either null or an invalid value for an existing delivery.

DSD_STATUS

DSD:<ASN> has status which does not match the existing data.

Status code does not match the current status of the existing delivery transaction.

DSD_STATUS

DSD:<ASN> is in <DELV_STATUS> status and has one or more container in open state.

Delivery is currently is received status however few container record are in open state on import data.

DSD_STATUS

DSD_CARTON_STATUS

DSD:<ASN> is in <DELV_STATUS> status and has one or more container in open or completed state.

Delivery is in cancel/rejected status however few of the containers on delivery are either completed or open.

DSD_STATUS

DSD_CARTON_STATUS

DSD:<ASN> Container Identifier is null or invalid.

Container identifier is either null or an invalid value.

DSD_CARTON_EXT_ID

DSD Container:<CARTON_EXT_ID> has invalid status code.

Container status is either null or invalid value for status.

DSD_CARTON_STATUS

DSD Container:<CARTON_EXT_ID> has invalid store identifier.

Container store is either null or not a valid store.

DSD_CARTON_STORE

DSD Container:<CARTON_EXT_ID> has store identifier which doesn't match to delivery information.

Container store does not match the delivery store identifier.

DSD_CARTON_STORE

DSD_STORE

DSD Container:<CARTON_EXT_ID> has store identifier which doesn't matches to existing carton.

Container store does not matches to the store identifier for an existing container.

DSD_CARTON_STORE

DSD Container:<CARTON_EXT_ID> has invalid status code.

Container status value is either null or not a valid status value.

DSD_CARTON_STATUS

DSD Container:<CARTON_EXT_ID> has status which does not match the existing data.

Container status does not match the status of existing container.

DSD_CARTON_STATUS

DSD Container:<CARTON_EXT_ID> has invalid order related code.

Order Related flag has an invalid code.

DSD_CARTON_CUST_ORD_RELATED

DSD Line Item:<ITEM_ID> is not ranged for store.

Item is not ranged to the store.

DSD_LINE_ITEM

DSD_LINE_STORE

DSD Line Item:<ITEM_ID> is not ranged for supplier.

Item is not ranged to the supplier.

DSD_LINE_ITEM

DSD_SUPPLIER

DSD Line Item:<ITEM_ID> has invalid store identifier.

Store identifier for line item is either null or not a valid store.

DSD_LINE_ITEM

DSD_LINE_STORE

DSD Line Item:<ITEM_ID> has store identifier which does not match to carton information.

Store identifier for line item does not matches to the container store identifier.

DSD_LINE_STORE

DSD_CARTON_STORE

DSD Line Item:<ITEM_ID> has invalid purchase order identifier.

Purchase Order external identifier for line item is not valid.

DSD_LINE_PO_EXT_ID

DSD Line Item:<ITEM_ID> has store identifier which does not match to existing line item information.

Store identifier for line item does not matches the store identifier for an existing line item.

DSD_LINE_STORE

DSD Adjustment Item:<ITEM_ID> is not ranged for store.

Adjustment Item is not ranged to the store.

DSD_ADJ_ITEM

DSD_STORE

DSD Adjustment Item:<ITEM_ID> is not ranged for supplier.

Adjustment Item is not ranged to the supplier.

DSD_ADJ_ITEM

DSD_SUPPLIER

DSD Adjustment Item:<ITEM_ID> has invalid purchase order external identifier.

Adjustment Item has an invalid purchase order identifier.

DSD_ADJ_PO_EXT_ID

DSD Adjustment Item:<ITEM_ID> has invalid adjustment date.

Adjustment data is set to null.

DSD_ADJ_DATE

DSD Adjustment Item:<ITEM_ID> has invalid adjustment quantity.

Adjustment quantity is not specified.

DSD_ADJ_QUANTITY


Data Mapping

The table below specifies the database column mapping for the each functional area.

  1. Direct Store Delivery from Supplier (DSD Receiving)

    BDI Transaction Import Table: EXT_DSD_IN

    BDI Column Mapped Column Mapped Column Table
    DSD_ASN ASN_ID DSD
    DSD_STORE STORE_ID DSD
    DSD_SUPPLIER SUPPLIER_ID DSD
    DSD_STATUS STATUS DSD
    DSD_EXPECTED_DATE EXPECTED_DATE DSD
    DSD_CREATE_DATE CREATE_DATE DSD
    DSD_UPDATE_DATE UPDATE_DATE DSD
    DSD_RECEIVED_DATE RECEIVED_DATE DSD
    DSD_INVOICE INVOICE_ID DSD
    DSD_INVOICE_DATE INVOICE_DATE DSD
    DSD_CREATE_USER CREATE_USER DSD
    DSD_CUST_ORD_ID CUST_ORDER_ID DSD
    DSD_FUL_ORD_EXT_ID FUL_ORD_EXTERNAL_ID DSD
    DSD_CARRIER_ENTITY CARRIER_ENTITY DSD
    DSD_CARRIER_TYPE CARRIER_TYPE DSD
    DSD_CARRIER_CODE CARRIER_CODE DSD
    DSD_COUNTRY_CODE COUNTRY_CODE DSD
    DSD_SOURCE_ADDRESS SOURCE_ADDRESS DSD
    DSD_LICENSE_PLATE LICENSE_PLATE DSD
    DSD_FREIGHT_ID FREIGHT_ID DSD
    DSD_CURRENCY_CODE CURRENCY_CODE DSD
    DSD_INVOICE_COST INVOICE_COST_VALUE DSD
    DSD_RECEIVED_USER RECEIVED_USER DSD
    DSD_UPDATE_USER UPDATE_USER DSD
    DSD_BOL_EXT_ID BOL_EXTERNAL_ID DSD
    DSD_ADJ_PO_EXT_ID PURCHASE_ORDER_EXT_ID DSD_ADJUSTMENT
    DSD_ADJ_ITEM ITEM_ID DSD_ADJUSTMENT
    DSD_ADJ_DATE ADJUSTMENT_DATE DSD_ADJUSTMENT
    DSD_ADJ_QUANTITY ADJUSTMENT_QUANTITY DSD_ADJUSTMENT
    DSD_CARTON_EXT_ID EXTERNAL_ID DSD_CARTON
    DSD_CARTON_STATUS STATUS DSD_CARTON
    DSD_CARTON_STORE STORE_ID DSD_CARTON
    DSD_CARTON_REFERENCE_ID REFERENCE_ID DSD_CARTON
    DSD_CARTON_DAMAGED_REASON DAMAGED_REASON DSD_CARTON
    DSD_CARTON_SERIAL_CODE SERIAL_CODE DSD_CARTON
    DSD_CARTON_TRACKING_NUMBER TRACKING_NUMBER DSD_CARTON
    DSD_CARTON_DAMAGE_REMAINING DAMAGE_REMAINING DSD_CARTON
    DSD_CARTON_CREATE_USER CREATE_USER DSD_CARTON
    DSD_CARTON_UPDATE_USER UPDATE_USER DSD_CARTON
    DSD_CARTON_RECEIVE_USER RECEIVE_USER DSD_CARTON
    DSD_CARTON_CREATE_DATE CREATE_DATE DSD_CARTON
    DSD_CARTON_UPDATE_DATE UPDATE_DATE DSD_CARTON
    DSD_CARTON_RECEIVE_DATE RECEIVE_DATE DSD_CARTON
    DSD_CARTON_UIN_REQUIRED UIN_REQUIRED DSD_CARTON
    DSD_CARTON_RCV_AT_SHOP_FLOOR RECEIVE_AT_SHOP_FLOOR DSD_CARTON
    DSD_CARTON_QUALITY_CONTROL QUALITY_CONTROL DSD_CARTON
    DSD_CARTON_EXTERNAL_CREATE EXTERNAL_CREATE DSD_CARTON
    DSD_CARTON_ADJUSTED ADJUSTED DSD_CARTON
    DSD_CARTON_CUST_ORD_RELATED CUSTOMER_ORDER_RELATED DSD_CARTON
    DSD_LINE_ITEM ITEM_ID DSD_LINE_ITEM
    DSD_LINE_CASE_SIZE CASE_SIZE DSD_LINE_ITEM
    DSD_LINE_EXPECTED QUANTITY_EXPECTED DSD_LINE_ITEM
    DSD_LINE_RECEIVED QUANTITY_RECEIVED DSD_LINE_ITEM
    DSD_LINE_DAMAGED QUANTITY_DAMAGED DSD_LINE_ITEM
    DSD_LINE_UNIT_COST_CURR UNIT_COST_CURRENCY DSD_LINE_ITEM
    DSD_LINE_UNIT_COST_VAL UNIT_COST_VALUE DSD_LINE_ITEM
    DSD_LINE_OVRD_UNIT_COST_CURR OVERRIDE_UNIT_COST_CURRENCY DSD_LINE_ITEM
    DSD_LINE_OVRD_UNIT_COST_VAL OVERRIDE_UNIT_COST_VALUE DSD_LINE_ITEM
    DSD_LINE_STORE STORE_ID DSD_LINE_ITEM
    DSD_LINE_PO_EXT_ID PURCHASE_ORDER_EXT_ID DSD_LINE_ITEM
    DSD_LINE_CUST_ORD_ID CUST_ORDER_ID DSD_LINE_ITEM
    DSD_LINE_FUL_ORD_EXT_ID FUL_ORD_EXTERNAL_ID DSD_LINE_ITEM
    DSD_LINE_VPN VENDOR_PRODUCT_NUMBER DSD_LINE_ITEM
    DSD_LINE_RECEIVED_OVER QUANTITY_RECEIVED_OVER DSD_LINE_ITEM
    DSD_LINE_DAMAGED_OVER QUANTITY_DAMAGED_OVER DSD_LINE_ITEM
    DSD_LINE_PREV_RECEIVED PREVIOUS_RECEIVED DSD_LINE_ITEM
    DSD_LINE_PREV_DAMAGED PREVIOUS_DAMAGED DSD_LINE_ITEM

  2. Transfers

    BDI Transaction Import Table: EXT_TSF_IN

    Column TSF_DOC_TYPE = T denotes the transaction is transfer.

    BDI Column Mapped Column Mapped Column Table
    TSF_EXT_ID EXTERNAL_ID TSF
    TSF_SRC_TYPE SOURCE_TYPE TSF
    TSF_SRC SOURCE_ID TSF
    TSF_DEST_TYPE DESTINATION_TYPE TSF
    TSF_DEST DESTINATION_ID TSF
    TSF_STATUS STATUS TSF
    TSF_CREATE_USER CREATE_USER TSF
    TSF_UPDATE_USER UPDATE_USER TSF
    TSF_APPROVAL_USER APPROVAL_USER TSF
    TSF_CREATE_DATE CREATE_DATE TSF
    TSF_UPDATE_DATE UPDATE_DATE TSF
    TSF_APPROVAL_DATE APPROVAL_DATE TSF
    TSF_CONTEXT_ID CONTEXT_ID TSF
    TSF_CONTEXT_VALUE CONTEXT_VALUE TSF
    TSF_CUST_ORD_ID CUST_ORD_EXTERNAL_ID TSF
    TSF_FUL_ORD_EXT_ID FUL_ORD_EXTERNAL_ID TSF
    TSF_PARTIAL_DELIVERY_IND ALLOW_PARTIAL_DELIVERY TSF
    TSF_AUTH_CODE AUTHORIZATION_CODE TSF
    TSF_NOT_AFTER_DATE NOT_AFTER_DATE TSF
    TSF_REQUEST_DATE REQUEST_DATE TSF
    TSF_REQUEST_USER REQUEST_USER TSF
    TSF_USE_AVAILABLE USE_AVAILABLE TSF
    TSF_LINE_ITEM ITEM_ID TSF_LINE_ITEM
    TSF_LINE_CASE_SIZE CASE_SIZE TSF_LINE_ITEM
    TSF_LINE_REQUESTED QUANTITY_REQUESTED TSF_LINE_ITEM
    TSF_LINE_APPROVED QUANTITY_APPROVED TSF_LINE_ITEM
    TSF_LINE_SHIPPING QUANTITY_SHIPPING TSF_LINE_ITEM
    TSF_LINE_SHIPPED QUANTITY_SHIPPED TSF_LINE_ITEM
    TSF_LINE_RECEIVED QUANTITY_RECEIVED TSF_LINE_ITEM
    TSF_LINE_DAMAGED QUANTITY_DAMAGED TSF_LINE_ITEM
    TSF_LINE_PREFERRED_UOM PREFERRED_UOM TSF_LINE_ITEM

  3. Transfer Allocations

    BDI Transaction Import Table: EXT_TSF_IN

    Column TSF_DOC_TYPE = A denotes the transaction is transfer allocation.

    BDI Column Mapped Column Mapped Column Table
    TSF_EXT_ID EXTERNAL_ID TSF_ALLOCATION
    TSF_DELIVERY_DATE DELIVERY_DATE TSF_ALLOCATION
    TSF_LINE_ITEM ITEM_ID TSF_ALLOCATION
    TSF_DEST STORE_ID TSF_ALLOCATION
    TSF_DELV_SLOT_ID DELIVERY_SLOT_ID TSF_ALLOCATION
    TSF_SRC SOURCE_ID TSF_ALLOCATION
    TSF_SRC_TYPE SOURCE_TYPE TSF_ALLOCATION
    TSF_CONTEXT_VALUE CONTEXT_VALUE TSF_ALLOCATION
    TSF_LINE_DIST_PARENT_ID DISTRIBUTION_PARENT_ID TSF_ALLOCATION
    TSF_STATUS STATUS TSF_ALLOCATION
    TSF_LINE_EXPECTED QUANTITY_EXPECTED TSF_ALLOCATION
    TSF_LINE_RECEIVED QUANTITY_RECEIVED TSF_ALLOCATION
    TSF_LINE_DAMAGED QUANTITY_DAMAGED TSF_ALLOCATION
    TSF_CONTEXT_ID CONTEXT_ID TSF_ALLOCATION

  4. Purchase Order

    BDI Transaction Import Table: EXT_PURCH_ORDER_IN

    BDI Column Mapped Column Mapped Column Table
    PO_EXT_ID EXTERNAL_ID PURCHASE_ORDER
    PO_STORE STORE_ID PURCHASE_ORDER
    PO_SUPPLIER SUPPLIER_ID PURCHASE_ORDER
    PO_STATUS STATUS PURCHASE_ORDER
    PO_NOT_BEFORE_DATE NOT_BEFORE_DATE PURCHASE_ORDER
    PO_NOT_AFTER_DATE NOT_AFTER_DATE PURCHASE_ORDER
    PO_CREATE_DATE CREATE_DATE PURCHASE_ORDER
    PO_UPDATE_DATE UPDATE_DATE PURCHASE_ORDER
    PO_COMPLETE_DATE COMPLETE_DATE PURCHASE_ORDER
    PO_USER USER_ID PURCHASE_ORDER
    PO_COMMENTS COMMENTS PURCHASE_ORDER
    PO_CUST_ORD_ID CUST_ORDER_ID PURCHASE_ORDER
    PO_FUL_ORD_EXT_ID FUL_ORD_EXTERNAL_ID PURCHASE_ORDER
    PO_EXT_STATUS EXTERNAL_STATUS PURCHASE_ORDER
    PO_LINE_ITEM ITEM_ID PURCHASE_ORDER_LINE_ITEM
    PO_LINE_SUPP_COUNTRY SUPPLIER_COUNTRY_ID PURCHASE_ORDER_LINE_ITEM
    PO_LINE_CASE_SIZE CASE_SIZE PURCHASE_ORDER_LINE_ITEM
    PO_LINE_EXPECTED QUANTITY_EXPECTED PURCHASE_ORDER_LINE_ITEM
    PO_LINE_RECEIVED QUANTITY_RECEIVED PURCHASE_ORDER_LINE_ITEM
    PO_LINE_UNIT_COST_CURRENCY UNIT_COST_CURRENCY PURCHASE_ORDER_LINE_ITEM
    PO_LINE_UNIT_COST_VALUE UNIT_COST_VALUE PURCHASE_ORDER_LINE_ITEM
    PO_LINE_PREFERRED_UOM PREFERRED_UOM PURCHASE_ORDER_LINE_ITEM
    PO_LINE_PUBLISHED PUBLISHED PURCHASE_ORDER_LINE_ITEM