本篇参考:

https://help.salesforce.com/s/articleView?id=sf.flow_ref_elements_custom_error.htm&type=5

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_triggers_order_of_execution.htm

我们针对这些次salesforce的release note可以看出来,salesforce针对Flow不断地发力,支持了越来越多的功能并且替代了Process Builder以及Workflow,本次release同样有很大的惊喜,支持了类似Validation Rule的功能,即Custom Error。

一. Custom Error简单介绍

我们通过下方的gif可以进行更好的理解: 下方的gif在flow中创建了两个custom error,分别校验House表的State / Zip需要一个必填以及 当Price满足指定金额以后要求上传图片。我们可以看一下下方运行的效果。

salesforce零基础学习(一百三十二)Flow新功能: Custom Error-LMLPHP

 这里对Custom Error功能进行一些考虑。

1. Custom Error只支持 Record-Based Trigger,其他类型的Flow不支持。

2. 和传统的Validation Rule不同的是,一个Custom Error可以显示在多个字段上,只需要在Custom Error功能中点击 Add Error Message按钮即可,这种设计很方便,因为如果使用Validation Rule实现情况下需要创建多个VR才可以搞定。

3. 和Validation Rule相同的是,同一个字段当前只能显示一个错误信息,当然,每个字段都可以有一个error信息。

4. 不支持compound 字段。

5. 功能相当于apex中的addError。

二. 使用Validation Rule还是使用Flow Custom Error?

既然Custom Error功能和Validation Rule如此相似,我们是否就可以理解成Flow Custom Error可以替换掉Validation Rule或者说什么场景下用哪个呢?以下是我的个人见解,不一定完全正确,可以相互讨论。

我的答案是Flow Custom Error是不会取代Validation Rule的,因为实际项目中需要考虑以下几点。

1. 当前表的业务复杂度以及后续的可扩展性。我们知道Flow在salesforce中执行的顺序是早于before trigger的,参考参考链接中的 order of execution,如果当前表的功能和业务逻辑较为复杂,一个字段在trigger中做了一些初期话处理,我们可以在validation rule对此字段进行逻辑校验会更准确,如果提前到before trigger,可能会引发一些不必要的问题。

2. Flow可以设置执行顺序,如果当前表的Flow特别多,有一些用于字段初期化设置,有一些用于校验, 设置的order顺序也可能影响结果。

当然并不是说Flow的Custom Error不好,以下功能可以考虑 Flow Custom Error。

1. 当前的表业务功能较少,后续功能也很少会用到apex trigger做一下逻辑操作(这个是前提,因为我们需要了解)

2. 校验针对多个字段同样的校验逻辑和错误信息,使用flow会省事一些。

3. 你是一个管理员,你不会写apex代码,但是当前的校验逻辑较为复杂,validation rule无法实现,你可以考虑使用Flow Custom Error来实现。

总结:本篇简单介绍了一下Custom Error的使用,感兴趣的小伙伴可以查看上方参考链接中的官方文档描述。demo中有一个比较怪的地方,就是我用了一个flow来实现了两个错误场景的判断,设置Decision以后Path只能同一个场景执行一个,所以尽管数据两个validation都触发了,但是每次只能显示一个报错,实际场景中可能需要拆分成两个Flow。另外此功能目前sandbox 可以使用,需要10月正式release以后,production以及dev edition才可以使用。篇中有错误地方欢迎指出,有不懂欢迎留言。

10-02 01:54