簡體   English   中英

通過 ADF 將記錄加載到 Dynamics 365

[英]Loading records into Dynamics 365 through ADF

我在 Azure 數據工廠中使用 Dynamics 連接器。

TLDR

此連接器是否支持加載需要傳入父記錄密鑰的子記錄? 例如,如果我想創建一個contact並將其附加到父account ,我會插入一條帶有 null contactid的記錄,一個有效的parentcustomerid GUID 並將parentcustomeridtype設置為 1(或 2),但我收到錯誤。

很長的故事

我已成功連接到 Dynamics 365 並將數據(例如, lead客戶表)提取到 SQL 服務器表中

為了測試我能否以其他方式傳輸數據,我只是將數據從lead表加載回 Dynamics 中的lead實體。

我收到此錯誤:

故障發生在“接收器”端。 ErrorCode=DynamicsMissingTargetForMultiTargetLookupField,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=,Source=,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=找不到多目標查找字段的目標列:'所有者'。

作為測試,我從它加載正常的源列列表中刪除了ownerid

這顯然是一個外鍵值。

它向我提出了兩個問題:

  1. 特別是關於錯誤消息:如果我知道它需要使用哪個查找,我如何指定它應該驗證哪個查找表? ADF 連接器中沒有允許我執行此操作的設置。

  2. 這顯然是一個外鍵值。 如果我只有這一行的名稱(或業務鍵),我如何輕松查找外鍵值?

這通常是如何通過其他 API 完成的,即 web API?

是否有有助於澄清的 XRMToolbox 插件?

我還閱讀了一些暗示您可以在 XML 文檔中發送預連接數據的帖子,所以也許這也會有所幫助。

編輯 1

我意識到我的源數據集中的lead.ownertypeid字段是NULL (這是導出的)。 在各種Xrmtoolbox工具中瀏覽也是NULL。 我嘗試將其硬編碼為systemuser (這實際上是owner表中與實際所有者記錄相對應的內容),但我仍然遇到相同的錯誤。

我還注意到systemuser表中有一條具有相同 PK 值的記錄

所以同一條記錄在兩個表中,但我如何告訴動態連接器使用哪一個? 為什么它甚至關心?

編輯 2

對於customeridmsauto_testdrive ,我收到了類似的消息。

我用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 中應用常規的自動映射方法。

現在您可以從該數據集中將 select 加載到contact中。 您可以應用通常的自動映射方法,即:創建沒有模式的數據集。 在不映射列的情況下執行復制活動

這是 ADF 對 CDS 多態查找(如 Customer 和 Owner)的限制。 支持這個 ADF 想法

解決方法是使用兩個臨時源查找字段(在所有者的情況下為所有者團隊和用戶,在客戶的情況下為帳戶和聯系人)並使用 MS Flow 中的並行分支來解決此問題。 閱讀更多,您也可以下載 Flow 示例來使用。

  • 首先,在您希望將客戶查找數據導入其中的實體上創建兩個臨時查找字段,分別導入客戶和聯系人實體
  • 在您的 ADF 管道流中,您需要將 map 帳戶和聯系人字段的 GUID 值發送到上面創建的相應查找字段。 執行此操作的最簡單方法是在源數據集中有兩個單獨的列 - 一個包含帳戶 GUID 到 map,另一個包含聯系人。
  • 最后,您可以組合一個 Microsoft Flow,然后執行從臨時字段到 Customer 查找字段的適當映射。 首先,為創建受影響的實體記錄(在本例中為聯系人)時定義觸發點,並添加一些並行分支以檢查這兩個臨時查找字段中的任何一個中的值

在此處輸入圖像描述

  • 然后,如果滿足其中任一條件,則設置更新記錄任務以執行單個字段更新,如下所示(如果 ADF 帳戶查找字段中包含數據)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM