LS Central 22.0 Release Notes

About This Release

Released - May 25, 2023

This version is built on Microsoft Dynamics 365 Business Central 2023, release wave 1, cumulative update 1, 22.1.55890.56216.

Important Notices! 

New or Enhanced Features

Fixed Issues

Hotfixes

Important Notices! 

For information about breaking changes in previous releases, click here.

LS Central Universal Code Compliant

LS Central is now Universal Code compliant. This means that the property Target in the app.json files for the LS Central and LS Central System apps has been set to Cloud.

Customers who have the granule Implemented code is not cloud-optimized in their license can ask for this granule to be removed, once they have upgraded to LS Central 22.0, unless there are other extensions installed that are not Universal Code compliant.

Deprecation of Windows Authentication for Web Services

Windows authentication for web services has been deprecated. The Windows authentication was based on Business Central Windows authentication code. The Business Central Windows authentication code is marked as OnPrem and can therefore not be used by Universal Code compliant applications. This does not affect 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 for web services before upgrading to version 22.0.

See How to: Set Up Basic Authentication for Web Services in the LS Central Help for instructions.

Obsolete Code Marked With Tag 20.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 22.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')], have become internal, unless otherwise requested.

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.

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.

New or Enhanced Features

LS Central

LS Central

Customer Order on hold functionality improved

When in picking mode, a Customer Order can now be put on hold. This will prevent other users from picking the same order. Orders are automatically closed when picking starts and released when picking is done or canceled. If Put on Hold, then only the terminal that puts the order on hold can continue the picking process.

Github: Variable size and background task error fixed

  • Variable size was changed to avoid overflow errors.
  • GuiAllowed was added to skip a message on background processes.

New field in Retail Sales Order Card

A new field, Customer Order Ship Order, has been added to the Retail Sales Order Card. The field is populated when a Sales Order is created from a Customer Order.

Response code for MemberLogon web service

The response code for MemberLogon web service has been improved.

Error code values are:

  • 0099 /Unidentified Server Error (check Event Viewer on Server)
  • 0131 LoginIDOrPasswordIncorrectTxt
  • 1101 LoginIDNotFoundTxt
  • 1160 LoginIDIsNotAMemberTxt

Terms and Conditions Acceptance for SPG (ScanPayGo)

Two new web services have been created:

  • SPGSetTermsPolicyAcceptance - to insert records in a new table, "LSC SPG Terms Policy Accep.Log".
  • SPGGetTermsPolicyAcceptance - to read records from the new table.

A new page, LSC SPG Terms Policy Accep.Log, was also created to see the records in BC.

XML port element to table/field mapping

A codeunit was created that holds the XML port field element mapping to table and fields. A script that updates the code was also created.

POS 

Retail image changes: follow-up

POS Controls now use RetailImageLink with LinkType::Image to reference images, instead of lsmedia:// urls.

This means that the properties of the controls are now obsolete, so the same data is not being stored in multiple places, as it could easily go out of sync.

  • If you were using the fields in AL code to store image URLs on temporary POS control records, you can use PosSession.SetImage instead, to assign the first image from a RecordId to be displayed on a POS control.
  • If you were fetching images for POS Web Templates, you can now use PosSession.AddWebTemplateImage to make sure the image is available from javascript, via LS.GetImageUrl.

Replenishment

Item Import Journal improvements

The Retail Product Code field has been added to the LSC Item Import File Data table, to make it possible for you to import the Retail Product Code field into the Item Import Journal using the item import file.
Additionally, if the item added to the Item Import Journal is an existing item in the system, the journal will automatically retrieve the Retail Product Code of the item, if it is not already filled out in the journal.

Replenishment Out of Stock functionality improvements

The Out of Stock functionality in Replenishment has been enhanced, and features were added that will improve your experience in visualizing the out of stock data.

Improved Out of Stock data maintenance

You now have the option to only perform Out of Stock calculation for items and locations that are active for Replenishment. You can enable the option by using the OOS Calc. Scope setting in the Replen. Setup page, and when the Advanced option is selected, only items and locations that are set up for Replenishment calculation will be included in the Out of Stock calculation.
So if a store location does not have a valid Item Distribution setup, for instance, it is excluded from the Out of Stock calculation result.

Also, you can now delete the old and outdated out of stock data in the system, either for those that are still open or are already resolved.

Enhanced visualization of the Out of Stock data

The Replenishment Out of Stock Overview page has been added to show grouped information of the out of stock situations. You can set up the page to give an overview of the out of stock situations based on various parameters and filters, such as for a specific item category, product group, or location. The overview can be grouped by data that focus on out of stock situations that have started, ended, or were ongoing in a specific period of time.

