Hi (a long feature request below),
We’ve built an ~60 table ASA solution in b330 which uses all DB-managed keys, and does record adds and deletes via stored procedures; ie: does not use Servoy’s newRecord() and deleteRecord().
This allows us to build a PHP-based Web application (not the Headless Client API) accessing the same database and add/delete procedures, and gives complete separation of GUI and database.
Our problem is our procedure-added/deleted records don’t broadcast to other Servoy clients since Servoy server doesn’t know about the add/delete. We’ve used refreshRecordFromDatabase() so the client doing the add/delete is in sync with the database, but the other clients can’t be updated.
Bob Cusick has recommended (thanks again for your time, Bob!) we re-write our ASA procedures so they can be called 1) via Servoy, then return a boolean for a then Servoy-performed newRecord() or deleteRecord() if applicable, or 2) via PHP to perform the add/delete in the ASA procedure. Having Servoy do the add/deletes is needed to broadcast the changes to other clients.
We are investigating Bob’s suggested option (and having some issues we’ll post in other threads), but we’d like to request additional capability in Servoy for these reasons: 1) the complexity of our ASA procedures goes way up, and 2) we are writing code in the database specifically related to the GUI. An advertised selling point of Servoy is the strict separation of GUI and DB and is in fact a reason we chose the environment.
We’re don’t know Servoy internals, but exposing a more granular version of the headless client API’s flushAllClientsCache() seems a good direction. We’d like to programmatically tell Servoy server to update clients with adds and deletes in a db-efficient fashion. Again, we don’t know Servoy internals but it seems providing access to the broadcast process of Servoy server should be feasible, no?
We think this would speak towards 100% separation of the database from the GUI – ie: DB-managed keys, w/ stored procedure-based adds/deletes – and would be a valuable feature of the Servoy environment.
We’ll continue working though alternatives, but are eager to hear comments from Servoy on this idea.
Thanks for your time and the Servoy environment!
JDW