Microsoft Dynamics 365 實體屬性的簡介
發行︰ 2017年1月
適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online
實體包括一組屬性,表示可以併入在每個記錄中的資料。 開發人員必須了解屬性的不同類型以及如何使用這些。 屬性中繼資料描述屬性不同類型的有效作業和行為。 數種屬性類型可依通用行為群組。
開發人員所擁有的特定經驗取決於其開發樣式。其他資訊:實體程式設計 (早期繫結、晚期繫結、開發人員擴充功能)。
注意
此主題包括許多中繼資料屬性的參照。若要檢視組織的實體中繼資料,請安裝瀏覽組織的中繼資料中敘述的中繼資料瀏覽器解決方案。 您也可以下載 SDK 後開啟其頂層資料夾內所附名為 EntityMetadata.xlsx 的 Excel 檔案,從中檢視未經自訂組織的中繼資料。
本主題內容
屬性的有效作業
屬性類型
分類資料屬性
集合資料屬性
日期及時間資料屬性
影像資料屬性
數量資料屬性
參照資料屬性
字串資料屬性
唯一識別碼資料屬性
虛擬屬性
邏輯屬性
屬性的有效作業
每個屬性都有中繼資料,描述支援的作業。 您需要知道所使用的屬性的有效作業。
AttributeMetadata 屬性 |
描述 |
---|---|
如果在建立記錄時此屬性值設定為有效則為 true,否則為 false。 |
|
如果此屬性值可以擷取則為 true,否則為 false。 |
|
如果在更新記錄時此屬性值設定為有效則為 true,否則為 false。 |
屬性類型
屬性是定義於中繼資料,而且 AttributeMetadata。AttributeTypeName 屬性包含描述類型的值。 靜態 AttributeTypeDisplayName 成員提供可能的類型清單。
注意
舊的 AttributeType 屬性包含配合 AttributeTypeName 的大部分資料,除非它顯示 ImageType 屬性為 Virtual。 應使用 AttributeTypeName 屬性,而不使用 AttributeType 屬性。
下節將屬性類型群組為下列類別,以便您更容易比較這些屬性:
分類資料屬性
集合資料屬性
日期及時間資料屬性
影像資料屬性
數量資料屬性
參照資料屬性
字串資料屬性
唯一識別碼資料屬性
虛擬屬性
分類資料屬性
此群組的五個屬性都是從共同的 EnumAttributeMetadata 基底類別繼承,並使用一組預先定義的有效值,將記錄群組為類別。
使用 OptionSetValue 並將 Value 屬性設定為整數,代表中繼資料中的有效選項,設定挑選清單、狀態和狀態屬性。
使用布林值,設定實體屬性,但是,請意識到這是受限於兩個選項的分類。
EntityName 屬性使用字串值,限制為組織中有效的實體邏輯名稱。
自訂挑選清單和布林屬性可以定義為計算屬性。其他資訊:計算屬性。
中繼資料類型 |
AttributeTypeName 值 |
描述 |
---|---|---|
PicklistType |
有效值是設定於 OptionSetMetadata.Options 中定義之該屬性的 OptionMetadata.Value。 在應用程式中的自訂工具,這些屬性稱為選項組欄位。 |
|
StatusType |
這些系統屬性通常名為 StatusCode。 有效值是設定於 OptionSetMetadata.Options 中定義之該屬性的 StatusOptionMetadata.Value。 每個選項的 StatusOptionMetadata.State 屬性描述對應的 StateCode 值的有效值。 在設定 StatusCode 之前,您應確認這是目前 StateCode 值的有效值。 當您需要變更記錄的狀態時,請使用 SetStateRequest 訊息設定 StatusCode 和 StateCode 屬性值。 這些內容可進一步限制設定的值。StatusOptionMetadata.TransitionData 屬性包含當 EntityMetadata.EnforceTransitions值為 true 時允許的選項的資訊。其他資訊:定義自訂狀態模型轉換。 |
|
StateType |
這些系統屬性通常名為 StatusCode。 有效值是設定於 OptionSetMetadata.Options 中定義之該屬性的 StateOptionMetadata.Value。 StateCode 不適用於更新。 在建立記錄後,才可以使用 SetStateRequest 訊息,設定 StateCode。 每個選項的 StateOptionMetadata.DefaultStatus 屬性描述使用的預設 StatusCode,若未 SetStateRequest 中設定為參數。 |
|
BooleanType |
直接使用若未值,布林屬性可以設定,但是,如同其他屬性,它們也具有 OptionSet 屬性,以及對應於布林選項的 FalseOption 和 TrueOption 屬性。 這些屬性都定義一組當地語系化標籤,代表 true 和 false 對屬性的意義。 在應用程式中的自訂工具,這些屬性稱為兩個選項欄位,因為每個選項的意義可以是互斥的任何一對選項組,而不只是 true 和 false。 例如,選項可能是大和小。 |
|
EntityNameType |
這些系統屬性通常與一個唯一識別碼或參照屬性 (對多種類型有效的) 配對。 此屬性的值是指實體邏輯名稱的字串值。 如果對應的參照屬性是 EntityReference,此屬性的值和 EntityReference.Name 屬性值相同。 |
集合資料屬性
這些系統屬性傳回值的集合。
AttributeTypeName 值 |
描述 |
---|---|
CalendarRulesType |
沒有使用 CalendarRulesType 的實際屬性。 使用早期繫結樣式時,程式碼產生工具會建立下列兩個模擬屬性 (不會出現在中繼資料)。 這些屬性實際表示行事曆規則記錄的檢視,在一對多關聯中關聯至實體執行個體。
|
PartyListType |
下列屬性允許多個 EntityReference 設定用於多個活動類型。 ActivityPointer.allparties |
日期及時間資料屬性
中繼資料 AttributeTypeName 值為 DateTimeType 的屬性。 使用 System.DateTime,設定這些屬性。
DateTimeAttributeMetadata.Format 屬性可以是下列其中一個 DateTimeFormat 值:
DateAndTime:顯示日期與時間。
DateOnly:只顯示日期
自訂日期和時間屬性可以定義為計算或彙總屬性。其他資訊:計算和彙總屬性。
影像資料屬性
對於支援影像屬性的實體,實體影像屬性的 SchemaName 一律是 EntityImage。
其他資訊:影像屬性、實體影像和範例:設定及擷取實體影像。
數量資料屬性
此類別的屬性使用數值資料。 這些屬性都有 MaxValue 和 MinValue 中繼資料屬性,可設定有效值範圍。
自訂小數、整數和金額屬性可以定義為計算或彙總屬性。其他資訊:計算和彙總屬性。
中繼資料類型 |
AttributeTypeName 值 |
描述 |
---|---|---|
BigIntType |
BigInt 屬性僅供內部使用。 |
|
DecimalType |
使用小數值。 Precision 中繼資料屬性設定屬性所使用的有效位數。 |
|
DoubleType |
使用 double 值。 Precision 中繼資料屬性設定屬性所使用的有效位數。 |
|
IntegerType |
使用 int 值。 |
|
MoneyType |
使用具有 decimalValue 屬性的 Money。 每個金額屬性有對應的系統計算的基準貨幣金額屬性,在組織中啟用多種貨幣時,用來計算組織的基準貨幣值。IsBaseCurrency 屬性識別金額屬性是否代表基準貨幣。其他資訊:交易貨幣 (currency) 實體。 金額屬性也有 PrecisionSource 中繼資料屬性,可以指定應該使用的有效位數等級。 此屬性的整數值決定:
|
參照資料屬性
這些屬性通常稱為查詢屬性,都包含 EntityReference 值。 這些屬性之間的差異在於可關聯的實體類型。Targets 中繼資料屬性包含了有效實體邏輯名稱 String[],代表查詢的有效目標。 自訂查詢屬性在 Targets 屬性中只能有單一類型。
PartyListType 也代表一種參照資料屬性類型,但是,因為它們包含參照的集合,所以是包含在 集合資料屬性 中。
字串資料屬性
使用字串資料的屬性共有兩種類型。
中繼資料類型 |
AttributeTypeName 值 |
描述 |
---|---|---|
StringType |
可套用格式的字串值的屬性。其他資訊:StringAttributeMetadata 格式。 自訂字串屬性可以定義為計算屬性。其他資訊:計算屬性。 |
|
MemoType |
適用於附註的字串值的屬性。 此屬性與 FormatName 屬性值設為 TextArea 的字串屬性是對等的。 |
唯一識別碼資料屬性
中繼資料 AttributeTypeName 值為 UniqueidentifierType 的屬性包含可為 Null 的 System.Guid 值。
每個實體執行個體包含一個屬性,代表記錄的唯一識別碼。 此屬性的結構描述名稱遵循下列命名慣例:<entity schema name>+Id。 例如,對於客戶實體的結構描述名稱,代表唯一識別碼屬性的名稱為 AccountId。 此值也可以透過直接使用 Entity.Id 屬性可用。 擷取實體時,即使查詢的 ColumnSet 不包括它,永遠會傳回此屬。 對於新具現化的實體,此值為 null。 當您建立新記錄,雖然設定 Guid 值定義唯一識別碼是有效的,但為發揮最佳效能,建議您將它保持為 null,以允許系統在建立記錄時指派值。 當記錄儲存之後,此值變成唯讀。
實體可依據實體的功能,包括其他唯一識別碼屬性。 例如,為商務程序啟用的實體會包含 ProcessId 和 StageId 的唯一識別碼屬性,以追蹤與記錄關聯的目前商務程序。 通常可能使用 EntityReference 值的某些系統關聯,會改為使用唯一識別碼。 例如,客戶與連絡人實體各有兩個唯一識別碼屬性 (Address1_AddressId 和 Address2_AddressId),對應於建立客戶或連絡人建立時所建立的 CustomerAddress 記錄。
虛擬屬性
實體中繼資料包含中繼資料 AttributeTypeName 值為 VirtualType 的部分屬性。 這些屬性無法用於程式碼。
邏輯屬性
邏輯屬性包含的值是儲存在與實體其他屬性不同的資料庫表格。 在許多情況下,此內部實作與使用 Microsoft Dynamics 365 無關。 當您使用邏輯屬性做為導出欄位的來源,導出欄位中的值不可進行排序。 使用 AttributeMetadata.IsLogical 屬性偵測屬性是否為邏輯屬性。
最常見的邏輯屬性是在特定實體中儲存地址資訊的屬性:CompetitorAddress、PublisherAddress、CustomerAddress、InternalAddress 和 LeadAddress。 有 8 個系統實體,包括兩個地址的一組完整屬性,會使用邏輯屬性。 這些屬性開頭都是「Address*」,例如 Address1_City 或 Address2_Latitude。
另請參閱
Microsoft Dynamics 365 中實體的簡介
影像屬性
計算和彙總屬性
範例:擷取有效的狀態轉換
範例:設定及擷取實體影像
Microsoft Dynamics 365
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權