Customize entity attribute metadata
Use AttributeMetadata
(AttributeMetadata EntityType or AttributeMetadata class) to retrieve existing attributes. The AttributeMetadata class is returned by the RetrieveAttributeRequest message. The AttributeMetadata
inherits from the abstract MetadataBase
(MetadataBase EntityType for Web API and MetadataBase in case of Organization Service).
Use the following Web API query to retrieve entity attributes in the context of an entity by expanding the Attributes collection-valued navigation property. More information: Querying EntityMetadata attributes
GET [Organization URI]/api/data/v9.1/EntityDefinitions(70816501-edb9-4740-a16c-6a5efbc05d84)?$select=LogicalName&$expand=Attributes($select=LogicalName;$filter=AttributeType eq Microsoft.Dynamics.CRM.AttributeTypeCode'Picklist')
Use the specific class for each attribute type with the CreateAttribute
message (For Organization Service see, CreateAttributeRequest) to update attributes or create custom attributes.
Note
You can access custom attributes programmatically after you create them, but you must add them to an entity form and publish them before users can see them.
Attribute types
The following table lists each type of Attribute
you can work with. Each attribute inherits from the AttributeMetadata
.
Class | Application Label | Description |
---|---|---|
BooleanAttributeMetadata | Two Option | A Boolean attribute. You can specify the text for both options. When added to a form, the field properties control whether the attribute is displayed as two radio buttons, a check box, or a list. |
DateTimeAttributeMetadata | Date and Time | A date and time attribute. You can specify the behavior to store date and time values with or without time zone information, and format to define the display format of the values. More information: Behavior and format of the datetime attribute Note: If you are using Dynamics 365 Customer Engagement (on-premises) or Dynamics CRM 2016 (on-premises), all date and time attributes now support values as early as 1/1/1753 12:00 AM. |
DecimalAttributeMetadata | Decimal Number | A decimal attribute. You can specify the level of precision up to ten decimal places and the minimum and maximum values from -100,000,000,000 to 100,000,000,000. |
DoubleAttributeMetadata | Floating Point Number | A double attribute. You can specify the level of precision up to five decimal places and the minimum and maximum values from -100,000,000,000 to 100,000,000,000. Note: DoubleAttributeMetadata replaces the FloatAttributeMetadata used in Dynamics CRM 4.0. |
ImageAttributeMetadata | Image | An image attribute. Each entity can have one image attribute. Certain system entities have image attributes and new image attributes cannot be added to system entities that do not have them. You can add an image attribute to custom entities All image attributes have the SchemaName ‘EntityImage’ and the LogicalName ‘entityimage’. Custom image attributes will not use the solution publisher customization prefix in the name. More information: Entity images. |
IntegerAttributeMetadata | Whole Number | An integer attribute. You can specify the maximum and minimum values from -2,147,483,648 to 2,147,483,647. This attribute can be formatted to create the following types of fields using the IntegerFormat enumeration( IntegerFormat EnumType or IntegerFormat enumeration):- Duration: Displays a drop-down list that contains time intervals. A user can select a value from the list or type an integer value that represents the number of minutes. - TimeZone: Displays a drop-down list that contains a list of time zones. - Language: Displays a drop-down list that contains a list of languages that have been enabled for the organization. If no other languages have been enabled, the base language will be the only option. The value saved is the LCID value for the language. |
LookupAttributeMetadata | Lookup | An attribute created when an entity relationship is created by using the CreateOneToMany message( For organization service see, CreateOneToManyRequest message). |
MemoAttributeMetadata | Multiple Lines of Text | A memo attribute. Displays as a text box field in a form. The maximum length is 1048576 characters. |
MoneyAttributeMetadata | Currency | A money attribute. You can specify the maximum and minimum values between - 922,337,203,685,477 and 922,337,203,685,477. The level of precision can be set by using the MoneyAttributeMetadata.PrecisionSource property:- When the precision is set to zero (0), the MoneyAttributeMetadata.Precision value is used.- When the precision is set to one (1), the Organization.PricingDecimalPrecision value is used.- When the precision is set to two (2), the TransactionCurrency.CurrencyPrecision value is used. |
MultiSelectPicklistAttributeMetadata | MultiSelect Option Set | A multi-select picklist attribute. Multi-select picklist attributes were added with the Dynamics 365 Customer Engagement (on-premises) version 9. This attribute provides a set of options that are displayed in a drop-down list. More than one option can be selected. You can create the this attribute so that it can contain its own options or use a global options set. |
PicklistAttributeMetadata | Option Set | A picklist attribute. This attribute provides a set of options that are displayed in a drop-down list. You can create the picklist attribute so that it can contain its own options or use a global options set. |
StateAttributeMetadata | Status | The state attribute is created automatically when the entity is created. Note: The options available for this attribute are read-only. |
StatusAttributeMetadata | Status Reason | The status attribute is created automatically when the entity is created. Each of the options must be associated with the StateAttributeMetadata attribute for the entity. Use the InsertStatusValueRequest message to update options available for this attribute. Note: Each StatusOption must reference a specific state attribute value because status values depend on a specific state value. |
StringAttributeMetadata | Single Line of Text | See StringAttributeMetadata formats. |
StringAttributeMetadata formats
String attributes can be formatted to allow links to initiate phone calls by using Lync or Skype. This change requires that a new FormatName
property(For Organization Service see, FormatName) be added to StringAttributeMetadata
(StringAttributeMetadata EntityType or StringAttributeMetadata class) and the deprecation of the Format
property.
Using the StringFormat
enumeration(StringFormat EnumType or StringFormat enumeration) to define the format for StringAttributeMetadata.Format
(For Organization Service see, StringAttributeMetadata.Format) is deprecated. Instead, use the StringFormatName class to set the value of StringAttributeMetadata.FormatName.
This allows for setting the format value of PhoneNumber
, which does not exist in the StringFormat
enumeration.
For backwards compatibility, you can set a value to control how the attribute is formatted by using either the Format
or FormatName
property. Your existing code will continue to work if you only use Format
, but you will not be able to format an attribute as a phone number without using FormatName
. If both properties are set, the value set using FormatName
is the one that will be applied.
The StringFormatName
message (StringFormatName ComplexType or StringFormatName class) contains the following members; each member returns a string with the same value as the member name:
Member name and value | Description |
---|---|
Email |
The form field will validate the text value as an e-mail address and create a mailto link in the field. |
PhoneNumber |
The form field will contain a link to initiate a phone call by using Skype. |
PhoneticGuide |
For internal use only. |
Text |
The form will display a text box. |
TextArea |
The form will display a text area field. |
TickerSymbol |
The form will display a link that will open to display a quote for the stock ticker symbol. |
URL |
The form will display a link to open the URL. |
VersionNumber |
For internal use only. |
See also
Extend the Metadata Model for Dynamics 365 Customer Engagement
Work with Attributes
Behavior and format of the datetime attribute
Entity Attribute Metadata Messages
Sample: Work with Attributes
Sample: Dump Attribute Metadata to a File
Sample: Dump Attribute Picklist Metadata to a File
Sample: Convert date and time behavior