分享方式:


Microsoft Dynamics 365 實體屬性的簡介

 

發佈日期: 2017年1月

適用對象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

實體包括一組屬性,表示可以併入在每個記錄中的資料。 開發人員必須了解屬性的不同類型以及如何使用這些。 屬性中繼資料描述屬性不同類型的有效作業和行為。 數種屬性類型可依通用行為群組。

開發人員所擁有的特定經驗取決於其開發樣式。其他資訊:0fcf59aa-d564-4c9b-9042-40df8664f831#entity_programming。

備註

此主題包括許多中繼資料屬性的參照。若要檢視組織的實體中繼資料,請安裝瀏覽組織的中繼資料中敘述的中繼資料瀏覽器解決方案。 您也可以下載 SDK 後開啟其頂層資料夾內所附名為 EntityMetadata.xlsx 的 Excel 檔案,從中檢視未經自訂組織的中繼資料。

本主題內容

屬性的有效作業

屬性類型

分類資料屬性

集合資料屬性

日期及時間資料屬性

影像資料屬性

數量資料屬性

參照資料屬性

字串資料屬性

唯一識別碼資料屬性

虛擬屬性

邏輯屬性

屬性的有效作業

每個屬性都有中繼資料,描述支援的作業。 您需要知道所使用的屬性的有效作業。

AttributeMetadata 屬性

描述

IsValidForCreate

如果在建立記錄時此屬性值設定為有效則為 true,否則為 false。

IsValidForRead

如果此屬性值可以擷取則為 true,否則為 false。

IsValidForUpdate

如果在更新記錄時此屬性值設定為有效則為 true,否則為 false。

屬性類型

屬性是定義於中繼資料,而且 AttributeMetadataAttributeTypeName 屬性包含描述類型的值。 靜態 AttributeTypeDisplayName 成員提供可能的類型清單。

備註

舊的 AttributeType 屬性包含配合 AttributeTypeName 的大部分資料,除非它顯示 ImageType 屬性為 Virtual。 應使用 AttributeTypeName 屬性,而不使用 AttributeType 屬性。

下節將屬性類型群組為下列類別,以便您更容易比較這些屬性:

  • 分類資料屬性

  • 集合資料屬性

  • 日期及時間資料屬性

  • 影像資料屬性

  • 數量資料屬性

  • 參照資料屬性

  • 字串資料屬性

  • 唯一識別碼資料屬性

  • 虛擬屬性

分類資料屬性

此群組的五個屬性都是從共同的 EnumAttributeMetadata 基底類別繼承,並使用一組預先定義的有效值,將記錄群組為類別。

使用 OptionSetValue 並將 Value 屬性設定為整數,代表中繼資料中的有效選項,設定挑選清單、狀態和狀態屬性。

使用布林值,設定實體屬性,但是,請意識到這是受限於兩個選項的分類。

EntityName 屬性使用字串值,限制為組織中有效的實體邏輯名稱。

自訂挑選清單和布林屬性可以定義為計算屬性。其他資訊:26ada6f7-3e22-465c-90f8-19d326785eb4#BKMK_Calculated。

中繼資料類型

AttributeTypeName 值

描述

PicklistAttributeMetadata

PicklistType

有效值是設定於 OptionSetMetadata.Options 中定義之該屬性的 OptionMetadata.Value

在應用程式中的自訂工具,這些屬性稱為選項組欄位。

StatusAttributeMetadata

StatusType

這些系統屬性通常名為 StatusCode。 有效值是設定於 OptionSetMetadata.Options 中定義之該屬性的 StatusOptionMetadata.Value

每個選項的 StatusOptionMetadata.State 屬性描述對應的 StateCode 值的有效值。 在設定 StatusCode 之前,您應確認這是目前 StateCode 值的有效值。 當您需要變更記錄的狀態時,請使用 SetStateRequest 訊息設定 StatusCodeStateCode 屬性值。

這些內容可進一步限制設定的值。StatusOptionMetadata.TransitionData 屬性包含當 EntityMetadata.EnforceTransitions值為 true 時允許的選項的資訊。其他資訊:定義自訂狀態模型轉換

StateAttributeMetadata

StateType

