共用方式為


定義實體的其他索引鍵

 

發行︰ 2016年11月

適用於: Dynamics CRM 2015

所有 Microsoft Dynamics 365 記錄的唯一識別碼都定義為 GUID。 這些是每個實體的主索引鍵。 當您需要整合外部資料存放區時,可能可以新增欄至外部資料庫表格中,在 Dynamics 365 中包含唯一識別碼的參考。 這可讓您擁有可連結至 Dynamics 365 記錄的本機參考。 不過,有時候您無法修改外部資料庫。 透過其他索引鍵,您就可以定義 Dynamics 365 實體中的屬性,以對應至外部資料存放區使用的唯一識別碼 (或唯一欄組合)。 這個其他索引鍵可用來取代主索引鍵,以唯一方式識別 Dynamics 365 中的記錄。 您必須能夠定義哪些屬性代表記錄的唯一識別。 一旦將屬性識別為實體的唯一屬性,就可以透過使用者介面 (UI) 或在自訂程式碼中將它們宣告為其他索引鍵。 此主題提供在資料模型中定義其他索引鍵的相關資訊。

注意

如果是 Microsoft Dynamics CRM Online 組織,只有在組織已更新至 Dynamics CRM Online 2015 更新 1 時,才能使用此功能。 這項功能不適用於 Dynamics CRM (內部部署)。

本主題內容

建立其他索引鍵

擷取和刪除其他索引鍵

監控其他索引鍵的索引建立。

建立其他索引鍵

您可以用程式設計方式或使用自訂工具建立替代索引鍵。 如需使用自訂工具的詳細資訊,請參閱定義其他索引鍵來參考 CRM 記錄

若要以程式設計方式定義其他索引件,您必須先建立 EntityKeyMetadata 類型的物件。 這個類別包含主要屬性。 一旦設定主要屬性,您就可以使用 CreateEntityKeyRequest 訊息建立實體的索引鍵。 這個訊息會採用實體名稱和 EntityKeyMetadata 值做為輸入來建立這個索引鍵。

建立其他索引鍵時應注意下列限制:

  • 索引鍵定義的有效屬性

    只有下列類型的屬性才能包含在其他索引鍵的定義中:

    屬性類型

    顯示名稱

    DecimalAttributeMetadata

    十進位數

    IntegerAttributeMetadata

    整數

    StringAttributeMetadata

    單行文字

  • 有效的索引鍵大小

    當索引鍵建立後,系統會確認該索引鍵可在平台上支援,包括索引鍵的總大小不可違反 SQL 索引限制,例如每個索引鍵 900 個位元組及每個索引鍵 16 個欄。 如果索引鍵大小不符合限制,則會顯示錯誤訊息。

  • 實體的最大其他索引鍵定義數目

    在 Dynamics 365 執行個體中,一個實體最多可以有 5 個其他索引鍵定義。

擷取和刪除其他索引鍵

如果您需要擷取或刪除其他索引鍵,可以使用自訂 UI 執行這個動作,而不需撰寫任何程式碼。 不過,SDK 提供下列兩個訊息以程式設計方式擷取及刪除其他索引鍵。

訊息要求類別

描述

RetrieveEntityKeyRequest

擷取指定的其他索引鍵。

DeleteEntityKeyRequest

刪除指定的其他索引鍵。

若要擷取實體的所有索引鍵,請使用 EntityMetadata 類別的新 Keys 屬性。 它會取得實體的索引鍵陣列。

監控其他索引鍵的索引建立。

其他索引鍵使用資料庫索引強制執行唯一性並最佳化查詢效能。 如果表格中有許多現有的記錄,索引建立的過程可能會很費時。 您可以將索引建立當做背景程序執行,藉此提升自訂 UI 和解決方案匯入的回應。AsyncJob 屬性參考執行索引建立的非同步作業。EntityKeyIndexStatus 屬性會在索引建立作業進行時指定索引鍵狀態。 狀態可以是下列任一種:

  • 擱置

  • 進行中

  • 使用中

  • 失敗

使用 API 建立其他索引鍵時,如果索引建立失敗,您可以深入探索詳細資料了解錯誤原因、修正問題,並使用 ReactivateEntityKeyRequest 訊息重新啟動索引鍵要求。

如果在索引建立作業仍擱置或進行時刪除其他索引鍵,則作業會取消並刪除索引。

另請參閱

使用其他索引鍵建立記錄
使用變更追蹤,同步處理資料與外部系統
使用 Upsert 插入或更新記錄

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權