无法从PowerApps向SharePoint列表提交人员类型数据求助
问题根源
第一个错误是因为ComboBox选中项的字段结构和SharePoint人员字段要求的结构不匹配,缺少Claims等必填隐藏字段;第二个错误是调用Office365Users.SearchUserV2的方式有误,导致返回了错误类型值给Claims字段。
两种可行解决方案
方案一:用SharePoint人员选项作为ComboBox数据源
这是最省心的方法,直接让ComboBox输出符合要求的记录:
- 将ComboBox的
Items属性设置为:Choices(ListName.Person) - 此时ComboBox的
Selected项自带SharePoint人员字段所需的全部字段(包括Claims),直接用最初的Patch代码即可:Patch( ListName, Defaults(ListName), { Person: ComboBox2.Selected } )
方案二:手动构造符合要求的人员记录
如果必须用Office365Users作为ComboBox数据源,无需调用API获取Claims,直接按SharePoint要求的格式拼接即可:
Patch( ListName, Defaults(ListName), { Person: { Claims: "i:0#.f|membership|" & ComboBox2_1.Selected.Email, DisplayName: ComboBox2_1.Selected.DisplayName, Email: ComboBox2_1.Selected.Email, Department: "", // 可选字段,留空不影响提交 JobTitle: "", // 可选字段,留空不影响提交 Picture: "" // 可选字段,留空不影响提交 } } )
说明:SharePoint组织内用户的人员字段Claims格式固定为
i:0#.f|membership|用户邮箱,直接拼接比调用API更可靠。
补充说明
Power Apps网页版和桌面版在处理该问题上没有差异,之前的错误和使用网页版无关,核心是数据源匹配或记录构造的格式问题。
内容的提问来源于stack exchange,提问作者Jeff Aubé
相关产品推荐
相关产品推荐

