Embed a Flow — Create, Start & Input Variables

DEX475 - Flows

📄 第 344 页 🎬 视频课程

课程章节介绍

好,同学们,我们来看一下怎么把一个流程直接嵌入到你的闪电网页组件里。 这个闪电组件,它专门用来在你的页面上运行一个流,就像直接打开流程一样。你只需要给它一个属性,叫做 flow-api-name,这个属性告诉它要运行哪个流。这个值你可以直接写死一个字符串,比如“我的审批流”,也可以用动态的 getter 函数,根据不同的条件来切换不同的流,非常灵活。 接下来,这个组件会触发一个重要的事件,叫 onstatuschange。它会告诉我们这个流现在的生命周期状态是什么。状态一共有六种,比如它刚刚开始、正在运行、暂停、还是已经结束。在事件里,你可以拿到很多有用的信息,比如流运行结束后的输出变量、当前停在哪一个活动阶段,甚至还能访问到一个“面试收件箱”。这样你就能实时跟踪流的运行情况了。 那怎么往流里面传输入变量呢?也很简单。你通过一个 input-variables 属性,它是一个数组,每个数组项是一个对象,包含三个字段:name 是变量名,type 是类型,value 是值。注意哦,不同的流数据类型,在这里要对应到 JavaScript 的类型。比如:文本类型就传字符串,数字就用 JavaScript 的数字,记录类型(我们常说的 SObitch)可以传一个对象,日期类型要写成 yyyy-MM-dd 这种格式的字符串,日期时间则是 ISO 8601 格式的字符串,布尔值就直接用布尔值。 特别提一下记录变量,它可以只传单个字段的值,也可以从 Apex 直接传进一个完整的记录对象,把整个记录塞进去。不过前提是,这个流必须是主动启动的流,而且变量必须开启了“允许输入访问”的选项。还有一点很重要,这些输入值只能在流面试刚开始的时候设置,流跑起来之后是不能再更改的,这一点一定要记住。 另外,如果你在使用闪电网页运行时站点,也就是 LWR 站点,要注意一个限制:如果你的闪电组件里面自己又包了一个自定义的 LWC 或者 Aura 组件,那这个闪电组件就不能用了,它会罢工的。所以在这种站点上,要确保闪电组件内部不要嵌套其他自定义的自定义组件。 好了,关于把流程嵌入 LWC 的知识点就这些,大家结合例子练一练,很快就上手了。

关键词

LWC Lightning Web Components Salesforce