dynamics-crm - 通过 ADF 将记录加载到 Dynamics 365
问题描述
我在 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 连接器也存在同样的问题。
解决方案
在撰写本文时,@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 中应用正常的自动映射方法。
现在您可以从此数据集中进行选择并加载到contact
. 您可以应用通常的自动映射方法,即:创建没有模式的数据集。在不映射列的情况下执行复制活动
推荐阅读
- c - 蛮力工具上的未知分割错误
- linux - 如何生成不同的脚本以在 linux 中的每个目录上运行?
- firebase-authentication - 我无法为我的域设置关键限制 HTTP 引荐来源网址(网站)
- flutter - Flutter/Dart 当我尝试从互联网导入数据时,它不会加载它
- c - 链接器重定位被截断以适应:R_ARM_THM_JUMP11 错误和 gcc 输出太大
- c - 如何使用按位运算符比较两个无符号整数?
- python - 如何在 Firefox 或 Chrome 中启动 Selenium?
- javascript - 后台和内容脚本之间的浏览器扩展数据限制
- css - react-scss : display problem of an
- python - Python 返回错误,但命令行不返回