Dynamics crm 通过ADF将记录加载到Dynamics 365
我正在Azure数据工厂中使用Dynamics连接器 太长,读不下去了 此连接器是否支持加载需要传入父记录键的子记录?例如,如果我想创建一个Dynamics crm 通过ADF将记录加载到Dynamics 365,dynamics-crm,azure-data-factory,common-data-service,xrmtoolbox,Dynamics Crm,Azure Data Factory,Common Data Service,Xrmtoolbox,我正在Azure数据工厂中使用Dynamics连接器 太长,读不下去了 此连接器是否支持加载需要传入父记录键的子记录?例如,如果我想创建一个联系人并将其附加到父帐户,我将插入一个带有空联系人ID、有效的父客户IDGUID的记录,并将父客户类型设置为1(或2),但我得到一个错误 长话短说 我已成功连接到Dynamics 365并将数据(例如,lead表)提取到SQL Server表中 为了测试我是否可以以另一种方式传输数据,我只需将数据从lead表加载回Dynamics中的lead实体 我得到了这
联系人
并将其附加到父帐户
,我将插入一个带有空联系人ID
、有效的父客户ID
GUID的记录,并将父客户类型
设置为1(或2),但我得到一个错误
长话短说
我已成功连接到Dynamics 365并将数据(例如,lead
表)提取到SQL Server表中
为了测试我是否可以以另一种方式传输数据,我只需将数据从lead
表加载回Dynamics中的lead
实体
我得到了这个错误:
故障发生在“水槽”侧。ErrorCode=DynamicMissingTargetForMultiTargetLookupField,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=,Source=,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=找不到多目标查找字段的目标列:“ownerid”
作为测试,我从它加载的源列列表中删除了ownerid
这显然是一个外键值
这给我提出了两个问题:
lead.ownertypeid
字段是NULL
(这就是导出的内容)。如果我在各种Xrmtoolbox工具中浏览它,它也是空的。我尝试将其编码为systemuser
(这是owner
表中与实际所有者记录相对应的内容),但仍然得到相同的错误
我还注意到在systemuser
表中有一条具有相同PK值的记录
两个表中有相同的记录,但如何告诉dynamics connector使用哪一个?为什么它会在乎呢
编辑2
我在msauto\u testdrive
中收到了一条类似的消息,用于customerid
我排除了customerid=null的所有记录,并得到了相同的错误
编辑2
似乎表示我需要将customeridtype
设置为1(帐户)或2(联系人)。我这样做了,但还是犯了同样的错误
我也相信我有能力
可能ADF连接器也有同样的问题。这是ADF对CD多态查找(如客户和所有者)的限制 解决方法是使用两个临时源查找字段(所有者为所有者团队和用户,客户为账户和联系人)和MS流程中的并行分支来解决此问题,你也可以使用
- 首先,在要将客户查找数据导入到其中的实体上创建两个临时查找字段,分别为帐户实体和联系人实体
- 在ADF管道流中,然后需要将帐户和联系人字段的GUID值映射到上面创建的相应查找字段。最简单的方法是在源数据集中有两个单独的列—一个包含要映射的帐户GUID,另一个包含联系人李>
- 最后,您可以组合一个Microsoft流,然后执行从临时字段到客户查找字段的适当映射。首先,定义创建受影响实体记录时的触发点(在本例中为Contact),并添加一些并行分支以检查这两个临时查找字段中的值
- 然后,如果达到上述任一条件,则设置更新记录任务以执行单个字段更新,如下文所示,前提是ADF帐户查找字段中包含数据
在撰写本文时,@Arun Vinoth是100%正确的。然而不久之后,有一个更新(响应我提出的GitHub)解释了如何做 我会在这里记录下我是如何做到的 要针对父帐户填充联系人,您需要父帐户GUID。然后准备如下所示的数据集:
SELECT
-- a NULL contactid means this is a new record
CAST(NULL as uniqueidentifier) as contactid,
-- the GUID of the parent account
CAST('A7070AE2-D7A6-EA11-A812-000D3A79983B' as uniqueidentifier) parentcustomerid,
-- customer id is an account
'account' [parentcustomerid@EntityReference],
'Joe' as firstname,
'Bloggs' lastname,
现在,您可以在ADF中应用正常的自动映射方法
现在,您可以从此数据集中选择并加载到
联系人中。您可以应用通常的自动映射方法,即:创建没有模式的数据集。在不映射列的情况下执行复制活动ownerid是特殊字段,可以引用多个表。这就是为什么有自己的类型看,我真的很感谢你的答复。这个错误当然表明它需要更多的信息来消除歧义。不过,ADF dynamics连接器似乎不允许这样做。我将创建microsoft票证。也许这是一个“特征”,我认为更多的是缺乏特征。我开始意识到动力学积分远比加载表复杂。我不认为ADF连接器的功能足以发挥任何作用。我非常感谢您的回复。我在doco页面上提出了一个github请求,以明确此连接器对于核心CDM实体(如contact)基本上是不可用的。我在这方面浪费了很多时间,现在我需要找到一种新的方法。@Nick.McDermaid,MS docs大部分时间都需要改进。在这种情况下,它可以比