Это сценарий - мы используем Azure DataFactoryV2 для запуска ряда конвейеров, которые принимают данные учетной записи из локального источника данных, преобразуют их и загружают в Salesforce.
В настоящее время мы хотим импортировать учетную запись исвязать это с другой учетной записью.Существует стандартное отношение «родитель / потомок» для учетных записей (например, учетная запись посредника и дочерняя учетная запись), и для этого используется внутренний идентификатор Salesforce.
Мы также используем внешний идентификатор для целей Upserting и этот идентификаторуникален для каждой записи.
Согласно документации SF: Здесь - когда вы вручную вызываете API и передаете ему файл JSON, вы можете добавить связь в JSON:
{
"Name" : "NewAccount",
"account__r" :
{
"Ext_UID__c" : 123
}
}
Однако в Azure DataFactoryV2 кажется невозможным указать отношение поиска в коде, или, если это так, я не уверен, как это сделать.
Для справки - вот код JSON конвейера:
{
"name": "Import_to_Salesforce",
"properties": {
"activities": [
{
"name": "Load_to_Salesforce",
"type": "Copy",
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"userProperties": [
{
"name": "Source",
"value": "[dbo].[Account]"
},
{
"name": "Destination",
"value": "Account"
}
],
"typeProperties": {
"source": {
"type": "SqlSource"
},
"sink": {
"type": "SalesforceSink",
"writeBatchSize": 5000,
"writeBehavior": "upsert",
"externalIdFieldName": "Ext_UID__c",
"ignoreNullValues": false
},
"enableStaging": false,
"enableSkipIncompatibleRow": true,
"dataIntegrationUnits": 0,
"translator": {
"type": "TabularTranslator",
"columnMappings": {
"Name": "Name",
"ParentId": "ParentId",
"BillingStreet": "BillingStreet",
"BillingCity": "BillingCity",
"BillingPostalCode": "BillingPostalCode",
"BillingCountry": "BillingCountry",
"ShippingStreet": "ShippingStreet",
"ShippingCity": "ShippingCity",
"ShippingPostalCode": "ShippingPostalCode",
"ShippingCountry": "ShippingCountry",
"Phone": "Phone",
"AccountNumber": "AccountNumber",
"Brand__c": "Brand__c",
"Account_Status__c": "Account_Status__c",
"Account_Type__c": "Account_Type__c",
"Preferred_Payment_Method__c": "Preferred_Payment_Method__c",
"Last_Account_Login__c": "Last_Account_Login__c",
"Ext_UID__c": "Ext_UID__c",
"Auto_Renew_Status__c": "Auto_Renew_Status__c",
"Account_Balance__c": "Account_Balance__c",
"Outstanding_Amount_30_days__c": "Outstanding_Amount_30_days__c",
"Outstanding_Amount_60_days__c": "Outstanding_Amount_60_days__c",
"Outstanding_Amount_90_days__c": "Outstanding_Amount_90_days__c",
"Account_Priority__c": "Account_Priority__c",
"Reseller__c": "Reseller__c",
"Last_Payment__c": "Last_Payment__c"
}
}
},
"inputs": [
{
"referenceName": "Staging_Source",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "Destination_Load_to_Salesforce",
"type": "DatasetReference"
}
]
}
]
},
"type": "Microsoft.DataFactory/factories/pipelines"}
Любой вклад будет очень признателен.