Flow Local Actions — Configuration & invoke()

DEX475 - Create Flow Local Actions using LWC

📄 第 352 页 🎬 视频课程

课程章节介绍

今天我们来聊聊Flow里的“本地操作”,也就是Local Actions。你可以在js-Meta.html里配置,把目标设为lightning__FlowAction。它的模板是空白的——因为本地操作根本不需要界面,它只负责在后台执行逻辑。 当一个操作被触发时,流运行环境会调用它的invoke()方法。如果是同步的操作,非常简单:做你要做的事,然后直接返回就行了。方法一结束,流里的下一个元素就自动往下走。 但很多时候,我们的操作是异步的,比如发一个网络请求。这时,invoke()就要返回一个Promise。如果Promise变成resolve,流就顺利进入下一个元素;要是变成rejected,流就会跳转到故障连接器,并且自动把错误信息放到$Flow.FaultMessage变量里,让你能自定义报错内容。 还有一个实用的小细节:Flow会给你一个cancelToken参数,用来处理超时。它的默认超时时间是120秒,如果操作太久没完成,这个Promise会被自动解决,给你机会去做一些清理工作,同时也能设置一个更友好的自定义错误消息。 另外,如果你的操作需要调用外部服务器的接口,那就要注意了:必须配置好CORS(跨域资源共享),而且在Salesforce组织里要把那个服务器的地址添加进白名单。不然请求是发不出去的。 还有一点要提醒:如果你在Lightning Web Runtime(LWR)站点上用,就别用老的platformShowToastEvents了,改用lightning/toast模块来显示提示消息。 总结一下:本地操作没有界面,invoke是入口,同步直接返回,异步返回Promise并处理好resolve和reject,利用cancelToken做超时,注意CORS和LWR站点的提示方式。这样,你就能让Flow在后台灵活地调用自定义逻辑了。

关键词

LWC Lightning Web Components Salesforce