Question:
We have several entity and relations in our data model. We have been loading them in Dev and Test.
We have observed that the attached relationship data are failing.
Mapping Name : Account_Teammember Mapping
Input File : AccToTeammember1.csv
Error : Relationship attributes 'start_entity' or 'end_entity' parsing failed
===================================================================
All the start object entity & End object entity are loaded and present in tenant with respective crosswalk & source table
The input has around 1.3 k records, while loading only 1.3k records; only 109 records are successfully loading.
If we separately try to load any single record which failed, it is loading successfully.
Answer:
The reason why this data load job fails for some records is a wrong mapping.
Crosswalk for relationships in the mapping is configured as
"crosswalks": [
{ "contributorProvider": false,
"dataProvider": true,
"sourceTable": "=source('col.0')",
"type": "configuration/sources/Salesforce",
"value": "=source('col.8')" } ]
The value are getting from Identifiers_ID column.
Now, let's look at the first record reported in the error file.
SourceTable,StartObject,EndObject,SourceSystem,SourceTable,StartObject_SourceTable,EndObject_SourceTable,Identifiers_Type,Identifiers_ID,Start_OBJECT_ID,End_OBJECT_ID,ROLE,errorDescription
Account.Teammember,Account,User,SFDC,Account.Teammember,Account,User,SFDC Account User Relation ID,00560000005LBfqAAG,0016000000xbmXJAAY,00560000005LBfqAAG,Account Executive,"Relationship attributes 'start_entity' or 'end_entity' parsing failed"
As you can see it has Identifiers_ID equals 00560000005LBfqAAG.
The source file has two records with the same value:
However, the values for Start_OBJECT_ID are different. So the same relationship (crosswalk value is the same) is established for different pairs of entities. As a result, the final JSON which DL prepares for loading is the following:
{
"startObject": {
"crosswalks": [
{
"sourceTable": "Account",
"type": "configuration/sources/Salesforce",
"value": "0016000000xbmXJAAY"
},
{
"sourceTable": "Account",
"type": "configuration/sources/Salesforce",
"value": "0010z00001ViQ0sAAF"
}
]
},
"attributes": {
"AccountContactRole": [
{
"value": "Account Executive"
}
]
},
"type": "configuration/relationTypes/AccountToContact",
"crosswalks": [
{
"sourceTable": "Account.Teammember",
"dataProvider": true,
"type": "configuration/sources/Salesforce",
"contributorProvider": false,
"value": "00560000005LBfqAAG"
}
],
"endObject": {
"crosswalks": [
{
"sourceTable": "User",
"type": "configuration/sources/Salesforce",
"value": "00560000005LBfqAAG"
}
]
}
}
This is not valid as the startObject is defined by two crosswalks.
Comments
Please sign in to leave a comment.