PowerApps重写ShowColumns公式实现多集合字段传参
PowerApps 多集合指定列读取对接Power Automate实现方案
实现思路
ShowColumns本身仅支持对单个集合做列裁剪,无法直接传入多个集合- 正确流程是先分别对两个集合用
ShowColumns筛选需要保留的字段,再合并为单个表后做JSON序列化,传入Power Automate流 - 两个集合筛选后字段不一致时,PowerApps会自动为缺失字段的行填充空值,不影响序列化结果
待新增的字段筛选片段
ShowColumns(collection_output,"ID_SUB_FORM","LOC_SITE")
原有业务代码
Set( var_FileLink, 'ExporttoExcel-Version2'.Run( JSON( ShowColumns( collection_form, "FORM_QUESTION_ID", "FORM_QUESTION", "ANSWER_RADIO", "ANSWER_TEXT" ), IncludeBinaryData ) ).filelink );
修改后可直接运行的代码(行合并模式,两个集合的数据合并为同一个JSON数组)
Set( var_FileLink, 'ExporttoExcel-Version2'.Run( JSON( Ungroup( [ ShowColumns( collection_form, "FORM_QUESTION_ID", "FORM_QUESTION", "ANSWER_RADIO", "ANSWER_TEXT" ), ShowColumns( collection_output, "ID_SUB_FORM", "LOC_SITE" ) ], "Value" ), IncludeBinaryData ) ).filelink );
可选结构化传参模式
如果不希望把两个集合的行混在同一个数组里,需要在JSON中区分两类数据(比如表单答案、输出元数据分开存储),可以将JSON入参改为自定义记录结构,对应需要同步调整Power Automate流的入参解析逻辑,示例代码如下:
Set( var_FileLink, 'ExporttoExcel-Version2'.Run( JSON( { formList: ShowColumns( collection_form, "FORM_QUESTION_ID", "FORM_QUESTION", "ANSWER_RADIO", "ANSWER_TEXT" ), metaInfo: ShowColumns( collection_output, "ID_SUB_FORM", "LOC_SITE" ) }, IncludeBinaryData ) ).filelink );
内容的提问来源于stack exchange,提问作者Caio
相关产品推荐
相关产品推荐