這些系統屬性通常名為 StatusCode。 有效值是設定於 OptionSetMetadata.Options 中定義之該屬性的 StateOptionMetadata.Value

StateCode 不適用於更新。 在建立記錄後,才可以使用 SetStateRequest 訊息,設定 StateCode

每個選項的 StateOptionMetadata.DefaultStatus 屬性描述使用的預設 StatusCode,若未 SetStateRequest 中設定為參數。

BooleanAttributeMetadata

BooleanType

直接使用若未值,布林屬性可以設定,但是,如同其他屬性,它們也具有 OptionSet 屬性,以及對應於布林選項的 FalseOptionTrueOption 屬性。 這些屬性都定義一組當地語系化標籤,代表 true 和 false 對屬性的意義。 在應用程式中的自訂工具,這些屬性稱為兩個選項欄位,因為每個選項的意義可以是互斥的任何一對選項組,而不只是 true 和 false。 例如,選項可能是大和小。

EntityNameAttributeMetadata

EntityNameType

這些系統屬性通常與一個唯一識別碼或參照屬性 (對多種類型有效的) 配對。 此屬性的值是指實體邏輯名稱的字串值。 如果對應的參照屬性是 EntityReference,此屬性的值和 EntityReference.Name 屬性值相同。

集合資料屬性

這些系統屬性傳回值的集合。

AttributeTypeName 值

描述

CalendarRulesType

沒有使用 CalendarRulesType 的實際屬性。 使用早期繫結樣式時,程式碼產生工具會建立下列兩個模擬屬性 (不會出現在中繼資料)。 這些屬性實際表示行事曆規則記錄的檢視,在一對多關聯中關聯至實體執行個體。

  • Calendar.CalendarRules 關聯:calendar_calendar_rules

  • Service.CalendarRules 關聯:service_calendar_rules

PartyListType

下列屬性允許多個 EntityReference 設定用於多個活動類型。

ActivityPointer.allparties
Appointment.OptionalAttendees
Appointment.Organizer
Appointment.requiredattendees
CampaignActivity.from
CampaignActivity.Partners
CampaignResponse.Customer
CampaignResponse.from
CampaignResponse.Partner
Email.bcc
Email.cc
Email.from
Email.to
Fax.from
Fax.to
Letter.bcc
Letter.cc
Letter.from
Letter.to
PhoneCall.from
PhoneCall.to
RecurringAppointmentMaster.OptionalAttendees
RecurringAppointmentMaster.Organizer
RecurringAppointmentMaster.RequiredAttendees
ServiceAppointment.Customers
ServiceAppointment.Resources
SocialActivity.From
SocialActivity.Resources
SocialActivity.To

日期及時間資料屬性

中繼資料 AttributeTypeName 值為 DateTimeType 的屬性。 使用 System.DateTime,設定這些屬性。

DateTimeAttributeMetadata.Format 屬性可以是下列其中一個 DateTimeFormat 值:

  • DateAndTime:顯示日期與時間。

  • DateOnly:只顯示日期

自訂日期和時間屬性可以定義為計算或彙總屬性。其他資訊:計算和彙總屬性

影像資料屬性

對於支援影像屬性的實體,實體影像屬性的 SchemaName 一律是 EntityImage

其他資訊:影像屬性、8597998f-764f-4c73-b63d-9f5e02c78061#BKMK_EntityImages和範例:設定及擷取實體影像

數量資料屬性

此類別的屬性使用數值資料。 這些屬性都有 MaxValueMinValue 中繼資料屬性,可設定有效值範圍。

自訂小數、整數和金額屬性可以定義為計算或彙總屬性。其他資訊:計算和彙總屬性

中繼資料類型

AttributeTypeName 值

描述

BigIntAttributeMetadata

BigIntType

BigInt 屬性僅供內部使用。

DecimalAttributeMetadata

DecimalType

使用小數值。

Precision 中繼資料屬性設定屬性所使用的有效位數。

DoubleAttributeMetadata

DoubleType

使用 double 值。

Precision 中繼資料屬性設定屬性所使用的有效位數。

IntegerAttributeMetadata

IntegerType

使用 int 值。

MoneyAttributeMetadata

MoneyType

使用具有 decimalValue 屬性的 Money

