- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
本篇参考:
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新功能:CustomError的文章就讲到这里了,如果你想了解更多关于salesforce零基础学习(一百三十二)Flow新功能:CustomError的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试实现 kotlin stateflow,但不知道它不起作用的原因。 当前输出: 验证34567 预期输出: 验证 34567 验证失败 package stateflowDuplicate
最近我发现了一个我无法理解的流行为。 问题描述 考虑这种情况:你有一个父 flow 并且在它的 collect 中,你将有一个“子”flow 并调用 .collect(),像这样: parentFlo
我想通过 UML2 事件图为以下事件建模: 执行操作 1。此操作产生两个输出参数: Object1和对象 2。 执行操作 2。此操作需要 Object2 作为输入参数。它不需要 Object1 作为输
在 Vaadin 8 中,您可以在 Tab(属于 TabSheet)上设置一个图标: tab#setIcon(...) 在 Vaadin Flow(目前使用 14.1)中,我不知道如何在 Tab(属于
有什么办法可以做到这一点吗?如果存储库仅在 .git/config 中包含 git-flow 指令(如 ),则该存储库是否被视为已初始化 .... [gitflow "branch"] mas
the 2nd collecting below does not collect until I remove the first one. also read from [Manuel Vi
在官方示例中,他们总是有 /* @flow */在页面顶部。现在这对现有项目来说很好,很有帮助,我想选择加入每个文件的流程。从头开始构建一个新项目我只想在任何地方进行流类型检查,而不必输入 /* @f
Vaadin 突然停止构建我的库并出现以下错误。我已经跳了 Vaadin 舞(还有很多其他的东西),但我现在没主意了。我尝试为生产构建库(但对于开发也失败了)。 我正在使用 Vaadin Flow。
我注意到很多人和例子都使用 Flows 作为 List<> 的包装器,例如像这样: @Query("SELECT * from some_model ORDER BY some_field") fun
Vaadin 突然停止构建我的库并出现以下错误。我已经跳了 Vaadin 舞(还有很多其他的东西),但我现在没主意了。我尝试为生产构建库(但对于开发也失败了)。 我正在使用 Vaadin Flow。
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 3 年前。 Improv
git flow init后,如何删除git flow模型? 如何从 .git/config 文件中删除所有相关配置? $ git flow init # force reset $ git flow
我运行了 git init 并在选择第一个分支时犯了一个错误。现在我想重新运行它来更改设置,但它再也不会问第一个问题。 Which branch should be used for bringing
我刚刚开始一份新工作,他们的代码管理一团乱。通常情况下这没什么问题,我可以应付,但在这个地方,情况就糟糕得离谱了。 他们使用 TFS...对此我无能为力。没有机会介绍 git,但我一直在阅读有关 gi
我的应用程序有更新问题。我不太明白 subview 之间的数据流是怎么回事。 这是我目前的结构 ViewModel:ObsebsrvableObject MainView 与 ObservedObje
为什么“flow check-contents”需要使用 < 将文件重定向到其中,而“flow suggest”则不需要?看起来 check-contents 应该假设命令行参数是要检查的文件路径。
最近我在 Git 中发现了工作流的三个概念: GitFlow GitHub 流程 GitLab 流程 我读过 the nice articles关于它,但我不太了解 GitLab Flow。 简单地说
我们刚刚改用 Hg Flow,但我们还没有弄清楚的一件事是如何最好地使用 Jenkins。理想情况下,我们将有一个构建和测试开发的作业,一个构建和测试默认作业和其他作业,这些作业在创建功能或发布分支时
将 Vaadin 12 与 FormLayout 一起使用和标签左侧的输入字段。 我想设置标签列的宽度。如何使用 Java API 实现这一点? 最佳答案 用于设置个人 FormItem标签宽度和/或
我正在使用 React-Flow 来可视化 React 中组件的树状层次结构。每当您在 React-Flow 中创建自定义节点时,您都可以像这样在树中使用它: ,我就可以做到这一点。 .有没有
我是一名优秀的程序员,十分优秀!