我在 Azure 数据工厂中使用 Dynamics 连接器。
TLDR
此连接器是否支持加载需要传入父记录键的子记录?例如,如果我想创建 acontact
并将其附加到 parent account
,我会插入一条带有 null contactid
、有效parentcustomerid
GUID 并设置parentcustomeridtype
为 1(或 2)的记录,但出现错误。
很长的故事
我成功连接到 Dynamics 365 并将数据(例如,lead
表)提取到 SQL Server 表中
为了测试我是否可以通过其他方式传输数据,我只是将数据从lead
表中加载回lead
Dynamics 中的实体。
我收到此错误:
失败发生在“Sink”端。ErrorCode=DynamicsMissingTargetForMultiTargetLookupField,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=,Source=,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=找不到多目标查找字段的目标列:'所有者'。
作为测试,我ownerid
从源列列表中删除它加载正常。
这显然是一个外键值。
它向我提出了两个问题:
特别是关于错误消息:如果我知道它需要使用哪个查找,我如何指定它应该验证哪个查找表?ADF 连接器中没有允许我执行此操作的设置。
这显然是一个外键值。如果我只有该行的名称(或业务键),我如何轻松查找外键值?
这通常是如何通过其他 API 完成的,即 Web API?
是否有 XRMToolbox 插件可以帮助澄清?
我还阅读了一些帖子,暗示您可以在 XML 文档中发送预先连接的数据,所以也许这也会有所帮助。
编辑 1
我意识到lead.ownertypeid
我的源数据集中的字段是NULL
(这就是导出的)。如果我在各种 Xrmtoolbox 工具中浏览它,它也是 NULL。我尝试将其硬编码systemuser
(这实际上是owner
表中与实际所有者记录相对应的内容),但我仍然遇到相同的错误。
systemuser
我还注意到表中有一条具有相同 PK 值的记录
所以相同的记录在两个表中,但是我如何告诉动态连接器使用哪一个呢?为什么它甚至在乎?
编辑 2
我收到了类似的消息msauto_testdrive
for customerid
。
我排除了所有记录customerid=null
,并得到了同样的错误。
编辑 2
此链接似乎表明我需要设置customeridtype
为 1(帐户)或 2(联系人)。我这样做了,但仍然遇到同样的错误。
我也相信我和这个人有同样的问题。
也许 ADF 连接器也存在同样的问题。