LS Central 17.0 Release Notes
About This Release
Released - November 26, 2020
This version is built on Microsoft Dynamics 365 Business Central 2020 release wave 2, build 17.0.16993.0.
Discontinuation of LS Nav
LS Retail policy for LS Central is that new features and fixes go into the next new release, not previous releases. When LS Central 15.0, the first AL version, was released, it was decided to make an exception to this by continuing to release fixes and new events in LS Nav 14.x for a limited time. Now the time has come to end this exception. The last version of LS Nav 14, version 14.04, will be released in December 2020.
All open support tickets related to versions prior to LS Central 15.0, that is all tickets related to LS Nav, will be closed. Partners can submit new tickets for LS Central if the issue still applies there.
LS Central 17.0
LS Central 17.0 is delivered as an extension with dependency on the Business Central Base App. This means that LS Central does not make any changes to the Business Central Base Application. The release package includes both the runtime app and the source code.
LS Central AL code
The source code 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, there is a special section in our Support Portal (login required) where partners can submit requests for new events. These requests are given priority.
LS Central extension
The release package includes LS Central as a runtime app that can be installed as an extension. To install the extension, you first need to publish it, see Publishing and Installing an Extension v2.0. Once the extension has been published, the LS Central extension can be installed using the Extension Management page in Business Central.
The following is a list of changes and key features in LS Central 17.0.
New or Enhanced Features
Retail
New Option to Send Transactions from the POS Using Web Replication
LS Central has a web replication way to send transactions from the POS using Web Request SendTransaction version 2.
In LS Central 17.0 a new option has been added using Web Requests directly.
This new option is:
- More general, no definition is needed for the fields since by default all fields are included.
- Easier to extend.
- Not as fast as the other option.
Additionally, this new option provides an event that makes it easy to add tables to the process queue. All fields for the additional tables are included by default as well.
To activate this option, change the following on the POS Functionality Profile Card, the Service Settings FastTab:
-
Enable the Use Background Session option. Enabling is mandatory in order to use this type of Web Replication method.
-
Enable the Use Web Replication option.
Other setup
The new Use Web Replication flag replaces the normal SendTransaction web request, and depends on the same fundamental setup, such as whether this service is active, where to connect to, and so on.
Note: This new option depends on the newly introduced Web Replication module, which is composed of four web requests: REPL_START_PACKET, WEB_REPL_ADD_TABLE, WEB_REPL_EXE_PACKET, and WEB_REPL_END_PACKET.
How to extend this web replication method
Subscribe to event OnAfterLoadTransactionTables in codeunit 99009519 Web Request Data Mgt, and add new table data. Here an example of such code (here based on the LS Central Trans. Sales Entry table):
//Trans. Sales Entry
TransSalesEntry.SETRANGE("Store No.", TransactionHeaderTemp."Store No.");
TransSalesEntry.SETRANGE("POS Terminal No.", TransactionHeaderTemp."POS Terminal No.");
TransSalesEntry.SETRANGE("Transaction No.", TransactionHeaderTemp."Transaction No.");
RecRef.GETTABLE(TransSalesEntry);
WebRequestFunctions.LoadTableData(RecRef, BufferUtility);
Web Replication Clean Up
The new SendTransaction option will affect how data is loaded.
Until now, extending the data load has been defined through the published event OnAfterLoadTransactionTables in codeunit SendTransactionUtils (10033046). After this change, this will be through the published event OnAfterLoadTransactionTables (same name) but in codeunit Web Request Data Mgt. (99009519).
This will only affect those who have already extended the SendTransaction request by using this event. The change is necessary to eliminate duplicate code to handle this load.
BackOffice
Basket Calculation for Customers
eCommerce now supports customer-based price calculation.
When calculating a basket that provides a member card number and the card is linked to a member account where the account is linked to a customer, the web store customer number is substituted with the linked customer number. Therefore, the basket calculation will be based on the linked customer, and not the web store customer.
Fields Removed or Renamed
The field Mobile Phone No. was added to the Customer table in BC Base app version 17. There was a field with the same name in the LS Central Customer Extension table. This field has been renamed to LSC Mobile Phone No. and obsoleted. Data is copied from the extension table to the BC Base table.
The field Statement No. in table extension for Gen. Journal Line has been renamed LSC Statement No., since Microsoft added the Statement No. field to its standard table.
New eCommerce Return Policy Web Service
A new web service has been created to return a "Return Policy" per Store, Item Category, Product Group, Item, or Item Variant.
LS Central POS
Enhancements in POS Hardware Profile
Detect Hardware
The Detect Hardware functionality has been changed to never overwrite existing devices. Now if a device was previously added to the Hardware Profile using the Detect Hardware action, the device is left untouched by the user running the Detect Hardware action again. This means that if any properties were changed after the device was created, they will remain as they are.
If a device was manually created and added manually to the Hardware Station (not created automatically by the Detect Hardware action), the device will not be updated or removed by the Detect Hardware action at all.
Update Hardware Station Host
A new action, Update Hardware Station Host, has been added to the Hardware Profile where the user can update all devices on the Hardware Profile to have the same Hardware Station Host as is currently on the Hardware Profile.
PreAuth Functions and Payment Token Support Implemented in EFT
EFT functionality has been updated to create and handle Pre-Authorizations on the POS.
PreAuths will show on the POS Journal and can be voided/cancelled, updated, or finalized on the POS with the new POS commands supplied, PREAUTH, PREAUTH-FINALIZE, and PREAUTH-UPDATE.
With PREAUTH-FINALIZE, a Pre-Auth is converted to a payment. The amount can only be lowered and will be lowered by the POS if the transaction balance is lower than the Pre-Auth amount.
The EFT functionality now supports payment tokens. When a token is returned in an EFT transaction, it is stored in LS Central. If a payment token is available, it is sent with EFT commands and can be used by the PSP that is connected to LS Pay. This functionality is subject to the functional availability of the PSP used.
Removal of POS DLLs: LSContextModel and LSDataSet
All usage of the LSContextModel/LSContextModelCollection DotNet symbols in AL have been refactored with the "POS Context" codeunit or alternative Json/Text representation in the same places.
The global POS Context for the currently running POS has been unified into a single-source-of-truth.
So all these methods, along with the context in the POS itself, end up in the same place which decides what to show, for example in a button description with a POS Tag:
POSCtrl.SetValue
POSCtrl.GetValue
POSCtrl.ClearValue
POSSession.SetValue
POSSession.GetValue
POSSession.DeleteValue
POSCtrl.DeleteDataByTag
POSCtrl.UpdatePosContext
POSCtrl.AddContext (does the same as UpdatePosContext now)
POSCtrl.SendContext (does the same as UpdatePosContext now)
POSContext.SendToPOS (removed, use POSCtrl.UpdatePOSContext instead)
POSView.GetContext (removed and not recommended)
POSSession.GetContext (renamed to POSSession.UpdateContext and not recommended)
POSTransaction.UpdateContext (not recommended)
All usage of the LSDataSet/LSDataSetCollection DotNet symbols in AL were replaced with the LSDataSet/LSDataSetCollection Codeunits.
So DotNet LSDataSet becomes Codeunit LSDataSet and DotNet LSDataSetCollection becomes Codeunit LSDataSetCollection.
Simplified Modal Functions
Modal functions have been simplified in the EPOS Control Interface codeunit. They no longer return any values, since AL cannot wait for any input from the web client (it is async).
This results in the following breaking changes:
- All calls to ShowPanelModal that use its return value will need to be refactored.
Examples of these cases are when the return value is used:
- in conditional statements (if/case):
if not PosCtrl.ShowPanelModal(…) then exit;
becomes:
PosCtrl.ShowPanelModal(…);
exit;
– as a return value (exit parameter):
exit(PosCtrl.ShowPanelModal(…));
becomes:
PosCtrl.ShowPanelModal(…);
exit(false);
– in a boolean variable assignment:
b := PosCtrl.ShowPanelModal(…); // where b: Boolean
becomes:
PosCtrl.ShowPanelModal(…);
b := false;
- The following methods are now obsolete and will soon be removed; they all have a simpler alternative:
ShowPanelModalWithPayload
OpenNumericKeyboard with return valueOpenNumericKeyboardEx
OpenAlphabeticKeyboardExe
OpenAlphabeticKeyboardEx
OpenAlphabeticKeyboard with return value
OpenAlphabeticKeyboardWithPasswordchar
OpenCalendar with return value
OpenCalendarEx
Using the return values has been discouraged since LS Retail started using the Web Client in LS Nav 2015.
The recommended pattern is that opening a modal should be the last thing your procedures do.
Any following logic should be caused by subscribing to the EPOS Controler codeunit’s OnXXXXResult integration events, for example OnModalPanelResult.
LS Forecast
LS Forecast Calculation with Variant Grouping
Item Variants Forecast Calculation on Group Level
You now have the option to define if the LS Forecast calculation should be performed on each combination of item, variant, and location. Or, if you would like the variants from the same item to be calculated as a group. The latter option reduces the number of combinations and forecast calculations, as LS Forecast will look into the sales history and predict future sales trend of the variants as an aggregation. This option can be activated using the LS Forecast Variant Grouping setting in the Item's Replenishment Control Data page.
For more information see How to: Set Up Items for LS Forecast in the LS Central Help.
Breakdown of Group Forecast Results with Variant Sales Bucket
When the group forecast result is downloaded from LS Forecast into LS Central, the result will be broken down to variant level using the Variant Sales Bucket. These buckets provide an overview of the item's variants sales distribution pattern, which is calculated using the historical sales data of the variants for a specific location, or for all locations. The post-breakdown forecast entries will be used in Replenishment Journal calculation.
For more information see Variant Sales Bucket Calculation in the LS Central Help.
LS Hardware Station
NLog Replaces LS Log
A new logger was added to LS Hardware Station. Log messages are now more detailed and less likely to have concurrency issues with the main program. This makes it easier to find the cause of any issues.
Printing Enhancements
Printing through EFT devices via LS Pay has been added to the LS Hardware Station by the implementation of the PrintAsync from LS Pay API.
Scale Device Added to LS Hardware Station
The scale device has been added to the LS Hardware Station and the functionality of weighing scale items through the LS Central POS has been reintroduced to the LS Central solution. The online help topics on scale functionality and LS Hardware Station setup have been updated as well.
For more information see How To Set Up Scale Device, How to Set Up Virtual Scale for POS, and How to Set Up LS Hardware Station in the LS Central Help.
The scale functionality is as it was before in the POS with some minor changes:
- The scale device is now configured in the POS Scale List and added to the Hardware Profile (the same as other devices).
- If the scale should calculate the tare into the weight that is returned, the Tare Calculation option on the Scale Device Card must be turned on. Note: This configuration is the opposite to how it was before.
- New configuration was added to the POS Functionality Profile, called Pad Multiple Items Symbol. It can be used when deciding how the item sale information should be formatted to the customer through Line display or printed receipts.
- Print compression now listens to a "Manual weight" flag and does not compress those items with scale weighted items.
- The Virtual scale in the LS Hardware Station has been updated and reflects now more functionality that is possible in actual scales.
Note: This implementation has not been certified. We are currently working on the European certification and will send out an announcement once the certification is finished. For other countries, the process will be similar as with previous versions.
Hospitality
LS Activity
Set Currency Code for Activity Module
If there is a need to operate with activity and reservation prices in other currencies than the accounting currency, it is now possible to set a currency code in the Activity Setup card.
The POSs associated with the activity entries must be based on the same currency as this Activity currency. Reservations can be set in a specific currency for quotes and invoices and a new tile has been added to the FactBox to show the balance in the reservation currency.
Apply Standard BC Customer Discounts to Activities
If the customer that is added to a reservation has any discounts set up for the Activity products, these are now applied to the activity.
Group Enhancements
Sometimes it is not necessary to expand a group reservation to individual reservations for each group member - this makes it possible to create "common" activities for the group. Therefore, a new option has been added to the reservation types, Group Reservation Expanding, which controls if the group only expands to the paymaster and not to individual bookings.
Matrix Enhancements
To improve the usability of the matrix, new options to Check Resource schedule have been added in the Matrix Template Card:
- No - (default)
- Yes - Removes resources without schedule (that is opening hours, scheduled, staff man schedule) from the resource list, and also for Qty based resources, it removes intervals with no scheduled qty.
- Per Day - removes resources without schedule only (see information on the Yes option)
- Per Interval - removes qty based resources from interval only (see information on the Yes option).
New possibility has been added to control the resource captions in the Matrix by adding a Resource Caption Script on the Matrix Template Card. Set the script to show the Resource caption - leave blank for default handling. Note: Only fields from the Activity Resource table are valid in the caption script.
New Activity Events
The following events have been added to LS Activity:
- OnBeforePOSCommand
- OnAfterPOSCommand
- OnBeforeChargeToReservation
- OnBeforeFindPrice
Product Search
The product search has been improved, so it is now possible to set an Activity Type criteria on the Activity Start Booking page to narrow the products listed on the page.
It is also possible to add search tags to the activity products and these can be used to search for products using the standard BC search. There is also a new action, Keep Search, which will keep the search word in the search criteria and then it is possible to add another search text to further narrow the search.
Reservation Enhancements
-
It is now possible to use the standard Attach Document process to attach documents to the Reservations and Group Reservations.
-
New setting on the Reservation Type to show Task Schedule as a Fast Tab on the Reservation Card.
-
New settings in Activity Setup: Always Create New Members, Default Member Club. This will create a new member in the default member club, if name and either phone or email are populated for activity, reservation, or group members but no member contact assigned, then create a new member contact automatically during entry.
-
It is also possible to search for both phone and email in the Name field on the Reservation Card and the Activity Card - this only works if the Contact No. field is blank.
Resource Enhancements
Sometimes a resource does not have the capability of the product when assigned as required resource - now the user is prompted, if the systems should assign the capability automatically instead of having to do that manually.
LS Central for Hotels
Customer Discounts
If the customer that is added to a reservation has some discounts set up for the accommodation products, then these are applied to the reservation.
Hotel Group Reservations (also with Activity Groups)
The Guest List for Hotel groups has been enhanced, so it is always up-to-date when groups are changed. The guest list is also synchronized with the Activity Group Member list, if LS Activity is used with LS Hotels to keep track of Activity Group reservations.
Hotel Price Management Enhancements
It is now possible to manually override the price for the rooms in the Invoice Management page. If a night audit job has been run on lines that are being changed, the system will create the necessary corrections on the temporary accounts used in the night audit process.
Rate Code Enhancements
The Rate Codes have been changed to contain Rate Code Attributes - this replaces the Breakfast Package and Hotel Package previously on the rate codes. Now it is possible to set Rate Code Attributes that can be items, packages (hotel packages), and/or Activity products (if using LS Activity). These attributes are then added to the reservation based on the posting pattern set on the attribute. If an activity package is set with a daily posting pattern on a rate code, then all of the activities within that package are created when you confirm a hotel reservation.
Hotel Rate Codes can be defined in other currencies than the base LCY. Note: The Rate Code is set in a specific currency, but it is converted to the LCY Currency on the reservation.
Reservation Enhancements
It is now possible to use the standard Attach Document process to attach documents to Reservations and Group Reservations.
A new setting on the Reservation Type shows Reservation Comments as a Fast Tab on the Reservation Card. The same Task management framework as in LS Activity is now also available in LS Central for hotels. Tasks can be set up for Reservation Types, Room Types, and Rate Codes that are created when a reservation is made. The tasks are shown as a tile in the Role Center and when clicked the task list opens.
The Cancellation policy that is on the Rate Code is now copied to the reservation when confirmed.
It is now possible to create a reservation with a guest without an email - the system still creates a member contact but without an email.
Restrictions, New Field
A new field has been added on the Restriction page to enforce restrictions. If you select this field, the action is not allowed; otherwise, users get a warning message and can bypass the restriction.
Role Center
The No Show tile in the Role Center has been set to show the No Shows for the past three days.
Tape Chart (Calendar View) Enhancements
It is now possible to view unallocated reservations on the Tape Chart and allocate them by dragging and dropping to a room. The panel for unallocated reservations is visible, if there are unallocated reservations for the dates that the Tape Chart is showing. If there are no unallocated reservations, the panel is hidden.
You can also drag and drop reservations from one date to another. If the change involves a change in price, the Rate Change page will open for you to review and confirm the change.
The Tape Chart can now be sorted and filtered on Room Type.
LS Central for Restaurants
Enhancements to the Reservation Desk and Allocation Panel
The Reservation Desk and Allocation Panel have been further enhanced for improved process flow and usability. Open reservations can be set as No-Show and there is an improved flow on Canceling Reservations and Waitlist entries. If a reservation is canceled or moved, the waitlist is checked so the user can move a waitlist entry to a reservation.
Change Sales Type by Selection
It is now possible to set a different Sales Type on a transaction or item by a selection from a pop-up. This is done by leaving the parameter field empty for the following POS commands:
- CHSALESTYPE_TRANS
- CHSALESTYPE_LINES
- SETSALESTYPE_TRANS
- SETSALESTYPE_LINES
Web Templates for Reservation Preferences
New POS web templates have been added, DR-Member and DR-Member-Large, to the Reservation Desk and to the POS layouts for S0005. These web templates show the reservation preferences made at the Reservation desk and these preferences are then visible on the POS when serving the customer.
POS Commands
The following POS commands are new in LS Central 17.0:
- PICK_ALL - Customer Order Pick all lines
- PICK_LINE - Customer Order Pick line
- PREAUTH - Pre-authorize payment with card
- PREAUTH-FINALIZE - Finalize a Pre-authorized payment with card
- PREAUTH-UPDATE - Update Pre-authorized payment with card
- TOOLTIP - Request tooltip data on hover
- TOOLTIP_TOGGLE - Enable/disable tooltips (disabled by default)
- TR-R-LIST_SHOW_ACT - Open a panel with a list of active dining reservations
- TR-R-LIST_SHOW_CONF - Open a panel with a list of confirmed dining reservations
- TR-R-LIST_SHOW_WAIT - Open a panel with a list of waiting list dining reservations
- TR-R-LIST_SHOW_WALK - Open a panel with a list of walk-in dining reservations
- TR-R-LIST_TOGDINAREA - Toggle a dining area filter in the Dining Reservation List panel.
See the LS Central Help and the corresponding Excel list with filters for a complete list of POS commands.
Demo Data
Demo Data Changes
There are changes in the demo data for items, vendors and customers, and for VAT and Posting setup. These changes were done so that the LS Central demo data is in sync with Business Central demo data.
LS Central demo items:
- VAT Product Posting group values STANDARD, REDUCED, and ZERO replace VAT25, VAT10, and NO VAT
- Gen. Business Posting Group value DOMESTIC replaces NATIONAL.
LS Central demo vendors and customers:
- VAT Business Posting Group value DOMESTIC replaces NATIONAL
- Gen. Business posting Group value DOMESTIC replaces NATIONAL.
Other setup data regarding this have been added accordingly.
Changes in Scheduled Jobs
The scheduler job POS32-All has been removed and replaced with two new jobs, POS-ALL-INIT and POS-ALL-UPDATE. These jobs replicate data to the POS so the POS can run offline.
Other
LS Central AppShell
LS Central AppShell, iOS version, is currently not working with LS Central 17.0, the cause for this is being investigated. The iOS version still works with older versions of LS Central .
LS Central Help
LS Central Help now appears in an updated look. The top navigation format, with the menus at the top of the screen, has been replaced by side navigation, a more functional format that has the menus on the left side of the screen with the menu tree always visible.
All previously available help functionality, such as the search function and links to various support material, older help and documents, for example, is still available on the home page.
Fixed Issues
Retail
LS Hardware Station
Connection Test
LS Hardware Station now tests the connection before every invocation and tries to reconnect, if it is not connected.
Cancel Button Not Displayed
A Cancel button is no longer displayed in the POS when a transaction is performed on an EFT device that does not support canceling.