Smart masterdata refresh
Currently, the Web POS automatically refreshes the masterdata when a user logs in in online mode. This refresh is a total refresh, the whole masterdata records are wiped out, and the data is fully reloaded every time. This approach is both very resource-consuming (both in bandwidth and in cpu-computation in the server), and also not powerful enough in some situations (some companies may require that the masterdata be automatically updated while they use the POS).
Due to this concerns, the functionality to refresh the masterdata is going to be reimplemented. This reimplementation will ensure that the refresh itself is much lighter, can be performed automatically by the POS while the user is logged in, and the periodicity of this can be configured by the user.
Types of refresh
After the implementation of this project, there will be two types of refresh procedures:
- Total refresh: This is equivalent to what the POS currently does in the login phase: the masterdata is deleted, and fully reloaded again. This process is complete, but it is very resource consuming.
- Incremental refresh: This type of refresh just loads the new records and the records which have changed since the last time a refresh was done. This process is much lighter than a total refresh, but has the disadvantage that if records were deleted since the last time a refresh is done, it will not detect it. So a total refresh is needed in case masterdata records were deleted in the client.
Configuration by the user
The users can configure how often a total refresh, and an incremental refresh, should be done. A refresh will always be done on login, and the system will automatically choose which type should be done (taking in account how much time remains to do a total refresh).
This configuration will be done at POS terminal type level. Two fields have been added to configure the number of minutes between each incremental refresh, and each total refresh.
- Time to fully refresh masterdata (in minutes)
- Time to incrementally refresh masterdata (in minutes)
If neither of the fields is defined, then the system will fully refresh all data when the user logs in (and data will not be automatically refreshed until the next log in).
If only the first field is filled, then the system will fully refresh all data both on login, and periodically every number of minutes as specified in the field.
If only the second field is filled the system will fully load the data the first time the user logs in the POS, and afterwards only incremental loads will be done (periodically, every number of minutes as specified in the field).
If both fields are specified, then both incremental and full reloads will be done each number of minutes as indicated on each field.