New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2: Type Testing and Casting Operators for Interfaces

Microsoft Dynamics 365 Business CentralThis post is part of the New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2 series in which I am taking a look at the new functionality introduced in Microsoft Dynamics 365 Business Central 2024 Wave 2.

The 9th of the new functionality in the Development section is type testing and casting operators for interfaces.

The contractual behavior of interfaces has been a limiting factor with regards to update and future extensibility. Adding casting will greatly increase the usefulness of interfaces in AL. In this version, Microsoft introduce support for type testing and casting interfaces in the AL language. Two new operators, ‘is’ and ‘as’, have been added to facilitate these operations. The ‘is’ keyword checks if an interface is of a specific type, which is useful for ensuring type safety within code. The ‘as’ keyword, on the other hand, attempts to cast an interface to another interface. These operators improve the extensibility and usefulness of interfaces in AL and align with the broader programming practice of ensuring that systems are built with future growth and adaptability in mind, allowing for seamless updates and maintenance.

Enabled for: Admins, makers, marketers, or analysts, automatically
Public Preview: Oct 2024
General Availability: Oct 2024

Feature Details

In this version, Microsoft introduce support for casting between AL interfaces. Given an interface A, you can cast it to the interface B if the underlying object (only codeunit for now) implements B. Two new operators, ‘is’ and ‘as’, are added to facilitate these operations.

The is operator

The is operator allows you to test whether an instance of an interface, or the content of a variant supports a specific interface. Here’s the syntax for using the is keyword:

Example of testing if a given instance of an interface supports a specific interface

You can also use the is operator with variants:

Example of testing if a given variant supports a specific interface

The as operator

The as operator is used for casting an instance of an interface to a specific interface. If the source interface doesn’t implement the target interface, it will throw an error at runtime. Here’s an example:

Example of casting an instance of an interface to a specific interface

Similarly, the as keyword works with variants:

Example of casting a variant to a specific interface

Click to show/hide the New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2 Series Index

New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2
Auto-Apply Templates When You Synchronize Data With Dataverse
Use New Reports And Demo Data for Financial Reporting
Manage Subscription Billing and Revenue and Expense Recognition
Integrate Field Service with Service Management
Archive Service Management Documents
View Item Availability in Field Service Work Orders
Export Posted Sales Invoices to Shopify
Replenish Items for Projects
Reconcile Payment Transactions in Shopify with Invoices
Use Directed Put-Away and Pick Warehouses with Projects
Capture Data from E-Docs with Azure AI Document Intelligence
Add Invoice and Receipt Documents to E-Documents in Bulk
Import, Export Product Info Using Shopify Metafields
Define Shipping Information For Shopify Shipping Fees
Enable Locations In Shopify Refunds
See Improved Usability For Service And Projects
Allow More Than One User To Post Warehouse Entries at a Time
Add An Item As A Shopify Variant
Use Excel Reports For Consolidation And Fixed Assets
Synchronize Product Translations To Shopify
Use Specific Prices And Discounts When Synchronizing Prices In Shopify
Add Extended Text To Project Planning Lines
Use A Default Quantity Of 1 For Accounts On Documents
Suggest Number Series with Copilot
Chat with Copilot and Learn to Use Installed Add-On Apps
Complete Bank Account Reconciliation Faster with Copilot
Create Product Information Faster with Copilot
Summarize Any Record with Copilot
Experience Enhancements to Analysis Assist with Copilot
Start Using Copilot Without Having to Set Things Up
Create Sales Lines Easily with Copilot
Automate Tests for Your Copilot Extensions with the Business Central Test Toolkit
Start Creating Power Automate Flows With Copilot
Raise Awareness Of Copilot Actions On Card, Document, And Listplus Pages
Display Errors And Messages In Copilot Prompt Dialogs
Experience Enhancements To Chat With Copilot
Get Usage Telemetry On Copilot Extensions As An ISV
Start Using Integration with IRS for 1099 Submissions
Start Using E-Documents Framework Localized for Germany
Enable Additional Countries and Regions
Show Features With Demo Dataset For Czechia
Deferral Accounting – Posting The Original Amount As Correction – Czechia
Posting Of Alternative Customer-Vendor Posting Groups – Czechia
Calculate And Post Vat Settlement By Activity Code – Italy
Advance Letters With Reverse Charge – Czechia
Vat Return Feature Now Available – Czechia
Include Employee Transactions In Exchange Rate Adjustment Report – Czechia
Improve Vat Reporting And Adjustments – Czechia
Allocations Functionality In Cash Desks – Czechia
Sales Advance From The Project – Czechia
Enable Use Of Other Currencies – Czechia
Set Up Easier In-Client Performance Profiling with Rules
Use the Ternary Operator when Coding in the AL Language
Pull Extension Source from GitHub when Opening Visual Studio Code from the Web Client
Use the 'This' Keyword for CodeUnit Self Reference
Restore Extensions if Publishing from Visual Studio Code Fails
Use Improved Features for Report Documents
Package Resources in Extensions and Access from AL
Run Code Action for 'With' for File, Project, or Workspace
Type Testing and Casting Operators for Interfaces
Extend Al Interfaces
Extend and Customize Profiles from Other Extensions
Remove Friction When Working With External App Dependencies
Specify And Use Full-Text Search Indexes On Table Fields
Manage Environment Updates More Flexibly
Migrate Record Links and Notes with Cloud Migration Tooling
Manage Per-Tenant Extensions in Admin Center
View App Compatibility with Future Versions in Admin Center
Get Notified About Issues with Job Queue Background Processing
Get List of Manageable Environments for Microsoft Entra Apps
Support IPv6 for Enhanced Security and Scalability
Encrypt Data At-Rest With Customer-Managed Encryption Key
Get External Notifications When Job Queue Entries Fail
Use E-Documents with Power Automate
Use Multiple VAT Numbers for a Customer
Achieve Sustainability Scorecards and Goals
Navigate the Sustainability Manager Role Center with Ease
Add Attachments When You Send Electronic Documents
Record Greenhouse Gas Emissions Using Purchase Invoices
Report Sustainability Entries with Financial Reports
Use New Service Providers in the E-Documents Framework
Purchase Carbon Credits
Enable Internal Carbon Fee Calculation in Sustainability
Track Sustainability Certificates For Items And Vendors
Use Multiple Subcategories For One Sustainability Account
Use Embedded Power Bi Reports Out Of The Box
Do Ad Hoc Analysis On Fixed Assets, Projects, And Services
Use Advanced Settings In The Power Bi Connector
Use Built-In Named Formulas In Excel Layouts
Access Keys with Key Tips In More Languages
Use Drag and Drop On File Upload Dialog to Attach Multiple Files
Resize Columns Even when Personalization isn't Enabled
Change The Data Search Method In Lists

