1

I'm working on a Professional Edition org and experiencing some strange things in Process Builder and I hope this can be clarified. I have created a minimal example, a custom object "Beep__c" which has a Name field and one custom field "Boop__c". UPDATE: Making this example even more minimal as it still demonstrates the situation.

Process is invoked when a Beep is created or updated.

Criterion: [Beep__c].Name != NULL

Immediate Actions: 1) Update Borp = [Beep__c].Name & " Beep!" and

2) Update Beep Name = [Beep__c].Borp__c & " Beeep!"; evaluate next criteria

Test 1

  • Edit an existing record, setting Name = A, Borp = B, save.
  • Expected: Name = A Beep! Beeep!, Borp = A Beep!
  • Actual result: Name = B Beeep!, Borp = A Beep!
  • So even though I've already modified the value of Name during this Process, whenever I try to retrieve that field again I always get the value of Name from when the Process started.

Test 2

  • Edit an existing record, setting Name = A, Borp is null, save.
  • Expected: Name = A Beep! Beeep!, B = A Beep!
  • Actual result is as expected
  • So this time, because I saved null/empty to Borp, the value I updated the field with in Process Builder is correctly seen later in the Process.

So I have concluded so far:

  • If Process Builder updates a field on the current record that was non-null, any attempt to access it later in the process will only find the original value.
  • But if PB updates a field on the current record that was null, any attempt to reference it later in the process will find the value that was saved to the field.

So if I want to be able to overwrite a field value in Process Builder and find that updated value again later in the Process, am I just out of luck? There are after all no temporary variables like in Flows (and I can't get Flows in Professional Edition).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.