Flow Builder作为自动化领域的新秀,近年来得到了突飞猛进的发展。它在功能方面已经远远超过Workflow Rules和Process Builder,随着Workflow Rules和Process Builder的退役,目前所有自动化都需要迁移到Flow。
不少学习者比较好奇,Flow与Apex相比如何?Flow可以完全取代Apex吗?本篇文章将介绍Apex和Flow之间的区别,执行顺序以及两种工具的局限性。
什么是Apex?
Apex是一种强类型的,面向对象的编程语言,开发人员通过Apex表现业务逻辑来补充Salesforce平台所需的功能。Apex使用类似Java的语法,并像数据库存储过程一样工作。
Apex使开发人员能够将业务逻辑添加到系统事件,例如记录更新,单击按钮,Visualforce页面,对象触发或外部Web服务请求。开发人员可以使用多种工具编写Apex,包括Developer Console、VS Code和Salesforce Code Builder。
初级开发动手实操
什么是Flow?
Flow是Salesforce管理员可以使用的强大的自动化工具,无需代码也能构建复杂的业务解决方案。Flow Builder是用于构建这些Flow的声明性接口。
Flow自动执行业务流程,以收集、更新、编辑,创建或删除Salesforce记录以及与外部系统进行交互。Flow可以在后台运行(autolaunched flows),也可以提供用户界面(screen flow)。Flow具有极大的灵活性,可在声明性和交互式Flow Builder UI中进行管理。
相较于Apex,Flow是不会编写代码的使用者也可以掌握的工具。管理员甚至是超级用户可以使用Flow Builder构建自动化。与Apex相比,Flow更易学会,而且在视觉上更具吸引力。
资深讲师手把手教你学Flow
执行顺序
无论是Apex还是Flow,都需要考虑执行顺序。关于执行顺序,有两点很重要:
Flows在Apex Triggers之前运行。
Apex Triggers也可以在单个Transaction中运行多次。
在构建业务工作流时,必须要考虑这两点,以确保一切都按预期运行。
限 制
使用Flow Builder,根据所创建的Flow类型,存在某些限制。如下表所示,before-save triggered flow比after-save triggered flow有更多的限制。还有一些任务仅仅依靠Flow是无法完成的,比如复杂的列表处理和自定义验证规则。
就Apex的局限性而言,在功能性方面,Apex没有任何限制。唯一的限制可能就是需要专业的开发人才。对于组织来说,能力出众的专业开发人员不可多得。
测 试
对于Apex而言,测试是开发的重要组成部分。如果没有通过测试类,就无法将Apex代码从沙盒中推入生产环境。
而对于Flow来说,可以直接在生产环境中构建和激活Flow,不需要进行测试。不少学习者预测,在未来使用Flow进行测试可能会成为强制性的,就像Apex一样。使用者可以通过Debug工具等方式测试Flow。
总体来说,Flow Builder是一个强大的自动化工具,但距离完全取代Apex仍有一段距离。
网友评论