LS Central 21.1 Release Notes
About This Release
Released - December 22, 2022
This version is built on Microsoft Dynamics 365 Business Central 2022, release wave 2, cumulative update 2, build 21.2.49946.49990.
LS Central 21.1
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.
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 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
Changes in Field "Exception Detected" on ASN Lines
The Exception Detected field in table 10001372 LSC ASN Delivery Document Line is now of type enum.
Drop-down Field Group Added in Member Contact Table
When a lookup or drop-down is done on a Member Contact, Contact No., Account No., and Member Contact Name are displayed for the selected Member Contact.
POS Command for Exchange
The new POS command, EXCHANGE, also implies:
- new POS menu EXCHANGE
- new POS lookup EXCHANGE
- updated POS Menu #Trans with the new command.
With this new command you can select a transaction and exchange it.
You can exchange "like for like": a return and a sales line are added with inverse values to the POS. Additional sales lines can be added too.
You can exchange per other items: a return line is added to the POS and then the user can add sales lines.
Posting Retail Receiving Documents
Retail Receiving Documents can now be posted directly when they are created from ASN Documents.
Refactoring of LS Central Libraries
The organization of LS Central libraries and naming of functions has been refactored.
Setup Hierarchy for Item Categories
It is now possible to add Item Categories as Child items in Hierarchy Nodes.
Total Offer Step Amount Calculation
New optional setup is available for Total Offers to control how the base for step amount is calculated.
Use the Use Offer Total Amount flag (see the Triggers FastTab) to calculate the step amount only based on the transaction lines that are valid for the offer. The step amount base was and is still calculated as the whole transaction, except when this flag is turned on, then only lines from the offer are used for the calculation.
Fashion
Variant Mandatory if Exists Setup Field Available in Retail Item Card
The new Variant Mandatory if Exists field introduced by Microsoft in Business Central 2022 release wave 2, available in the Inventory Setup page and the Item Card page to specify whether a variant must be selected if variants exist for an item, has also been added to the Retail Item Card page.
Food & Beverages
Self-Service Language Different from System Language
It is now possible to let the default language of the Self-Service Kiosk be different from the system language, regardless of whether there is a possibility to choose between two or more languages in the kiosk.
LS Activity
Activity Components Visible on Activity Group Reservations
A setup called Show Member Activities has been added to the Activity Reservation Type Card, in the Group Settings FastTab with default value No. Other options are Show All Activities and Show Line Related Activities on the Group Reservation card. This allows the user to easily see what activities are related to each group member, and to access all features that are normally in the Reservation Line section of the individual Reservation Card.
By default this section is not visible on the Group Reservation card. In older reservations, this feature will not show the related activities, but only activities in reservations created after this feature was implemented.
For older data a function has been added to the Member Section to open the Members Reservation card for quick access to the reservation for editing and viewing purposes. In addition, the drill-down to the activity from the members list will open the Reservation Card, if the related product is a package.
Matrix Resource Swap by Dropping to Another Activity
It is now possible to swap resources on the Activity Matrix by dropping one activity on another.
Swapping Resources for Activities by Drag-and-Drop
The setting to turn on or off the Drag-and-Drop feature in the Activity Matrix has been removed. Now Drag-and-Drop is now always an option in all matrices. Also, if the user drags and drops an activity onto an existing activity, the user is asked if he or she wants to swap the resources for these two activities.
Only the resources on display will be swapped, and not any other resources that might be assigned to the activities. If the user does not confirm the swap, the system will try to add the dropped activity to the selected date and time, and depending on availability and overbooking settings, the activity will be rescheduled.
When swapping resources, the system checks if the resources are available (working) on the relevant times.
Using Bold Type, Highlighting, and Colored Lines for Current Period
In resource and product capacity setups, entries add up with time, especially if capacity is commonly different on specific dates. This can lead to many outdated entries, which you still should not delete, since they are needed for capacity history.
Now the system shows the entries that affect TODAY in green color to indicate to the user which entries are affecting today's availability. A new Expire process on the Resource Scheduling page marks all outdated entries as Expired. The page now also has a standard View to filter out the expired entries. The "expire" process does not affect any availability logic, it simply marks the entry so the user and views can be filtered on that field for a simpler view.
Week View Data for a Given Resource
The Activity Matrix now supports a Week View of a selected resource. In the Matrix, the user can click a resource to select a new menu item, Week View, which shows the selected resource assignment for the next 7 days. To switch between resources, the user can use the Selection Lookup in the matrix header to get a list of resources to choose from.
LS Central POS
Scale Certification Requirements: New Configurations
Two properties have been added to the Functionality profile to make it easier to fulfill scale certification requirements:
- General -> Print Total Price Line in Bold: When selected, the total amount line of the receipt will be printed in a bold font
- Amount -> Print Currency Symbol in Amount header: If selected, the POS Currency Symbol will be added to the Amount header in the customer's receipt.
LS Hardware Station
OPOS Devices to Stop Reloading
When they get new settings, OPOS devices will no longer reload. This prevents a lot of unnecessary reloading which slows down devices, especially printers.
LS Hotels
Date Sold Field Added to Hotel Reservation
- The Date Sold field has been added to the hotel reservation. "Date Sold" is the date when a hotel reservation was sold.
- If "Date Sold" is specified in a Reservation, this date is used as a booking date in discounts (Advance days and Booking Date Range). The new Date Sold field was added to the New Reservation Page to control changes but is not visible by default.
Tip: The field is not displayed on any page yet, but you can use Designer to add it to the New Reservation page.
Day View by Date, Page
A new page called Day View by Date has been added to the Front Desk Role Center. The page shows arriving and departing reservations based on a date and a property that you select in the date filter part. It also shows you how many early check-ins and -outs and late check-in and -out reservations there are on the selected date.
A tooltip has also been added for the Reservation field on the arriving and departing list to explain the meaning of the colors.
FactBox and Counter Fields Added to Day View Page
A FactBox has been added to the Day View page showing statistics for arriving, stayover, and departing reservations, for example number of reservations, guests, early and late check-ins and check-outs. The Day View page now also shows stayover reservations for selected dates in a FastTab.
The Day View page action has also been added to the Housekeeping Role Center, so it is now accessible from both Role Centers.
Priority Rooms Highlighted in Front Desk Role Center and in Day View Page
A new queue, Priority Rooms, has been added to the Front Desk Role Center to show how many rooms there are that have check-out and check-in on the same day (today).
When you click the queue, it shows you a sorted list of all rooms that are marked as priority. Rooms that are already empty (reservation has checked out) are shown in green color and are at the top of the list.
Once a reservation has been checked-in to a room, it is dropped off the list and is no longer a priority room.
Rate Discounts
A new discount functionality for Hotel Rates, found under Hotel Res. Discounts, has been added to the Hotels module. The discount applies to Hotel Reservations when offers are created for specific periods (either when the offer is booked or used), for different locations, or down to different rates.
This discount framework is similar to what already exists in the Activity module, but the discounts for Hotels have these sources: Property, Rate Code, Room Type.
- Quantity Based Discounts - Qty = No. days/nights of booking or discount based on the length of stay.
- Discount type - Percentage, Amount, or Free Nights
- Seasonal Discounts - From Date to Another Date...Based on Arrival Date or/and Booking Date or/and Day Setting.
- Discount based on days in advance
- Discount banner appears in New Reservation, if applicable.
The discount selection rule is: always get the highest discount.
LS KDS
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, now using only one TCP/IP port instead of a separate port for each connection with the Display Stations. This reduces complexities in the network communications. This version can be used with older Business Central versions (at least 20.x).
Replenishment
Extending the LSC Replen. Item Quantity Table with Additional Filter Fields
We have refactored how the filters from the LSC Replen. Item Quantity table are carried over to the RIQ calculation codeunit LSC Replen. - Calc. Qtys, and added the integration event OnCalculateReplenishmentQuantiesOnAfterApplyRIQFilter in the procedure CalculateReplenishmentQuanties within the codeunit to make it possible to extend the LSC Replen. Item Quantity table filtering capabilities with additional filter fields.
POS Commands
The following POS command is new in LS Central 21.1:
- EXCHANGE - With this command you can select a transaction and exchange it, for example "like for like" or for other items.
See POS Commands in the LS Central Help and the corresponding Excel list with filters for a complete list of POS commands.
Other
LS Central Help
- The LS Pharmacy Help is now part of the Retail section of the LS Central Help, see here.
- Replication in LS Central is a new addition to the LS Central Help.
Fixed Issues
LS Central
Barcode Variables Deleted
Variables BarcDescription and BarcItemGroup have been deleted because they are not used in the code.
Changes Related to the New Price Module
- The Retail Price Including VAT field on the Retail Item Card removed.
- A new FactBox, Item Price Overview, has been added to the Retail Item Card.
Incorrect Transaction Payments When Invoicing Sales Order Made from Customer Order
Transaction creation when posting Sales Orders created through Web Customer Orders to transactions created when a Customer Order creates a Sales Order through the POS has been synced.
New Web Service: GetStaffV2
A new version of the GetStaff web service, GetStaffV2, has been added. It now returns the Staff Store Link record, if the Staff has links to other stores.
Page 10000929 "LSC hierar. Sibling/Child Node"
- Variable ParentNodeID length was updated to 30, the same length as the field in the table.
- Variable HierarchyCode was not updated, because the field length in the table is 20.
Posting Customer Orders not Working in Shopify Mode
A check for URI has been added in the Function Profile: if there is no URI, COs are not posted via web hooks, only via events, for example the ones that Shopify uses.
Safe Management: Split Bag
The Split Bag No. field has been added to Bag Tender Declaration. The field has to be filled before splitting a safe Bag, if Tender Type Safe Bags No. Type is set to Manual Numbers.
Web Replication Linked Table Fix
Processing linked tables i now skipped, if the primary record is not found.
Food and Beverages
Allocation Panel Performance Improved
Table Allocation panel handling has been refactored for performance enhancements. Automatic allocation is now much faster (a test for 546 reservations for 300 tables with 15 minute intervals is now just over a minute instead of over 12 minutes before).
Change in 'Dining Area Utilities' Codeunit
The Menu Type Code field in the Dining Table Info Buffer table has been obsoleted. The KOT Menu Type Code field is used instead of length 10.
FAB Order not Created When Order Process Time (Min) Is Zero
The minimum value for Order Process Time in Hospitality Setup is 1.
LS Commerce FastTab Added to Restaurant Card
LS Commerce field group is now on the Restaurant Card.
No Dining Area Plan Found Error Message
The way Date From, Date To, Time From, and Time To fields in the Activity Reservation table are validated has been fixed.
Dining Activity Type must now have Day Duration Single Day (upgrade included).
Next Day and Previous Day functions were added to the Product Availability Lookup page.
No. of Covers on Z-Reading Report Includes the Covers of Refunded Transactions
This has been fixed. Return sales is no longer counted in No. of Covers in Z-reports.
LS Activity
Activity Event Handling Caused Length of String Error in Activity Event View Table
An error was fixed where assigning the event location in the Activity Event View table when creating BEO views caused a string length error.
In previous versions, this field was wrongly assigned with the resource description rather than the resource number or reference. This would cause an error, if the resource description exceeded 20 characters.
Appointment's Duration Changes to Default Setting When Rescheduled
A bug in the Activity Matrix's drag-and-drop feature caused the rescheduling process to reset the duration to the initial default setting. This only happened if the activity had a manual duration change (which was not related to the Quantity of the activity), and not if the duration of the activity was related to the Quantity. This has now been fixed.
Error in Length of Reservation String
When a package was sold and the Reservation No. exceeded 10 characters, an error occurred. This has been fixed.
Hours Displayed Incorrectly on Roster
A bug in the Staff Management roster has been fixed. Due to formatting, showing "Hours" could lead to "Minutes" being missing, if the value was not rounded to whole hours.
Matrix Type Hours (00:00), which can show number of hours based on minutes, rather then decimals, was also added. For example 4.5 hours would be displayed as 4:30. The Matrix Type Hours shows the same value as 4.5.
Moving Activity Fails When Overbooking Is Allowed
A bug has been fixed in the drag-and-drop Matrix process. An activity booking would be drafted instead of showing a message of non-availability during the process, and then the booking would disappear from the matrix (because it was a draft).
Tax Issue With Activity Charges
A bug related to Tax calculation in the NA version has been fixed. When paying additional charges for an activity reservation, the amount was missing the tax amount.
Total Hours per Week vs. Month
The calculation of the Total Scheduled and Scheduled % fields in the roster scheduling page has been changed when week periods are being displayed. Now when the Period is set to week instead of month, the Total Scheduled shows the total hours scheduled for the selected week period, regardless of which roster it belongs to.
Also, the Scheduled % field now shows the ratio of the scheduled hours for the selected week of the Optimal hours of the current planning month. Only scheduled hours, which are part of the selected Plan No., are included in the ratio calculation, since the optimal hours are set for the planning month. Previously, these values always displayed the month values and did not change when period view was changed to Week X.
LS Central POS
#KEY Displayed When Making a Customer Order
- An issue causing #KEY to be displayed in the search input has been fixed.
- The field caption, if provided, is now displayed.
Label not Visible in Lookup on POS
An issue that caused the sort column text not to be displayed when opening a grid has now been fixed.
Limitation in Clienteling Fixed
It is now possible to add an item with the attribute of type Option that has 250 or more characters (previously 250 max) at POS Clienteling.
Hotels
Creating a Deposit Produces an Error Message on Transaction Header
This has been fixed by forcing to get the last transaction number from the Transaction table before making a deposit.
