Nic*_*aid 3 dynamics-crm azure-data-factory xrmtoolbox common-data-service
我在 Azure 数据工厂中使用 Dynamics 连接器。
此连接器是否支持加载需要传入父记录键的子记录?例如,如果我想创建一个contact并将其附加到父项account,我会使用 null 插入一条记录contactid,一个有效的parentcustomeridGUID 并设置parentcustomeridtype为 1(或 2),但出现错误。
我已成功连接到 Dynamics 365 并将数据(例如,lead表)提取到 SQL Server 表中
为了测试我是否可以以另一种方式传输数据,我只是将数据从lead表加载回leadDynamics 中的实体。
我收到此错误:
失败发生在“接收器”端。ErrorCode=DynamicsMissingTargetForMultiTargetLookupField,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=,Source=,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=无法找到多目标查找字段的目标列:'所有者'。
作为测试,我ownerid从源列列表中删除了它加载正常。
这显然是一个外键值。
它向我提出了两个问题:
特别是关于错误消息:如果我知道它需要使用哪个查找,我如何指定它应该验证哪个查找表?ADF 连接器中没有设置允许我这样做。
这显然是一个外键值。如果我只有这一行的名称(或业务键),我如何轻松查找外键值?
这通常如何通过其他 API 完成,即 Web API?
是否有有助于澄清的 XRMToolbox 插件?
我还阅读了一些帖子,这些帖子暗示您可以在 XML 文档中发送预先连接的数据,所以也许这也会有所帮助。
我意识到lead.ownertypeid我的源数据集中的字段是NULL(这就是导出的)。如果我在各种 Xrmtoolbox 工具中浏览它,它也是 NULL。我尝试将其硬编码为systemuser(这是owner实际所有者记录在表中的实际情况),但我仍然遇到相同的错误。
我还注意到有一个纪录,在同一个PK值systemuser表
所以相同的记录在两个表中,但我如何告诉动态连接器使用哪一个?为什么它甚至在乎?
我收到了类似的消息msauto_testdrivefor customerid。
我用 排除了所有记录customerid=null,并得到了同样的错误。
此链接似乎表明我需要设置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,
Run Code Online (Sandbox Code Playgroud)
现在您可以在 ADF 中应用普通的自动映射方法。
现在您可以从此数据集中选择并加载到contact. 您可以应用通常的自动映射方法,即:创建没有模式的数据集。在不映射列的情况下执行复制活动
| 归档时间: |
|
| 查看次数: |
1468 次 |
| 最近记录: |