Process Builder Bypass
Normally we put bypasses in everything (workflows, validation rules, etc). Process builders especially are interesting to bypass because they're still SLOW AS HELL and they can be prone to unforeseen errors - specifically during data loads.
Plus if you have process builders sending emails you probably want to skip them when you're loading data massively.
A few years ago I didn't find a solution that suited me. A yea or so they activated systems labels for PB, so you can search for the custom setting like in WF - but you couldn't go next element, so you had to add the bypass, in formula mode, to every element. Taxing and costly in hours, plus you had to use formulas to everything.
Here you set it once, in every TPB, and then you have a working bypass for every process builder ever. Low cost, easy to maintain, and allows deactivation on mass loads or other operations where you don't want those things firing.
Ok so there's the usual, recommended Bypass Custom setting that I write about in my best practices. I added a PB there
I created a notification type
which then allows you to do this:
I would rather it's "no action" but that doesn't exist. so in the meantime, this:
- allows a full bypass at the Triggering PB level, so only one PB gets evaluated, and you don't need to add bypasses in any other PB or even any other decision diamonds - so effectively one bypass, or maybe two, per Object.
- doesn't touch the record, so effectively does a full bypass
- has this semi-annoying notification which is both a blessing and a curse, but I think they have "no action" on the roadmap.
I was trying this out... and things became interesting
Assume if we follow this process of bypassing and if we have multiple Process Builders (10+) and some validation rules(50+) Some triggers (10+) everything will use custom setting criteria for a Data Integration User.
What happens to CPU time? It has to evaluate the formula fields every time in all the PBs + VRs + All custom code...
Do you think when loading bulk data loads this solution works without hitting the CPU limit?