Power Apps画布应用Patch函数问题:SP列表记录批量复制至另一列表
现有代码问题分析
你之前的两段代码都存在语法逻辑错误:
- 第一段代码:
Patch的目标列表写错成源列表UWT - Training Courses,且仅尝试创建单条记录,没有批量处理;同时直接用集合colName赋值给字段,不符合字段赋值逻辑。 - 第二段代码:
ForAll和Patch的语法结构错误,Patch的闭合括号位置不对,且没有正确引用源列表当前记录的字段值,也未正确获取输入的用户名。
正确实现代码
假设Form1里输入用户名的文本框控件名为txt_UWName,可以将按钮的OnSelect属性修改为以下代码:
// 先提交表单确认用户名输入(如果表单仅用于收集用户名,也可以跳过SubmitForm直接用文本框值) SubmitForm(Form1); // 遍历源列表的前50条记录,批量复制到目标列表 ForAll( FirstN('UWT - Training Courses', 50), Patch( 'UWT - Training Courses UWN', Defaults('UWT - Training Courses UWN'), // 复制源列表的所有字段(如果不需要全部字段,可单独指定) ThisRecord, // 添加用户名字段值,这里用表单提交后的值,或者直接用文本框值 {'UWName': Form1.LastSubmit.UWName} // 如果不需要提交表单,直接用文本框值:{'UWName': txt_UWName.Text} ) )
补充说明
- 如果不需要通过表单提交用户名,可直接使用文本框的
Text属性,省去SubmitForm(Form1)步骤,简化代码。 - 若源列表和目标列表的字段名称完全一致,
ThisRecord会自动映射所有字段;如果字段名不同,需要手动一一对应,比如{'目标列表字段名': ThisRecord.'源列表字段名'}。 - 注意Power Apps的批量操作有API调用限制,50条记录在默认限制内可以正常执行。
内容的提问来源于stack exchange,提问作者Stuart74
相关产品推荐
相关产品推荐

