Composite External ID keys.

This feature allows to bind source and target records by creating a kind of "virtual" External ID field which is a combination of multiple field values.

Feature overview.

For example, there is Description object that has two parent objects called Article and Language and there is no unique field defined in Description object. Each Article has several Descriptions with different Languages. Each Language and Article have unique Names.

Assume you want to execute Upsert operation on the Description object. In this case you cannot bind Description records directly, you only can bind them via their both parents objects. So you can define the Description object in the script like this:

  objects: [
      { ... },
      { ... },
          "query": "SELECT Id, Name, Article__c, Language__c FROM Description__c",
          "operation": "Upsert",
          "externalId": "Article__r.Name;Language__r.Name"

During the data migration process the Plugin will internally generate a "virtual formula field" (since there is not such a real field in the Description object metadata) value that is combination of Article.Name and Language.Name values and will use it for binding the records.

You can use here unlimited number of fields separated by semicolon.

Last updated on 13th Nov 2023