You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将非SObject/自定义对象的记录列表从LWC传递至Flow

解决LWC向Flow传递非SObject记录列表的方案

一、调整LWC的js-meta.xml配置

你当前的propertyType继承了SObject,但你的记录并非标准/自定义对象,这种配置不适用,需要修改为通用对象数组类型:

<property name="records2" type="Object[]" label="Records U" role="outputOnly" />

说明:role="outputOnly"是必填项,标记该属性为LWC向Flow输出的参数,否则Flow无法接收数据。如果需要双向传递可改用readWrite,仅单向传递用outputOnly即可。

如果你的记录有固定结构,更推荐用Apex定义类实现强类型传递(更规范且易维护):

  1. 创建全局Apex类定义记录结构:
public class CustomRecord {
    @AuraEnabled public String field1;
    @AuraEnabled public Integer field2;
    // 按需添加其他字段
}
  1. 修改js-meta.xml引用该Apex类:
<property name="records2" type="CustomRecord[]" label="Records U" role="outputOnly" />

二、在LWC组件中传递数据

在LWC的JS文件中,将你的记录列表直接赋值给@api修饰的records2属性即可:

import { LightningElement, api } from 'lwc';

export default class YourLwcComponent extends LightningElement {
    @api records2; // 与meta中的属性名保持一致

    // 示例:生成/获取非SObject记录列表并传递给Flow
    passRecordsToFlow() {
        const customRecords = [
            { field1: '示例值1', field2: 100 },
            { field1: '示例值2', field2: 200 }
        ];
        this.records2 = customRecords;
    }
}

注意:如果用Apex定义类,LWC中的对象结构必须和Apex类字段完全匹配,Flow才能正确解析。

三、Flow中配置资源并绑定

  1. 创建对应Flow资源:

    • 若用Object[]类型:创建集合变量,数据类型选「任意类型」,变量名设为records2(与LWC属性名一致)。
    • 若用Apex定义的CustomRecord[]类型:创建集合变量,数据类型选「Apex定义的类型」,然后选择你创建的CustomRecord类,变量名设为records2。
  2. 绑定LWC与Flow变量:

    • 在Flow中添加「屏幕」元素,将你的LWC组件拖到屏幕上。
    • 点击LWC组件,在右侧设置面板的「输出」区域,找到records2属性,绑定到你创建的Flow集合变量records2上。
  3. 验证传递结果:
    可在Flow中添加「赋值」或「日志」元素,输出records2变量内容,确认数据是否成功传递。

常见问题排查

  • 若Flow接收不到数据,检查LWC的@api属性是否正确赋值,且js-meta.xml中是否设置了role="outputOnly"。
  • 若用Apex定义类型,确保Apex类是全局的,且所有需要传递的字段都添加了@AuraEnabled注解。
  • 非SObject记录的字段名要和Flow资源(或Apex类)的字段名完全一致,大小写敏感。

内容的提问来源于stack exchange,提问作者satheesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:25:09