Breaking Changes
This page contains lists of breaking changes in the current and previous releases. The lists are work in progress and will be updated as new issues are discovered.
Click the heading(s) below to expand and collapse.
Breaking changes in release 21.0
Obsolete code marked with tag 19.0 and below removed
Our solution gets bigger with every release, but we intend to clean up by removing obsolete code in major releases as soon as the code has been marked obsolete for at least a year.
In release 21.0 we removed constructs like procedures and events, but there are no breaking schema changes yet, like Tables and Table fields.
Recommended action: Check if you are using a feature that has been marked obsolete for more than a year. The warning should state the reason and the alternative that is intended to be used.
OnPrem-only procedures are now obsolete
All procedures and objects that are marked #if _IS_SAAS_, previously marked [Scope('OnPrem')], will become internal.
From 21.0 these procedures and objects will be marked Obsolete for OnPrem extensions, until they will finally become internal in 22.0.
If your extension is using any of these, they will now get a warning.
Recommended action: If you have an OnPrem extension, check if there are any warnings. Usually, there are alternative procedures available, but partners can also request that a list of these is made public through the same flow as event requests.
Autotest object names now have an LSC prefix
In version 17.4 we added an LSC prefix to LS Central, but this was not done for our Autotests extension, which we include in our releases.
In version 21.0, autotests will have a prefix as well.
Recommended action: If you are using or extending the LS Central Autotests extension, be aware of this change.
Integration event triggers are now internal/local
In rare cases, it has been technically possible to trigger some of our events from an extension.
These cases are usually an oversight, since the internal/local keyword was missing for the IntegrationEvent so they become public, by default.
This has prevented us from adding new arguments to existing events, and therefore unnecessarily forcing new versions for events where a breaking change would not have been needed.
Recommended action: This should not require any work. There is a chance that somewhere an upgrade might fail, if it is calling an event function, for example in POS Transaction Event, which usually has no effect. Instead, the events are intended to be subscribed to, with an EventSubscriber.
Mobile Phone No. field in Customer extension table renamed to LSC Mobile Phone No. and obsoleted
There is a new field in Business Central Base app Customer table named Mobile Phone No. The LS Central app Customer extension table had a field with exactly the same name. The purpose of the field is the same in both tables, to capture the customer mobile phone number. Because a table and extension tables cannot have identical names, the field in the LS Central Customer table has been renamed to LSC Mobile Phone No. The upgrade codeunit that comes with LS Central 17.0 migrates values from the LS Central Customer Extension table Mobile Phone No. field to the BC Base app Customer table Mobile Phone No. field. The Mobile Phone No. in the LS Central Customer Extension table has been marked as ObsoleteState = Pending.
Statement field in Gen Journal Line extension table renamed to LSC Statement
The field Statement in the LS Central Gen Journal Line extension table has been renamed to LSC Statement, because in one of the Business Central localizations, the Gen Journal Line in the base app has a field named Statement.