在 Microsoft Dynamics 365 中匯入 AttributeMap 時發生錯誤

本文提供在 Microsoft Dynamics 365 中匯入 AttributeMap 時所發生之錯誤的解決方案。

適用于:   Microsoft Dynamics 365 線上客戶服務
原始 KB 編號:   4494576

徵狀

嘗試匯入 Dynamics 365 中的解決方案時,收到下列錯誤:

[已匯入解決方案: [解決方案名稱] 失敗。
錯誤碼 8004f016 "

錯誤對話方塊中的格線包含類型 = 對應的列。 顯示此列的詳細資料文字如下:

「受管理的解決方案無法覆寫目標系統上具有非管理基礎實例的 AttributeMap 元件。 這種錯誤最可能的情形是非管理的解決方案已在目標系統上安裝了新的非管理 AttributeMap 元件,而現在來自相同發行者的 managed 方案卻嘗試將該相同的 AttributeMap 元件安裝為 managed。 這會導致目標系統上不正確解決方案分層,而且不允許。

下載 XML 記錄檔,並在 Excel 中開啟。 在 [ 元件 ] 索引標籤中,找出 [儲存格: 0x8004F016]。

在下一欄將會是包含元件識別碼的錯誤訊息:

「受管理的解決方案無法覆寫識別碼 = [元件識別碼] 的 AttributeMap 元件,其具有非管理基底實例。 這種錯誤最可能的情形是非管理的解決方案已在目標系統上安裝了新的非管理 AttributeMap 元件,而現在來自相同發行者的 managed 方案卻嘗試將該相同的 AttributeMap 元件安裝為 managed。 這會導致目標系統上不正確解決方案分層,而且不允許。

原因

如錯誤詳細資料中所述,此錯誤最可能的情形是對目標群組織中的預設解決方案進行了未受管理的自訂。 這會導致目標系統上的不正確解決方案分層,而且不允許。

範例:您的 Dynamics 365 實例已經有一個元件,例如由編輯預設解決方案所建立的自訂 AttributeMap。 如果您稍後嘗試使用相同的 AttributeMap 來匯入解決方案 (元件) 為受管理的解決方案,您就會收到此錯誤。

解決方案

針對 AttributeMap,可在目標中找到具有兩個 Web API 查詢的受管理元件,然後再將其刪除:

  1. 在您的組織中開啟瀏覽器,然後複製索引標籤。

  2. [GUID from Error]以來自記錄檔的錯誤訊息取代為 GUID,然後附加至您的組織:

    api/data/v9.1/attributemaps([GUID from Error])?$select=_entitymapid_value,sourceattributename, targetattributename

    範例:
    https://MyOrganization.crm11.dynamics.com/api/data/v9.1/attributemaps(0a7bb84f-3d3c-e911-a977-0022480187f0)?$select=_entitymapid_value,sourceattributename,targetattributename

    輸出如下:

    {
    "@odata.context": "https://MyOrganization.crm11.dynamics.com/api/data/v9.1/$metadata#attributemaps(_entitymapid_value,sourceattributename,targetattributename)/$entity",
    "@odata.etag": "W/"5299006"",
    "_entitymapid_value": "1172d7cc-3c3c-e911-a977-0022480187f0",
    "sourceattributename": "css_mapfieldparent",
    "targetattributename": "css_mapfieldchild",
    "attributemapid": "0a7bb84f-3d3c-e911-a977-0022480187f0",
    "_organizationid_value": "112f329f-0a5f-4e2c-a2f0-c54e4824faa9"
    }
    
  3. [_entitymapid_value]以值取代第一個查詢,然後附加您的組織:

    api/data/v9.1/entitymaps([_entitymapid_value])?select=sourceentityname,targetentityname

    範例:
    https://MyOrganization.crm11.dynamics.com/api/data/v9.1/api/data/v9.1/entitymaps(1172d7cc-3c3c-e911-a977-0022480187f0)?select=sourceentityname,targetentityname

    輸出如下:

    {
    "@odata.context": "https://emeacrm3.crm11.dynamics.com/api/data/v9.1/$metadata#entitymaps(sourceentityname,targetentityname)/$entity",
    "@odata.etag": "W/"5296276"",
    "sourceentityname": "css_testamparent",
    "targetentityname": "css_testamchild",
    "entitymapid": "1172d7cc-3c3c-e911-a977-0022480187f0",
    "_organizationid_value": "112f329f-0a5f-4e2c-a2f0-c54e4824faa9"
    }
    
  4. 使用從兩個查詢檢索的資訊來識別 AttributeMap:

    sourceentityname: css_testamparent,
    sourceattributename: css_mapfieldparent,
    targetentityname: css_testamchild,
    targetattributename: css_mapfieldchild,

  5. 沒有的 AttributeMap 不存在 1:N relationship 。 在目標群組織中尋找下列範例:

    1: N 來自 [sourceentityname] -> 的 [targetentityname] 依據欄位的關聯 [sourceattributename] -> [targetattributename]

  6. 流覽至 設定自訂自訂系統,以在目標群組織中尋找此元件。

  7. 選取 [ 實體],然後開啟 [sourceentityname]

  8. 選取 [ 1: N 關聯]。

  9. 相關實體 排序及開啟與 [targetentityname] 的關聯。

  10. 選取 左側的對應

  11. 移除對應:

    來源名稱: [sourceattributename]
    目標名稱: [targetattributename]

  12. 嘗試重新匯入您的解決方案。