Matching Keys During Import
When you import updates to an object type with active keys, you do not have to include the ID in Excel, CSV, and XML files, provide the object type and values for all key attributes are included.
The Identify Objects step of the Import Manager wizard reports the matched objects with the respective STEP IDs in green (as shown below).
The following STEPXML shows the KeyValue tag as well as the individual values that are combined to build the key.
<STEP-ProductInformation ExportTime="2013-09-15 16:16:26" ExportContext="GL" ContextID="GL" WorkspaceID="Main"> <Products> <Product UserTypeID="KeyBProdType" ParentID="UniqueKeyImport"> <KeyValue KeyID="KeyB">ValAvalBvalC</KeyValue> <Name>keyprodXMLImpChanged</Name> <Values> <Value AttributeID="UniqueKeyImportAttC">valC</Value> <Value AttributeID="ImportAtt">valA</Value> <Value AttributeID="UniqueKeyImportAttB">valB</Value> <Value AttributeID="UniqueKeyImportAttA">ValA</Value> </Values> </Product> </Products> </STEP-ProductInformation>
Deferred Cross References
It is possible to create objects during import using only a key value, and not using STEP IDs (e.g., product ID, classification ID, entity ID). It is also possible within the same STEPXML file to create a reference between new objects that do not yet exist in STEP. However, this scenario requires deferring cross reference creation.
Deferring cross reference creation allows the importer to create the new objects being referenced, while postponing creation of the references until the required objects exist. To avoid an error when importing a STEPXML file that contains new objects as well as new cross references, the following two criteria must be met:
- The data import must be done in Domain Mode, as defined in the General Advanced Settings section of the Import Manager - Advanced Settings topic within the Data Exchange documentation here.
- The target object of the imported cross reference can be identified by only one active key, as defined in the Unique Keys topic here.
Consider the following example XML:
<?xml version="1.0" encoding="UTF-8"?> <STEP-ProductInformation ContextID="GL" WorkspaceID="Main" UseContextLocale="false"> <Entities> <Entity UserTypeID="Company" ParentID="Division"> <KeyValue KeyID="MainKey">1</KeyValue> <Name>Group 1</Name> </Entity> <Entity UserTypeID="Company" ParentID="Division"> <KeyValue KeyID="MainKey">123456789</KeyValue> <Name>Group 2</Name> <EntityCrossReference Type="PrimaryCrossRef"> <KeyValue KeyID="MainKey">93403</KeyValue> </EntityCrossReference> </Entity> <Entity UserTypeID="Company" ParentID="Division"> <KeyValue KeyID="MainKey">93403</KeyValue> <Name>Group 3</Name> <EntityCrossReference Type="PrimaryCrossRef"> <KeyValue KeyID="MainKey">1</KeyValue> </EntityCrossReference> </Entity> </Entities> </STEP-ProductInformation>
In this example, the three entities are named Group 1, Group 2, and Group 3. Assume that none of these entities exist in STEP. Notice that Group 2 has a cross reference to Group 3 using a KeyValue, and that Group 3 has a cross reference to Group 1, also using a KeyValue.
Since none of the entities exist, the cross-references between these non-existing objects must be deferred.