Category Archives: Administration

A quick look into the upcoming major version in April 2021 (Business Central 2021 release wave 1) from the developer’s point of view

It is only four months since the last major version of the Business Central (2020 wave 2) has been released, and we can already look forward to another version that will be released in April.

Microsoft has already provided the list of planned and confirmed functionality (available here). Let’s look at some of the planned features that will be usable (or, at least available) for programmers.

Most useful changes for developers

Extensible reports

One of the most annoying things for customising in the AL language are definitely reports. Till now, to add own field to the existing report from the base app or another extension, there was no other way but to copy the report and do the change in this copy.

With the upcoming version, developers will be able to create a report extension objects. Using this extension object type, we will be able (at least) to add new fields to existing datasets and request pages.

In my opinion, this is one of the most critical changes and as so I will look at it in another article once it is available in public preview.

Returning of complex types from AL procedures

One of the greatest news is that with the new update almost every complex type (record, page, query, list, …) can be returned from a procedure. Let’s see an example:


 procedure GetSellToCustomer(): Record Customer
 var
   Customer: Record Customer;
 begin
   Rec.TestField("Sell-to Customer No.");
   if Customer.Get("Sell-to Customer No.") then
     exit(Customer);
 end;

As this is a big change and as it is something known and often used in almost any other language, I will look at it in details in the next weeks.

Ability to add own keys/indexes to base table/tableextension

To increase custom processes’ performance, Microsoft added support of adding own keys to original tables and tables from any extension.

Entitlement and PermissionSet objects

There will be new object types for better administration and security of user’s roles: Entitlements, PermissionSets and PermissionSetExtension.

PermissionSets (and PermissionSetExtension) are already familiar to anybody. However, in current versions of the Business Central, they are stored and managed directly in the Modern Client.

Entitlements is a new object type that will allow specifying, which objects are available for specific users based on their assigned license (Full, Team Member, …) or Azure Active Directory role.

Easier working with 1-D barcodes in report layouts

There are new fonts available to use in report layouts. These fonts allow generating one-dimensional barcodes. For now (2021/02) licensed fonts are as follow

Some of other improvements

  • Availability to specify report layout both using AL or directly in the Modern Client (so as developers, we can use the same report for more layouts dynamically)
  • Performance improvements to Role Centers. The content of the Role Center is loaded in a similar way to FactBoxes. That means that Role Centers are loaded part by part from top-level (from menus), and only the visible parts are loaded. For developers, that is the improvement that helps with the performance a lot as users will be able to use menu actions without waiting for bricks and other stats shown on the main page.
  • Interfaces can be obsoleted as any other objects (In my opinion, this is a fix, not an improvement…)
  • Lookups triggers will return record link of selected record instead of its name.
  • Many improvements to the extensibility of reservation management. I will cover this topic as a separate article in the upcoming weeks.

Monitored Fields

Another new functionality introduced with the Business Central 2020 Wave 2 (with version 17.1 in November specifically) is called “Monitored Fields”. This functionality is built over the original Change Log functionality and use the same tables and procedures; however, extends the core functionality with email notifications when any of the defined fields are changed.

To find all related pages, type “monitor” into “Tell me”. Let’s start with Field Monitoring Setup.

Field Monitoring Setup

Using this setup, the functionality itself could be enabled. On the page, it is also possible to define email profile that will be used for notifications and the user who will be notified about any change to the monitored field (for notification, the email from User table of the corresponding user is used).

Monitored Fields Worksheet

Using the worksheet, you can define all combination of tables and fields you want to monitor. If the Data Sensitivity functionality is in use, the monitored fields can be automatically generated based on data in this table. Nevertheless, it is also possible to define all fields manually.

It is important to remember that the field is not monitored until the “Notify” field is enabled. It can be done manually for every line or using actions “Set for Notification” (to enable notifications) or “Clear for Notification” (to disable notifications).

Monitored Field Log Entries

On this page, all changes to monitored fields could be found. Right now, it is basically just a new page for entries in Change Log.T here are also listed all changes to Monitored field configuration tables (similarly to Change Log).

Email notifications

Nonetheless, the most useful thing that comes with this functionality is the notifications itself. All described above is just a new design for ChangeLog; however, the changelog only logs the information about the change, and nobody knows that something had changed. The Monitored fields functionality extends logging by notifying a responsible user using email notification.