New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2: Run Code Action for ‘With’ for File, Project, or Workspace

Microsoft Dynamics 365 Business CentralThis post is part of the New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2 series in which I am taking a look at the new functionality introduced in Microsoft Dynamics 365 Business Central 2024 Wave 2.

The 8th of the new functionality in the Development section is run code action for ‘with’ for file, project, or workspace.

The code action to convert ‘with’ statements to explicit records has only been only available for individual ‘with’ statements. However, most apps have many, many uses spread across the codebase, leading to a lot of unnecessary manual work to convert code. With this release, the code action to convert ‘with’ usage can now be run on the whole Document, the active Project as well as the complete Workspace level.

Enabled for: Admins, makers, marketers, or analysts, automatically
Public Preview: Oct 2024
General Availability: Oct 2024

Feature Details

Previously, Microsoft added generic support for running code actions on the active document, active project, or the complete workspace. This has been adopted by code actions, which are used for converting uses of ApplicationArea or tooltips. In this release, the code action to convert the usage of with can now be run on the entire document, the active project, as well as the complete workspace level. This makes it much more productive to convert the usage of with statements in existing code to use explicit records.

Click to show/hide the New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2 Series Index

New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2
Auto-Apply Templates When You Synchronize Data With Dataverse
Use New Reports And Demo Data for Financial Reporting
Manage Subscription Billing and Revenue and Expense Recognition
Integrate Field Service with Service Management
Archive Service Management Documents
View Item Availability in Field Service Work Orders
Export Posted Sales Invoices to Shopify
Replenish Items for Projects
Reconcile Payment Transactions in Shopify with Invoices
Use Directed Put-Away and Pick Warehouses with Projects
Capture Data from E-Docs with Azure AI Document Intelligence
Add Invoice and Receipt Documents to E-Documents in Bulk
Import, Export Product Info Using Shopify Metafields
Define Shipping Information For Shopify Shipping Fees
Enable Locations In Shopify Refunds
See Improved Usability For Service And Projects
Allow More Than One User To Post Warehouse Entries at a Time
Add An Item As A Shopify Variant
Use Excel Reports For Consolidation And Fixed Assets
Synchronize Product Translations To Shopify
Use Specific Prices And Discounts When Synchronizing Prices In Shopify
Add Extended Text To Project Planning Lines
Use A Default Quantity Of 1 For Accounts On Documents
Suggest Number Series with Copilot
Chat with Copilot and Learn to Use Installed Add-On Apps
Complete Bank Account Reconciliation Faster with Copilot
Create Product Information Faster with Copilot
Summarize Any Record with Copilot
Experience Enhancements to Analysis Assist with Copilot
Start Using Copilot Without Having to Set Things Up
Create Sales Lines Easily with Copilot
Automate Tests for Your Copilot Extensions with the Business Central Test Toolkit
Start Creating Power Automate Flows With Copilot
Raise Awareness Of Copilot Actions On Card, Document, And Listplus Pages
Display Errors And Messages In Copilot Prompt Dialogs
Experience Enhancements To Chat With Copilot
Get Usage Telemetry On Copilot Extensions As An ISV
Start Using Integration with IRS for 1099 Submissions
Start Using E-Documents Framework Localized for Germany
Enable Additional Countries and Regions
Show Features With Demo Dataset For Czechia
Deferral Accounting – Posting The Original Amount As Correction – Czechia
Posting Of Alternative Customer-Vendor Posting Groups – Czechia
Calculate And Post Vat Settlement By Activity Code – Italy
Advance Letters With Reverse Charge – Czechia
Vat Return Feature Now Available – Czechia
Include Employee Transactions In Exchange Rate Adjustment Report – Czechia
Improve Vat Reporting And Adjustments – Czechia
Allocations Functionality In Cash Desks – Czechia
Sales Advance From The Project – Czechia
Enable Use Of Other Currencies – Czechia
Set Up Easier In-Client Performance Profiling with Rules
Use the Ternary Operator when Coding in the AL Language
Pull Extension Source from GitHub when Opening Visual Studio Code from the Web Client
Use the 'This' Keyword for CodeUnit Self Reference
Restore Extensions if Publishing from Visual Studio Code Fails
Use Improved Features for Report Documents
Package Resources in Extensions and Access from AL
Run Code Action for 'With' for File, Project, or Workspace
Type Testing and Casting Operators for Interfaces
Extend Al Interfaces
Extend and Customize Profiles from Other Extensions
Remove Friction When Working With External App Dependencies
Specify And Use Full-Text Search Indexes On Table Fields
Manage Environment Updates More Flexibly
Migrate Record Links and Notes with Cloud Migration Tooling
Manage Per-Tenant Extensions in Admin Center
View App Compatibility with Future Versions in Admin Center
Get Notified About Issues with Job Queue Background Processing
Get List of Manageable Environments for Microsoft Entra Apps
Support IPv6 for Enhanced Security and Scalability
Encrypt Data At-Rest With Customer-Managed Encryption Key
Get External Notifications When Job Queue Entries Fail
Use E-Documents with Power Automate
Use Multiple VAT Numbers for a Customer
Achieve Sustainability Scorecards and Goals
Navigate the Sustainability Manager Role Center with Ease
Add Attachments When You Send Electronic Documents
Record Greenhouse Gas Emissions Using Purchase Invoices
Report Sustainability Entries with Financial Reports
Use New Service Providers in the E-Documents Framework
Purchase Carbon Credits
Enable Internal Carbon Fee Calculation in Sustainability
Track Sustainability Certificates For Items And Vendors
Use Multiple Subcategories For One Sustainability Account
Use Embedded Power Bi Reports Out Of The Box
Do Ad Hoc Analysis On Fixed Assets, Projects, And Services
Use Advanced Settings In The Power Bi Connector
Use Built-In Named Formulas In Excel Layouts
Access Keys with Key Tips In More Languages
Use Drag and Drop On File Upload Dialog to Attach Multiple Files
Resize Columns Even when Personalization isn't Enabled
Change The Data Search Method In Lists

