簡體   English   中英

在 CDS 連接器中使用備用鍵時出錯

[英]Error when using Alternate Key in CDS connector

我正在使用 Azure 數據工廠中的Common Data Service for Apps連接器將數據加載到 Dynamics 365

在使用實體密鑰之前,我已經成功完成了這項工作。 請參閱此問題: 通過 ADF 將記錄加載到 Dynamics 365

現在我正在嘗試使用備用鍵將記錄更新到account實體中。 (在這種情況下插入)

在動力學

我在account中創建了兩個自定義屬性字段:

Field name        Data Type    Field Type    Max Length
=======================================================
xyz_srcsystem     Single Line  Simple        50
xyz_srccode       Single Line  Simple        50

然后我創建了一個包含以下字段的account密鑰:

xyz_alternatekeyaccount

在 ADF 中

然后,我使用 ADF 中的Copy Data活動將數據從 SQL 視圖復制到帳戶實體中,並使用 CDS 連接器作為目標。

這是我的來源 SQL 聲明:

SELECT 
CAST(NULL as uniqueidentifier) as accountid,
'ADFTest1' as accountnumber, 'ADF Test 1' as [description],  
'nmcdermaid@xyz.com.au' as emailaddress1,
CAST('TST' AS NVARCHAR(50)) as xyz_srcsystem,
CAST('1' AS NVARCHAR(50)) as xyz_srccode

在目標中,在備用鍵名字段中,我輸入了備用鍵名: xyz_alternatekeyaccount

運行管道時出現的錯誤是

實體 ID 值的類型無效

一些排除極端情況的測試:

  • 如果我輸入了一個虛擬備用密鑰,我得到Cannot retrieve key information of alternate key 'xyz_alternatekeyaccountx' for entity 'account' 這意味着它正在正確找到備用密鑰
  • 如果我從連接器中刪除備用鍵,它會退回到我看到的另一組常見錯誤
  • 當我使用 CDM 連接器將實體拉入 SQL 時,自定義屬性以NVARCHAR(MAX)形式到達
  • 我嘗試轉換為這些數據類型: NVARCHAR(MAX) NVARCHAR(50) VARCHAR(MAX) VARCHAR(50)
  • 如果我使用普通鍵(不是備用鍵),並且數據類型錯誤(GUID 以外的任何內容),我會得到同樣的錯誤

另請參閱我提出的這個 Doco GitHub:

https://github.com/MicrosoftDocs/azure-docs/issues/59028

當我將源 SQL 更改為此時,它起作用了:

SELECT 
'ADFTest1' as accountnumber, 'ADF Test 1' as [description],  
'nmcdermaid@xyz.com.au' as emailaddress1,
CAST('TST' AS NVARCHAR(50)) as xyz_srcsystem,
CAST('1' AS NVARCHAR(50)) as xyz_srccode

注意:不同之處在於我沒有在源數據集中包含真正的主鍵。

並不是說如果您想 UPSERT 一條新記錄 (INSERT) 並且這不是基於備用鍵,您必須包含一個 NULL 主鍵

暫無
暫無

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

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