Microsoft Dynamics 365 Business Central: Decoding Dictionaries: Unlocking the Power of Key-Value Pairs

In the AL language for Microsoft Dynamics 365 Business Central, the Dictionary data type represents an unordered collection of keys and values optimized for fast lookup of values. In a Dictionary, each key is unique and is used to access its corresponding value. The dictionary data type allows you to store key-value pairs where there is a logical association between the pairs or when you need fast data retrieval based on a custom key. Unlike lists indexed by a range of numbers, dictionaries are indexed by keys.

It is important to note that every key in a Dictionary must be unique. A key cannot be null, but a value can be null when the value type is a reference type.

To create a new Dictionary that contains the same values as the original Dictionary, you perform a shallow copy by iterating through the keys of the original Dictionary and adding them to the new Dictionary.

The Dictionary data type does not support holding instantiated records. For this purpose, a developer should use a temporary table instead.

Add

Adds the specified key and value to the dictionary

 procedure AddDictionaryEntry(SalesDictionary: Dictionary of [Text, Decimal])
    begin
        SalesDictionary.Add('10000', 1234.56);
        SalesDictionary.Add('20000', 9564.22);
        SalesDictionary.Add('30000', 789.12);
        SalesDictionary.Add('40000', 456.78);
    end;

ContainsKey

Determines whether the Dictionary contains the specified key.

    procedure ContainsKey(SalesDictionary: Dictionary of [Text, Decimal])
    var
        ContainsKey: Boolean;

    begin
        ContainsKey := SalesDictionary.ContainsKey('10000');
    end;

Count

Gets the number of key/value pairs contained in the Dictionary.

    procedure KeyCount(SalesDictionary: Dictionary of [Text, Decimal]): Integer
    var
        Count: Integer;

    begin
        Count := SalesDictionary.Count();
        exit(Count);
    end;

Get

Gets the value associated with the specified key.

    procedure GetValue(SalesDictionary: Dictionary of [Text, Decimal]; dictkey: Text): Decimal
    var
        dictvalue: Decimal;
    begin
        // Get will error if the key does not exist
        // You can use contains to check if the key exists
        if SalesDictionary.ContainsKey(dictkey) then
            SalesDictionary.Get(dictkey, dictvalue);

        dictvalue := SalesDictionary.Get(dictkey);

        exit(dictvalue);
    end;

Keys / Values

Gets a collection containing the keys / Values in the Dictionary.

    procedure GetKeysValues(SalesDictionary: Dictionary of [Text, Decimal]; KeysList: List of [Text]; ValuesList: List of [Decimal])
    begin
        KeysList := SalesDictionary.Keys();
        ValuesList := SalesDictionary.Values();
    end;

Remove

Removes the value with the specified key from the Dictionary.

    procedure RemoveKey(SalesDictionary: Dictionary of [Text, Decimal])
    begin
        SalesDictionary.Remove('40000');
    end;

The Dictionary data type is optimized for lookups, allowing for efficient storage and retrieval of values without the need to query the database repeatedly.

Overall, the Dictionary data type in Business Central is not just a powerful tool but a crucial one for efficiently storing and retrieving key-value pairs. It is an asset for developers, underscoring the significance of their work with data structures in AL code.

Read more about the Dictionary Data Type here.

Note: The code and information discussed in this article are for informational and demonstration purposes only. This content was created referencing Microsoft Dynamics 365 Business Central 2024 Wave 1 online.

Permanent link to this article: https://www.dvlprlife.com/2024/07/microsoft-dynamics-365-business-central-decoding-dictionaries-unlocking-the-power-of-key-value-pairs/

Real Things I’m asked: Microsoft Dynamics 365 Business Central Personalize Pages for a Group of Users

Q: How do I change the page layouts for users without having to log in and personalize the pages for each user?

A: A Profile in Microsoft Dynamics 365 Business Central is a powerful tool that empowers administrators to define and manage what different types of users can access within the system. Profiles enable administrators to personalize users’ pages, actions, and reports based on their roles in the company, providing them with an individualized experience. These personalizations only apply to the specified Profile and users assigned to those profiles. They can include changes to page layout and actions but not code execution.

