在 Microsoft 中建立工作流程時,已新增具有相同密鑰的專案 Dynamics 365

本文提供在 Microsoft Dynamics 365 中建立新的或編輯現有工作流程時所發生錯誤的解決方案。

適用於:Microsoft Dynamics CRM
原始 KB 編號: 4053915

徵狀

在 Microsoft Dynamics 365 中建立新的或編輯現有的工作流程時,可能會出現錯誤:

「已新增具有相同索引鍵的專案」。

選取 [下載記錄檔 ] 按鈕將會顯示下列資訊:

未處理的例外狀況:System.ServiceModel.FaultException'1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: System.ArgumentException: 已新增具有相同索引鍵的專案。詳細:
<OrganizationServiceFault xmlns:i=“https://www.w3.org/2001/XMLSchema-instance” xmlns=“https://schemas.microsoft.com/xrm/2011/Contracts”>
<ActivityId>xxx</ActivityId>
<ErrorCode-2147220970></ErrorCode>
<ErrorDetails xmlns:d2p1=“https://schemas.datacontract.org/2004/07/System.Collections.Generic” />
<訊息>System.ArgumentException:已新增具有相同索引鍵的專案。</消息>
<Timestamp>2017-11-08T20:52:35.6280057Z</Timestamp>
<ExceptionRetriable>false</ExceptionRetriable>
<ExceptionSource i:nil=“true” />
<InnerFault i:nil=“true” />
<OriginalException i:nil=“true” />
<TraceText i:nil=“true” />
</OrganizationServiceFault>

如果已啟用平台追蹤,您會看到追蹤內記錄下列錯誤。

MSCRM 錯誤報告:
錯誤:已新增具有相同索引鍵的專案。
錯誤訊息:已新增具有相同索引鍵的專案。
來源檔案:無法使用
行號:無法使用
要求 URL: https://CrmOrgName.dynamics.com/AppWebServices/Workflow.asmx
堆棧追蹤資訊:[ArgumentException:已新增具有相同索引鍵的專案。]
在 System.ThrowHelper.ThrowArgumentException (ExceptionResource 資源)
在 System.Collections.Generic.Dictionary'2.Insert (TKey 索引鍵,TValue 值,布爾值加)
at Microsoft.Crm.Application.Components.UI.OptionGroup.AddItem (String text, String value, ListDictionary expandos)
at Microsoft.Crm.Application.Controls.CreateStepControl.RenderEntityList (HtmlTextWriter writer, StepControlType stepType, String onChange)
at Microsoft.Crm.Application.Controls.StepBaseControl.RenderEntity (HtmlTextWriter writer, StepControlType stepType, String onChange)
在 Microsoft.Crm.Application.Controls.CreateStepControl.Render (HtmlTextWriter 寫入器)
在 System.Web.UI.Control.RenderControlInternal (HtmlTextWriter 寫入器,ControlAdapter 配接器)
在 Microsoft.Crm.Application.Controls.CompositeStepBaseControl.RenderChildSteps (HtmlTextWriter 寫入器)
在 Microsoft.Crm.Application.Controls.WorkflowStepControl.Render (HtmlTextWriter 寫入器)
在 System.Web.UI.Control.RenderControlInternal (HtmlTextWriter 寫入器,ControlAdapter 配接器)
at Microsoft.Crm.Application.WebServices.WorkflowWebService.RenderWorkflow (WorkflowStep workflowStep, Boolean bSave, String parentStepId, String rendererTypeCode)
at Microsoft.Crm.Application.WebServices.WorkflowWebService.RenderWorkflow (WorkflowStep workflowStep, String parentStepId, String rendererTypeCode)
at Microsoft.Crm.Application.WebServices.WorkflowWebService.AddCreateEntityStep (String parentId, String entityId, String descriptionXml, String parentStepId, String rendererTypeCode)

此外,您也可能會看到下列訊息。

MSCRM:ASSERTEX - 實體單一本地化名稱找不到:邏輯名稱 = 'msdyn_orginsightsuserdashboarddefinition' 語言標識碼 = 1033

原因

造成此錯誤的其中一個可能原因是自定義內的實體命名慣例。 針對這個特定錯誤,請參閱錯誤部分中 MSCRM:ASSERTEX 所列的屬性名稱。 請參閱下列內容:

MSCRM:ASSERTEX - 實體單一本地化名稱找不到:邏輯名稱 = 'msdyn_orginsightsuserdashboarddefinition' 語言標識碼 = 1033

問題仍會與包含 屬性的實體有關 msdyn_orginsightsuserdashboarddefinition。 您必須在 Microsoft Dynamics 365 自定義中尋找此屬性。

有問題的實體很容易在自定義中找到,因為它通常會列在沒有列出名稱的實體頂端。 請參閱下列螢幕快照:

自定義內有問題實體的螢幕快照。

解決方案

若要解決此錯誤,您必須為 原因區段 中的實體提供顯示名稱以及複數名稱。

  1. 以 D365 系統管理員身分開啟 Microsoft Dynamics 365 Web 用戶端。

  2. 接下來,選取 [ 設定],選取 [ 自定義],然後選取 [ 自定義系統]

  3. 自定義窗口開啟后,展開 [ 實體]

  4. 選取頂端沒有列出顯示名稱的實體。

  5. 在右側視窗窗格中,為實體提供 [顯示名稱] 和 [複數名稱]。 請參閱下列螢幕快照。

    提供實體顯示名稱和複數名稱的螢幕快照。

  6. 命名實體之後,選取 [ 儲存 ],然後選取 [ 發佈]

  7. 最後,回到您的工作流程編輯器,並嘗試建立新的工作流程或編輯現有的工作流程。 現在將會成功。