A series of Replenishment Out of Stock Overview Charts has also been introduced. You can use the charts to visualize how the out of stock situations are distributed across the different item groups and locations. Moreover, you can now easily access the Replenishment Sales Chart from the Replen. Out of Stock Days page, which shows the sales pattern as well as the inventory movement and out of stock status for the selected item, variant, and location over a specified period of time.

For more information see Replenishment Out of Stock Days in the LS Central Help.

Restaurants

HTML information for deals

An HTML interface has been added to deals.

LS Central Modules

Bookings for LS Central

Activity member comments implemented

The Activity client (member contact) comments have been replaced by the new comment structure.

New setup for activity group booking and assigning group members

A setup has been added on the Reservation Type (section Group Settings), which is Group member assignment. This setting defines how the automatic assignments of the group members is done, when a group reservation is confirmed and group members have not previously been assigned by the user. By default (as before), the assignment starts based on the first group member for each group line. The new setup allows the user to set the logic to also start based on Next group member, which basically starts the assignment on the first line based on the first member, and then continues with the next, one per line.

Support for depositing APIs in SOAP

Depositing APIs for payment and refunding deposits has been added to the Activity Soap API. This deposit method does not require Customer Orders and issues the deposits by issuing POS receipts.

Forecourt for LS Central

Forecourt upgrade

Forecourt for LS Central has been upgraded and is released for On-premises in version 22.0. In version 22.1 Forecourt will be available for SaaS.

The Forecourt module is a separate extension that includes functionality for the POS to communicate to pumps through the Hardware Station and sell fuel items. This is the functionality that was previously in the Forecourt Manager for the Windows POS. The connection to Forecourt controller that was previously implemented in a DLL is now through the Hardware Station where a special implementation is needed for each type of Forecourt controller.

Hotels for LS Central

Hotels for LS Central is a separate app extending LS Central.

Folio management

Now Invoice management supports folio distribution to organize payers for reservation charges. Invoice type and payer are defined in the Reservation Folio, and Revenue Entries are assigned to Folios.

Member enhancements in Hotels to improve alignment withLS Central

CreateDefaultHotelGuest was removed from hotel initialization, and member related tables (Member Management Setup, Member Club, and Member Scheme) were removed from the configuration package HTL-Process... Two number series were removed, H-M-C and MEMHOT.

New fields, Store No. and Terminal No., added to DRE for charges transactions

Two new fields have been added to Detailed Revenue Entry table and related pages, Room Charge Store No.. and Room Charge POS Terminal No.. This populates the Store No. and Terminal No. where the charge is coming from.

Progress chart added to Front Desk and Housekeeping Role Centers

A Progress Chart has been added to the Front Desk Role Center and the Housekeeping Role Center to graphically show the progress of arrivals and departures for the workday.

Work Date instead of Today

Work date is now used instead of Today in Hotels, so the PMS will function normally when the work date is changed.

Pharmacy for LS Central

Pharmacy for LS Central is a separate app extending LS Central.

FMD process temporarily disabled

The field Medicine Verification Active in the Pharmacy Setup page has been temporarily disabled in AL.

Insurance document checked when a production is deleted

The system now checks if an Insurance Invoice for a Dispense Production has been submitted when the production is deleted. If that is the case, the user is alerted.

Line Discount functionality in AL

The Line Discount functionality has been updated in AL.

Pharmacy Item Card and List updated with new Sales and Purchase Price experience

A new Sales and Purchase Price experience has been enabled for the Pharmacy Item Card and List.

Substitution item in a dispense order with a different strength unit

It is now possible to use a substitution item in a dispense order. When this is reported to the gateway, a conversion is made to the issued item, so the prescription always shows the correct remaining quantity.

Supporting Functionality

Hardware Station for LS Central

Printing test strings

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

Kitchen Display System for LS Central

KDS OAUTH: Request created for the web service

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

New fields added to CHITs in KDS

The following fields have been added to the fields that can be displayed on the chit in the kitchen:

  • PhoneNo
  • OrderID
  • TableNo
  • CustomerName

Other

POS Commands

The following POS commands are obsoleted in LS Central 22.0:

Command   Command
FAB-CONTINFO-INPUT   TD_BAGNO
FAB-OPENPOS   TD_BANK
ITEMPIC   TD_CLEAR
LINEMSG   TD_COUNTED
MEMBERCARDREAD   TD_DECLARE
MODMENU   TD_FLOAT
MSGPOSACT   TD_POST
OPERATOR   TD_PRINT
POPUPSERIAL   TD_SAFE
PUTBACK   TEST_WEBSERVICE
QTYREASON   TR-RSERVATIONFUNC
REJECT   TR-RSET_PANEL
RESMATRIX   UPDATE
ROUND_TGL   VIEW_CUST_OPEN_INV
SELLMATRIX2   ZERO_CHK
STATE   ZOOM_TABLE
TAKEOUT-FAB-FILTER    

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

