如何在Power Apps中更新SharePoint库文件夹内文件元数据
解决方案
问题根源
你的Patch公式里用First(Filter('Project Details', gal_Records.Selected.ID))定位目标记录,看似合理,但如果Gallery数据源包含文件夹,或者选中项的ID意外关联到主文件夹,就会导致更新错误。另外,通过ID筛选属于冗余操作——Gallery的Selected属性本身就是你选中的那条文件/文件夹记录,不需要二次筛选。
修正步骤
确保Gallery仅显示文件(可选但推荐)
把Gallery的Items属性设置为以下公式,过滤掉文件夹,避免误选:Filter('Project Details', ItemType = "File")简化并修正Patch公式
直接使用gal_Records.Selected作为要更新的记录,去掉冗余的Filter和First:Patch( 'Project Details', gal_Records.Selected, { 'First Name': DataCardValue2.Text, 'Last Name': DataCardValue3.Text, Email: DataCardValue4.Text, 'Document Type': {Value: DataCardValue10.Selected.Value}, 'Project Details': DataCardValue5.Text, 'Start Date': DataCardValue6.SelectedDate, 'End Date': DataCardValue7.SelectedDate, 'Is Approved': DataCardValue9.Value } )注意:检查
'Is Approved'列名的空格——你的原公式里列名前有个空格,要和SharePoint文档库中的列名完全一致,否则会更新失败。若需保留文件夹显示,增加类型判断
若Gallery必须同时展示文件夹和文件,在Patch前添加判断,确保只更新文件:If( gal_Records.Selected.ItemType = "File", Patch( 'Project Details', gal_Records.Selected, { 'First Name': DataCardValue2.Text, 'Last Name': DataCardValue3.Text, Email: DataCardValue4.Text, 'Document Type': {Value: DataCardValue10.Selected.Value}, 'Project Details': DataCardValue5.Text, 'Start Date': DataCardValue6.SelectedDate, 'End Date': DataCardValue7.SelectedDate, 'Is Approved': DataCardValue9.Value } ), Notify("请选择一个文件进行元数据更新", NotificationType.Error) )
验证要点
- 确认Gallery的选中项确实是目标文件(可在Gallery中添加标签,显示
ThisItem.ItemType和ThisItem.Name,直观查看选中的是文件还是文件夹) - 检查SharePoint列名的拼写、大小写和空格,确保和公式中的完全匹配
内容的提问来源于stack exchange,提问作者Ganesh M
相关产品推荐
相关产品推荐

