Process Builder formulas do not validate SObject Names
Workflow , Flow , Process Builder
Last updated 2017-09-08 ·Reference W-3937434 ·Reported By 1 users
Summary
When using a formula within Process Builder, if you point to an Object that doesn't exist, but a field that does exist within the fields of the Object upon which the Process is built, you will not receive a validation error on the formula, and the Process will never evaluate to "True" and fire.
This is because Process Builder formula editor is not looking at the context of the generic [Object] when it compiles and evaluates. Instead it is looking at the Object on which the Process is built for context.
Therefore, if we were to build a Process on [Account], and you have a formula that evaluates on [GenericObject].Name, the variable passed within the Flow is [My_Variable].Name Because Account has a field called "Name", the Process actually sees [GenericObject].Name as [Account].Name because [Account] is the context in which the Process is designed to evaluate.
Repro
1.) Create a new Process within Process Builder on any existing SObject.
2.) Set it to evaluate whenever a record is created or updated.
3.) Under evaluation criteria, select "Formula Evaluates to True".
4.) Using the formula editor, add a reference to an Object that doesn't exist in your Org and a field that does exist on the Object you have the Process built on, i.e [GenericObject].Name = "Test Me".
5.) Save the evaluation step.
6.) Observe that the formula is allowed to save, even though it's pointing to a non-existent SObject.
Workaround
Ensure you are using the actual SObject name when you build your formula in Process Builder.
Reported By (1)
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.