我正在使用Azure Data Factory中的Dynamics连接器。
TLDR:
这个连接器是否支持加载需要传递父记录键的子记录?例如,如果我想创建一个联系人并将其附加到父账户,则可以使用带有空contactid、有效parentcustomerid GUID并将parentcustomeridtype设置为1(或2)的upsert记录,但是出现了错误。
长篇故事:
我成功地连接到Dynamics 365并将数据(例如“lead”表)提取到SQL Server表中。
为了测试我能否将数据另一种方式传输回来,我简单地将数据从“lead”表加载到Dynamics中的“lead”实体中。
我遇到了这个错误:
“'Sink'方发生了故障。ErrorCode=DynamicsMissingTargetForMultiTargetLookupField,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=,Source=,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Cannot find the target column for multi-target lookup field: 'ownerid'。”
作为一个测试,我从要加载的源列列表中删除了“ownerid”,它就能够成功加载了。
这很明显是一个外键值。
它给我带来了两个问题:
1. 特别是关于错误消息:如果我知道它需要使用哪个查找字段,如何指定它应验证哪个查找表? ADF连接器中没有任何设置可以让我这样做。 2. 这很明显是一个外键值。如果我只知道这一行的名称(或业务键),我该如何轻松查找外键值?其他API通常是如何做到的,例如web API? 是否有XRMToolbox插件可以帮助澄清?
另外,我还阅读了一些帖子,暗示你可以发送预连接数据的XML文档,因此可能会有所帮助。
编辑1:
我意识到我的源数据集中的“lead.ownertypeid”字段为NULL(就是导出的内容)。在各种Xrmtoolbox工具中浏览时,它也是NULL。我试过硬编码它为“systemuser”(实际上是在“owner”表中针对实际所有者记录的),但仍然得到相同的错误。
我还注意到,在“systemuser”表中有一个具有相同PK值的记录。
因此,相同的记录在两个表中,但我如何告诉dynamics连接器应该使用哪个?为什么它关心呢?
编辑2:
TLDR:
这个连接器是否支持加载需要传递父记录键的子记录?例如,如果我想创建一个联系人并将其附加到父账户,则可以使用带有空contactid、有效parentcustomerid GUID并将parentcustomeridtype设置为1(或2)的upsert记录,但是出现了错误。
长篇故事:
我成功地连接到Dynamics 365并将数据(例如“lead”表)提取到SQL Server表中。
为了测试我能否将数据另一种方式传输回来,我简单地将数据从“lead”表加载到Dynamics中的“lead”实体中。
我遇到了这个错误:
“'Sink'方发生了故障。ErrorCode=DynamicsMissingTargetForMultiTargetLookupField,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=,Source=,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Cannot find the target column for multi-target lookup field: 'ownerid'。”
作为一个测试,我从要加载的源列列表中删除了“ownerid”,它就能够成功加载了。
这很明显是一个外键值。
它给我带来了两个问题:
1. 特别是关于错误消息:如果我知道它需要使用哪个查找字段,如何指定它应验证哪个查找表? ADF连接器中没有任何设置可以让我这样做。 2. 这很明显是一个外键值。如果我只知道这一行的名称(或业务键),我该如何轻松查找外键值?其他API通常是如何做到的,例如web API? 是否有XRMToolbox插件可以帮助澄清?
另外,我还阅读了一些帖子,暗示你可以发送预连接数据的XML文档,因此可能会有所帮助。
编辑1:
我意识到我的源数据集中的“lead.ownertypeid”字段为NULL(就是导出的内容)。在各种Xrmtoolbox工具中浏览时,它也是NULL。我试过硬编码它为“systemuser”(实际上是在“owner”表中针对实际所有者记录的),但仍然得到相同的错误。
我还注意到,在“systemuser”表中有一个具有相同PK值的记录。
因此,相同的记录在两个表中,但我如何告诉dynamics连接器应该使用哪个?为什么它关心呢?
编辑2:
我收到了关于 msauto_testdrive
和 customerid
的类似消息。
我排除了所有 customerid = null
的记录,但仍然遇到了同样的错误。
编辑 2
此链接显示我需要将 customeridtype
设置为1(帐户)或2(联系人)。 我这样做了,但仍然遇到了同样的错误。
我认为我和这个人有相同的问题。
也许ADF连接器遇到了同样的问题。