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代码如下:

public class FlowController {
    public void callFlow(){
        // 调用flow所需数据
        Account acc = new Account();
        acc.FirstName = 'Sapna';
        acc.LastName = 'Chandani';
        ......
        insert acc;

        Map<String,Account> accMap = new Map<String, Account>();
        leadMap.put('newAccount', acc);
        // 通过Flow.Interview及start方法启动flow
        Flow.Interview.Calculate_Discounts flow = new Flow.Interview.Calculate_Discounts(accMap);
        flow.start();
    }
}

VF Page代码如下:

<apex:page controller="FlowController">
     <apex:form >
         <apex:commandButton action="{!callFlow}" value="Start" reRender="text"/>
     </apex:form>
</apex:page>

Apex定时方法来调用上述Apex方法也可启动flow:

global class scheduledFlow implements Schedulable {
     global void execute(SchedulableContext sc) {
         FlowController fc = new  FlowController();
         fc.callFlow();
     }
}

总结

核心方法在于Flow.Interview方法的使用。

Copyright © 乔木船长

个人主页:乔木船长

欢迎转发点评和指正!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值