本篇参考:

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满足指定金额以后要求上传图片。我们可以看一下下方运行的效果。

这里对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才可以使用。篇中有错误地方欢迎指出,有不懂欢迎留言。

salesforce零基础学习(一百三十二)Flow新功能: Custom Error的更多相关文章

  1. salesforce 零基础学习(三十二)通过Streams和DOM方式读写XML

    有的时候我们需要对XML进行读写操作,常用的XML操作主要有Streams和DOM方式. 一.Streams方式 Streams常用到的类主要有两个XmlStreamReader 以及XmlStrea ...

  2. salesforce 零基础学习(三十四)动态的Custom Label

    custom label在项目中经常用到,常用在apex class或者VF里面用来显示help text或者error message.有的时候我们需要用到的信息是动态变化的,那样就需要动态来显示信 ...

  3. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...

  4. salesforce零基础学习(八十二)审批邮件获取最终审批人和审批意见

    项目中,审批操作无处不在.配置审批流时,我们有时候会用到queue,related user设置当前步骤的审批人,审批人可以一个或者多个.当审批人有多个时,邮件中获取当前记录的审批人和审批意见就不能随 ...

  5. salesforce 零基础学习(四十二)简单文件上传下载

    项目中,常常需要用到文件的上传和下载,上传和下载功能实际上是对Document对象进行insert和查询操作.本篇演示简单的文件上传和下载,理论上文件上传后应该将ID作为操作表的字段存储,这里只演示文 ...

  6. salesforce 零基础学习(三十九) soql函数以及常量

    在salesforce中,我们做SOQL查询时,往往需要用到计算式,比如求和,求平均值,或者过滤数据时,往往需要通过时间日期过滤,SOQL已经封装了很多的函数,可以更加方便我们的sql查询而不需要自己 ...

  7. salesforce 零基础学习(三十六)通过Process Builder以及Apex代码实现锁定记录( Lock Record)

    上一篇内容是通过Process Builder和Approval Processes实现锁定记录的功能,有的时候,往往锁定一条记录需要很多的限制条件,如果通过Approval Processes的条件 ...

  8. salesforce 零基础学习(六十二)获取sObject中类型为Picklist的field values(含record type)

    本篇引用以下三个链接: http://www.tgerm.com/2012/01/recordtype-specific-picklist-values.html?m=1 https://github ...

  9. salesforce 零基础学习(三十八)Translate 的使用(国际化处理)

    本篇参考:http://resources.docs.salesforce.com/200/17/en-us/sfdc/pdf/salesforce_workbench_cheatsheet.pdf ...

  10. salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

    有的时候我们可能有这样的需求,当某个字段为特定的值情况下,便锁定此条记录,仅允许Profile为System Admin的用户修改或者解锁,其他的用户只能查看此条记录,不能修改此条记录,这种情况下我们 ...

随机推荐

  1. JDBC详解(韩顺平教程)

    JDBC 一.原理示意图 二.前提步骤 IDEA导入MySQL的jdbc驱动,并操作数据库 - 打点 - 博客园 (cnblogs.com) 三.JDBC编写步骤: 用法1: package Hsp. ...

  2. R数据分析:解决科研中的“可重复危机”,理解Rmarkdown

    不知道刚接触科研的大伙儿有没有这么一个感觉,别人的研究很大可能你重复不出来,尤其是社科实证研究,到现在我都还觉得所谓的实证是个很玄乎的东西: 如果是刚开始做数据分析,很多时候你会发现自己的分析结果过几 ...

  3. SpringBoot 多环境切换

    日常开发中一般都会有三个不同的环境,分别是开发环境(dev),测试环境(test)和生产环境(prod),不同的环境各种配置都不相同,比如数据库配置,服务器端口等等. Spring Boot 多环境配 ...

  4. Blazor如何跟随“系统主题”?

    1. 前言 跟随系统主题已经是绝大多数App和网站的标配 但是如何在Blazor中跟随系统主题? 只找到Masa Blazor技术团队发的 MAUI + Masa Blazor 开发界面跟随系统主题切 ...

  5. Java服务刚启动时,一小波接口超时排查全过程

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明. 简介 我们组有一个流量较大的Java服务,每次发代码时,服务都会有一小波接口超时,之前简单分析过,发现这些超时的 ...

  6. Linux 软件包:man pages

    有时候,man ls 发现没有帮助文档,可以快递打开浏览器检索 "man ls" . # yum list | grep man | grep pages gl-manpages. ...

  7. 实践分析丨AscendCL应用编译&运行案例

    本文分享自华为云社区<AscendCL应用编译&运行问题案例>,作者: 昇腾CANN. AscendCL(Ascend Computing Language)是一套用于在昇腾平台上 ...

  8. 2021-10-09 Core学习

    控制器学习 如果有ID参数,根据前面定义的{controller=Home}/{action=Index}/{id?} 可以换成一下格式 页面学习 视图 基架搭建 然后在nuget控制台添加 Add- ...

  9. npm 切换源

    切换到淘宝源 npm config set registry https://registry.npm.taobao.org 切换回官方源 npm config set registry http:/ ...

  10. 压缩CSS样式与js样式

    方法一: 使用插件:JS & CSS Minifier (Minify) 使用方法: 效果: 或者按下F1,输入命令:Minify:Document