Power Apps新建表单字段无法正确映射至SharePoint列表
核心问题定位
你遇到的情况是表单显示正常但提交后字段为空,本质是Power Apps传递给SharePoint的数据格式不匹配,导致SharePoint无法识别并存储值。以下是具体排查和修复步骤:
1. 匹配下拉/组合框的返回值与SharePoint列类型
先明确SharePoint里utilisateur和role的列类型,对应调整控件的取值属性:
- 如果是「人员/组」列:不能直接用
.Selected,因为人员列存储的是带特定格式的对象。需要改成:- 若存储的是用户邮箱:
DataCardValueX.Selected.Email(DataCardValueX是你的人员组合框控件名) - 若要完整匹配人员对象格式,Update属性设为:
{ Claims: "i:0#.f|membership|" & DataCardValueX.Selected.Email, Email: DataCardValueX.Selected.Email, DisplayName: DataCardValueX.Selected.DisplayName, Picture: "" }
- 若存储的是用户邮箱:
- 如果是「选择(单选)」列:必须用
.Selected.Value来获取选择的文本值,直接用.Selected返回的是整个选项对象,SharePoint无法解析。比如DataCardValueY.Selected.Value(DataCardValueY是role的组合框控件名) - 如果是「文本」列:确认组合框的
SelectedText.Value或.Selected.Value是否正确返回文本内容。
2. 修正DataCard的Update属性
确保每个必填字段的DataCard的Update属性,严格对应SharePoint列的接收格式:
- 找到
utilisateur对应的DataCard,把Update属性从.Selected改成上述对应格式 role列同理,根据列类型调整Update的取值
3. 验证表单提交逻辑
- 确认提交按钮的
OnSelect属性是SubmitForm(你的表单名称),没有多余的逻辑截断提交流程 - 可以给提交按钮加个错误提示,方便排查:
若提交失败,提示信息会告诉你具体问题(比如字段格式不匹配)SubmitForm(Form1); If(Form1.Error, Notify("提交失败: " & Form1.Error.Message, Error), Notify("提交成功", Success))
4. 检查SharePoint列的必填设置
- 确认列表中
utilisateur和role的「必填」设置已开启,同时Power Apps表单里对应DataCard的Required属性设为true(可以绑定到Parent.Required来和列表同步),避免提交时绕过验证导致空值
快速测试技巧
在表单里加一个Label控件,把Text属性设为:
"utilisateur提交值: " & JSON(DataCardValueX.Selected) & " role提交值: " & JSON(DataCardValueY.Selected)
提交前看Label显示的内容,就能判断控件返回的是不是SharePoint能识别的格式。
内容的提问来源于stack exchange,提问作者tycyly
相关产品推荐
相关产品推荐

