What is a D365 Data Entity? Data entities allow outside systems to read and write data in Microsoft Dynamics 365 for Finance and Operations. For example, perhaps you read the product inventory levels in D365, and send these values to your website. Similarly, you may have sales order information entered on a website that you send to D365 and create a sales order. In both scenarios, a D365 data entity is used. Before learning how to create a D365 data entity, it is important to understand what one is.
Key Concepts
There is a lot that can be said about a D365 data entity. Allow me to focus down on what I see as the most important things to know.
Primarily, data entities are a mechanism that data is exchanged with outside systems.
Notably, they are used very commonly by integrations. As well as to load data into the system.
In general, I tend to focus in on two things.
- First, a D365 data entity allows for authorized access to the data.
- Second, data entities provide a consistent and understandable format in which outside systems communicate with D365.
To explain, I will go into more detail in the next two sections.
Authorized Access From Outside
First, before any process or user can interact with data within D365, it must have security access. Primarily, a D365 data entity allows specific data to be accessible from outside D365.
In contrast, D365 users use forms in a browser to enter in and read data in the D365. First, they log into D365 using their credentials. Then, the security roles tied to their user determines what forms they can interactive with. As well as whether a user can only read the data, or also update, insert, and delete.
However, in the case of an integration, the data is accessed differently.
Most times, a computer process, running automatically on a recurrence, is the one that needs to access the data. Other times, a user could be using another system. Then, some interaction the user does in that system needs to interact with data in D365.
In either case, since data is being accessed without a user logging into the system using a browser, there needs to exist another way. A D365 data entity allows developers to control which data outside systems can have access to.
In particular, forms provide a friendly interface for humans to interact with a small amount of data. However, integrations often require a consistent and fast way to exchange data. Integrations need the ability to read and write potentially a large number of records very quickly. This is what a D365 data entity is best used for.
Understandable Format
Secondly, data entities provide a consistent format in which outside systems communicate with D365.
To explain, let us talk about something similar. When D365 users use a form, they are abstracted from the underlying tables they are interacting with. For example, the customer master form actually writes to several different tables in the database. But, the user does not need to have knowledge of what tables the system is writing to. They just see all the pieces of information that relate to the customer they are creating.
This concept is key to relational databases. Instead of having a single table store a very large number of fields, data can be spread across multiple related tables. This reduces the amount of data that needs to be stored. Additionally, it increases the speed in which data can be read.
Similarly, each D365 data entity often represents a business concept, like a customer, an item, or a sales order. First, an outside system populates the fields in the data entity.
Then, when the data entity records is saved, the system inserts records into whatever underlying tables correspond to those fields. Additionally, the system handles any fields that need to be populated to relate those records.
Importantly, the outside system does not need to understand how the relational tables are set up. Instead, it can simply populate the fields in the D365 data entity.
Integration scenarios
To help understand, there are three main ways that data entities are used in integrations.
See this diagram from Microsoft’s documentation.
API Interface (OData)
First, data entities act as an API interface for outside applications and systems to call. The outside system, such as a website, PowerApps, mobile app, or office integration calls the D365 data entity as an OData endpoint. In this case, the outside system makes a synchronous call to D365, and returns information back.
See this article on how to Setup Postman to Call D365 Data Entities.
File Import
Second, data entities support file-based integrations that run asynchronously through a data management pipeline. This allows for a high-performing inserting or extraction of data.
For example, files are put into a folder by an outside system when ready to be processed. Next, they are read from the folder by D365. Then, each row of the file populates a D365 entity data and used to insert the data into D365.
Business Intelligence
Thirdly, data entities are used in business intelligence reporting scenarios. A data entity combines sometimes multiple tables together into a single entity and concept. This data can also be aggregated, and then read by outside reporting systems, such as PowerBI.
Application Lifecycle Management (ALM)
In addition to integrations, data entities are also used to initially load data. Microsoft has provided many data entities out of the box to allow users to import key setup data.
For example, implementers often have a data import template used to configure parameters, number sequences, currencies, and much more.
Notably, this is extremely helpful when migrating from a legacy system to Microsoft Dynamics 365 for Finance and Operations. D365 data entities provide a simplified interface for moving in common types of data.
Microsoft Documentation
Furthermore, read the Microsoft documentation for additional information.
Conclusion
In this article you learned what a D365 data entity is, and how they are used. You learned that data in tables cannot be read or written to directly from outside systems. However, using data entities, we not only can read and write to them, but we can do so in a simplified way. Now that you know what a data entity is, we can next look at out to create a data entity. See you in the next article!