Microsoft Dynamics 365 Business Central Personalizations are designed to be user-friendly, allowing administrators to easily adjust a user’s workspace to suit their profile preferences. Pages can be changed to display only the information needed, where needed. Personalization affects only assigned users’ workspace; it doesn’t change how others work. You can personalize all pages, including the role center, card, and list pages.

Administrators can create new profiles or fine-tune page personalizations using the client in Business Central, eliminating the need to develop extensions.

To customize a Profile in Microsoft Dynamics 365 Business Central:

  1. Search for Profiles using the Search feature in Business Central.
  2. Select the Profiles (Roles) List page from the Pages and Tasks section of the results page.
  3. Select the Profile that you would like to personalize.
  4. Select the “Customize Pages” menu action.
  5. Once selected, a new browser window (or tab) will open in design mode, allowing you to personalize the Profile. Click the “More” action on the top menu to display more options, such as adding fields.
  6. Navigate to the page(s) you’d like to personalize and begin personalizing the view by adding, moving, or adjusting some basic properties by highlighting the field and clicking on the red triangle that appears in the field.

  7. To add a field, find the field in the Add Field to Page pane, highlight the field, and select Add from the “triangle menu options.
  8. After personalizing the desired pages, click “Done” on the menu bar. Note: You do not need to click Done after each page; you can personalize all the desired pages and select Done.

  9. You can remove, repair, or view the page personalizations for a Profile by selecting the “Manage customized pages” menu action from the Related menu option.

Read more about Profiles here and User Personalization here.

Note: The code and information discussed in this article are for informational and demonstration purposes only. This content was created referencing Microsoft Dynamics 365 Business Central 2024 Wave 1 online.

Permanent link to this article: https://www.dvlprlife.com/2024/07/real-things-im-asked-microsoft-dynamics-365-business-central-personalize-pages-for-a-group-of-users/

July 2024 Cumulative Updates for Dynamics 365 Business Central

The July updates for Microsoft Dynamics 365 Business Central are now available.

Before applying the updates, you should confirm that your implementation is ready for the upgrade and ensure compatibility with your modifications. Work with a Microsoft Partner to determine if you are ready and what is needed for you to apply the update.

Please note that Online customers will automatically be upgraded to version 24.3 over the coming days/weeks and should receive an email notification when upgraded.

Direct links to the cumulative updates are listed here:

Dynamics 365 Business Central On-Premises 2024 Release Wave 1 – 24.3 (July 2024)

Dynamics 365 Business Central On-Premises 2023 Release Wave 2 – 23.9 (July 2024)

Dynamics 365 Business Central On-Premises 2023 Release Wave 1 Updates – 22.15 (July 2024)

Dynamics 365 Business Central On-Premises 2022 Release Wave 2 Updates – Update 21.18 (April 2024)

Dynamics 365 Business Central On-Premises 2022 Release Wave 1 Updates – Update 20.18 (October 2023)

Dynamics 365 Business Central On-Premises 2021 Release Wave 2 Updates – Update 19.18 (April 2023)

Dynamics 365 Business Central On-Premises 2021 Release Wave 1 Updates – Update 18.18 (October 2022)

Dynamics 365 Business Central On-Premises 2020 Release Wave 2 Updates – Update 17.17 (April 2022)

Dynamics 365 Business Central On-Premises 2020 Release Wave 1 Updates – Update 16.19 (January 2022)

Dynamics 365 Business Central On-Premises 2019 Release Wave 2 Updates – Update 15.17 (April 2021)

Dynamics 365 Business Central On-Premises Spring 2019 Updates – Update 52 (October 2023)

Dynamics 365 Business Central On-Premises October’18 Updates – Update 18 (April 2020)

Permanent link to this article: https://www.dvlprlife.com/2024/07/july-2024-cumulative-updates-for-dynamics-365-business-central/

Microsoft Dynamics 365 Business Central: Navigating Lists

