Samples > Data load utility samples > Examples: Mapping data > Examples: Mapping inventory data


Example: Insert and replace expected inventory detail

Overview

Use data load utility to load data into the RADETAIL table.


Prerequisites

Before running this example, ensure the following prerequisites have been fulfilled:


CSV file with sample data

In this example the data source is a CSV file named radetail.csv. The file contains sample data.

CSV file with sample data

VendorName RACreateTime PartNumber ExpectedDate Quantity RADetailComment
J and J Company 2005-07-12 01:01:01.123456 FULO-0101 2005-12-08 00:00:00.0 10000 radetail comment
AdvancedB2BDirect Vendor 2008-05-15 04:04:04.0 FULO-0201 2008-12-24 00:00:00.0 500 radetail comment
AdvancedB2BDirect Vendor 2009-05-21 00:00:00.0 FULO-0301 2009-12-31 00:00:00.0


CSV file column definitions

VendorName

(Mandatory, string) The vendor that supplied the inventory. This field is used to resolve the RA_ID. This field is mandatory and cannot be null.

RACreateTime

(Mandatory, timestamp) The creation date and time of the corresponding expected inventory record (RA). The format of the input is "yyyy-mm-dd hh:mm:ss.SSSSSS". the length of the fractional seconds should no more than 6. The format may be customized by setting timestampPattern property in wc-dataload.xml. This field is used to resolve the RA_ID. This field is mandatory and cannot be null.

PartNumber

(Mandatory, string) The part number of this item. It uniquely identifies an item for a particular owner.

Together with the owner identifier, it is used to retrieve the primary key of ITEMSPC table, i.e. ITEMSPC_ID. This field is mandatory and cannot be null if the CatalogEntryUniqueId field is not specified in CSV file.

ExpectedDate

(Mandatory, Timestamp) The date this inventory is expected to be received. The format is same as specified in RACreateTime field.

Quantity

(Integer) Quantity ordered from vendor in this expected inventory record.

RADetailComment

(String) The comments. The length of the comment should be no more than 254.

Other optional fields not included in the example are:

StoreIdentifier

(String) The identifier of the store which this item belongs to, such as ConsumerDirect. This column can be added into CSV if the item belongs to a store which is different from the store defined in BusinessContext elements of wc-dataload-env.xml. If this column is not provided in the CSV file, the StoreIdentifier in the business context will be used.

FulfillmentCenterId

(Integer) The identifier of the fulfillment center which this item belongs to. This column may be added into CSV if the item belongs to a fulfillment center which is different from the one defined in BusinessContext property of wc-dataload-env.xml. If this column is not provided in the CSV file, the fulfillmentCenterIdentifier is retrieved by FulfillmentCenterName. If it is not found, the fulfillmentCenterIdentifier in the business context will be used. If it is not specified in either CSV file or business context, the default fufillmentCenter of the specified store will be used.

FulfillmentCenterName

(String) The name of the fulfillment center which this item belongs to, for example "ConsumerDirect Home". This column is used to retrieve fulfillmentCenterIdentifier.

OwnerId

(Long) The identifier of the owner of this item. If it is not specified in the CSV file, the owner of the catalog entry asset store is retrieved. If it is not found, the owner of current store is retrieved. If it is not found either, the ownerId specified in BusinessContext property of wc-dataload-env.xml will be used.

CatEntryStoreIdentifier

(String) This field is used under e-site store model. If the CatalogEntry is defined in a catalog entry asset store, this field stands for the identifier of the catalog entry asset store. This identifier is used to retrieve the catalog entry owner.

CatalogEntryUniqueId

(Long) The identifier of the catalog entry. It is used to retrieve the primary key of ITEMSPC table, i.e. ITEMSPC_ID. If this field is not specified in CSV file, ITEMSPC_ID will be retrieved by part number and owner of the item.

Delete

