Wednesday, 3 September 2025

Business Central 2025 Wave 2 Preview is Now Available

 Microsoft has officially released the preview version of Dynamics 365 Business Central 2025 Wave 2, and this is the perfect time for partners, customers, and consultants to start exploring what’s new.

Why the Preview Matters

The preview gives you early access to upcoming features before general availability. This allows you to:

  • Test the new functionality in a sandbox environment.
  • Validate how the changes will affect your extensions, integrations, and business processes.
  • Provide feedback directly to Microsoft, helping them fine-tune the product.
  • Prepare training and documentation ahead of time for a smoother adoption when the release goes live.

How to Get Started

1.      Create a Sandbox Environment – Log in to your Business Central Admin Center and spin up a sandbox using the 2025 Wave 2 Preview build.

2.      Explore New Features – Review what’s new in areas such as productivity improvements, AI/Copilot enhancements, and reporting capabilities.

3.      Share Your Feedback – Report any issues or suggestions through Microsoft’s feedback channels.

https://aka.ms/bcpreviewbug

Why You Should Test Now

Early testing ensures that you’re not caught by surprise when the update becomes generally available. It also gives your team a head start in training and adopting new features.

 


Sunday, 31 August 2025

Resolving Business Central Extension Upload Error (AVS0109)

 Today, while working on a Business Central environment, I encountered an interesting issue while trying to upload an extension (.app file). The extension installation failed with the following error:

Error Message:

Package validation failed due to the following error(s): Error AVS0109: The per-tenant extension (or one of its dependencies) cannot be deployed as it has missing dependencies or the dependencies are conflicting with currently installed apps. Check if these dependencies are installed.


At first glance, the error message wasn't very clear—it looked like a dependency conflict, but there wasn’t any direct information about which dependency was missing or conflicting.

Root Cause

When I googled for Error AVS0109, I came across the official Microsoft Learn documentation: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/avs-diagnostics/diagnostic-avs0109


The key remark there was:

A common reason for this error is that a build already has been published directly from Visual Studio Code in DEV scope.

This matched exactly with my situation. I had previously published the extension from VS Code in Dev scope, and later tried to upload the same app as a PTE.

Solution

The fix was straightforward:

1.      Go to Installed Extensions page in Business Central.

2.      Identify the extension that is published in Dev scope.

3.      Uninstall the Dev scope extension.

4.      Upload and deploy the .app file again.

After uninstalling the Dev scope version, I retried uploading the .app file, and this time the installation succeeded without any issues.



Key Takeaway

If you encounter Error AVS0109 while uploading a Business Central extension, check if the same extension is already installed in Dev scope. If yes, uninstall it first before uploading the packaged app file. This will prevent conflicts and allow smooth deployment.

 



Tuesday, 22 April 2025

Boost String Number Handling in AL with the New IncStr Parameter

You've probably used the IncStr method to increment numbers embedded in string variables, especially when dealing with number series. Traditionally, IncStr was limited to increasing or decreasing the number by 1. For anything beyond that, you'd have to roll up your sleeves and build some custom logic. Not anymore!

🆕 What’s New?

The IncStr method now supports an optional increments parameter, allowing you to change a number inside a string by any integer value, not just 1.

Whether you're jumping ahead in a number series or stepping back, this update simplifies your code and makes it easier to work with strings that contain numbers.


Feature Highlights

  • New overload: IncStr(Text, [Increment: Integer])
  • Flexible: Supports any positive or negative integer.

💡 Use Case Example

Let’s say you have a string:

'Account no. 99 does not balance.'

You want to change 99 to 109. Previously, you'd have to parse and replace the number manually.

Now, you can do it in one line:

ResultAccount := IncStr(Account, 10);

Here’s a full AL code example:

codeunit 50111 MyAccountCodeunit

{

    procedure MyIncStr()

    var

        Account: Text[60];

        ResultAccount: Text[60];

        AText: TextConst ENU = 'Account no. 99 does not balance.';

    begin

        Account := AText;

        ResultAccount := IncStr(Account, 10); // Increases 99 → 109

    end;

}

 


Monday, 7 April 2025

Extending CardPageId on List and ListPart Pages in Business Central

In Microsoft Dynamics 365 Business Central, developers often want to customize the page that opens when a user double-clicks on a record in a list or listpart page. This is controlled by the CardPageId property. Previously, it was not possible to modify this property via pageextension.

Microsoft has enabled CardPageId extensibility in the latest release.


You can now override the CardPageId on list and listpart pages via AL pageextension objects.

  • If the base page defines a CardPageId, you can override it.
  • If multiple extensions modify it, the last applied extension wins (per-tenant extensions override AppSource ones).

Example: Extend Customer List to Use Custom Card Page

Let’s say you’ve created a new Customer Card page named "My Custom Customer Card" and you want the Customer List to open this custom card on double-click.

Here’s how you do it:

pageextension 50100 CustomerListExt extends "Customer List"

{

    CardPageId = "My Custom Customer Card";

}

That’s it!

Now when a user opens the Customer List and double-clicks on any customer, your custom card page opens instead of the standard one.




  • Race conditions: If multiple extensions set the CardPageId, the last loaded extension wins. This typically won't be a problem, but you can control precedence using a per-tenant extension.
  • Applies only to list and listpart pages.

If you attempt to set this property with a Runtime of less than 15 in app.json, you will encounter this error.



Monday, 24 March 2025

Reopen Finished Production Orders in Business Central

In manufacturing, accuracy in production records is crucial for maintaining correct inventory levels and cost calculations. However, mistakes can happen even after a production order is marked as Finished. Missing consumption entries or incorrect item tracking can lead to discrepancies in inventory and financial records. To address such issues, Business Central allows you to reopen finished production orders, enabling necessary corrections and ensuring accurate data.


Reopening a finished production order provides flexibility and control over production processes. However, to maintain data integrity, certain restrictions apply:

  • You can reopen finished production orders only one time.
  • You can reopen finished production orders if they don't have output, and cost WIP is written off to your inventory adjustment account.


How to Reopen a Finished Production Order

Follow these simple steps to reopen a finished production order in Business Central:

1.      Navigate to the Finished Production Orders page.

2.      Select the production order you need to edit.

3.      Click the Reopen action.

4.      A confirmation dialog will appear asking, Do you want to reopen the production order?

5.      Click Yes to proceed.

 

 

A screenshot of a computer

AI-generated content may be incorrect.