Resolving identifiers for records that share identifiers with existing data
If you are loading new data into a WebSphere Commerce database that shares identifiers with data that already exists in the WebSphere Commerce database, include the existing data in the XML file that you want to load. The existing data must appear before the new data in the XML file.
An example of this situation is adding a new language to an existing catalog. For example, you have a master catalog in English and you want to add French information to the catalog.
The idresgen utility generates new identifiers for the new data instead of referencing the existing data for either of the following situations:
- You do not include the existing data in your XML file.
- You include the existing data, but the existing data appears after the new data.
By including the existing data before the new data, the idresgen utility is correctly able to resolve the identifiers and relate them to existing identifiers.
Example
A master catalog has English data loaded into the database. The English catalog has a shirt with two attributes, color and size. The ATTRIBUTE database table contains the following information:
ATTRIBUTE_ID LANGUAGE_ID ATTRTYPE_ID NAME DESCRIPTION 12090 -1 STRING Color Color 12124 -1 STRING Size Size To add French data, an XML file with the following contents was created:
<attribute attribute_id="@attribute_id_Size_203010063" name="Size" attrtype_id="STRING" description="Taille" catentry_id="@203010063@-2003" language_id="-2"/>
<attribute attribute_id="@attribute_id_Color_203010063" name="Color" attrtype_id="STRING" description="Couleur" catentry_id="@203010063@-2003" language_id="-2"/>
After running the idresgen and massload utilities on the XML file, the ATTRIBUTE database table contains the following information:
ATTRIBUTE_ID LANGUAGE_ID ATTRTYPE_ID NAME DESCRIPTION 12090 -1 STRING Color Color 12124 -1 STRING Size Size 14151 -2 STRING Color Couleur 14443 -2 STRING Size Taille This result is incorrect. The attributes with the same NAME value should also have the same ATTRIBUTE_ID values.
To have the English data and the French data have the correct ATTRIBUTE ID values, the XML file has the following content:
<attribute attribute_id="@attribute_id_Size_203010063" name="Size" attrtype_id="STRING" description="Size" catentry_id="@203010063@-2003" language_id="-1"/>
<attribute attribute_id="@attribute_id_Color_203010063" name="Color" attrtype_id="STRING" description="Color" catentry_id="@203010063@-2003" language_id="-1"/>
<attribute attribute_id="@attribute_id_Size_203010063" name="Size" attrtype_id="STRING" description="Taille" catentry_id="@203010063@-2003" language_id="-2"/>
<attribute attribute_id="@attribute_id_Color_203010063" name="Color" attrtype_id="STRING" description="Couleur" catentry_id="@203010063@-2003" language_id="-2"/>
After running the idresgen and massload utilities on this XML file, the ATTRIBUTE database table contains the following information:
ATTRIBUTE_ID LANGUAGE_ID ATTRTYPE_ID NAME DESCRIPTION 12090 -1 STRING Color Color 12090 -2 STRING Color Couleur 12124 -1 STRING Size Size 12124 -2 STRING Size Taille Related concepts
Related tasks
Related reference