Process Builder scheduled actions that are grouped for bulkification and Static Variables are not scoped as expected in Scheduled Actions
Workflow , Flow , Process Builder
Last updated 2018-06-09 ·Reference W-4306334 ·Reported By 2 users
Summary
Process Builder scheduled actions are executed in a batch of groups run within a single transaction. Static Variables are not scoped as expected in Process Builder Schedule Action
Repro
Create a Process Builder with a scheduled action.
1. Setup -> Process Builder
2. Created a custom field Scheduled Date/Time(Date/Time) on Lead Object.
3. Trigger a field update when Scheduled Date/Time is changed.
4. Immediate Action - update Industry to Agriculture or any other field as per your choice.
5. Scheduled Action - Trigger it 0 hours from Scheduled Date/Time and update Rating Field to "Warm"
Create a trigger on Lead that will fire on Before Update
trigger triggerLead on Lead (before update) {
if(!LeadTriggerHandler.isBeforeUpdateExecuted()) {
for(Lead vLead :trigger.new) {
vLead.Description = 'Comment on Before Update';
}
LeadTriggerHandler.setBeforeUpdateExecuted(true);
}
}
Create a Class which would contain the static variables referenced in the trigger
public class LeadTriggerHandler {
private Static Boolean isRunBeforeUpdate = false;
public static Boolean isBeforeUpdateExecuted() {
return isRunBeforeUpdate;
}
public static void setBeforeUpdateExecuted(Boolean pValue) {
isRunBeforeUpdate = pValue;
}
}
To test this you need a total of 2 users in the Org.
Login as 1'st User and update the Scheduled Date/Time for example 11:00 AM. You should see the Description text as “Comment on Before Update at 2017-09-27 10:50:24”
Login as 2'nd User and update the Scheduled Date/Time for example 11:00 AM
You should see the Description text as “Comment on Before Update at 2017-09-27 10:51:20”
Note: The Date/Time provided above are an example for representational purpose
All three actions have to be triggered at the same time and by different users, so choose whatever time suits you.
After updating the records, when you navigate to Setup → Flow you will see 2 scheduled actions in the Paused and Waiting Interviews section.
After 11.00 AM when they are processed first 2 records will be updated
Verify the Description Text for both the records, of the records would have the timestamp same as the scheduled date and another record would have the date when the record was updated.
Note: The Date/Time mentioned are for representation purpose
Workaround
None
Reported By (2)
Is it Fixed?
Any unreleased services, features, statuses, or dates referenced in this or other public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make their purchase decisions based upon features that are currently available.