In the AL language for Microsoft Dynamics 365 Business Central, a List data type is a strongly typed list of ordered objects accessed by index, starting at 1. Lists are a great alternative to arrays. Unlike arrays, lists are unbounded, which means their size doesn’t need to be declared upon creation and can grow dynamically with unlimited capacity.

Lists can only store simple data types such as integers, text, and code. However, lists can be stored within a list, creating nested lists. Lists preserve the sequence in which the elements are added by adding each new element to the end of the list. One important note is that Lists are reference types, which means they are always passed by reference, regardless of whether the parameter is specified as a value or reference (var). If you need to manipulate a copy of the list, you must do a deep copy. Lists are great for holding data in cases where temporary tables are often used. However, lists do not support holding instantiated records, so temporary tables should still be used.

Working with lists is relatively straightforward, and the list data type provides many built-in methods for managing and manipulating data efficiently within the list.

Add Method /AddRange Method

Adds a value to the end of the List.
Adds multiple  elements to the end of the list.

    procedure AddToList(list: List of [Text])
    begin
        list.Add('Hello');
        list.Add('World');
        list.Add('!');

        list.AddRange('This', 'is', 'a', 'list', 'of', 'text', 'values');
    end;

Reverse Method

Reverses the order of the elements in the List. After items are added to the list, their order can be reversed.

    procedure ReverseList(list: List of [Text])
    begin
        List.Reverse();
    end;

Get Method

Gets the element at the specified index and will raise an error if the index is outside the valid list range.

    procedure GetElement(list: List of [Text])
    var
        i: Integer;
        element: Text;
    begin
        for i := 1 to list.Count() do begin
            // Two Get Method Options
            element := list.Get(i);
            list.Get(i, element);
        end;
    end;

Remove Method/RemoveAt

Removes the first occurrence of a specified element value from the List.
Removes the element at the specified index of the List.

   procedure RemoveElement(list: List of [Text])
    var
        i: Integer;
        element: Text;
    begin
        list.Remove('Hello');

        list.RemoveAt(1);

    end;

Nested Lists

Nested lists are lists that contain other lists as their elements. You can think of it as one or more lists within a list. This structure allows you to create multi-dimensional data structures, making it easier to represent complex data hierarchies. (with a few other methods for demonstration)

    procedure NestedListPlus()
    var
        list: List of [List of [Text]];
        innerList: List of [Text];
        i: Integer;
    begin
        innerList.Add('Hello');
        innerList.Add('World');
        list.Add(innerList);
        list.Get(1).Add('!');

        Clear(innerList);
        list.Add(innerList);
        list.Get(2).Add('Inner');
        innerList.Add('List');

        if list.Get(1).Contains('Hello') then
            i := list.Get(1).IndexOf('Hello');
    end;

Overall, the List data type is a powerful tool that streamlines data storage, retrieval, and manipulation in Business Central. By harnessing the power of Lists, developers can significantly enhance code readability and efficiency, making it a valuable resource for specific tasks and scenarios and ultimately boosting productivity. 

Read more about the List data type >>here<<.

Note: The code and information discussed in this article are for informational and demonstration purposes only. This content was created referencing Microsoft Dynamics 365 Business Central 2024 Wave 1 online.

Permanent link to this article: https://www.dvlprlife.com/2024/07/microsoft-dynamics-365-business-central-navigating-lists/

Dynamics 365 Business Central 2024 Wave 1 – Assign Salesperson to Customer Ship-to Addresses

With each update of Dynamics 365 Business Central, Microsoft enhances what is often referred to as the base application and the development environment. Dynamics 365 Business Central 2024 Wave 1 has several exciting Application features, one of which is Assign Salesperson to Customer Ship-to Addresses.

Imagine a commercial company with offices in different locations and addresses (e.g., branches, offices, warehouses). While there may be a central office for accounting and billing, products may need to be shipped to various locations. In this case, Business Central supports multiple ship-to addresses that users can select in the order processing cycle.
In some cases, the locations may fall into separate salesperson territories. Before Business Central 2024 Wave 1, the salesperson code only appeared on the primary customer. If there was a need for separate salespeople to service different locations, it required setting up multiple related customers or a modification. Now, there is an option to indicate a different salesperson on each Ship-to Address.

