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.
Deprecation of Windows Authentication for web services in LS Central version 22.0
Windows authentication is currently one of the authentication methods used for web service authentication in LS Central. The Windows authentication is based on Business Central Windows Authentication code. The Business Central Windows authentication code is marked as OnPrem and can therefore not be used by applications where Target=Cloud in the app.json file. Setting Target=Cloud is a requirement to make apps Universal Code Compliant.
Therefore, the option to use Windows authentication for web services will be removed in LS Central version 22.0. This does not effect SaaS customers as the only authentication method supported in SaaS is Oauth authentication. On-premises customers must switch from Windows authentication to either Basic authentication (Web Service Access Key) or OAuth authentication before upgrading to version 22.0.
Upgrading to the new Comments module
If you have been using dining reservations and Bookings, you must go to Comment Setup and follow the steps required to move existing comments to the new structure. The potential size of the database tables involved makes the upgrade process not feasible for this purpose. The upgrade process takes care of moving existing Hotels comments to the new structure.
Changes to primary keys in essential tables in Hotels
Changes to primary keys affect the following tables, a period (.) was added after the table name:
Table | Replaced by |
---|---|
LSCHT Detailed Rev Entry | LSCHT Detailed Rev Entry. |
LSCHT Hotel Res. Entry | LSCHT Hotel Res. Entry. |
LSCHT Res. Payment Entry | LSCHT Res. Payment Entry. |
LSCHT Room Blocking Entry | LSCHT Room Blocking Entry. |
LSCHT Room Type Block | LSCHT Room Type Block. |
LSCHT Detailed Rev Entry Log | LSCHT Detailed Rev Entry Log. |
LSCHT Reservation History | LSCHT Reservation History. |
LSCHT Hotel Reservation Log | LSCHT Hotel Reservation Log. |
To support localization of VAT %, the system now uses temp Sales Header (Document Type Quote) and Sales Line to get the Detailed Revenue Entry VAT%.
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.
From 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 IntegrationEvents so they became 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.
Click here for a printable version of this notification.
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.