每個金額屬性有對應的系統計算的基準貨幣金額屬性,在組織中啟用多種貨幣時,用來計算組織的基準貨幣值。IsBaseCurrency 屬性識別金額屬性是否代表基準貨幣。其他資訊:交易貨幣 (currency) 實體

金額屬性也有 PrecisionSource 中繼資料屬性,可以指定應該使用的有效位數等級。 此屬性的整數值決定:

  • 0:有效位數由 Precision 中繼資料屬性決定。

  • 1Organization.PricingDecimalPrecision 值。

  • 2:與目前記錄相關的 TransactionCurrency.CurrencyPrecision

參照資料屬性

這些屬性通常稱為查詢屬性,都包含 EntityReference 值。 這些屬性之間的差異在於可關聯的實體類型。Targets 中繼資料屬性包含了有效實體邏輯名稱 String[],代表查詢的有效目標。 自訂查詢屬性在 Targets 屬性中只能有單一類型。

PartyListType 也代表一種參照資料屬性類型,但是,因為它們包含參照的集合,所以是包含在 集合資料屬性 中。

中繼資料類型

AttributeTypeName 值

描述

LookupAttributeMetadata

CustomerType

這些系統查詢屬性會連結至客戶或連絡人實體記錄。

Contact.ParentCustomerId
Contract.BillingCustomerId
Contract.CustomerId
ContractDetail.CustomerId
CustomerOpportunityRole.CustomerId
CustomerRelationship.CustomerId
CustomerRelationship.PartnerId
Entitlement.CustomerId
Incident.CustomerId
Invoice.CustomerId
Lead.CustomerId
Opportunity.CustomerId
Quote.CustomerId
SalesOrder.CustomerId
SocialActivity.PostAuthor
SocialActivity.PostAuthorAccount
SocialProfile.CustomerId

LookupType

這些查詢屬性可用來設定 中繼資料屬性所表示之類型記錄的參照。

某些系統查詢沒有 Targets 屬性設定的值,但是,根據關聯至查詢的實體關聯,預期的實體必須明確。

OwnerType

這些系統查詢一律命名為 OwnerId,且每個使用者擁有的實體都將擁有其中一個屬性。 可參照 SystemUser 或團隊記錄。

字串資料屬性

使用字串資料的屬性共有兩種類型。

中繼資料類型

AttributeTypeName 值

描述

StringAttributeMetadata

StringType

可套用格式的字串值的屬性。其他資訊:89969adc-8577-424c-bfcc-7f65c5d4bd19#BKMK_StringAttributeMetadataFormats。

自訂字串屬性可以定義為計算屬性。其他資訊:26ada6f7-3e22-465c-90f8-19d326785eb4#BKMK_Calculated。

MemoAttributeMetadata

MemoType

適用於附註的字串值的屬性。 此屬性與 FormatName 屬性值設為 TextArea 的字串屬性是對等的。

唯一識別碼資料屬性

中繼資料 AttributeTypeName 值為 UniqueidentifierType 的屬性包含可為 Null 的 System.Guid 值。

每個實體執行個體包含一個屬性,代表記錄的唯一識別碼。 此屬性的結構描述名稱遵循下列命名慣例:<entity schema name>+Id。 例如,對於客戶實體的結構描述名稱,代表唯一識別碼屬性的名稱為 AccountId。 此值也可以透過直接使用 Entity.Id 屬性可用。 擷取實體時,即使查詢的 ColumnSet 不包括它,永遠會傳回此屬。 對於新具現化的實體,此值為 null。 當您建立新記錄,雖然設定 Guid 值定義唯一識別碼是有效的,但為發揮最佳效能,建議您將它保持為 null,以允許系統在建立記錄時指派值。 當記錄儲存之後,此值變成唯讀。

實體可依據實體的功能,包括其他唯一識別碼屬性。 例如,為商務程序啟用的實體會包含 ProcessIdStageId 的唯一識別碼屬性,以追蹤與記錄關聯的目前商務程序。 通常可能使用 EntityReference 值的某些系統關聯,會改為使用唯一識別碼。 例如,客戶與連絡人實體各有兩個唯一識別碼屬性 (Address1_AddressIdAddress2_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. 著作權所有,並保留一切權利。 著作權