New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2: Package Resources in Extensions and Access from AL

Microsoft Dynamics 365 Business CentralThis post is part of the New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2 series in which I am taking a look at the new functionality introduced in Microsoft Dynamics 365 Business Central 2024 Wave 2.

The 7th of the new functionality in the Development section is package resources in extensions and access from AL.

Often features require some data, for example to initialize and set up. Until now, it has only been possible to add such data and consume from AL through the use of labels or code. In this release, Microsoft are adding the ability to include resources in extensions and access these from AL.

Enabled for: Admins, makers, marketers, or analysts, automatically
Public Preview: Oct 2024
General Availability: Oct 2024

Feature Details

Developers will be able to package resources in extensions and access the content of these resources from within AL code. This can be used to ship data for setup and initialization features (for example, for RapidStart packages, demo data, templates, and more), thereby avoiding having to use labels or codeunits for this purpose.

Click to show/hide the New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2 Series Index

New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2
Auto-Apply Templates When You Synchronize Data With Dataverse
Use New Reports And Demo Data for Financial Reporting
Manage Subscription Billing and Revenue and Expense Recognition
Integrate Field Service with Service Management
Archive Service Management Documents
View Item Availability in Field Service Work Orders
Export Posted Sales Invoices to Shopify
Replenish Items for Projects
Reconcile Payment Transactions in Shopify with Invoices
Use Directed Put-Away and Pick Warehouses with Projects
Capture Data from E-Docs with Azure AI Document Intelligence
Add Invoice and Receipt Documents to E-Documents in Bulk
Import, Export Product Info Using Shopify Metafields
Define Shipping Information For Shopify Shipping Fees
Enable Locations In Shopify Refunds
See Improved Usability For Service And Projects
Allow More Than One User To Post Warehouse Entries at a Time
Add An Item As A Shopify Variant
Use Excel Reports For Consolidation And Fixed Assets
Synchronize Product Translations To Shopify
Use Specific Prices And Discounts When Synchronizing Prices In Shopify
Add Extended Text To Project Planning Lines
Use A Default Quantity Of 1 For Accounts On Documents
Suggest Number Series with Copilot
Chat with Copilot and Learn to Use Installed Add-On Apps
Complete Bank Account Reconciliation Faster with Copilot
Create Product Information Faster with Copilot
Summarize Any Record with Copilot
Experience Enhancements to Analysis Assist with Copilot
Start Using Copilot Without Having to Set Things Up
Create Sales Lines Easily with Copilot
Automate Tests for Your Copilot Extensions with the Business Central Test Toolkit
Start Creating Power Automate Flows With Copilot
Raise Awareness Of Copilot Actions On Card, Document, And Listplus Pages
Display Errors And Messages In Copilot Prompt Dialogs
Experience Enhancements To Chat With Copilot
Get Usage Telemetry On Copilot Extensions As An ISV
Start Using Integration with IRS for 1099 Submissions
Start Using E-Documents Framework Localized for Germany
Enable Additional Countries and Regions
Show Features With Demo Dataset For Czechia
Deferral Accounting – Posting The Original Amount As Correction – Czechia
Posting Of Alternative Customer-Vendor Posting Groups – Czechia
Calculate And Post Vat Settlement By Activity Code – Italy
Advance Letters With Reverse Charge – Czechia
Vat Return Feature Now Available – Czechia
Include Employee Transactions In Exchange Rate Adjustment Report – Czechia
Improve Vat Reporting And Adjustments – Czechia
Allocations Functionality In Cash Desks – Czechia
Sales Advance From The Project – Czechia
Enable Use Of Other Currencies – Czechia
Set Up Easier In-Client Performance Profiling with Rules
Use the Ternary Operator when Coding in the AL Language
Pull Extension Source from GitHub when Opening Visual Studio Code from the Web Client
Use the 'This' Keyword for CodeUnit Self Reference
Restore Extensions if Publishing from Visual Studio Code Fails
Use Improved Features for Report Documents
Package Resources in Extensions and Access from AL
Run Code Action for 'With' for File, Project, or Workspace
Type Testing and Casting Operators for Interfaces
Extend Al Interfaces
Extend and Customize Profiles from Other Extensions
Remove Friction When Working With External App Dependencies
Specify And Use Full-Text Search Indexes On Table Fields
Manage Environment Updates More Flexibly
Migrate Record Links and Notes with Cloud Migration Tooling
Manage Per-Tenant Extensions in Admin Center
View App Compatibility with Future Versions in Admin Center
Get Notified About Issues with Job Queue Background Processing
Get List of Manageable Environments for Microsoft Entra Apps
Support IPv6 for Enhanced Security and Scalability
Encrypt Data At-Rest With Customer-Managed Encryption Key
Get External Notifications When Job Queue Entries Fail
Use E-Documents with Power Automate
Use Multiple VAT Numbers for a Customer
Achieve Sustainability Scorecards and Goals
Navigate the Sustainability Manager Role Center with Ease
Add Attachments When You Send Electronic Documents
Record Greenhouse Gas Emissions Using Purchase Invoices
Report Sustainability Entries with Financial Reports
Use New Service Providers in the E-Documents Framework
Purchase Carbon Credits
Enable Internal Carbon Fee Calculation in Sustainability
Track Sustainability Certificates For Items And Vendors
Use Multiple Subcategories For One Sustainability Account
Use Embedded Power Bi Reports Out Of The Box
Do Ad Hoc Analysis On Fixed Assets, Projects, And Services
Use Advanced Settings In The Power Bi Connector
Use Built-In Named Formulas In Excel Layouts
Access Keys with Key Tips In More Languages
Use Drag and Drop On File Upload Dialog to Attach Multiple Files
Resize Columns Even when Personalization isn't Enabled
Change The Data Search Method In Lists