Commerce Scheduler Job Error

COMMERCE Scheduler job error was fixed.

Customer No. does not appear in Customer Order

  • Customer number and name not appearing in a Customer Order when collecting on a POS has been fixed.
  • Changes done to Navigate in Posted Statements to show more related records.
  • A new setup field, Create CLE for Web Customer has been added to the Store card. The field specifies whether to create Customer Ledger Entries for transactions that relate to the Web Store Customer No. on the Store card.

Discount offers and price groups

A new field, Disc. Type, was added to the Discount Offer Lines page.

Incorrect Sales Quantity calculation

Sales Quantity is now calculated based on Invoiced Quantity.

Issue in eCommerce Shopify in LS Central - Members Code field length

Processing length for data has been fixed.

LSC License Certification Company Filter

LSC License, a company filter has been added when searching for a valid certificate.

Members and infocode

Code added to check for an infocode when a retail customer is linked to a member.

Member Sales Buffer Number of Items

A new field, Quantity, was added to hold Number of Items in decimal format.

Member Sales Buffer Sort Order

Member Sales Buffer Sort Order has been fixed.

Processing multiple deletes with distribution

The system no longer checks the variable ProcOnlyDelete to decide if the repeat-until loop should continue or not when replicating distribution groups.

Retail Picking cannot be posted

If the Default Qty. to Receive field in the Purchases & Payables Setup is Blank, the Return Qty. to Ship in the Purchase Return Order (create) will be the same as the Quantity.

Scheduler jobs with exclude list ingnore Active for Replication

The Scheduler job distribution exclude list has been fixed.

Support for duration fields in web services used in replication

Support for data type duration has been added.

Web Replication stopped working - Wholesale to Retail

A fix was released to refresh the used token for long requests.

WS Request Log table

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

POS

Deleting a Menu Line does not hide the line in the POS

An issue has been fixed that caused the removal of a button from the Menu Properties to not update the POS UI.

Error when clicking #HEADER, #INFO-1, or #INFO-2 during selection of Discount Infocode

An issue that allowed the user to select more than one option in a single selection pop-up or lookup control has been fixed.

MEMBERLARGE POS Web Template Issue on Purchase History

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

POS browser returns to English when another language is selected

When refreshing the POS (browser), the DateTime format should remain in the chosen language. This has been fixed.

Replenishment

Incorrect date of first sales retrieved for items

When creating Sales History Adjustment entries using the Replen. Sales History Adjustment Calculation Rules, an issue has been fixed where the wrong date of first sales was retrieved for the item when the first Item Ledger Entry of the item has an Entry Type of Transfer.

Replen. Item Quantities calculation issue in Add Items to Replenishm. Jrnl. Report

When the Calculate Inventory option is selected, and the Vendor No. filter is defined in the Add Items to Replenishm. Jrnl. report via Purchase Replenishment Journal, Transfer Replenishment Journal, or Redistribution Replenishment Journal, the system was applying the filter strictly based on Item level setup, thus causing the Replen. Item Quantities not being calculated for items with a different Vendor No. setup on their Item Store Records. This has now been fixed.

Restaurants

Seated status image missing for table in P0011

Seated status image is now shown after seating the table.

LS Central Modules

Bookings for LS Central

Time zone setting of the BC user affecting reserved time for resources

Previous versions of the Booking module could only have users making appointments within their time zone. Also, the web service API for bookings could only make correct bookings within the time zone setting of the service tier. This has been changed so the module can now support users and web services to book at activity locations in different time zones.

Hotels for LS Central

Discount not applied in Upgrade Reservation page

There was a bug in getting discounts when the reservation rate code was changed. Now, when the rate code is changed, the system checks if the old discount is still applicable, or if new discounts are available. In case there are multiple discounts available, the user should manually select the discount to apply.

Deposit Policy page for groups unviewable

Captions in the Deposit Payment" page were updated according to what is used in the Invoice Management FactBox, and the Deposit Paid Amount field was added to the page to show the sum of deposits paid until then.

Filters in the Deposit Due page were fixed for reservations belonging to a Group Reservation. The filtering was on Group Res No. instead of Reservation No..

Pharmacy for LS Central

Agent header in FMD requests

User agent header was added to FMD request.

Dispense line GetLineQuantity not working if Dispense group is for Month

The Dispense Order Lines FactBox now shows Line Quantity based on Delivery location dispense period and dispense group settings.

H-Prescription:  price should not be on the receipt or line display

The amount and the insurance payment values are now set as 0, when taking an H-Prescription to POS.

Purpose text on prescriptions too short

The field size has been changed.

Hotfixes

See the LS Central Help for information about hotfixes that have been released since the previous release.