LS Central 21.0 Release Notes
About This Release
Released - November 29, 2022
This version is built on Microsoft Dynamics 365 Business Central 2022, release wave 2, cumulative update 1, build 21.1.48363.48638.
LS Central 21.0
LS Central is delivered in two apps, LS Central System app and LS Central app. The LS Central app has dependency on the LS Central System app. The code in the LS Central System app will not be public and the LS Central System App will only be published as runtime package. The LS Central System App will, in the future, hold code related to licensing to enable LS Retail to license LS Central components in the cloud.
LS Central AL code
The source code for the LS Central app is delivered in AL files that can be modified by partners. It is, however, highly recommended to make all modifications in extensions, and if you need to alter the LS Central or Business Central behavior then do that by subscribing to events.
It is LS Retail's priority to make it easy for the partners to extend LS Central. Therefore, a special section in our Support Portal (login required) is provided for partners to submit requests for new events. These requests are given priority.
LS Central extension
The release package includes LS Central and LS Central System App as runtime apps that can be installed as extensions. To install the extensions, you first need to publish them, see Publishing and Installing an Extension v2.0. Once the LS Central and LS Central System App extensions have been published, the LS Central and LS Central System App extensions can be installed using the Extension Management page in Business Central.
Important Notices!
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.
Click here for a printable version of this notification.
OAuth web service authentication
As documented by Microsoft, OAuth2 will be the authentication option for Business Central SaaS and Basic authentication will be 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
Adjusting LS Central Pages to New Business Central Price Module
LS Central is now ready for upgrading to the New Price Module introduced by Microsoft in version 16. This upgrade will be done automatically in version 22 (Q2, 2023). The main change in LS Central is that Item Prices can no longer be changed from the Retail Item Card. Prices are now manipulated through the standard Sales Price Lists.
When the system is upgraded, the current price list that is stored in table Price List (7002) is copied to the new Default Price List.
Customer Order Number on the Receipt Barcode
Customer Order collect with a barcode scan: If a Barcode Mask is defined in Customer Order Setup, the user can now simply scan the barcode from the Customer Order receipt to collect the order.
GetInventoryStatus Updated With Item Distribution
Item Distribution lookup has been added in the GetInventoryStatus function to return only items for the requested store number.
Hierarchy Setup for Item Categories
It is now possible to add Item Categories as Child items in Hierarchy Nodes.
Mobile Inventory Receiving, Expiry Date and LOT/Batch Number
An option has been added to scan and receive Lot Number and Expiration Date through Retail Receiving on Mobile Inventory devices.
Food & Beverages
Adding the Same Item in Multiple Deal Lines
A deal can now contain the same item multiple times. This is useful when creating a family deal with four burgers, each burger with a choice of sides and sauces. The item description in the deal lines (offer lines) can be edited (burger 1, burger 2 and so on).
Pickup Time Set as Due Time/Date for KOT
When an order is created through the Commerce Service, the request includes a pickup time for the order. Either the time is when the order is placed and it should go into production as soon as possible, or the pickup is in the future and should not be displayed on the KDS production screens. Therefore, the pickup time coming from the web request must be set as pickup time for the food and beverage order.
Self-Service Kiosk: Scanning a Member
In the Self-Service Kiosk you can now scan a member card with a keyboard input scanner to add the member to the transaction. The member and the point status is displayed on the screen. This functionality can be enabled/disabled with a setting on the Restaurant Card.
LS Activity
Activity Host Enhancements
Booking an Activity from Activity Reservation Detail Panel
It is now possible to use the POS command BOOKPRODLIST to add an Activity to a reservation in the Activity Host.
Confirmation window displayed before changing status in Activity Host
If the user does a status change on an activity from the POS, a confirmation dialog window now pops up and the user is asked to confirm the request.
Reservation templates
Activity Host now shows Activity Total Amount, Extra Charges, and Balance.
Web Templates
A few UI changes have been made to improve the Activity Host web templates.
Activity Matrix Enhancements
Confirmation dialog window
An option of having to confirm when an activity is dragged and dropped inside the Activity Matrix, was added to Activity Setup.
Glyph scripts on appointments
An option has been added to show glyph scripts on appointments in the Activity Matrix.
Matrix Day View
The user can now configure how many columns are shown in the Activity Matrix.
New Today button
A Today button has been added to the header of the Activity Matrix for quicker navigation.
Searches through Role Center
Searching for Matrix now leads to the new javascript-based matrix, while the old POS-based matrix has been obsoleted from the search function.
New Matrix Glyphs Added to Demo Data
Image parameters have been added to the script possibilities to cover multiple image (glyph) settings:
- Activity or Reservation was booked online
- Activity or Reservation has comments
- New Client (no previous visits)
- Number of previous visits (to this location)
- Activity is part of package
- Reservation has Deposit
- Activity is part of membership
- Multi-staff activity.
The parameters/images can be assigned to glyphs in the matrix template to present images (or icons) to represent status or assignment for the activity. These parameters are supported using subscriber extensions and also act as examples, so partners can easily add new image logic to the system as required by the end user.
Resources Selection Priority Field
The value range for the Resource Selection Priority field no longer has the limit of the higher value of 10.
Retail Images Added to Activity Label Types to Show Icons in Matrix
The Activity Parameter extension possibilities in scripts now support the returning of Retail Image IDs. This feature is used in the new Activity Matrix to show glyphs (images) in the Matrix cell, payment status, for example, can now show a $ image and so on.
Total Balance in Web Templates
The total balance amount is now displayed in the Activity Host web templates.
Reservation Number Updated in POS Code
The reservation number is now updated in the POS code, to know which reservation is open.
Warning Displayed When Paying Individual Group Member Reservation
If a user tries to pay an individual group member reservation that has Charge Type set as Group, the following message is displayed: "There is nothing to pay. If you are paying Reservation that is a part of a Group check that Charge Type = individual."
Warning Displayed When Reservation Cannot Be Pulled Into the POS Journal
Now if an activity is being pulled into the POS journal for payment, and the activity is already in payment process on another POS, the system now provides a warning message to the user to inform why the activity is excluded from the payment process.
Warning Displayed When User Cancels Reservation
The command CHRESSTATUS in Activity Host is used to change status on Activity Reservation, it can be Cancel, Draft, or any other status. Before the change a confirmation message is displayed: "Are you sure you want to change status on Reservation <reservation no> to <new status>?".
LS Central POS
Printing Order for Sales and Card Slips
When printing both sales slips and card slips (EFT) on the POS, the printing order is now first the sales slip (customer), next card slip (customer), and finally the card slip (merchant). This is more convenient for handing the slips over to the customer.
LS Hotels
Amount Incl. VAT in Web Templates
Amount with VAT included is now shown in the web templates in correlation with setup on the Hotel Setup page (if "Rates includes VAT" is set to false, "Amount included VAT" is shown in web templates).
A new field, Web Date Format, was added to the hotel setup so users and partners can now control how the date is shown in the web templates.
Tooltips were added to the web templates.
The Web Templates config. package has been updated with the new templates.
Configuration Packages Updated
All configuration packages have been updated and unwanted data removed. Some errors on previous packages have been fixed.
Excel files for all packages have also been added for improved transparency on data in the packages.
Date Sold Added to Hotel Reservation
A new field, Date Sold, has been added to the hotel reservation. If set, this is the actual date the reservation was sold. Not displayed on any page.
Host Added to a Reservation
A new field, Host, has been added to the Hotel Reservation table and related pages. In the Hotel User List, it is possible to add user as a Host, after that Host can be added to a Hotel Reservation. The Front Desk role center highlights number of Hotel Reservations with Hotel User as Host. Also showing list of Reservations with Host.
Hotel Code in SaaS - Internal Procedures
Added "Access=Internal" to all CUs so the CUs can be accessed only by code in the same module.
One CU is public, LSCHT Hotel Integration, and it has methods that can be used by external apps.
Hotel Reservation Page Factbox
Group comments are now shown with reservation comments.
Hotel Statistic Reporting and Power BI
The Hotel Res. Statistic page has been added to view revenues, room availabilities, ADR, RevPAR, TRevPAR.
To populate the Hotel Res. Statistic table, the Calculate Statistic field in Hotel Setup must be enabled.
Hotels Demo Data: Staff Management Setup Added
A new Configuration Package has been added to the Hotels Demo Data with setup for Staff Management.
Posting Accommodation Item Against Deposit in BackOffice
It is now possible to create a payment against a deposit from the back office when balance is zero.
A new action, Payment against deposit, on the Payment Entry List page creates a transaction with sales entries against the "POS Deposit Posting" income expense account. The reservation must have deposit(s) posted to finance, balance must be zero and have entry lines not paid.
Printing Room Number on POS Receipt
When charging items to a room from the POS, the POS receipt will have the room number listed behind the Charged to room tender type by default.
Soft Checkin Status Added
Two new fields have been added to the Hotel Reservation Status table and the Hotel Status Setup Page:
- Soft Checkin Allowed is a boolean field and is only viable when internal status is set to Confirmed. When set to true, the field allows charging to room from the POS for that status.
- Arrival filter (Today + X) is an integer field that specifies how many days in the future the charge to reservation list on a POS should be shown. This is only enabled if the Soft Checkin Allowed field is set to true.
In the new Demo Data package, a new status, Soft Checkin, was added with internal status Confirmed, for group master and room reservation types. The Confirmed status is default to prevent a pop-up to select which (internal) confirmed status you would want to use when creating a new reservation.
VAT Fields Removed from DRE Table
All VAT and LCY fields in the Detailed Revenue Entry table have been marked as obsolete and are no longer used.
In Detailed Revenue Entry, the Amount Incl. VAT, and VAT Amount fields are still populated but not displayed.
In Hotel Setup, Rate Includes Tax is used when creating a sales invoice (Prices Including VAT). If Rate Includes Tax is false , the localization app must handle POS tax calculations and Total Incl. VAT is displayed on the Hotel Reservation page (calculated using sales invoice logic).
LS KDS
Change WCF Communication to Duplex/Callback
The WCF communication model for the Kitchen Service and Display Station has been changed to use the WCF Duplex/Callback protocol, using only one TCP/IP port, instead of using a separate port for each connection with the Display Stations.
This should reduce complexities in the network communications. This version can be used with older Business Central versions (20.x at least ).
Service Type Setup
The options F&B Orders in the Layout View field and F&B Takeaway in Restaurant in the Service Type field in the Hospitality Type table have been made obsolete. F&B now uses Takeaway Service Type and KOT list as Layout View.
Replenishment
Speed Up the Replenishment Journal Calculation With the Parallel Calculation Approach
You can now calculate the Purchase and Transfer Replenishment Journal using parallel processes. When this option is enabled, the items within a journal will be split evenly and shared across multiple sessions so that they can be calculated in parallel. The result is that the calculation time of the journal is shortened.
The parallel calculation process is applicable for the Scheduler-based calculation, and can be activated in the Replen. Setup page, with the Parallel Calculation settings in the Replen. Journals FastTab.
For more information see Parallel Replenishment Journal Calculation in the LS Central Help.
POS Commands
The following POS Commands are new in LS Central 21.0:
-
ACT-FRONTDESK - Command for the Front Desk panel. Function depends on the parameter.
-
CHRESSTATUS - Command for the Front Desk panel to change the status of a reservation. Function depends on the parameter.
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
Archiving Discount Offer in version 20.0
A new field with ID 610 CustomerDiscountGroup was added to the table LSC Arch Periodic Discount to be able to use transfer fields when the field with ID 602 Customer Discount Group is deleted.
In table LSC Periodic Discount the field with ID 610 "Do not Use" was added to prevent this issue in the future.
Change Staff for a POS Transaction
Code has been added to the Staff Lookup to check if the staff is a Sales Person and display an error if it is, same as in login.
Customer Order: Member Line Added to POS Lines
A Member line has been added to the POS lines. The Transaction Register and the Customer Order deposit payment line now have the Member Card No. field populated.
Customer Posting: Credit Memos
Create Credit Memo when a Customer is marked Post as Shipment. Changes were implemented to navigate in posted statements to show Return Receipts, Customer Orders, and Posted Customer Orders related to the posted statement.
Db Server Name Field Expanded
URI fields have been expanded, %20 added on spaces for SaaS connections, and the order of the fields on Distribution Location and Web Server Setup pages has been changed.
DD Connection String Fixed
The %20 functionality has been removed for DD company names.
License Manager Setup Actions not Showing Up
An error, where License Manager setup actions were not displayed, has been fixed.
Link to Account Issue
When a new Member Contact is created on the POS by adding the member to an existing Member Account, the Link to Account lookup is filtered according to criteria set in the Member Contact zoom record (same as is used for searching for existing member contacts when the Search command is used). The name is compared to the Description field in the Member Account record and a specific Member Account No. can be used to find an existing account. This is done to limit the data flowing from the main data base to the client.
When an account has been selected, the search criteria is cleared and information about the Member Contact should be entered and the Save button pressed.
New Action for Hierarchy
When the description of an Item/deals/item category is changed, the description in the hierarchy node links are updated.
Price Change: Showing 0 Values on Balance Tab after Manager Login
When changing staff in the middle of Transaction, some of the Tag values were cleared and not recalculated. This has been fixed.
Register Logon/Logoff After Updating to 20.5
Register Logon/Logoff on the POS has been fixed.
S2S Authentication On-Premises
A new field has been added on the Web Service Setup page to specify the scope.
Sales Price List: New Field
A new field, Price including VAT, has been added to the Duplicate Price Lines page. The Style was also adjusted to follow same logic as Microsoft's.
Shopify Discount and Various Updates
The following issues have been fixed in Shopify:
- Cancel Customer Order error
- Discount Offers sent to Shopify
- Central Item No included in Attribute table
- Prices only updated since last run (not the whole list every time).
Web Request Logging Failing and Preventing Login
Code was updated to only store 250 characters in the Web Service logs.
Food and Beverages
Adding Member to Reservation Without Creating a Transaction
Populating the member web template is now done without creating a dummy POS transaction.
Due Date Missing in Requisition Worksheet in Meal Planning
The code has been fixed so that when you create a Requisition Worksheet from Meal Menu Plan, a Due Date is set in the Requisition Worksheet Lines.
Hospitality POS: 'Show Reservation' Does not Work in Table Allocation
The command TR-A-SHOW_RESERV has been changed to filter the dining reservation grid to show the reservation that is connected to the dining table pressed. The filtering is removed on idle-timer and when other commands are performed. This command can be added to allocation pop-up menus as needed.
POS Dining Reservation
Dining Reservation Desk now adds member information when populating the availability grid.
Recipe Card Request
When checking availability, the system now checks current availability for the current recipe and only checks if it is needed to produce more. The system only checks for missing ingredients for the recipe that needs to be created.
Self-Service Kiosk
Get Hierarchy takes too long
Images are now loaded at the start of the POS. This improves performance by 50% at least.
Text and time modifiers
Text and time modifiers can now be configured for items sold in the Self-Service Kiosk. The modifier pops up after selling the item or recipe, and you can select the modifiers available. The modifiers can also be edited in the edit mode for the items.
UOM description removed from Deal Modifier Description in Dynamic Content Menu
The Self-Service Kiosk needs to have a deal modifier item description without the unit of measure reference. A new field, Item Description, has been added to the Deal Modifier Item table that is just the item description. The caption of the Description field has been changed to Pop-up Description. Upgrade is in place, filling in the new Item Description field.
LS Activity
Transferring Resource Entries: Picking Up Location
A bug was fixed in the Transfer functionality when transferring resource entries from one resource to another, on the Resource Scheduling page. Before, the system would always pick up the currently selected user location, but now the location is picked up from the selected scheduling entry.
Replenishment
Transfer Multiple Not Working for Quantity to Cross Dock
When calculating the Purchase Replenishment Journal with cross docking enabled, an issue where the Quantity to Cross Dock did not get rounded according to the Transfer Multiple has now been fixed.
