LS Central 21.5 Release Notes
About This Release
Released - April 20, 2023
This version is built on Microsoft Dynamics 365 Business Central 2022, release wave 2, cumulative update 5, 21.5.53619.53819.
Important Notices!
For information about breaking changes in previous releases, click here.
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.
For more information see the LS Central Help.
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.
OAuth web service authentication
As documented by Microsoft, OAuth2 is the authentication option for Business Central SaaS and Basic authentication has been deprecated, see here:
LS Central version 27.0 supports the use of Service2Service OAuth2 authentication when using LS Central as a web service client, for example when POS (web service client) is calling web services on Head Office (web service server).
New or Enhanced Features
LS Central
LS Central
Cloud Compliance and Certificates
Transaction Signature and License Manager have been made cloud compliant. LSC Password field has been added to the Certificates page.
Identifying Lowest Price in a Given Period for an Item per Store
A new check box, Item Price By Period, has been added to the Retail Setup page to activate this feature. When activated, enabled Periodic Offers and Promotions are processed and prices are added to the Price History table.
A new page, Item Prices by Period, can be accessed from the Retail Item Card's History menu. This page shows the Item prices up to the last 90 days. It shows a chart and a list highlighting the lowest price.
The page is separated into two parts, the first one shows the Item's regular price history and the second part shows prices from Offers and Promotions that were active during that period. The prices are added to this list when the Enable action on the Offer/Promotion page is triggered.
The Offer/Promotions part only covers Promotions, Discount Offer, Line Discount Offer, Total Discounts and Tender Type Offers.
Deals, Multibuy, Mix&Match, Item Points Offer, and Member points offers are excluded.
Offers/Promotions targeting members (that is with the Member Type/Value fields populated on the card) are excluded.
New Action Syntax in BC 21
- Converted promoted action to new syntax with AL code action.
- Removed promoted action from unsupported page types (ListPart, CardPart, NavigatePage, RoleCenter).
- Added pragma to disable warnings on obsoleted actions on the new promoted syntax.
POS
Date & Time Picker Improvements
The Calendar panel now has translated weekdays and can switch between a day, month, or year view to make it easier to go farther back or forward in time.
Replenishment
Default Setting Changed in Replen. Item Store Rec. Preview Page
The Overwrite Replen. Item Store Rec. setting in the Replen. Item Store Rec. Preview page has been changed to disabled by default.
Store Stock Redistribution Procedures Moved to a New Codeunit
As part of the initiatives to improve the maintainability of codeunits and to reduce object sizes, all the Store Stock Redistribution related procedures and integration events have been moved from the LSC Replen. Calculation codeunit to the new LSC Redist. Calculation codeunit.
Restaurants
New Interface to Send to KDS Codeunit
A new codeunit, Send to KDS Interface, has been created with two functions, SendReceiptToKDS and SetFromWebService.
Shopify
Improvements
The following improvements to Shopify have been implemented:
- Extra Location mapping to map extra Shopify Location to receive Inventory status.
- Support for Shopify Payment webhook when posting Sales Orders.
- Support for partly fulfilled orders.
LS Central Modules
Bookings for LS Central
Adding Selection of Resources When Setting Up Capacity Scheduled Products
This feature is mainly to make it easier for the user to schedule activities with limited capacity and which need additional resources, for example boat tours where you also need to reserve the boat and the captain.
Features were added to the Product Schedule page to add two resources to the schedule date, to be set unavailable. When the resources are reserved with the page action Reserve Resources, the system creates the unavailability entries for the related resources and displays them in the additional resources section.
Note: The unavailability section shows all entries, when you place the cursor on a schedule line with no dates, but otherwise the unavailability section is always filtered to the related schedule line.
Bookings APIs Moved to REST
All Bookings API procedures have been moved to a new codeunit, LSC Activity WS, and adapted as REST services. To enable, use the Web Services action in Activity Web Setup.
See the LS Central Help for more information.
Comment Action Added
A Comment action has been added to the Archived Activity Group List, the Archived Reservation list and card, and the Archived Activity list and card.
Non-editable comment part views were added on the Archived Reservation Card and the Archived Activity Card.
Note: If you archive entries that were created before the new comment mechanism was implemented, you might get an error when you open the comment cards in archiving. However, this should not happen with new reservations or reservations going through the upgrade codeunit mechanism.
Copying Information to Activity Reservation from a Template
When using the Copy From action in the Reservation Card, a dialog window is displayed where users can define which parts of the source reservation they want to copy, and which reservation type to use to filter the selection of source reservation. These settings are then saved per user, so that next time the user opens the dialog window, the settings are displayed.
Deposit API for Activity (REST)
Two new API functions were added to Activity Web Services: PaymentDeposit and PaymentRefund.
Function Made Accessible for Partners
The function InsertMemberDepositAccount is now accessible for LS Retail partners.
Linking Additional Items to Activity Quantity or No. of Persons on Activity Product
A new field, Additional Items Multiplier, has been added to the Activity Product Card. This is the default setting now when adding new items to the additional charges, during reservation entry.
Also the field Quantity Multiplier in Activity Additional Charges is now editable. This is mainly used for event related products where you would like the quantity to follow the number of persons assigned to the activity. The Group entry is not affected by this setup, and remains the same.
Location Added to Event Category Responsibilities
Location field has been added to the setup of event category responsibilities. If location is left blank, the responsibility is applied to all locations, but otherwise to the specific location. The same employee can be set up in multiple locations, or a blank location can be used to assign the employee to all locations.
This setup is used when the user creates a reservation and the system pre-populates the responsibilities for the reservation according to reservation type.
Opening Matrix View from a Reservation
A new option was added for the user to open the matrix view from the Reservation Line page (from the Reservation Card). Creating a new activity in the matrix view now results in an activity being added to the current reservation.
Staff Manager Role Center: Process Moved from Top Menu to Bookmark Section
The Salary process has been moved to the role center's bookmark section. All tooltips in the role center were reviewed.
Hotels for LS Central
Hotels for LS Central is a separate app extending LS Central.
Accrual Accounting Night Audit Process
The Accrual Accounting now creates Gen. Journals and posts every night to Sales and VAT accounts for InHouse reservations. Otherwise, the night audit process creates Gen Journal and posts to Temp Balance for InHouse reservations.
The Detailed Revenue Entry table now stores the Document No. of the General Journal Posting and can be used to view transactions posted by Night Audit "Hotel Setup"."Night Audit Customer No." is now always used in the Night Audit process.
Improved error handling and error logging.
The Night Audi processes:
- Non-Inventory items from Reservation Extra
- Activities that are included in rate
- All confirmed Activities
- Cancellation fees
- Charged2Room items are not processed.
Adding Payment to One Reservation from Another
A new action, Balance Transfer, was added to the Hotel Invoice Management page, which allows users to arrange transfers of balance from one reservation to another.
This action is available for reservations with internal status In House or Confirmed. The balance can not exceed the balance of the receiving reservation.
A new field, Balance Transfer Item No., has been added to Hotel Setup. The item number that is set here is the posting item behind the DRE lines created in the balance transfer process.
Availability Check for Activities Included in Rate Code Before a Reservation Is Created
A new field, Min Res. Act. Availability, in Hotel Setup - default values, has been created to define the minimum availability for a Reservation Activity.
A new check was added in the confirmation process to verify sufficient availability for reservation activities. If the check does not pass, a confirmation dialog window asks the user whether to continue or not.
A new action has been added in the New Reservation page to see availability for all reservation activities.
Item Filter in Hotel Setup
A new item filter has been added to Hotel Setup to filter items shown in the Reservation Extra page.
New Fields, Store No. and Terminal No., Added to DRE for Room Charge Transaction
Two new fields, Room Charge Store No. and Room Charge POS Terminal No., have been added to the Detailed Revenue Entry table and related page. The fields populate Store No. and Terminal No. where the charge comes from.
Reservation Builder: Create Draft Reservation and Generate Rate Prices for Reservation
A new reservation framework has been implemented to work with reservations in draft mode.
Use the Reservation Builder CU to get prices with discounts and to work with "Reservation Extras", Activity, Comments, "Guest List" while the reservation is in draft mode. Confirm reservations uses values in those tables including the price changes.
Reservation Payment Type Changed to Hotel Payment Type
"Reservation Payment Type List" has been changed to "Hotel Reservation Payment Type List".
Reservation Type Added to New Reservation Card
Reservation Type has been added to the New Reservation page.
Rounding Derived Rates
New fields, Derived Rounding Type, Derived Rounding Precision, and Derived Decimal Places have been added to the Rate Code page and Hotel Setup. The fields let users control how rounding on derived rates is done. These fields are only visible on the Rate Code page, if this is a derived rate and the offset type is percentage.
Pharmacy for LS Central
Pharmacy for LS Central is a separate app extending LS Central.
Performance Updates in AL
Performance updates from C/AL have been implemented in AL:
- Only send relevant fields in Payload for e-prescriptions.
- Minor updates to the Customer Panel, do not update the panel when closing downloading e-prescription.
- Do not update Web Templates 2x when opening the Prescription Details screen.
Supporting Functionality
Hardware Station for LS Central
Hardware Station Naming Aligned With LS Central Rebranding
The LS Hardware Station name has been changed to Hardware Station for LS Central, where possible, in accordance with the latest LS Retail rebranding initiative. In some places, like in the name of the service, the name has not yet been changed since it affects other software such as the Update Service.
Other
POS Commands
The following POS commands are new in LS Central 21.5:
| DTP_MODE | POS Calendar: Toggle through calendar modes. |
| DTP_NEXT | POS Calendar: Get next Month/Year, depending on calendar mode. |
| DTP_PREV | POS Calendar: Get previous Month/Year, depending on calendar mode. |
| DTP_RESET | POS Calendar: Go back to the date that was set on the input which opened the Calendar. |
| HYPERLINK | Uses the parameter as a URL it should open (by using the standard Hyperlink method in AL). |
See POS Commands in the LS Central Help and the corresponding Excel list with filters for a complete list of POS commands.
Fixed Issues
LS Central
LS Central
Blob Support Added to POS Trans. Data Push Utility
Code was added to send Blob Data with DD WS job data (DD Send) for subjob controlled data push.
Canceling Customer Order: Sales Line not Found Error
This has been fixed. Sales line lookup is now always based on Price with VAT after Sales Order price handling was changed.
DD Replication Error
DD picked the wrong session when sending a DD job. This has been fixed. The correct session is now picked for Source Host when sending Replication Jobs to DD.
Deleting Customer Price Group
An error occurred when deleting Customer Price Group. This has been fixed.
Fashion
Missing Global Dimension 1 and 2 Codes When a Prepack Item Is Exploded
When a prepack item was exploded via purchase or transfer receipts, the Global Dimension 1 Code and Global Dimension 2 Code were not populated in the related positive and negative adjustment Item Ledger Entries. This has now been fixed.
Franchise Module
Improvements
- Refactor Archive of Processed messages.
- Validate for PO line "Qty. to Receive" (Base) was removed when processing incoming updates for PO.
- SO Release was removed when processing incoming SO requests.
- Fixed 'This order is a Franchise order. Inconsistency with......' message appearing when F7/Statistics was pressed in PO. The message should not have been displayed.
POS
Menu Button Issue in Menu Properties
An issue causing the removal of a button from the Menu Properties to not update the POS UI has been fixed.
ReplEcommMixAndMatch Does not Return All Mix & Match Offers
Table LSC WI Mix & Match Offer has been replaced with table LSC WI Mix & Match Offer Ext. This is done to be able to change the table's primary key. The field Priority has been added to the new table's primary key and the old table has the ObsoleteState as Pending.
Note: Run Scheduler job COMMERCE_INIT to regenerate data for the new table.
Replenishment
Issue with Committed Purchases Records Deletion
An issue where the records in the LSC Committed Purchases table are not being deleted when their relevant Purchase Orders are posted, has now been fixed.
Invalid Special Group Code Filter Field Length in Replen. Item Quantity
The Replenishment Journal was unable to support a Special Group Code Filter of more than 10 characters, caused by the field having an invalid field length of Code[10] in the LSC Replen. Item Quantity table.
This field has now been obsoleted and replaced with the new Special Grp. Code Filter field, assigned with the correct field length of Code[20].
Restaurants
Item Scanning not Working in Self-Service Kiosk
Scanning an item in the Self-Service Kiosk did not work. This has now been fixed.
Image Selection on POS Web Templates not Working for Self-Service Kiosk
Images are assigned to Web Template Image Lines and Language Profile Lines through Retail Image Link. Upgrade was provided that moves the now obsolete Retail Image Code from these two tables to Retail Image Link.
Store Item List Sorting Issue
If the Store Item List was sorted by Item No. in descending order, items disappeard from the list. This has been fixed.
Unable to Send BLOB via DD Send
Code was added to send Blob Data with DD WS job data (DD Send).
Web Request Get Table Data Add Last Key
Added WS Table Record Buffer holding the last primary key of the returned dataset.
For this to work, setup for Web Request GET_TABLE_DATA (version 1.0) has to be updated:
In the response xml, add table LSC WS Table Record Buffer at the end as optional and the field Key. This buffer will then return the correct primary key for the last record in the search dataset, which will then become input into next call.
LS Central Modules
Bookings for LS Central
LSC Activity Attributes List Removed from Search
LSC Activity Attributes List was removed from the search, because it is a subpage.
Rental Enhancements and Fixes
There was a bug in selling rental services at the POS when multiple rentals were issued in one receipt. This has now been fixed.
Messages in the renting process have been reviewed and improved, and the process has been made more robust. The Unit Tracking page now has updated tooltips.
Pharmacy for LS Central
Barcode not Cleared
Barcode is now cleared, if the wrong pack is scanned in the pick control or the barcode is not found.
Final Control Button not Enabled
The Final Control button was not enabled after picking the line in the Barcode Panel. This has been fixed. Run LoadWebTemplates on PharmacyPrescriptionPanel2 to update the buttons.
Mismatch in Generated Menu for Customer Panel
Pharmacy Admin Task -> Generate Pharmacy Flex UI now creates a menu with eight buttons in the Customer Service Panel.
Prescription Orders in Posting Queue Enhancement
Prescription Orders that have already been picked up and processed at the POS, but are still in the Posting Queue, are now shown in style Subordinate and a new field, In Posting Queue, has been added to the BO customer service order list.
User ID Overflow in Pick Control
User ID overflow in Pick Control, when the Windows user name exceeds 30 characters, has been fixed.
Hotfixes
See the LS Central Help for information about hotfixes that have been released since the previous release.