salesforce学习笔记(3)- salesforce apex如何调用Flow(流)
随着Salesforce官方宣布2025年12月31日后将不再对Workflow Rule(工作流规则)和Process Builder(进程生成器)提供官方支持和Bug修复,Flow(流)势必成为Salesforce中低代码自动化的未来。
流的分类为:屏幕流,记录触发流,计划触发流,平台事件触发流,自动启动流(无触发器),记录触发的业务流程。种类不同,流启动方式也有所区别。
最近遇到的一个问题就是,Apex代码中应该如何调用Flow(流)呢?
自从Summer’14以后,便可以通过apex类来调用flow。使用Flow. Interview和start方法可以启动flow。
实现途径大致两种:
- UI上的action动作(如Visualforce Page画面上的按钮动作)
- flow:interview控件
这里我们选择通过VF page的按钮action或者定时方法来启动flow。
Flow情况如下:
Apex代码如下:
1 public class FlowController { 2 public void callFlow(){ 3 // 调用flow所需数据 4 Account acc = new Account(); 5 acc.FirstName = 'Sapna'; 6 acc.LastName = 'Chandani'; 7 ...... 8 insert acc; 9 10 Map<String,Account> accMap = new Map<String, Account>(); 11 leadMap.put('newAccount', acc); 12 // 通过Flow.Interview及start方法启动flow 13 Flow.Interview.Calculate_Discounts flow = new Flow.Interview.Calculate_Discounts(accMap); 14 flow.start(); 15 } 16 }
VF Page代码如下:
1 <apex:page controller="FlowController"> 2 <apex:form > 3 <apex:commandButton action="{!callFlow}" value="Start" reRender="text"/> 4 </apex:form> 5 </apex:page>
Apex定时方法来调用上述Apex方法也可启动flow:
1 global class scheduledFlow implements Schedulable { 2 global void execute(SchedulableContext sc) { 3 FlowController fc = new FlowController(); 4 fc.callFlow(); 5 } 6 }
写在最后:
核心方法在于Flow.Interview方法的使用。
欢迎评论转发,如文中有问题欢迎指正!
Copyright © 乔木船长