Custom Property Editors — Overview & Comparison

DEX475 - Create Flow Local Actions using LWC

📄 第 355 页 🎬 视频课程

课程章节介绍

嗨,同学们,咱们今天来聊聊一个特别实用的话题——,自定义属性编辑器,。 你平时在 Flow Builder 里拖一个可调用动作或者屏幕组件的时候,是不是发现属性面板里都是干巴巴的文本框?所有参数全靠手打,既不方便也容易出错。自定义属性编辑器呢,就是要把这种纯文本的体验,变成一个丰富、友好的配置界面,比如下拉菜单、动态挑选列表、条件式输入,甚至带搜索的记录选择器。 那哪些地方能用上它呢?有两种场景。 第一种,是咱们用 ,@InvocableMethod, 注解注册的,可调用动作,,动作要想在 Flow 里出现,就可以配上自定义编辑器。 第二种,是,屏幕组件,,也就是 Lightning Web 组件,只要在它的 js‑meta.xml 文件里加上 `configurationEditor` 属性指向编辑器资源,Flow Builder 就能认出这个定制界面。 好,接下来就是实际开发时用到的 JavaScript 接口。这个接口会拿到五个好帮手,咱们一个个说: 1. ,inputVariables, 这是当前属性值的列表,每个值都带着名字、当前值、还有数据类型。你就把它想象成 Flow 传进来需要编辑的“试卷”,编辑器负责展示和修改它们。 2. ,builderContext, (Slide 上写的是 builderContent,但通常叫 builderContext) 它包含了 Flow 里所有可用的元素和资源,比如其他变量、资源、筛选条件等。有了它,你就能做出,动态的挑选列表,——比方说根据前面选的字段,动态显示后面的选项。 3. ,elementInfo, 它告诉你这个组件被调用时的基础信息,比如 API 名称,还有它在 Flow 里是充当动作还是屏幕。这样你的编辑器就知道自己是在哪个角色下工作了。 4. ,genericTypeMappings, 这个用来处理通用 sObject 类型分配。Flow 里经常用 T__ 或 U__ 这种占位符来表示一个不确定的 sObject,这里就能把实际的类型映射告诉 Flow。比如 T__ 对应账户,U__ 对应联系人。 5. ,validate() 函数, 这是留给你的自定义验证函数。你可以在里面写逻辑,比如检查某个值是不是填对了,如果不对就返回一个错误消息,Flow Builder 就会在保存或运行前拦截下来,提示用户修正。 有了这些输入,编辑器就可以造出漂亮的 UI。但光有界面还不行,用户改了东西得告诉 Flow Builder 呀。这就是需要,发送事件,了!Slide 里提到三种事件,都是咱们在编辑器里需要派发出去的: - ,Value_Changed, 当用户改了一个属性的值,你就派发这个事件,带上 `name`(哪个属性)、`newValue`(新的值)、还有 `newValueDataType`(新值的数据类型)。这样 Flow Builder 就会自动更新对应的变量。 - ,Value_Deleted, 如果用户清空或删除了某个属性,就发这个事件,只带 `name`,Flow Builder 就知道这个属性被重置了。 - ,generic_style_mapping_changed, 这个事件跟通用类型映射有关,当映射关系变了,你就派发它,带上 `typeName`(比如 T__)和 `typeValue`(实际的 sObject API 名),告诉 Flow Builder 类型指派已经更新。 这里有一个,非常关键的点,:无论你派发哪种事件,都一定要在事件定义里设置 `bubbles: true` 和 `composed: true`。如果不加这两个,事件就穿透不到 Flow Builder 的壳里,你的修改就传不出去,界面点了白点。 总结一下,自定义属性编辑器就像给 Flow Builder 装上了一套智能外壳,让搭建流程的人点一点、选一选就能配置复杂逻辑,既高效又不容易出错。咱们开发时,先确定是给动作还是屏幕组件用,配上编辑器入口,然后在 JS 里利用好那五个输入,最后通过三个特定事件把改动传回去,并且千万记得那个 bubbles 和 composed 的设置。 好了,今天的内容就这么多。下次动手做 Flow 组件的时候,你就可以试试把那个傻傻的文本框变成一个贴心的配置面板了!

关键词

LWC Lightning Web Components Salesforce