LS Central 21.2 Release Notes

About This Release

Released - January 26, 2023

This version is built on Microsoft Dynamics 365 Business Central 2022, release wave 2, cumulative update 3, build 21.3.51409.51464.

New or Enhanced Features

Fixed Issues

Since version 18.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.

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 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

Franchise Module: Single Shipment Introduced

Single Shipment has been introduced to the Franchise module. A new field, Single Shipment, has been added in the partner setup as well as to the Franchise Sales and Purchase processes. Also, an option to send PO and PRO automatically when releasing the PO/PRO has been added.

Shopify Improvements

  • Information about missing product mapping has been added in an error message when an item does not exist.
  • XML data is now sent as metadata with product data. You can create metadata fields before or after items have been sent from LS Central. All fields should have namespace lsretail. and content type Single line text. This is set in Shopify Admin, Settings - Metadfields - Products.

Food & Beverages

New Setting for Self-Service Kiosk Currency

A new field, Currency Code in Kiosk, has been added in the Self-Service Kiosk FastTab in the Restaurant Card.
The system uses this field together with the language of the restaurant to select the correct number formatting in the kiosk. Both these fields are now mandatory for using the Self-Service Kiosk, even if the restaurant uses local currency.

Kitchen Display System

KDS OAuth

The Kitchen Service can authenticate to Business Central SaaS using OAuth authentication. The KDS now uses REST to connect to the Hardware Station and the REST client to access the OData web service protocols. Backwards compatibility with older SOAP services is available down to v.17.0.

LS Activity

Activity Manager: Overpayment Message Displayed

The message "Change back in last transaction is Cash <Amount>" is displayed on the POS when users return to Activity Host after guests have payed too much in cash for a reservation.

Cancellation and Deposit Policy Enhancements

The purpose of this functionality is to make it easy to offer that, in case of cancellations, reservation deposits will be used towards future reservations. This is to encourage customers to make bookings despite ever-changing restriction rules.
The member deposits functionality now acts as temporary "storage" for deposits in case of cancellation, which are then automatically pulled into a new reservation to the same client or member when a new reservation is confirmed. This makes for seamless transfer of deposits from canceled reservations to new future reservations, even if done via web bookings.

Deposit Amount Displayed in the Activity Web Template

Now the deposit amount is displayed for each reservation on the web templates in the Activity Host.

Editing Group Line Package Times

The user can now edit Package component times in a Group Reservation line. For example, if a user needs to adjust activities' starting time within a package, this can now be done simultaneously for all group members, whereas previously the user had to open every group member's reservation to edit the start time of activities within a package.

Enhancement in Updating Group Header Status

The handling of how group header status is updated, when a group line status is changed, has now been enhanced, and a new setup, Group Status Handling, has been added to the Status Setup card.

This setup has four options:

  • Default - when group line status is changed, only draft or confirm will update the header status.
  • No Header Update - the Group Reservation header is not updated.
  • Header Update - the Group Reservation header is updated with the new status.
  • Prompt User - prompt the user, if the Group Reservation header status should be updated.

Note: When status is changed from the main action pane (on the Group Reservation card), the Group Reservation header status is always updated. For developers and partners, published events have also been added to this process for easy custom changes on when the header is updated or not.

Event Reservations Enhancements

Now when users change the total number of persons (in the Persons field in the LS Reservation card), they are asked if they want to change all related drafted activity lines accordingly. The change is only assigned to activity lines that have status Draft and have an activity product that allows "no. of persons" assignment.

Note: Normally, this field is only visible and editable on event related reservations.

Functions Added to Hotel Integration

Functions have been added to the hotel integrations codeunit.

Matrix Day View: Error Message

In the Activity Matrix View, when users try to book an activity that lies in the past, the system now notifies the user with a message that this is not possible. In prior versions the system simply ignored the action without notifying the user.

Smart Automatic Allocation of Resources in LS Activity

A new setup has been added to the Product Resource Requirement, where the user can now define the Reserve Logic, which controls how the system automatically assigns resources to an activity appointment.

By default, this logic is based on the Selection Priority setup on resources and capabilities, but now the user can also define the logic to be based on the utilization percentage of the resource for the activity date. This enforces a more balanced assignment of resources to assignments, if needed. A new published event, which can be used to customize the automated assignment logic, has also been added.

LS Forecast

