Docs: What’s new in BC 23 for developers

Business Central 23 (aka Business Central 2023 release wave 2) has been released on the 2nd of October 2023, and the docs were updated even a few days earlier. There are – as usual – multiple resources for AL developers:

This blog post will summarize what technical docs content has been added specifically for BC 23 / in AL 12.0.

  1. Deprecated features in BC 23
    1. Application
    2. Platform
  2. Feature Management
    1. New and optional features
    2. Mandatory features
  3. Namespaces
  4. New data model for table extensions
  5. New AL properties
  6. SecretText data type
  7. View and analyze query data
  8. Rich Text Editor
  9. Other new AL methods
  10. AddAction now supports tooltips
  11. Other content for developers
  12. Rules for compiler or code analyzer
    1. New AL diagnostics (ALxxxx)
    2. AL Warnings turned into errors
    3. New AppSourceCop (ASxxxx) rules
    4. New CodeCop (AAxxxx) rules
    5. New UICop (AWxxxx) rules

Deprecated features in BC 23

Application

As per Deprecated application features
The following features are marked as obsolete:pending:

Platform

As per Deprecated platform features

Feature Management

Overview page: Optional features that are now mandatory

New and optional features

New features (turned off by default):

Mandatory features

These features are now mandatory and can no longer be disabled:

Namespaces

Namespaces in AL
Structuring namespaces in AL: This script allows you to specify namespaces for multiple objects at a time, using your folder structure.

New data model for table extensions

In this new model, data from all table extensions on a table are stored in the same companion table. This means that there will be at most one SQL join involved when doing data operations on the table (as seen from AL). Partial records can still eliminate the join to the single companion table in Business Central 2023 release wave 2, if all loaded fields reside in the base table.

New AL properties

SecretText data type

As already stated in the AL Language changelog, runtime 12.0 introduces the new SecretText data type. The docs talk about it in detail here: Protecting sensitive values with the SecretText data type, and the data type methods are explained here.

However, to support the new data type, quite a lot of methods or method overloads for other data types have been added as well:

View and analyze query data

You can view and analyze query data directly from the Business Central client by running the query, and then switching to in the analysis mode. Related AL property changes:

Rich Text Editor

The rich text control enables rich multimedia content editing. With that you get a multiline textbox with a rich toolbar, corresponding keyboard shortcuts, and the ability to author or paste in pictures, tables, and formatted text.

Related AL property change:

  • ExtendedDatatype for table or page fields: new property values Barcode and RichContent.

Other new AL methods

AddAction now supports tooltips

Description = The text that appears as the tooltip of the action in the error UI:

Other content for developers

Rules for compiler or code analyzer

Lots of rules have been added. In order to keep this blog post compact, not all rules could be directly linked to the docs.

New AL diagnostics (ALxxxx)

This blog post would be too long to include them all, even with screenshots. Find a few of them mentioned on Twitter.

AL Warnings turned into errors

Source: Warnings Turning into Errors Overview

  • AL0731 – The name ‘{0}’ does not exist in the current context.
  • AL0733 – Access modifier ‘{0}’ is not allowed for member ‘{1}’ in the context of object type ‘{2}’.
  • AL0743 – The property ‘{0}’ is not valid for the cue action ‘{1}’.
  • AL0745 – The property ‘{0}’ is not valid for action ‘{1}’ defined in a report request page.
  • AL1078 – Key vault URL is not a valid Azure key vault URL. A valid key vault URL must use HTTPS and point to the Azure key vault domain.

New AppSourceCop (ASxxxx) rules

  • Warning AS0116 – Source application for the moved object cannot be found.
  • Warning AS0117 – Application object is moved without the use of PendingMove.
  • Warning AS0119 – The value of the MovedTo property in the source object does not match the destination AppId.
  • Warning AS0120 – The value of the MovedFrom property in the destination object does not match the source AppId.
  • Error AS0121 – When an application object is moved the name must remain the same.
  • Warning AS0122 – Source object for the moved object cannot be found in the package with the given AppId.

New CodeCop (AAxxxx) rules

  • Info AA0247 – Use namespaces to organize your code and isolate it from changes.

New UICop (AWxxxx) rules

Leave a comment

Create a free website or blog at WordPress.com.

Up ↑

Design a site like this with WordPress.com
Get started