The Logical Database and Dynamics 365 Business Central Objects

Hi D365 Lovers,

This article will be more of reading, this is very important to understand before start development in Microsoft Dynamics 365 Business Central.

MS D365 Business Central is built, like many other cloud applications, on top of a database. This means D365BC is totally based on cloud DB we don't have physical access to the DB. And this database does not only contain the data (like customers, vendors, products, users, etc.), but also every object used in the application. So when you request some customer data, this data is displayed as a page on the screen with a certain structure. The database of Microsoft Dynamics 365 Business Central also stores the structure of this page. This allows developers to add and modify existing objects very easily and deploy new solutions very quickly. There is no need to build a completely new version of the product when you want to change the position of some input fields on the screen. For these types of changes, developer can create a page extension to modify the existing structure for the page.

Every solution is built upon one or more objects. You will need tables to store your data, pages to present/display your data and allow user interaction, reports to present and print data in specific layouts, you can also able to design custom reports. There are code units where you can group programming codes to be reused in different places. You can use the query object to query the database, and when you need importing or exporting capabilities in your solution, you will use the XML Port. 

If you already worked on Dynamics NAV then you were well aware of different Objects of NAV, the same objects are available in Dynamics 365 Business Central with other 2 new objects table extension and page extension.

We can list the following object types:

  • Table: Describes how data is stored and how it is retrieved.
  • Page: Enable users to view, add, modify or delete records in a table.
  • Report: Print, process or preview the data
  • Codeunit: Container of programming code. Codeunits are called from other objects to complete a specific task.
  • Query: A relational data model for direct & efficient querying of the underlying database
  • XMLPort: Imports or exports data in XML or text format

We previously mentioned that Microsoft Dynamics 365 Business Central has a lot of built-in functionality and objects. You can’t change the source code of the objects, but you can modify the behavior by extending the built-in objects.

Therefore, we also have 2 other object types:

  • Table Extension: Extends the functionality of existing tables
  • Page Extension: Extends the functionality of existing pages

We will look at tables, pages, table extensions, page extensions, report, codeunit, query, and XMLPort objects in upcoming articles. 

The Logical Database

In the Microsoft Dynamics 365 Business Central database you can set up different companies. Means in one database you can create multiple companies and data may differ from company to company. The data of a company is stored as records in different tables, and each record is built out of multiple fields.

So, companies are the largest logical structure in the database and our data should be mostly company-specific. While our data is mostly company-specific, our objects are not. As a developer, you will create and change/extend objects. The objects will then be applicable to all companies in the same database.

Database Diagram

Managing Objects

Before you start making new objects for your customized solutions, you need to be aware of object numbering conventions. Each object in our Microsoft Dynamics 365 Business Central solution is identified by a unique number. There are important numbering conventions to organize version management, localization, and customization, and to guarantee successful upgrades.

Now, let's have a look at these conventions. Now, the object numbers from 1 to 9,999 are objects used by Microsoft and they are used in the worldwide versions. In the number range from 10,000 to 49,999, you will find the localized objects. These objects are typically designed for different countries and regions. These area-specific objects are also created by Microsoft.

In Microsoft Dynamics 365 Business Central we operate with three different object ranges in terms of licensing. All tenants can freely use objects in the following ranges:

  • 50.000-99.999
  • 1.000.000-60.000.000
  • 70.000.000-74.999.999

So let's look at what is the intention of each individual range is.

50.000-99.999

This range is for per tenant/customer customizations. A partner can develop an extension tailored to the individual tenant to fit the needs. The partner developing this will do this through either using a sandbox tenant or by obtaining a Docker image of the current release of Microsoft Dynamics 365 Business Central that matches the version of the tenant. Once the development is done, the extension can be deployed to the individual tenant.

1.000.000-60.000.000

This is the RSP range which partners that have an ISV solution. They can develop extensions for Microsoft Dynamics 365 Business Central, and these extensions are obtained as apps from https://appsource.microsoft.com.

70.000.000-74.999.999

Partners can obtain ranges for extension development that runs in Microsoft Dynamics 365 Business Central. This range is only available for extension development and are obtained as apps from https://appsource.microsoft.com.

 

I hope this article helped you a lot to understand what are the objects available in Dynamics 365 Business Central and what is the logical structure of the database for multiple companies. 

In the next articles, I will tell you how you can create your first Extension for Microsoft Dynamics 365 Business Central using Visual Studio Code.

Stay Tuned!

Comments (2) -

Good article. Quick question as I am not a MS expert. Is the database structure in Business Central similar to the DB structure in NAV? thanks.

Yes, Microsoft using the same structure as did in the earlier versions.

Add comment