Troubleshooting: Mandatory parameter missing when populating ITEMSPC table

An error occurs while attempting to populate ITEMSPC table due to mandatory parameter missing.

Problem

After running the Data Load utility, the following error might occur if you are loading non-ATP data, and the inventory system you are using is not set to non-ATP:

An error occurred while attempting to populate the table ITEMSPC because the mandatory parameter ParentProductIdentifier was missing.


The ID was not resolved for the table ITEMSPC with the unique index data 
[DL_PROD1_SKU1, 7000000000000000054]
.
Stack trace:
com.ibm.commerce.foundation.dataload.exception.DataLoadApplicationException: The ID was not resolved for 
the table ITEMSPC with the unique index data 
[DL_PROD1_SKU1, 7000000000000000054]
.
        at com.ibm.commerce.foundation.dataload.idresolve.IDResolverForOneTable.resolveId
       (IDResolverForOneTable.java:336)
        at com.ibm.commerce.foundation.dataload.idresolve.IDResolverImpl.resolveId
       (IDResolverImpl.java:266)
        at com.ibm.commerce.foundation.dataload.businessobjectmediator.
        AbstractBusinessObjectMediator.resolveIds(AbstractBusinessObjectMediator.java:1164)
        at com.ibm.commerce.foundation.dataload.businessobjectmediator.AbstractBusinessObjectMediator.
        resolveId(AbstractBusinessObjectMediator.java:1118)
        at com.ibm.commerce.inventory.dataload.mediator.AbstractInventoryMediator.resolveItemSPCId
       (AbstractInventoryMediator.java:656)
        at com.ibm.commerce.inventory.dataload.mediator.InventoryReceiptMediator.populateRECEIPT
       (InventoryReceiptMediator.java:251)
        at com.ibm.commerce.inventory.dataload.mediator.InventoryReceiptMediator.transform
       (InventoryReceiptMediator.java:120)
        at com.ibm.commerce.foundation.dataload.businessobjectmediator.AbstractBusinessObjectMediator.
        execute(AbstractBusinessObjectMediator.java:387)
        at com.ibm.commerce.foundation.dataload.businessobjectbuilder.AbstractBusinessObjectBuilder.
        processData(AbstractBusinessObjectBuilder.java:501)
        at com.ibm.commerce.foundation.dataload.businessobjectbuilder.AbstractBusinessObjectBuilder.
        processData(AbstractBusinessObjectBuilder.java:458)
        at com.ibm.commerce.foundation.dataload.businessobjectbuilder.AbstractBusinessObjectBuilder.
        execute(AbstractBusinessObjectBuilder.java:261)
        at com.ibm.commerce.foundation.dataload.AbstractBusinessObjectLoader.processBusinessObjectBuilder
       (AbstractBusinessObjectLoader.java:1313)
        at com.ibm.commerce.foundation.dataload.AbstractBusinessObjectLoader.loadData
       (AbstractBusinessObjectLoader.java:1138)
        at com.ibm.commerce.foundation.dataload.AbstractBusinessObjectLoader.execute
       (AbstractBusinessObjectLoader.java:411)
        at com.ibm.commerce.foundation.dataload.DataLoaderMain.execute(DataLoaderMain.java:451)
        at com.ibm.commerce.foundation.dataload.DataLoaderMain.main(DataLoaderMain.java:212)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Note: The information in bold represents variable information: 7000000000000000054 is the member_id , and DL_PROD1_SKU1 is the partnumber.

Solution

Run the following SQL statement to change the inventory system of your store to non-ATP:

UPDATE STORE SET INVENTORYSYSTEM=-2 WHERE STORE_ID in 
    (SELECT STOREENT.STOREENT_ID FROM STOREENT WHERE STOREENT.IDENTIFIER ='
<storeIdentifier>

')
Where <storeIdentifier> is the external identifier of your store, for example AuroraESite.

If you want your store to use an ATP inventory system, provide the necessary ATP data in the source file. Refer to the data load sample Loading ATP inventory data for an example of how to load ATP inventory to your store: Sample: Loading ATP configuration information for a catalog entry .