(String) Indicates whether to delete this record. This field takes effect when dataLoadMode is "replace". If the value of this field equals to deleteValue, the corresponding record will be deleted. The default deleteValue is 1, deleteValue may be configured under <DataMapping> element in BusinessObjectConfigFile.


Business context data

The following code snippet from the wc-dataload-env.xml configuration file provides the business context data necessary for loading the data:

<_config:BusinessContext storeIdentifier="ConsumerDirect">        
    <_config:ContextData name="fulfillmentCenterName">ConsumerDirect Home</_config:ContextData>        
    <_config:ContextData name="ownerId">7000000000000000102</_config:ContextData>
</_config:BusinessContext>

storeIdentifier

(String) The identifier of the store which this item belongs to, such as ConsumerDirect. It is used if CSV file does not provide this information. The StoreIdentifier is used to retrieve the storeID and the ownerID.

fulfillmentCenterId

(String) The identifier of the fulfillment center this item belongs to, for example "ConsumerDirect Home". It is used if the identifier can't be retrieved by FulfillmentCenterId or FulfillmentCenterName specified in CSV file.

FulfillmentCenterName

(String) The name of the fulfillment center this item belongs to, for example "ConsumerDirect Home". It is used to retrieve the fulfillmentCenterID, if fulfillmentCenterID is neither retrieved from CSV file nor defined in business context.

OwnerId

(Long) The identifier of the owner of this item. It is used if the item owner is not provided in CSV file and can't be retrieved by specified store identifier.


Map data

The following snippet from the sample configuration file demonstrates how to map each column of data in the source CSV file to a value.

<_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.CSVReader" firstLineIsHeader="true">        
<_config:Data>                       
<_config:column number="1" name="VendorName" />                       
<_config:column number="2" name="RACreateTime" />                       
<_config:column number="3" name="PartNumber" />                       
<_config:column number="4" name="ExpectedDate" />                       
<_config:column number="5" name="Quantity" />                       
<_config:column number="6" name="RADetailComment" />                        
       
</_config:Data>
</_config:DataReader >

The following snippet from the sample configuration file demonstrates how to map each column of the data in the CSV file to a business object logical schema path. The attribute 'value' represents the name of a column of the CSV file which is defined in the configuration snippet above. Each column in the CSV file must have a mapping to the logical schema path. If the optional fields specified above are present in the CSV file, the mapping for them must be added. The mapping logical schema path is specified in the following table.

<_config:DataMapping>     

    <_config:mapping xpath="ExpectedInventoryRecordIdentifier/ExternalIdentifier/VendorName" 
                     value="VendorName" 
                     valueFrom="InputData" />        

    <_config:mapping xpath="ExpectedInventoryRecordIdentifier/ExternalIdentifier/CreateDate" 
                     value="RACreateTime" valueFrom="InputData" />       

    <_config:mapping xpath="ExpectedInventoryDetail[0]/ExpectedInventoryDetailIdentifier/ExternalIdentifier/CatalogEntryIdentifier/ExternalIdentifier/PartNumber" 
                     value="PartNumber" 
                     valueFrom="InputData" />       

    <_config:mapping xpath="ExpectedInventoryDetail[0]/ExpectedInventoryDetailIdentifier/ExternalIdentifier/ExpectedDate" 
                     value="ExpectedDate" 
                     valueFrom="InputData" />       

    <_config:mapping xpath="ExpectedInventoryDetail[0]/QuantityOrdered/value" 
                     value="Quantity" 
                     valueFrom="InputData" />       

    <_config:mapping xpath="ExpectedInventoryDetail[0]/QuantityRemaining/value" value="Quantity" 
                     valueFrom="InputData" />       

    <_config:mapping xpath="ExpectedInventoryDetail[0]/Comment" 
                     value="RADetailComment" 
                     valueFrom="InputData" />
</_config:DataMapping>


Business object mediator

The mediator class name is com.ibm.commerce.inventory.dataload.mediator.ExpectedInventoryDetailMediator. The corresponding logical schema is ExpectedInventoryRecord.xsd.


+

Search Tips   |   Advanced Search