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更易学会,而且在视觉上更具吸引力。

执行顺序

无论是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仍有一段距离。

 

作者:自由侠部落

博客地址:https://home.cnblogs.com/u/CDP1/

本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接 

如果文章的内容对你有帮助,欢迎点赞~

为方便手机端查看博客,现内容随博客同步至微信公众号:自由侠部落,欢迎各位关注。

查看原文