New Features: Managing permissions to export data to Excel

With the new version of the Business Central (2020 Wave 1) administrators have a way how to restrict users who could export data to Excel. This is common request across all industries to allow this functionality to only some users.

The permission is under the permission set “D365 Excel Export Action” and for system with own permission sets it could be done by specifying System Permission ID 6110.

Users who don’t have this permission are not able to export any data from any page (“Open in Excel” or “Edit in Excel”).

The specific action (Open or Edit) is dependent on whether the Excel Add-In in installed on the user’s computer. In the Cloud version, if user has Add-In he see both actions; however, in the On-Premise version only one of them is shown (based on whether the Add-In is installed or not). This can’t be unfortunately changed by any setup and we have to hope that it will change in the future.

All released or planned features from Microsoft Dynamics 365 Business Central 2020 Wave 1 could be found on Microsoft Docs.

New Features: Non-Sequential numbering

One of the most known problem, especially in systems with many users, is managing DB locking for records, that require many updates. In term of Business Central (and previously NAV too) this problem is mostly known from No. Series.


The new version of the Business Central come with new setting in No. Series called “Non-Blocking No. Series” that could heavily improve the performance of core processes.


To set No. Series as a non-blocking, user has to select “Allow Gaps in Nos.” in the No. Series. This could be used without any problem for series that does not require to be sequential (I definitely to recommend this requirements with users who are responsible for auditing and legal requirements whether the series could have spaces in numbering or not). For example, in the Czech Republic it’s possible to use this setting for Customers, Vendors, and other entity related records, even for Orders, Quotes and any other documents that are not posted into G/L under this number.

All released or planned features from Microsoft Dynamics 365 Business Central 2019 Wave 2 could be found on Microsoft Docs.

Dimensions (part 2)

This is the second part of the articles about Financial Dimensions. The first part that described what dimensions are and how to set up them on customers and vendors properly is here.

How To Set Up Dimension Priorities, Combination, and Global Dimensions

To make an easier way to analyze your sales data, Dimensions from Business Central will provide you with a quick and simple way to view everything about your sales entries. Dimensions work great in the respect that you organize data by a region, department, and salesperson and can even show off information like where the item was sold, the type of customer who purchased it, who was the one who sold it, and what account the sale is associated with. Although it’s an easy solution, there are more complex setups that are also associated with dimensions.

How to set up a default dimension priority

Dimensions are relatively easy to use and create, but due to their easy-to-use function, some mistakes can be made along the way. Certain entries can be filled out to have multiple default dimensions associated with them, making it difficult for the program to bring up the desired entry. This is also due to the fact that there are different types of accounts, like a customer account, item account, or a vendor account. To help define and separate these accounts, these simple steps can be followed:

  1. First, locate the icon, which is also known as the “search” icon. After selecting it, you can enter “default dimension priorities” and click on the returned link.
  2. Once you’re on the page “default dimension priorities”, you can enter a specified course code for that entry table. This will then be applied to the default dimensions priorities.
  3. Each of the default dimension priorities will have a line to fill out, where you can enter the desired source code.
  4. You can repeat this process for as many source codes that you want to set up for your default dimension priorities.
  5. Tip: A helpful tip to know is that if two tables are provided with the same source code and priority, Business Central will then select the lowest table ID to show as the priority.

Setting up dimension combination

Due to the information, your input to create the dimensions, some entries may pop up with contradicting information. To avoid this though, dimension combinations will limit specific combinations of different dimensions or block them altogether. When you create a limited dimension combination, you can enter each dimension to the same entry, but only if the dimension values are the same. Blocked dimension combinations won’t let you post both dimensions to the same entry, even if the dimension values are different or the same. You can choose either by doing the following: 

  1. After you have located the icon, also known as the “search” icon, you can enter “dimension combinations” to get to the desired page.
  2.  Once on that page, select the right field of dimension combination and choose one of the following fields:
  • No limitation: This means there will be no restrictions on the dimension combinations.
  • Limited: After selecting the dimension values you want, the dimension combination will be limited to those restrictions.
  • Blocked: The specified dimension combination will not appear.

How to change the global dimension

