【发布时间】:2020-09-15 04:00:34
【问题描述】:
我在 Azure 数据工厂中使用 Dynamics 连接器。
TLDR
此连接器是否支持加载需要传入父记录键的子记录?例如,如果我想创建一个 contact 并将其附加到父 account,我将插入一条带有空 contactid 的记录,一个有效的 parentcustomerid GUID 并将 parentcustomeridtype 设置为 1(或 2)但是我收到一个错误。
长篇大论
我已成功连接到 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=找不到多目标查找字段的目标列: 'ownerid'。
作为测试,我从它加载正常的源列列表中删除了ownerid。
这显然是一个外键值。
这给我提出了两个问题:
特别是关于错误消息:如果我知道它需要使用哪个查找,我如何指定它应该验证哪个查找表? ADF 连接器中没有允许我执行此操作的设置。
这显然是一个外键值。如果我只有这一行的名称(或业务键),如何轻松查找外键值?
这通常如何通过其他 API 完成,例如 Web API?
是否有 XRMToolbox 插件可以帮助澄清?
我还阅读了一些帖子,暗示您可以在 XML 文档中发送预先连接的数据,所以也许这也会有所帮助。
编辑 1
我意识到我的源数据集中的lead.ownertypeid 字段是NULL(这就是导出的内容)。如果我在各种 Xrmtoolbox 工具中浏览它,它也是 NULL。我尝试将其硬编码为systemuser(这实际上是在owner 表中针对实际所有者记录的内容),但我仍然遇到同样的错误。
我还注意到systemuser 表中有一条具有相同 PK 值的记录
所以相同的记录在两个表中,但是我如何告诉动态连接器使用哪一个呢?为什么它甚至在乎?
编辑 2
msauto_testdrivecustomerid 收到了类似的消息。
我排除了所有带有customerid=null 的记录,得到了同样的错误。
编辑 2
This link 似乎表明我需要将customeridtype 设置为 1(帐户)或 2(联系人)。我这样做了,但仍然遇到同样的错误。
我也相信我有same issue as this guy。
也许 ADF 连接器也有同样的问题。
【问题讨论】:
-
ownerid 是特殊字段,可以引用多个表。这就是为什么有 owneridtype 见docs.microsoft.com/en-us/dynamics365/customer-engagement/…
-
非常感谢您的回复。该错误肯定表明它需要更多信息来消除歧义。不过,ADF 动态连接器似乎不允许这样做。
-
我会创建微软票证。也许它是一个“功能”
-
我认为更多的是缺乏功能。我开始意识到动态集成比加载表要复杂得多。我不认为 ADF 连接器的功能足以有任何用途。
标签: dynamics-crm azure-data-factory common-data-service xrmtoolbox