Application lifecycle management for solutions that use virtual tables

Important

This functionality requires version 17 or later of Business Central online while service update 189 is required for Microsoft Dataverse. The release information for Microsoft Dataverse is published on the latest version availability page.

The application lifecycle for an end-to-end solution using Business Central virtual tables will encompass both Business Central and Microsoft Dataverse.

Solution management

Virtual tables for Business Central don't exist in Microsoft Dataverse until they're created. Virtual tables must be created inside a solution. The MicrosoftBusinessCentralERPVE solution is used for this purpose. This solution will contain all the virtual tables that are created from an instance of Business Central.

MicrosoftBusinessCentralERPVE is a managed solution. By definition, a managed solution can't be modified after it has been generated. However, MicrosoftBusinessCentralERPVE is a managed solution that grants privileges to update the components (that is, virtual tables) that are inside it. Therefore, new virtual tables can be added to the solution as they're created, and existing virtual tables can be updated as required. Nevertheless, the privileges to modify the managed solution are available only to the platform itself. Users can't make changes directly to the solution.

Because MicrosoftBusinessCentralERPVE is a managed solution, solutions from customers, partners, and independent software vendors (ISVs) can take a dependency on it. This capability allows for consistent application lifecycle management (ALM) for solutions that use and depend on the virtual tables for Business Central.

When a solution that depends on MicrosoftBusinessCentralERPVE is exported, placeholders for the virtual tables that are used in the solution are added in the exported solution. When that solution is imported into another Microsoft Dataverse environment, the import process also generates the dependent Business Central virtual tables in the MicrosoftBusinessCentralERPVE solution for the Business Central instance that is connected to the Microsoft Dataverse environment. Therefore, MicrosoftBusinessCentralERPVE must already exist before a solution that depends on it's imported. Otherwise, an error message is shown. Additionally, if a dependent table isn't available in the Business Central instance, the virtual table for that table won't be generated. Virtual tables are generated only for tables that are available.

The following list describes other solutions that Business Central virtual tables require to work, and that must be available in the Microsoft Dataverse environment:

  • MicrosoftBusinessCentralERPVE - Solution that contains the generated virtual tables.
  • MicrosoftBusinessCentralERPCatalog – This solution provides a catalog of the available tables in a Business Central instance. It also provides the connection that is used to set up a configuration. For more information, see the later sections of this article.
  • MicrosoftBusinessCentralVESupport – This solution provides the virtual table provider for Business Central. The provider can communicate with Business Central and Microsoft Dataverse. For more information, see the next section.
  • Dynamics365Company – This solution adds the Company table, which is referenced by all Business Central tables that have a PrimaryCompanyContext metadata value.

All these solutions must be present in an environment. Otherwise, virtual tables won't work with Business Central apps. These solutions are packaged together to allow for easier portability across environments.

Managing tables from multiple environments

The MicrosoftBusinessCentralVESupport solution consists of the msdyn_ businesscentralvirtualentity table. This table represents the virtual table data source for Business Central that captures connection setup information. Each record in this table represents a connection to a Business Central instance.

A catalog is used to list all the tables in a Business Central instance that are available for virtualization in Microsoft Dataverse (in other words, all the tables in Business Central that are enabled for Open Data Protocol [OData]). The catalog is part of the default MicrosoftBusinessCentralERPCatalog solution and is applicable to a Business Central instance.

Each Microsoft Dataverse environment must point to only one Business Central instance at any time, and each Business Central environment must point to only one Microsoft Dataverse environment. Therefore, there should be only one record in the msdyn_businesscentralvirtualentity table.

The mserp_businesscentralvirtualentity table that represents the catalog can be queried to list the tables in a Business Central instance. Because this table is a virtual table, the catalog is never persisted in Microsoft Dataverse.

Notice that the name of the catalog table has the "mserp_" prefix. This prefix identifies the tables in the catalog as Business Central tables. The same prefix is also added to the system names of the virtual tables that are generated for Business Central in the MicrosoftBusinessCentralERPVE solution. Therefore, the maker can distinguish Business Central virtual tables from other tables. The prefix is set in the managed solution and can't be changed.

Managing tables from multiple ISV solutions

One or more ISV solutions will take a dependency on the MicrosoftBusinessCentralERPCatalog solution to use virtual tables for Business Central. Because custom tables in Business Central use the same catalog as out-of-box tables in Business Central, the virtual tables for custom Business Central tables will also be generated in the MicrosoftBusinessCentralERPVE solution.

The established guidelines and ALM for table development in Business Central ensure that there are no conflicting table names across ISV solutions. Therefore, no conflicts of this type can occur when virtual tables are generated in Microsoft Dataverse for custom Business Central tables from multiple ISV solutions. All virtual tables for Business Central tables, including custom tables, will have the "mserp_" prefix that was mentioned earlier.

Managing a Business Central instance in a Microsoft Dataverse environment for virtual tables

One Business Central instance must be linked to a Microsoft Dataverse environment for virtual tables. The connection setup information that is required is captured in a virtual table data source for Business Central. This data source is included in the MicrosoftBusinessCentralERPCatalog solution.

See Also

Overview - Integrating Business Central with Microsoft Dataverse
Microsoft Power Platform Integration with Business Central
Table Modeling
Business Central and Microsoft Dataverse Admin Reference
FAQ