Note: The Salesperson Code on the Ship-to Address is not visible by default. To specify the salesperson on the Ship-to Address, the field must be made visible through user or role personalization.

To enter a Salesperson Code on a Ship-to Address:

  1. Click on Customer Action from the customer card and then click the Ship-to Addresses menu.
  2. Create a New or Select an existing Ship-to Address
  3. Enter or Select the desired Salesperson Code

When the Ship-to Address is chosen during the order entry process, the document’s Salesperson code is also updated if specified on the Ship-to Address.

The Assign Salesperson to Customer Ship-to Addresses feature introduced in Business Central with 2024 Wave 1 is special because it is a contribution I made to the base application. You can listen about it here and read more about it here.

Read more about the feature Assign salesperson to customer ship-to addresses here.

Note: The code and information discussed in this article are for informational and demonstration purposes only. This content was created referencing Microsoft Dynamics 365 Business Central 2024 Wave 1 online.

Permanent link to this article: https://www.dvlprlife.com/2024/06/dynamics-365-business-central-2024-wave-1-assign-salesperson-to-customer-ship-to-addresses/

Dynamics 365 Business Central 2024 Wave 1 – In-client Page Scripting Tool

With each update of Dynamics 365 Business Central, Microsoft enhances what is often referred to as the base application and the development environment. Dynamics 365 Business Central 2024 Wave 1 has several exciting Application features, one of which is the Use of an in-client page scripting tool for acceptance testing.

Business Central 2024 Wave 1 introduces a standout feature- the In-client Page Scripting Tool – my favorite feature to date. This versatile gem is not just for user acceptance testing but a potential game-changer in various scenarios, offering unique benefits that can significantly enhance your experience.

The in-client page scripting tool, designed with utmost user-friendliness, empowers customers and consultants to record and replay user acceptance tests effortlessly. This simplicity results in higher test coverage, reduces costs, and adds consistency when testing user scenarios. The Business Central web client lets you easily record your actions, such as opening pages or entering data. Once recorded, you can save and share the script for future playback.

To access the In-client page scripting tool, open the Settings menu and select the Page Scripting Action. This will open the Page Scripting dialog, where you can start a new recording or open a previously recorded script. It’s that easy!

Click the Recording action from the Scripting page menu to start a recording. Once the recording is started, perform the actions that you would like to script and watch as the page scripting tool “records” the sequence of steps.

After completing the desired action sequence, click the Stop action on the Scripting page menu.

The Page Scripting Tool now has a sequence of steps to “Play Back” and repeat. The script is executed by clicking the Play action on the menu.

When playing back a script for testing, the script will execute the sequence exactly as recorded, which may be sufficient in some cases. Still, there may be other scenarios where you would like to use different values, such as a quantity on a Sales Order line. A valid test would consist of repeatedly entering a different quantity value for each interaction. Fortunately, the page scripting tool supports functions, allowing you to control input values.

To enter a different quantity, select the Properties action from the context menu on the input step to open the Properties editor. You can enter a constant value or a set of formulas in the properties editor. The RandBetween function is one option for inputting a random number between two values. To script the input of a random number between 2 and 8, enter RandBetween(2,8) in the properties editor.

During recording, you can manually insert special steps by right-clicking a page control, like a field, and selecting an appropriate option.

You can insert validation steps to check the outcome when playing back the recording. This inserts a validation step with the current value. To change the value, go to the validate step in the Page Scripting step list.
Another option during the recording is to make some steps conditional.
To insert a branch of conditional steps, right-click a page control, select Add conditional steps when, and then select an option.
After the conditional step is inserted, you can add more steps to perform if the condition is met.
Select End scope in the Page Scripting steps list to end the condition branch.

The In-client Page Scripting Tool is my favorite feature introduced in Business Central with 2024 Wave 1. Based on what I see in this “first “release,” I can”only imagine how it will mature with each release.

Read more about the feature Use in-client page scripting tool for acceptance testing here.

