Salesforce Flow(二)如何利用ApexClass取得后台数据

2021-11-30 17:26:53 浏览数 (1)

上一篇我们创建了一个简单的Flow,并配置到PageLayout中,表示固定文言Hello World,Flow不仅限于表示固定文言,还可以通过ApexClass从Object之中取得,下边我先创建一个ApexClass,取得Contact表中的LastName和Email 用来显示在画面上,学习如何通过Flow表示到画面上。

1.创建一个ApexClass

ApexClass代码如下,把数据保存到返回值【list<Results>】之中。

代码语言:javascript复制
global with sharing class filterContact {
    public filterContact() {
    }
    public class FlowActionException extends Exception {}
    global list<Results> result{get;set;}

    @InvocableMethod
    public static list<Results> filter() {
        list<Contact> lstCon = [select id, LastName, Email from contact];

        list<string> strlist = new list<string>();
        for(contact con : lstCon){
            string str1 = '<br/>'   con.Lastname   ':'   con.email;
            strlist.add(str1);
        }
        List<Results> rsts = new List<Results>();
        Results rst = new Results();
        rst.filteredContactCollection = lstCon;
        rst.contactDataList = strlist;
        rsts.add(rst);
        return rsts;
    }
    global class Results {
        @InvocableVariable
        global Contact[] filteredContactCollection;
        @InvocableVariable
        global string[] contactDataList;
    }
}

2.创建Flow

在画布中拖拽一个Action,并选择上边创建的ApexClass

输入ApiName和Label名称

这里设置ApexClass的两个返回值【contactDataList】,【filteredContactCollection】,注意类型要和ApexClass中一致。

变量contactDataList

变量filteredContactCollection

连接开始和Action

在画布中拖拽一个Screen,用来显示取得的结果

利用变量【contactDataList】,显示LastName,Email,变量【filteredContactCollection】这里暂时不使用。

连接Action和Screen,最后保存。

3.创建ListButton,用于在标准ListView上表示。

4.在标准ListView上配置Action

5.点击刚刚创建的ListButton,测试结果

0 人点赞