Metadata and data models
Applies to Dynamics 365 for Customer Engagement apps version 9.x
Dynamics 365 for Customer Engagement apps uses a metadata driven architecture to provide the flexibility to create custom entities and additional system entity attributes. This structure also makes upgrades and the transportation of customizations easier. The data structure can change without requiring any change to code in the Dynamics 365 for Customer Engagement server or client applications.
All the information necessary for Dynamics 365 for Customer Engagement server to operate is stored in the Dynamics 365 for Customer Engagement apps metadata. This includes information about entities, attributes, relationships, and option sets.
The Dynamics 365 for Customer Engagement Web services contain the messages that you use to read or write the definitions for all the entities each organization. It can also be used to build a client-side metadata cache, which is useful for applications that access the metadata frequently. For example, you may want to create a custom search solution that supports all entities, even those created after the solution has been installed.
A very important role of the metadata is to provide the framework to deliver a fully metadata driven user interface. The entity metadata controls the grid and form layout, and how navigation options are presented.
When you create a custom entity, the information in the attributes and relationships are used to create the appropriate user interface for that entity. In addition, this supports multiple languages in the user interface so that one user may see labels and other text in a different language from another user. These languages and the associated labels are stored in the metadata. The language edition of Dynamics 365 for Customer Engagement server that is installed for an organization is considered its base language. You then install Multilingual User Interface (MUI) language packs for additional languages as they are needed.
To read more about metadata and how to find metadata reports, see Entity Metadata.
The following table lists the objects described by the metadata.
|Entity||An entity is a container for data, similar to a table in a traditional database. Each entity contains a set of attributes. For Dynamics 365 for Customer Engagement, there are a set of entities that exist when you first install. Some of these are customizable. In addition, you can create custom entities to contain business data.|
|Attribute||An attribute is a container for a piece of data in an entity. Dynamics 365 for Customer Engagement supports a wide variety of attribute types.|
|Relationship||A relationship defines an association between two entities: one-to-many, many-to-one, many-to-many, and self-referential.|
|Option Set||An option set defines a set of options provided for a picklist. Several picklist attributes may use a global option set so that the options they provide are always the same and can be maintained in one location.|
|Option||An option is one of the values available in an option set. Each option in an option set has a unique integer value and an associated set of localized labels.|
Extend Dynamics 365 for Customer Engagement apps
Supported Extensions for Dynamics 365 for Customer Engagement apps
Browse the Metadata for Your Organization
Customize entity attribute metadata
Create auto-number attributes
Customize entity relationship metadata
Use the Web API with metadata
Use the Organization service with Dynamics 365 for Customer Engagement apps metadata
Extend Dynamics 365 for Customer Engagement apps on the server
Extend Dynamics 365 for Customer Engagement apps on the client
Customize Dynamics 365 for Customer Engagement applications
Package and distribute extensions using solutions
Extend Dynamics 365 for Outlook
Integrate Dynamics 365 for Customer Engagement apps with SharePoint
Integrate Dynamics 365 for Customer Engagement apps with OneNote
We'd love to hear your thoughts. Choose the type you'd like to provide:
Our feedback system is built on GitHub Issues. Read more on our blog.