Salesforce Screen Flow - Roll Back Behavior
Similar to Apex Roll Back, as part of Winter 22, Salesforce has introduced Flow Roll Back feature also. Let us see the transaction behavior when using roll Back along with Screen Flow.
1. Feature Details
As of now Roll Back feature is available only for Screen Flows.
All pending operations in the current transaction will be rolled back on adding Roll Back element to a fault connector.
This is useful when we have a series of DML operations happening in a single transaction and ScreenFlow will try to combine all those into a single transaction
2. Use Case - Single Input Screen - Multiple DML
I would like to develop a screen where you can create both Account and Contact together on a single screen. The flow looks like below:
Now let us add a validation rule on Contact to make the email field mandatory:
Now try to submit the screen without entering the Email field.
The behavior is as mentioned below:
4. How to Add Roll Back Behavior
Instead of the above flow, if the Contact creation got failed, we would like to rollback Account creation also. Let us see how this can be achieved by replacing the fault connector action with Roll Back behavior instead of a screen message.
Now try to create new data:
5. Transaction Behavior after adding Roll Back
Also in the debug you can notice that both account and contact save happening in the same transaction, and that is the reason Roll Back is a success here.
6. Use Case Modified -Multiple Input Screen - Multiple DML
Now let us modify the screen flow to use 2 separate screens for entering Account and Contact Data:
Let us try to create new Account and Contact now without entering an email :
7. Transaction Behavior
8. Why Roll Back didn't happen?
If you check the debug log you can see that Account and Contact creation happened as 2 different transactions and Roll Back will happen to DML operations occurring in the same transaction
Account Debug:
Contact Debug:
This is because based on this documentation, a flow transaction is end when a screen element, local action and pause element is executed.
9. Summary
Based on the above analysis, Roll Back will be happening for DMLs which are part of the same transaction only. Even if we have multiple DMLs as part of the same screen flow, but they end up in different transactions, Roll Back will not be successful.
I wonder about how to see debug log about flow process. Could you let me know about it?
ReplyDelete
ReplyDeleteThanks for sharing this information
Mulesoft Training
Mulesoft Online Training
Thank you for sharing very useful information.
ReplyDeleteMulesoft Online Course
Mule ESB Training
How do I go about when I reject an approval and want to go back to the previous picklist in my case. What are the steps in details if you don't mind me asking? Very great website and please keep the information coming.
ReplyDeleteThanks in advanced
DeleteSo I have 1 approval process and 1 flow that calls that approval process. Once the flow triggers, it emails the approval and the approval can email approve or reject. It works well when approves but when I reject I want it to go to the original picklist since it didn't get approve. My picklist are A, B, C, D. Approval is needed for A, and B. If A is rejected it should stay at A
ReplyDeleteHi Stel,
DeleteI think you need to have custom logic around this, since rollback behavior is supported only for screenflows. So you might need to store the previous picklist value in some other field, and once rejected, retrieve this and update back the picklist.
Hi Meera, could you point me to some examples for references? Much appreciated!
DeleteHi Meera, I found this reference https://www.salesforcebolt.com/2020/10/get-prior-value-of-formula-field-in.html and it's using workflow but can it be done with flow to store the value?
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteThanks for sharing this useful post.
ReplyDeleteClone Flows in Salesforce
Site Reliability Engineering Training
ReplyDeleteSRE Training in Hyderabad
Site Reliability Engineering Training in Hyderabad
Site Reliability Engineering Online Training
Site Reliability Engineering Training Institute in Hyderabad
SRE Training Course in Hyderabad
SRE Online Training in Hyderabad