Static & Dynamic Picklists for Flow Builder

DEX455 - Flow 与 Formula Evaluation:Apex 集成 Flow Builder 完全指南

📄 第 295 页 🎬 视频课程

课程章节介绍

同学们,咱们今天来看这一页幻灯片,讲的是Salesforce里的静态选择列表和动态选择列表。内容不多,但很实用,我慢慢给你们梳理一下。 先说静态选择列表吧,这个很简单。咱们在定义字段或者流程参数的时候,直接把选项用逗号一个个隔开就行了。比如“苹果,香蕉,橘子”。如果你想显示的标签和实际存的值不一样,还可以用竖线来分隔,左边是值,右边是标签,像这样:“CA|加州,NY|纽约”。不过要记住,一个静态列表最多只能塞500个值,超过就不行了。 那如果选项是需要实时查的,比如说你要列出所有活跃的客户,总不能每次手动改静态列表吧?这时候就要用动态选择列表了。它算是静态列表的升级版,把可视化编辑器给扩展了,允许咱们用Apex代码来动态生成选项。 怎么实现呢?你需要写一个Apex类,让它继承一个叫 `VisualEditor.DynamicPickList` 的抽象类。然后最关键的两步是:重写两个方法。幻灯片上写的“getProtect Value”,其实应该是 `getDefaultValue`,也就是定义默认选中的值;另一个是 `getValues`,在这个方法里写你的查询逻辑,比如用SOQL从数据库捞数据,然后包装成 `VisualEditor.DataRow` 的列表返回,这样数据源就活起来了。 写完类之后,怎么用呢?在Lightning App Builder或者Flow里面,你得用一种特殊格式来引用它:`apex://你的类名`。就类似 `apex://MyDynamicPickList`,这样平台就知道要去调用你这个Apex类了。 不过,有一个特别重要的提醒:动态选择列表的逻辑,是在你配置Flow或操作的时候直接运行的,也就是在Flow Builder里点来点去配置参数时它就开始执行Apex代码了。所以一定要让代码效率高一点,别搞那种慢悠悠的复杂查询或者调用外部接口,不然很容易卡住或者超时。一般我们就写个简单的SOQL,加上合适的 `LIMIT`,瞬间跑完,配置体验就会很顺畅。 好了,这一页的重点咱们就讲完了。你只要记住:静态列表用逗号和管道分隔,上限500;动态列表要继承 `DynamicPickList`,重写默认值和数据源方法,用 `apex://` 引用,并且保证代码轻快。掌握这些,就能灵活处理各种选择列表的需求了。

关键词

Apex Salesforce Developer Guide