The last Task overwrites everything

Hi @prithpal @Dan_Bahir

I would like to know if the following behavior is expected for Automation?

I am currently doing a validation with a simple Automation that updates the values of result_1 to result_3 for columns 1 to 3 after creating a record.

At this time, I can get the expected results by making all the steps into tasks or processes.

The problem is the case where the task is executed at the end after the process.
In this case, the task overrides everything based on the state at the time the event is launched, without considering the processes that have been executed before.

We believe that there can be a case where a Task is executed after a Process.
I can understand this as a programmatic process, but I think it would be difficult for AppSheet users, called Citizen Developers, to understand in such a case.

Cases where the behavior is as expected

Cases that cause confusion

Thanks

@tsuji_koichi

1 Like

@Takuya_Miyai can you please share screen shots of config for each step (“Call P1”, “Call P2”, “set 3 Task”) and also share screen shots of configs for all steps of P1 & P2.

2 Likes

Hi @prithpal

I’ve released it as a sample app, can I have you check it out?
You can also check the operation by simply creating a new record with the initial values in each table.

https://www.appsheet.com/samples/Built-from-your-app-spec-?appGuidString=c4febc3c-4374-4d06-b5a8-ff134f6d7661

Thanks,

@Dan_Bahir

@tsuji_koichi

2 Likes

@prithpal @Dan_Bahir

Congratulations on the GA of Automation.

In conclusion, is the behavior in this question a specification of Automation?

It is a possible case that Task is set after Process.
In this case, the result of the last Task takes precedence because I need to explain to the customer whether it is a specification or a bug.

@tsuji_koichi

1 Like

@prithpal @Dan_Bahir

@Takuya_Miyai summarized nicely the one of the most complex and difficult stuffs under the automation. In case we add the task, which we call “Naked Task” not being wrapped by Process, is placed as step after the previous steps (which are the process), then this naked task will have no way to inherite the values from the process, but it takes value from the event.
We tooks days to find out how this happens , but now we fully understand what sort of the logic behind and why it does happen.

We are not yet on the final conclusion, but it is more suitable and appropriate such a “naked task” should be placed directly under the Event when we form a BOT.

Borrowing a sample case of Takuya demonstrated, the picture should be looking like this.

The last step of task, which is now only being placed after the process, should be placed to the one of the branch directly under the event .

2 Likes

@tsuji_koichi & @Takuya_Miyai So currently the data(table1) made available to the process by the bot can be read/updated within that given process. In this case when a parent process invokes a child process it sends a current copy of the data to the child process. Typically this is not problematic because in many cases the child process is working with a different entity - table2 and any changes made within that child process on table2 don’t affect data in the parent process which is working on table1.

Looks like this is corner case which is not accounted where the parent process invokes a child process and both these processes work against the same entity i.e table 1 in this case. And hence you are running into the issue of the main process still having access to a previous copy of the data & it discarding changed made to the same data by the child processes.

We are working to provide a solution for this corner case and will keep you posted as soon as we are ready.

3 Likes

Thanks @prithpal

Now that I understand that this is the target of the fix, I will pay attention to the settings for a while.
I know it’s a lot to deal with after GA, but good luck.
Thank you for your hard work in today’s seminar.

@tsuji_koichi

1 Like

This fix for this issue has been deployed. The use case you described should now work as expected.

2 Likes

Thanks @Dan_Bahir

I checked and the last task is also executed in the correct order.
Thanks for the quick response.

FYI
@prithpal
@tsuji_koichi

1 Like