|
| Inicio → WINDEV 2024 → Sync data in offline model (POS system temporary working local) |
| Sync data in offline model (POS system temporary working local) |
| Iniciado por guest, 13,dic. 2012 12:46 - 11 respuestas |
| |
| | | |
|
| |
| Publicado el 13,diciembre 2012 - 12:46 |
Hi, I've made software for POS systems. Running hundreds of them already, without noticable problems. Normally there is 1 main-system, holding the database. Sometimes this DB is on a server.
There are situations where network connections are lost. Some of our POS systems are used outside (marketplace) connected with local wifi, failing every now and then. In other situations the POS systems are used in places where there is no network at all (outside events).
In any case the POS systems have to keep working, using a local database if needed.
In these cases we need to work locally, for a short period. And at the end of the day (or whenever network is available again) we want all transactions synced with the main (hfcs) database again.
How to handle situations like this? Would replication be a reliable option? I know there are others made POS-software with WD. Anyone handled this situation? |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,diciembre 2012 - 12:46 |
Hi Arie,
we do it by 'synchronisation'. All data is local to our POS systems but from time to time (definable) it opens a connection to the central HF C/S database (usually by a provider, running 24/7, but may be web servers of customers too, running only 12/5) and synchronizes with it. Includes sending data to / fetching data from the central database (turnovers, customer card turnovers, stock, new items, prices, keyboard layouts, special prices like from 15.00 to 18.00 happy hour with a special price list for that time, etc. etc.) After doing the sync, the POS-system again works on its own. If no connect can be made, there will be a regular retry. The sync program is running as a Windows Service separately from the POS app. This allows for service or even turning off the central database / server). This way, if a POS system is going belly-up then we can restore the full data on a new hardware by simply installing the software and letting it do a re-connection.
Regards, Guenter |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,diciembre 2012 - 12:46 |
Guenter, do you use 'synchronisation' of pcsoft, or did you write one of your own? Difficulties lies in master-detail or even master-detail-detail data. Do you use transactions to ensure integrity, while the sync-proces may also fail or get interrupted. Mostly at a bad moment.
And pos-related. What about receipt numbers? Does each terminal uses his own range? Because missing numbers are not allowed over here. I suppose the same thing counts for you. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,diciembre 2012 - 12:47 |
Quote we use our own sync procedure since things are of much more complexity than the standard sync could handle.
Is this code you can share/sell? I don't actually sell POS-systems myself. I just make the software. But I think my contractor is interested in offline/online options. And is willing to pay for it. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,diciembre 2012 - 12:47 |
Quote Arie Mars
Guenter,
do you use 'synchronisation' of pcsoft, or did you write one of your own?
Difficulties lies in master-detail or even master-detail-detail data.
Do you use transactions to ensure integrity, while the sync-proces may also fail or get interrupted. Mostly at a bad moment.
And pos-related. What about receipt numbers? Does each terminal uses his own range? Because missing numbers are not allowed over here. I suppose the same thing counts for you.
Hi Arie,
- we use our own sync procedure since things are of much more complexity than the standard sync could handle. - Yes, we're using transactions. - though each POS system uses its own series of receipt numbers, receipts are generated with their own GUIDs and therefore they are unique. And yes, there may be no missing receipt numbers here too.
regards, Guenter |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,diciembre 2012 - 17:04 |
Hi Arie,
Thanks for this question. Yes please let me know if Guenter or anyone can share/sell this coding. In version 18 its look like new features for replication. Anyone can explain it? What new version features upgraded for replication?
Thank you.
Regards, Mujahid |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,diciembre 2012 - 18:07 |
Quote Arie Mars
Quote we use our own sync procedure since things are of much more complexity than the standard sync could handle.
Is this code you can share/sell?
I don't actually sell POS-systems myself. I just make the software. But I think my contractor is interested in offline/online options. And is willing to pay for it.
Hi Arie,
I have to have a look into it http://www.touchextra.info however, I doubt that there's an 'easy solution' because there's a lot of code inside. We could talk about licensing/selling our code, of course, it's a full-blown POS system, but it's one of the few backbones of our business too.
Kind regards, Guenter |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,diciembre 2012 - 19:44 |
Hi Arie. You can make few types of connection. 1. Online 24/7 2. Every time user open POS, connect to Server->Transfer files->Update tables and disconnect. Work offline. At the end of day, connect to Server again and transfer changes back to server 3. Work always offline and make two buttons: a)Import data from Server b)Export data to Server. User decide when will transfer data <=> .
With this you can cover more complex situations. On/Off internet or Network
I preffer 2. even on local network.
Regards ! |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,diciembre 2012 - 23:36 |
Ici, I get the idea of the options you mention and prefer the second. 1 and 3 are not an option actually. 1. online is too slow (even in the Netherlands with high speed interner) 3. no go. Users just forget and don't want to press buttons for things like this.
But maybe I have to tell something about our users. Our POS system are mainly userd in hospitality. When starting the POS they need/must be running asap. There is no time to 'download' data from a server. When finishing their job at say 2am in the morning, employees just push the powerbutton and go home as fast as they can. No time to sync either. I have several stories of missing backups, which also run when the POS app is closing. Of course it is their own responsibility, but the real word is a bit harder.
In fact I'm trying to setup a backup strategy in case the client (or server) holding the database is unreachable at a given time. I don't see this as the daily type of operation. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,diciembre 2012 - 23:36 |
Hi ICI,
we prefer a different approach. We let a Windows Service on the POS machine connect to the Server regularily. This makes sure that - within a customer-defineable time frame - data is put to the central database. It's a data backup, only data for the defined period of time (10 minutes recommended but not forced on users) can be lost. Btw, I wouldn't trust any shop clerk / restaurant waiter to press the 'Sync'-button regularily. Before closing shop, the usual closing routine (on request) prints a closing report and backs up data to the central database. If burglars crack the shop during the night, the POS machine may be lost - but not the data.
We support customer cards (with direct discounts or a gift / discount if an accumulated sales turnover has been reached) It's vital to have sales of such customers in the central database as soon as possible - what if they visit another shop within the next hour and would reach their bonus turnover? Additionally, our POS system can distribute different screen layouts, new items, new prices, even several price lists to the POS machines. It's vital that such new info is distributed asap - the POS machine is looking for such info.
Kind regards, Guenter |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,diciembre 2012 - 23:36 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,enero 2015 - 09:32 |
| |
| |
| | | |
|
| | | | |
| | |
|