Multi Tenanted Services

 

Description

 

This feature is designed to facilitate the management of 100+ independent businesses hosted on a single SQL Server running each their own SwiftPOS database. It provides the use of a single copy of the SwiftPOS Services as opposed to having an instance of each of the SwiftPOS Services for each of the businesses.

 

 

The feature makes use of the SwiftPOS Back Office Multi-Site Management application is used to manage multiple sites, enabling the managing and upgrading of databases, SwiftPOS Services, Global Settings and the ability to restart the SwiftPOS Services. The application can be invoked by running the C:\Program Files (x86)\Samford Software\SwiftPOS.BackOffice.Management.exeNote : It is recommended to right click the SwiftPOS.BackOffice.Management.exe and select the Run as administrator option.

 

To Be Considered

 

  1. C:\Program Files (x86)\Samford Software\BackOffice\WebAPI - This folder will have to be unique to each database.

 

What it is NOT SUPPORTED

 

  1. This feature is NOT designed for large Clubs where multiple NetPOS interfaces and Member syncing is in use.
  2. Any of the export/import options that available via the SwiftPOS Service monitor are NOT SUPPORTED because the SwiftPOS Service monitor is not used.
  3. Print-back features at the POS (like Account print-back report, Clerk print-back report etc) are NOT SUPPORTED.
  4. "Web Store" is NOT SUPPORTED but the Web API will be supported by creating a URL for each database. This is currently in discussion with regards to being able to run a single API Server connected to multiple databases for things like PDT stocktakes etc.

 


Setup

 

  1. Create SwiftPOS databases for each of the businesses and ensure each of these are registered. For example CLOUD01, CLOUD02, CLOUD03, etc.
  2. Add each database created to the SWIFTPOS - SQL Server Connections and ensure the Service option is NOT selected for all databases, except for the SWIFTPOS (default) database.

 

  1. In the SwiftPOS Back Office Multi-Site Management application ensure all databases are added as required.


A typical example of each setup would be:

    1. Install SWIFTPOS with all the services. For example:
      1. SWIFTPOS - This needs be a testing/training database because you cannot send software updates from Back Office to the "default" database.
      2. CLOUD01
      3. CLOUD02
      4. CLOUD03
      5. CLOUD04
      6. etc
    2. Each database will need a unique port number to enable the connection of the POS Terminals to each database. Unfortunately, development around a single port number for all databases caused too many development issues. In all the development around building a stable IP network for connecting POS Terminals, it was decided that this is still the best solution. In testing the options, we would have had to install a Web Service into every POS without any significant performance enhancement.

  1. Every database can share the C:\SWIFTPOS Folder Path for AJL sales files and BJL files for NetPOS as each of these files will be prefixed with the Database name. For example:
    1. CLOUD01.23122019.AJL
    2. CLOUD01.23122019.BJL
    3. CLOUD02.23122019.AJL
    4. CLOUD02.23122019.BJL
    5. etc

  2. NETPOS will need to be configured with a SwiftPOS connection to each Back Office database but only require one reference to C:\SWIFTPOS to read BJL files.
  3. Disable the SwiftPOS Service Manager in the Windows "Startup" folder as this service is not used.
  4. Create a shortcut to SwiftposBackOfficeManagement.EXE on the desktop so you can manage your multiple sites. Note : When invoking this App, ensure the Run As Administrator option is selected.
  5. Invoke the SwiftposBackOfficeManagement.EXE App to open the SwiftPOS Back Office Multi-Site Management screen.
  6. Select the Tools button to manage the Global and Service Settings, as well as upgrade all databases.
  7. In the Tools > Services Settings, Install/Start the Connect, Sales and/or End of Day services. This will launch a single copy of each of these services with _MT as a suffix. If you have any other SwiftPOS Services installed then you will need to manually disable/un-install them (search Google for instructions on how to un-install services)

 

Highlighted are the only 3 SwiftPOS Services that will be installed and running.

 

  1. Ensure that for each SwiftPOS Back Office instance the Services are Uninstalled.

 

  1. Ensure there are NO SQL Server Connections Services selected for any of the database connections.

 

  1. Ensure that for each SwiftPOS Touch Terminal to connect correctly and have their sales processed as expected, the appropriate name of the Tenant they are connecting to MUST BE configured against the Tenant ID field in the Touch Terminal Settings screen. Note : DO NOT use the Database name unless it and the Tenant name are the same. Failure to ensure correct Tenant Names are used may result in Sales not being processed.

 


SwiftPOS Back Office Multi-Site Management

 

Summary Information

 

 

This screen is accessed by running the C:\Program Files (x86)\Samford Software\BackOffice\SwiftposBackOfficeManagement.EXE App.

 

Add all the databases here. Select Export to export a list of databases.

 

Global Settings

 

 

Service Settings

 

 

Used to manage the Multi-Tenanted Services. Similar to managing services in the SwiftPOS Back Office. Install and Start the Services. Services installed will appear in Windows with a _MT suffix. To remove Multi-tenanted services then you will need to un-install the services using the SwiftPOS Back Office Multi-Site Management tool.

 

Sites Database Upgrade

 

 

Click on the "Sites" Heading before you open the "Sites Database Upgrade" to populate the list with all your databases and run the "Upgrade" or "Reset and Upgrade" option.

 It will cycle through all the databases in order of the screen.

 

NetPOS Settings

 

 

All database connections need to be set up in NetPOS but they can all share the same Folder Path (for example, C:\Swiftpos) as each file is prefixed with the Database name. This is to ensure AJL files can never be processed into the wrong database.