LS Forecast Restructured

LS Forecast has been restructured. The master data synchronization and all connections with the LS Forecast cloud app have been removed.

LS Central now depends on 3rd-party solutions to calculate and provide sales forecasts. LS Central holds the historical sales data and the master data. This data can be uploaded to an external demand forecasting engine. The produced forecast results can be stored in the table LS Forecast Entry in LS Central. LS Forecast Entries are used to calculate the amount of stock to replenish within a specified period.

Other functionalities, including Additional Dimensions and Item Suggestions, remain unchanged.

LS Hardware Station

Device Lock Configuration in Management Portal Has Been Changed

The Disable Device Lock in the Management Portal is now called Device Locking Enabled. The default value of the new property is the same as before, that is the device locking is not enabled. But the meaning of the property has been inverted, so if the device locking is enabled at a customer site, this new property needs to be updated accordingly.

Option Added to Print Test Strings

An option to print any test string has been added on the POS Printer card in Business Central and in the Hardware Station Management Portal.

LS Hotels

Hotel Housekeeping Rules and Tasks

Housekeeping feature has been implemented that supports issuing tasks according to relative housekeeping rules applied according to setup, either from Hotel Setup or Room Type Setup.

A new page, Room Housekeeping Tasks, is now accessible from the Housekeeping Status page (click the housekeeping tasks counters). The page shows how long tasks are estimated to take to complete along with the task list itself. For vacant rooms or rooms that have stayover, tasks are issued based on a day interval that is set up either from Housekeeping Tasks or Housekeeping Rules. Priority rooms (rooms that have check-out and check-in on the same day), get a combined list from the check-in housekeeping rule and the check-out housekeeping rule (if both rules are used). This task list shows tasks that should be performed today.

Housekeeping job is updated to maintain this task list for each day, based on the status of the reservations and the status of the room.

Hotel Invoice Management Pages Removed from Business CentralSearch

The following card pages have been removed from the Business Central search, because they are accessible through lists:

  • Cancellation policy card
  • Rate code
  • Reservation payment type
  • Rate Code Price Config Card
  • Room Type
  • Room Card
  • Room Rate
  • Add Reservation to Group
  • Bar Grid Card
  • Deposit Amount and Payment
  • Hotel Group Reservation
  • Hotel Package
  • Hotel Reservation Type Card
  • Hotel Restriction Entry
  • Housekeeping Rule
  • Rate Change Card
  • Rate Change Group
  • Routing Rule

Hotel Invoice Update

The Hotel Invoice has been updated to be consistent with the change in Invoice Management, now that each hotel reservation can have multiple customers and invoices.

Information Added to LS Hotels Issue Logging

Information has been added to the Export to Excel logging action which is available on the Reservation card. This includes Detailed Revenue Entry, Transaction Header, Sales Header and lines, Sales Invoice and lines, and finally extensions published by LS Retail.

Information Icon Added to Tape Chart

An information icon has been added to the Tape Chart. Hovering displays a list and a short description of all icons that are used on the chart.

Invoice and Transaction Summary - New Page

Invoice and Transaction Summary is a new page showing an overview of invoiced, paid, and unpaid revenue entries.

LS Hotels Setup Documentation Added to LS Central Help

Setup documentation has been added to the LS Central Help, see Setting Up Hotels.

Multiple Customers to Pay on a Reservation

It is now possible to have multiple customers on a hotel reservation. Each charge line (DRE) has a Payer No. that is used to select lines into invoices in BackOffice and on the POS.

Restriction Name Added in Warning Description

The restriction name is now displayed in the warning or error message for restriction types Stop, Sell Limit, Closed Departure, and Closed Arrival.

Replenishment

Parallel Processes Now Available for Manual Replenishment Journal Calculation

Parallel calculation can be enabled for the Purchase and Transfer Replenishment Journal and this applies always to the scheduler-based calculation. You now have the option to also enable the parallel calculation process for the Replenishment Journals when they are being calculated manually.

For more information see Parallel Replenishment Journal Calculation in the LS Central Help.

Vendor Lead Time per Destination Location

You can now specify a different lead time for the vendor when delivering to different destination locations. This lead time value is used in Replenishment Journal calculation, and when the setup exists on the location level, it will take precedence over the lead time settings in the Item Vendor Catalog and the Vendor Card.