No matter what you’re using Business Central for global dimensions is a valuable resource that can be applied to many options outside dimensions, including analysis views, reports, and batch jobs. Select a global dimension on the journal lines and document lines, but choose the most used dimensions, as they can only be used twice. After changing a global dimension, the entries selected will be updated, but since this can be timing-consuming, Business Central has two modes you can select from to adapt to the size of your database. To change a global dimension: 

  1. After choosing the icon, type in “general ledger setup” and hit enter.
  2. Select the action “change global dimensions.”
  3. A batch job will run in two modes, which can be selected at the top of the page. “Sequential”, the default option, which will change the whole dimension in one phase so each entry will update altogether. The second mode “Parallel” will be selected after clicking “parallel processing”, which will allow the dimensions to change as multiple background sessions, so the operation will be split into different transactions.
  4. There will be two fields labeled “global dimension 1 code” and “global dimensions 2 code”, this is where you will enter the new dimension.
  5. If the “sequential” mode is selected, press the start action.
  6. If the “parallel” mode is selected, press the prepare action. Next, sign out and then sign in again, choose the start action to begin the parallel processing changes.

How to Use Posting Groups in Business Central

Posting groups are a major tool when using Business Central. The main point of posting groups is so that businesses’ can create links for certain accounts in separate application areas. This means accounts can be linked whether they are associated with the general ledger application area or another area. Although you will need a setup of a chart of accounts before making the posting groups, it will provide a means to proper mapping to the right accounts when recorded purchases, post-sales, and transactions don’t have a unique G/L account specified.

How to set up general posting groups

A general posting group provides a way to identify income statement accounts for each of the subsidiary ledgers. For this, there are two main groups a general posting group, which includes general business posting groups, and general product posting groups. The first identity what customers are sold to and which vendors or purchased from, where the latter identifies the items or resources being sold and purchased.

A Product Posting Group is assigned to things such as resources, work centers, machine centers, G/L accounts, item charges, and items. It’s good to specify how many groups you will need, which can be broken down into retail items, capacities, resources, and raw material items. To create a product posting group:

  1. Click the “Search for Page” icon and enter “General Product Posting Groups” so that it will bring you to that page.
  2. Click “new” and on the Code field enter a specific identifier for that product group. Then click on the Description field, you can create a unique description of it.
  3. On the “Def. VAT Product Posting Group” field, you can assign the VAT product group to display as the default for transactions that require this product group.
  4. Lastly, you can click on the check box labeled “Auto Insert Default” so that it will automatically insert the Default VAT Product Group when the general group is mapped to a resource or item.

A General Business Posting Group is set up in a similar way, but you should evaluate the number of groups needed for purchases made by vendors or sales made by customers first. You can divide these groups into sections like the type of business, types of industry, and geographical area. To start setting up a business posting group:

  1. Click on the “Search for Page” icon and type in “General Business Posting Groups” to be taken to that page.
  2. Once there, you can click on “New” and once in the Code field, enter a specific identifier for your business group. Afterward, you can insert a short description by clicking on the Description field.
  3. In the field labeled “Def. VAT Business Posting Group“, you can type in the VAT business group that you want to show up as the default for sales that require this business group.
  4. Next, click on the checkbox “Auto Insert Default” so that it will automatically include the Default VAT Business Group each time the general business group is applied to a vendor, customer, or G/L group.

Setting up a specific posting group

A specific posting group is created to identify a balance sheet account when it’s assigned to each of the supporting ledgers. As an example, the total outstanding account receivable balance of every customer must correlate with a total add-up of accounts in for a balance sheet.

Each Specific posting group has a number of different groups, which include but not limited to:

Customer Posting Group: This shows each account’s invoice accounts, receivable accounts, and payment discount accounts related to customers.
Vendor Posting Group: These show the account’s application and invoice accounts, payable accounts, and payment discount accounts related to vendors.
Inventory Posting Group: These separate the type of inventory shown and map them with location codes provided by its inventory posting setup page.

Setting up the inventory posting group

An inventory posting group is meant for a more general assignment, which groups items together so they can be mapped to WIP accounts and inventory accounts. This is primarily used in batch jobs and reports, which can connect G/L accounts to an item group. Setting up an inventory group begins with these steps:

  1. After searching for the term “Inventory Posting Groups” and locating the page, click on “New” to start
  2. Once on the Code field, you can type out a specific and descriptive identifier for the group.
  3. In the Description field, you can create a short description for the posting group.
  4. To save it, all you have to do is close the page.