Note: The code and information discussed in this article are for informational and demonstration purposes only. This content was created referencing Microsoft Dynamics 365 Business Central 2024 Wave 1 online.

Permanent link to this article: https://www.dvlprlife.com/2024/06/dynamics-365-business-central-2024-wave-1-in-client-page-scripting-tool/

June 2024 Cumulative Updates for Dynamics 365 Business Central

The June updates for Microsoft Dynamics 365 Business Central are now available.

Before applying the updates, you should confirm that your implementation is ready for the upgrade and ensure compatibility with your modifications. Work with a Microsoft Partner to determine if you are ready and what is needed for you to apply the update.

Please note that Online customers will automatically be upgraded to version 24.2 over the coming days/weeks and should receive an email notification when upgraded.

Direct links to the cumulative updates are listed here:

Dynamics 365 Business Central On-Premises 2024 Release Wave 1 – 24.2 (June 2024)

Dynamics 365 Business Central On-Premises 2023 Release Wave 2 – 23.8 (June 2024)

Dynamics 365 Business Central On-Premises 2023 Release Wave 1 Updates – 22.14 (June 2024)

Dynamics 365 Business Central On-Premises 2022 Release Wave 2 Updates – Update 21.18 (April 2024)

Dynamics 365 Business Central On-Premises 2022 Release Wave 1 Updates – Update 20.18 (October 2023)

Dynamics 365 Business Central On-Premises 2021 Release Wave 2 Updates – Update 19.18 (April 2023)

Dynamics 365 Business Central On-Premises 2021 Release Wave 1 Updates – Update 18.18 (October 2022)

Dynamics 365 Business Central On-Premises 2020 Release Wave 2 Updates – Update 17.17 (April 2022)

Dynamics 365 Business Central On-Premises 2020 Release Wave 1 Updates – Update 16.19 (January 2022)

Dynamics 365 Business Central On-Premises 2019 Release Wave 2 Updates – Update 15.17 (April 2021)

Dynamics 365 Business Central On-Premises Spring 2019 Updates – Update 52 (October 2023)

Dynamics 365 Business Central On-Premises October’18 Updates – Update 18 (April 2020)

Permanent link to this article: https://www.dvlprlife.com/2024/06/june-2024-cumulative-updates-for-dynamics-365-business-central/

Microsoft Dynamics 365 Business Central: Update your AL code to the new No. Series Module

In the recent 2024 Release Wave 1 update for Microsoft Dynamics 365 Business Central, Microsoft introduced the Business Foundation layer. This new foundation layer continues their ongoing effort to modularize and enhance the software architecture. They are breaking down the monolithic structure into smaller, more coherent, and related modules, which improves the system’s maintainability and scalability.

With the introduction of the Business Foundation layer, the Business Central architecture now operates on three distinct layers, each with its unique role and contribution to the system’s functionality.

The Business Foundation is a collection of standard ERP functionalities for various domains within the application. While not specific to any functional area, these functionalities are essential for the application’s overall operation. I relate these to “common libraries.”

The System Application in Dynamics 365 Business Central contains modules that interact with the platform and online ecosystem to support the business logic in the Base Application. I simplify this in my brain by labeling it as APIs and Azure communication.

The Base Application in Dynamics 365 Business Central refers to the core application, the foundation for the ERP software’s functional areas.

The first module added to the Business Foundation Layer is the No. Series Module. The existing NoSeriesManagement pattern has been around for as long as I can remember. To ensure compatibility, any existing code must be updated with the pattern’s update to the new module.

The existing NoSeriesManagement logic was marked obsolete in Business Central 2024 Wave 1, so there is still time to update your existing code. Here are a few examples of how the code changes to use the new pattern.

The first change, as noted, is that good old codeunit 396 NoSeriesManagement is going away. The new codeunit 310 “No. Series” manages number series.

Here are a few examples of coding the change:

Old Code

trigger OnInsert()
begin
    if ("No." = '') then begin
        "No. Series":= Rec.GetNoSeriesCode;
        NoSeriesManagement.InitSeries(NoSeriesCode , xRec."No. Series", 0D, "No.", "No. Series");	
    end;
