Hello Bruce and all,
this is a strategic matter I am chewing on.
At startup the webserver reads a Product.TPS into a MEMORY-table.
When the Webclients (Clarion/NT-programs) start, they download this
entire table for the use during its work. This table is completely used
for read-only on the client-side.
Now someone on the server-side will have a program
(likely Clarion/NT-made web-client also) to modify this table.
Think if a complete replacement of table.
(Skipable details: The .TPS is a list of drugs.
The pharmacist can flag products, which are in stock.
Nurses may toggle between ALL drugs / Recently available drugs.
No product is purged, they are just flagged differently.
However, the pharmacy may produce their own nutrition solutions etc.
Those homebrew products are planned to be added to
our MEMORY-table of the drugs.
And those homebrew products can be replaced / removed.
Not on a daily base, but this homebrew-fraction of the table is volatile. /skip)
From this moment on, the data on the client-side are different from those on the server-side.
How do I update this MEMORY-table on the client-side?
The client-user may have one or two procedure open,
where this MEMORY-table is in use. I would not want to
drag away the chair they are sitting on.
One idea I had was to signal on the client-side with a
floating WinEvent-message bottom right-hand corner, saying
"Please close this MDI-Child, a new drug list is lingering for an update".
There is a good chance that this message is ignored or misunderstood.
A focus-grabbing MESSAGE() is no option. (How about CS Messagebox()?)
Alternatively I could wait for the MDI-child to be closed, then quickly
request and download that modified list. But my program has two
different procedures, both using this same MEMORY-table.
So closing one would not help much, if the second remains open.
One other idea I have to keep the homebrew products separated from
the general druglist. This would be a tiny list, which could easily be sent
each time a procedure opens. But whatever I do, it seems to be the
same problems as with disconnected apps.
How is this solved with "Disconnected Apps"?
Actually I see two questions:
How to solve this technically and how to treat the user?
Thanks you very much for your patience to read all this lament.
Wolfgang