MS PowerApps问题:无法向SharePoint Online保存新记录
嘿,我来帮你搞定这个Power Apps里Patch SharePoint列表的问题~你遇到的核心问题其实是SharePoint列名称的匹配和Choice字段的赋值规则不对,咱们一步步来解决:
一、先搞定「找不到列」的问题
你说系统提示找不到_prospect这类列,这是因为你用的是自己猜的名称,但Power Apps里调用SharePoint列必须用它的内部名称,而不是显示名称或者你加的下划线/OData前缀。怎么查内部名称呢?
- 打开你的SharePoint Interactions列表,点顶部的「设置」→「列表设置」
- 在「列」区域找到目标列(比如你说的Prospect),点击列名进入详情页
- 看浏览器地址栏,里面会有类似
...Field=Prospect...的参数,Field=后面的字符串就是这个列的真实内部名称,比如是Prospect就直接用Prospect,绝对不要自己加前缀或者下划线!
二、Choice类型下拉框的正确赋值方法
你的Prospect是Choice类型字段,这类字段不能直接写文本或者dropdown.selected,必须用固定的格式:{Value: "选项内容"}
- 手动赋值的话应该是:
Prospect: {Value: "moon child"} - 从下拉框取值的话:
Prospect: {Value: prospectCard3.Selected.Value}(前提是你的下拉框Items属性绑定了该列的选项,比如设置成Choices(Interactions.Prospect),这样下拉框的选项才和SharePoint列的选项一致)
三、完整的正确Patch示例
假设你查出来的列内部名称分别是:
- 日期列:
InteractionDate(换成你实际的内部名称) - Prospect列:
Prospect - 其他列按实际情况调整
那正确的Patch代码应该是这样的:
Patch( Interactions, Defaults(Interactions), { // 日期列用日期控件的SelectedDate属性 InteractionDate: dateCard3.SelectedDate, // Prospect Choice列用下拉框的选中值 Prospect: {Value: prospectCard3.Selected.Value}, // 用上你的全局变量varCompanyName(如果是文本列的话) CompanyName: varCompanyName // 其他列按照同样规则添加,记得用内部名称+对应字段格式 } )
最后再检查这几点
- 刷新数据源:有时候SharePoint列改了之后,Power Apps不会自动同步,去左侧数据源面板右键点Interactions,选「刷新」
- 核对控件名称:比如
prospectCard3是不是你下拉框的真实名称,别拼写错了 - 下拉框Items属性:一定要绑定到SharePoint列的选项,也就是
Choices(Interactions.Prospect),这样Selected.Value才是有效的选项值
内容的提问来源于stack exchange,提问作者Werner
相关产品推荐
相关产品推荐