end;

New Code

trigger OnInsert()
begin
    if ("No." = '') then begin	
        "No. Series" := Rec.GetNoSeriesCode;
        if NoSeries.AreRelated("No. Series", xRec."No. Series") then
            "No. Series" := xRec."No. Series";
        "No." := NoSeries.GetNextNo("No. Series", WorkDate());
    end;
end;

Old Code

procedure AssistEdit(OldCust: Record Customer): Boolean
var
    Cust: Record Customer;
begin
    with Cust do begin
        Cust := Rec;
        SalesSetup.Get();
        SalesSetup.TestField("Customer Nos.");
        if NoSeriesMgt.SelectSeries(SalesSetup."Customer Nos.", OldCust."No. Series", "No. Series") then begin
            NoSeriesMgt.SetSeries("No.");
            Rec := Cust;
            OnAssistEditOnBeforeExit(Cust);
            exit(true);
        end;
    end;
end;

New Code

procedure AssistEdit(OldCust: Record Customer): Boolean
    var
        Cust: Record Customer;
    begin
        Cust := Rec;
        SalesSetup.Get();
        SalesSetup.TestField("Customer Nos.");
        if NoSeries.LookupRelatedNoSeries(SalesSetup."Customer Nos.", OldCust."No. Series", Cust."No. Series") then begin
            Cust."No." := NoSeries.GetNextNo(Cust."No. Series");
            Rec := Cust;
            OnAssistEditOnBeforeExit(Cust);
            exit(true);
        end;
    end;

OldCode

procedure NewDocumentNo()
var
    [SecurityFiltering(SecurityFilter::Filtered)]
    GenJournalLine: Record "Gen. Journal Line";
    [SecurityFiltering(SecurityFilter::Filtered)]
    GenJnlBatch: Record "Gen. Journal Batch";
    LastDocNo: Code[20];
begin
    if Count = 0 then
        exit;
    GenJnlBatch.Get("Journal Template Name", CurrentJnlBatchName);
    GenJournalLine.Reset();
    GenJournalLine.SetCurrentKey("Document No.");
    GenJournalLine.SetRange("Journal Template Name", "Journal Template Name");
    GenJournalLine.SetRange("Journal Batch Name", "Journal Batch Name");
    if GenJournalLine.FindLast() then begin
        LastDocNo := GenJournalLine."Document No.";
        IncrementDocumentNo(GenJnlBatch, LastDocNo);
    end else
        LastDocNo := NoSeriesMgt.TryGetNextNo(GenJnlBatch."No. Series", "Posting Date");

    CurrentDocNo := LastDocNo;
    SetDocumentNumberFilter(CurrentDocNo);
end;

New Code

procedure NewDocumentNo()
var
    [SecurityFiltering(SecurityFilter::Filtered)]
    GenJournalLine: Record "Gen. Journal Line";
    [SecurityFiltering(SecurityFilter::Filtered)]
    GenJnlBatch: Record "Gen. Journal Batch";
    NoSeriesBatch: Codeunit "No. Series - Batch";
    LastDocNo: Code[20];
begin
    if Rec.Count = 0 then
        exit;
    GenJnlBatch.Get(Rec."Journal Template Name", CurrentJnlBatchName);
    GenJournalLine.Reset();
    GenJournalLine.SetCurrentKey("Document No.");
    GenJournalLine.SetRange("Journal Template Name", Rec."Journal Template Name");
    GenJournalLine.SetRange("Journal Batch Name", Rec."Journal Batch Name");
    if GenJournalLine.FindLast() then begin
        LastDocNo := GenJournalLine."Document No.";
        LastDocNo := NoSeriesBatch.SimulateGetNextNo(GenJnlBatch."No. Series", Rec."Posting Date", LastDocNo);
    end else
        LastDocNo := NoSeriesBatch.PeekNextNo(GenJnlBatch."No. Series", Rec."Posting Date");

    CurrentDocNo := LastDocNo;
    SetDocumentNumberFilter(CurrentDocNo);
end;

