I have several Column that have a Initial value and Reset on edit expression like the one below, so when I make a change in [Report Finalized (date)] several columns should change it value to the initial value, this was working perfectly until yesterday.
The expressions when tested are working correctly, I'm using quick edits fields in details view.
when I make a change in [Report Finalized (date)] I can see that the correct value are displayed for a moment in the fields that depends on [Report Finalized (date)] but when the app finished syncing the values revert back to whatever was in the google sheets cell, I checked the edit history on google sheets and the initial values was never written, this was working perfectly for weeks until yesterday, any help is appreciated
Sounds buggy. Note tha quick edit is still BETA. Has been BETA for 7 years!!! It might be that.
Whenever you see, in the sheet, an updated value appear and then revert back to the original value, it likely means you have some processing not being performed in the order you wish. More precisely, not being applied to the datasource in the order you wish. I'll explain below.
AppSheet is a row based processing system. A change to one or more columns is a ROW edit - meaning the entire row is applied to the datasource. Separate actions are separate edits. Last edit wins.
As an example, let's say 2 Bots are triggered by a row change, Bot 1 changes columns A, B and C while Bot 2 changes columns D, E and F. Bot 1 finishes first - so columns A, B and C are update. However, when Bot 2 finishes it doesn't know anything about the change made by Bot 1. it writes its results and A, B and C are changed back to the original values but D, E and F are updated.
This overwriting problem doesn have to be limited to Bots. It occurs whenever there are multiple edits to a row changing DIFFERENT columns. It could be edits by the same user in the same session OR by multiple users from different devices. The last edit applied to the datasource wins.
I believe this is what you are facing and these issues are not always easy to discover - even when you know it's happening. It will take some analysis of your workflows.
And it is possible for it to be working fine and then seemingly have issues. For instance, say Bot 1 above started getting delayed in its processing and Bot 2 actually started finishing first then it would look like columns D, E and F are getting overwritten while A, B and C are updated.
I hope this helps!!
Hi, thanks for the reply, things is the value are never written in google sheets and is not a bot either, I made a copy of the app and disable all bots and the issue was still happening, I deleted the column that was giving me issues (in the cloned app) and is not being used or changed in any bot or action,
The first two columns I noticed this problem I had to make 2 new columns with the exact same expressions and they are working correctly, so is not the expressions and is not a bot, bots actually work correctly and that's what I'm using but I rather have it working with initial values+reset on edit because is better for ux
when I make a change I can see the expect value in the fields but after sync they revert back and like I said they never get saved to google sheets
Does the user accessing the sheet have permission to update it?
yup, the users are not accessing the google sheets file directly, we are using AppSheet whit a google sheets database, and we can write to google sheets just fine is just the columns that have a initial value that is set using `reset on edit`
Long shot, but is the format in the sheet colums according to the data sent?
Please post screenshots of the column configuration and its various expressions.
Try restructuring your logic: enable Reset on edit?:
and move the expression you currently have there into Initial value:
IF(
([_THISROW_BEFORE].[Report Finalized (date)] <> [Report Finalized (date)]),
...original Initial value expression...,
[_THISROW_BEFORE].[Case Status]
)
Reset on edit? should correctly be expected to apply only in the moment before the column is presented to the user for editing. Once the app determines the value should be reset, Reset on edit? is set aside and Initial value takes control of the column's value until the user themselves makes a change to the column value. Notably, Reset on edit? cannot (reliably?) consider changes to its column value using _THISROW_BEFORE and _THISROW_AFTER; when Reset on edit? is considered, they both refer to the same row data.
Also worth noting: each change to a Quick edit column in a detail view produces a whole-row update, similar to editing the row in a form view, editing exactly one column, and saving. All of the row's computed column values will be recomputed after each individual Quick edit column value change.
User | Count |
---|---|
36 | |
8 | |
3 | |
2 | |
2 |