Power Apps批量更新集合记录至SharePoint列表问题求助
核心问题修正
你当前创建的upd_info是单列多行集合(每行对应一个字段值),而非包含所有更新字段的单条记录,这导致无法直接合并到目标集合的每一行。先将更新信息转为单条记录:
// 替代原ClearCollect(upd_info,...),把更新字段存为一条结构化记录 Set(upd_record, { Status: Statuslbl.Text, Update_ts: Update_ts.Text, Auditor: 'Auditor Name'.Text, Notes: Notes_Upd.Text });
方法1:用AddColumns批量生成带更新字段的集合(推荐)
通过AddColumns直接为目标集合的每一行追加统一字段值,效率远高于循环操作:
// 生成包含原有字段+更新字段的最终集合 ClearCollect( colMassEdt_Final, AddColumns( colMassEdt_2a, "Status", upd_record.Status, "Update_ts", upd_record.Update_ts, "Auditor", upd_record.Auditor, "Notes", upd_record.Notes ) );
之后你可以直接将colMassEdt_Final转为JSON传入Power Automate,或者直接在Power Apps中批量更新SharePoint(无需依赖流,更高效):
// 批量更新SharePoint列表记录(集合需包含ID字段,你的代码已满足) Patch( RBI_User_Actions, colMassEdt_2a, // 带ID的源记录集合 upd_record // 要统一设置的字段值 );
方法2:用ForAll循环合并记录(不推荐,大数据量性能差)
如果需要用循环方式实现,可通过ForAll遍历原集合,为每行追加更新字段:
Clear(colMassEdt_Final); ForAll( colMassEdt_2a, Collect( colMassEdt_Final, Patch(ThisRecord, upd_record) ) );
关键说明
- 确保目标集合
colMassEdt_2a包含SharePoint列表的ID字段(你的代码中已包含),这是批量更新的核心标识。 - 直接使用
Patch批量更新无需跨服务调用,能减少延迟和出错概率。
内容的提问来源于stack exchange,提问作者Desert Spider
相关产品推荐
相关产品推荐