Permanent link to this article: https://www.dvlprlife.com/2024/05/microsoft-dynamics-365-business-central-update-your-al-code-to-the-new-no-series-module/

May 2024 Cumulative Updates for Dynamics 365 Business Central

The May updates for Microsoft Dynamics 365 Business Central are now available.

Before applying the updates, you should confirm that your implementation is ready for the upgrade and ensure compatibility with your modifications. Work with a Microsoft Partner to determine if you are ready and what is needed for you to apply the update.

Please note that Online customers will automatically be upgraded to version 24.1 over the coming days/weeks and should receive an email notification when upgraded.

Direct links to the cumulative updates are listed here:

Dynamics 365 Business Central On-Premises 2024 Release Wave 1 – 24.1 (May 2024)

Dynamics 365 Business Central On-Premises 2023 Release Wave 2 – 23.7 (May 2024)

Dynamics 365 Business Central On-Premises 2023 Release Wave 1 Updates – 22.13 (May 2024)

Dynamics 365 Business Central On-Premises 2022 Release Wave 2 Updates – Update 21.18 (April 2024)

Dynamics 365 Business Central On-Premises 2022 Release Wave 1 Updates – Update 20.18 (October 2023)

Dynamics 365 Business Central On-Premises 2021 Release Wave 2 Updates – Update 19.18 (April 2023)

Dynamics 365 Business Central On-Premises 2021 Release Wave 1 Updates – Update 18.18 (October 2022)

Dynamics 365 Business Central On-Premises 2020 Release Wave 2 Updates – Update 17.17 (April 2022)

Dynamics 365 Business Central On-Premises 2020 Release Wave 1 Updates – Update 16.19 (January 2022)

Dynamics 365 Business Central On-Premises 2019 Release Wave 2 Updates – Update 15.17 (April 2021)

Dynamics 365 Business Central On-Premises Spring 2019 Updates – Update 52 (October 2023)

Dynamics 365 Business Central On-Premises October’18 Updates – Update 18 (April 2020)

Permanent link to this article: https://www.dvlprlife.com/2024/05/may-2024-cumulative-updates-for-dynamics-365-business-central/

April 2024 Cumulative Updates for Dynamics 365 Business Central

The April updates for Microsoft Dynamics 365 Business Central are now available.

This month features the release of Business Central 2024 Wave 1

Before applying the updates, you should confirm that your implementation is ready for the upgrade and ensure compatibility with your modifications. Work with a Microsoft Partner to determine if you are ready and what is needed for you to apply the update.

Please note that Online customers will automatically be upgraded to version 24.0 over the coming days/weeks and should receive an email notification when upgraded.

Direct links to the cumulative updates are listed here:

Microsoft Dynamics 365 Business Central 2024 Release Wave 1 (April 2024)

Dynamics 365 Business Central On-Premises 2023 Release Wave 2 – 23.6 (April 2024)

Dynamics 365 Business Central On-Premises 2023 Release Wave 1 Updates – 22.12 (April 2024)

Dynamics 365 Business Central On-Premises 2022 Release Wave 2 Updates – Update 21.18 (April 2024)

Dynamics 365 Business Central On-Premises 2022 Release Wave 1 Updates – Update 20.18 (October 2023)

Dynamics 365 Business Central On-Premises 2021 Release Wave 2 Updates – Update 19.18 (April 2023)

Dynamics 365 Business Central On-Premises 2021 Release Wave 1 Updates – Update 18.18 (October 2022)

Dynamics 365 Business Central On-Premises 2020 Release Wave 2 Updates – Update 17.17 (April 2022)

Dynamics 365 Business Central On-Premises 2020 Release Wave 1 Updates – Update 16.19 (January 2022)

Dynamics 365 Business Central On-Premises 2019 Release Wave 2 Updates – Update 15.17 (April 2021)

Dynamics 365 Business Central On-Premises Spring 2019 Updates – Update 52 (October 2023)

Dynamics 365 Business Central On-Premises October’18 Updates – Update 18 (April 2020)

Permanent link to this article: https://www.dvlprlife.com/2024/04/april-2024-cumulative-updates-for-dynamics-365-business-central/