Context
We have a 2-tier approval workflow in our AppSheet app (entries table).
-
When a user is on the go, they might approve multiple requests (e.g., 5 requests) simultaneously on the mobile app and then close the app before it completely finishes syncing.
-
These updates remain queued locally on their mobile device.
-
While those mobile updates are pending, the same requests are processed and fully approved or rejected on the desktop app. The final approver marks the status as
'APR'(Approved) or'RJC'(Rejected). At this point, the process is completed on the data source.
The Problem
The next time the user opens their mobile app, the pending sync resumes and pushes its queued data to the server.
-
Even though the the status is already
'APR'or'RJC', the mobile app’s incoming payload still contains the older status (like'FA'or'FV'- For Approval / For Verification). -
AppSheet accepts this delayed mobile sync and overwrites the database, reverting our completed
'APR'or'RJC'status back to the older'FA'or'FV'status.
What is the best way to handle this?
We want to completely invalidate the pending mobile sync for a specific row if that row’s status on the server is already 'APR' or 'RJC'. Any insights would be highly appreciated!