You also have the option to consider this new lead time setting in the Purchase Order, which will be used to calculate the Expected Receipt Date of the items.

For more information see Vendor Lead Time per Destination Location in the LS Central Help.

Fixed Issues

LS Central

Comp. Price Incl. VAT not Updated in Sales Price List Page

Comp. Price Incl. VAT is now populated after populating Unit Price Including VAT.

Customer Gets Both Cash and Credit Memo

This has been fixed by using Statement Post creation of Customer Ledger Entries when selling an item and using a higher deposit than the sold item and refunding on the POS.

Hard-coded Decimal Places

Inconsistently hard-coded decimal places have been changed to autoformat.

Incorrect Sales Quantity Calculation

Sales Quantity is now calculated based on Invoiced Quantity.

Issues When Creating SPG Orders

  • An overflow issue with Customer Order: External ID when creating SPG orders has been fixed.
  • Changes done to creation of Transaction for Sales Order posting.

OAuth in On-premises Multitenant LS Central Implementation

Login URL field has been added to the Advanced FastTab on the Web Service Setup page to set up on-premises S2S.

Permissions to Tenant Media in SaaS

Indirect permissions have been added to Media Tenant.

Post as Shipment

When "Post as Shipment" is used, a CLE is created with zero line to connect the transaction to the SO. The zero CLE line was created with value in the field Sales(LCY). That should have been zero. This has now been fixed.

Price in Shipment Charge

It is not possible to finalize a Customer Order with 0 amount in the Shipment Charge item. To allow this, the field LSC Zero Price Valid must be set to true in the item table for the Shipment Charge Item.

Retail Image List - only 20 in characters in file name

Retail Image Import/Export now uses the full file name in the Description field. An option has been added to have the Retail Images use Number series. Number series is used for Retail Image.Code if the Retail Setup.Retail Image Nos. is filled. If not, it uses the first 20 characters of the file name like before.

Rounding Amount on Customer Order Payment

A bug has been fixed where suspended transactions were not filtered out in calculation of Customer Order totals.

Sales Price List Issues

Events were added to populate LS extra fields on Sales price. Autotest were added to make sure the fields keep being populated (new feature only).

ScanPayGo: Canceling an SPG Order

It is now possible to cancel an SPG order, even with no SPG license.

Shopify: Prices and Region

XML value check has been added on decimal values from Shopify.

Table WS Request Log: Record Already Exists

Record locking will now be avoided in the WS Request Log table. Two or more web services can now add to the log simultaneously.

Fashion

Issue With Item Variants in Store Inventory Worksheets

When entering the quantity for an item with variants in the Store Inventory Journal opened from the Store Inventory Worksheets, the quantity was assigned to non-existent variants in the Dimension Matrix. This has now been fixed.

Food and Beverages

Seating Guests Not Possible After Allocating Tables to a Walk-in Reservation

Status handling after tables have been allocated has been fixed for both timeline and graphical view. Seating reserved guests is fixed also.

Table Cannot Be Seated in Store S0005

Fix has been created for seating tables - when checking an overlap and after opening the Allocation panel.

LS Central POS

Drawer Block Pop-up Closes Before the Drawer Is Closed

When the drawer alert type is enabled to block in the hardware profile, the transaction is done in the POS. When the drawer is open, it shows the "Drawer open alert" message on the screen and stays there until the drawer is closed.

Hospitality POS With Two Graphical Layout Hospitality Types

When switching between two hospitality types with graphical layouts with different numbers of dining tables, for example 12 and 30, the system always showed 30 dining table buttons. This has been fixed so that the system now shows one button per dining table (12 and 30 respectively).

POS Terminal Card: Computer Name in Capitals

An issue has been fixed that caused the terminal computer validation to be case sensitive.

Web Template Issue in Purchase History

An issue has been fixed that caused the purchase history details to not be displayed when expanding from the arrow.

Replenishment

Issue With Effective Inventory Settings on the Location Card

An issue where the Effective Inventory calculation in Replenishment was ignoring the Effective Inv. Sales Order, Effective Inv. Purchase Ord., Effective Inv. Transfer Inb., and Effective Inv. Transfer Outb. settings on the Location Card, has now been fixed.

Missing Tiles in LS Replenishment Role Center

In the SaaS environment, an issue where some tiles were missing in the LS Replenishment Role Center has now been fixed.