Hi All,
ISSUE/BUG:
This is a critical issue that I will email to support directly, but thought I check in this wonderful community first if anyone has experienced this issue?
I've noticed that oftentimes a user will edit a row, and will leave the app a fraction of a second too early - before the sync has fully completed. The edited row, however, is successfully sent to the database.
Later, the same user re-opens the app and the same change is sent again (as if it was still queued on the device and then sent immediately upon re-opening/syncing the app).
There are many examples where this presents a critical issue, in a number of our apps. One example is:
Contractor timesheet approval and invoicing EXAMPLE:
SOLUTIONS available (that I am aware of):
1. Add a force-sync to the 'Approve' button that will force the app to sync upon the approver approving the timesheet.
2. Add a trigger to the Database (MySQL DB on Google Cloud) that blocks the subsequent row-edit so that the previously inserted Timesheet[Invoice] value cannot be edited back to blank.
NOT a Solution:
Adding validation that makes the row editable-if = false if the [Invoice] value is inserted. As the device that has stored the row (as 'not synced by just a fraction of a second') will follow this rule diligently and proceed as there is no value for [Invoice] as far as the device is concerned upon immediately syncing upon re-opening of the app.
Another POTENTIAL Solution??
Can AppSheet change the order of operations upon syncing the device on re-opening? I.e. fetch the correct data from the DB before finishing (in this case, repeating) the save of the locally-stored edited row.
Broadly the issue is.... well, broad:
There are many many examples where this sort of behaviour is indeed catastrophic.... I hope it's an easy bug to fix, so I can avoid going down the MySQL trigger path everywhere I look in all of our apps, as this too is really just a bandaid.
Thanks all...
@Steve @Aleksi @MultiTech @Bellave_Jayaram @JuneCorpuz @LeventK
User | Count |
---|---|
37 | |
30 | |
29 | |
20 | |
18 |