如何在Power Automate中按查找列筛选SharePoint列表项及返回0行排查
现有场景与异常表现
- 开发目标:在流中实现从SharePoint列表中按查找列规则筛选匹配列表项
- 触发逻辑:流配置为目标列表新增项时自动触发,新增项时需由用户为
TallerRelacionado字段(关联其他列表的查找类型列)赋值 - 当前筛选配置:在「获取项」操作中填写的筛选规则为
TallerRelacionado -eq TallerRelacionado Value - 异常结果:筛选执行后返回0行数据,无法匹配到预期列表项


问题根因
SharePoint 查找列属于复杂类型字段,其值在列表内部存储时会拆分为两个独立属性,OData 筛选规则无法直接匹配无属性路径的查找列名:
- 关联源列表项的唯一ID,对应内部字段路径为
[查找列名称]Id - 关联源列表项的显示文本值,对应内部字段路径为
[查找列名称]/Value
当前配置的筛选语句存在两个核心错误:
- 字段路径不合法:直接写
TallerRelacionado未指定要匹配的具体属性,系统无法识别匹配目标 - 语法不符合规范:使用带横杠的
-eq判断符、未对传入的动态匹配值做正确的类型包裹,最终导致匹配逻辑失效,返回空结果
正确配置方案
方案1:按关联ID匹配(推荐,稳定性最高)
适用于需要精准匹配关联项的场景,不会因为源列表存在重复显示值出现错配,筛选语句为:TallerRelacionadoId eq 触发动作返回的TallerRelacionado对应ID值
注意:数值类型的ID可直接传入动态值,无需包裹引号;如果是字符串类型的ID,需要用英文单引号包裹
方案2:按显示文本值匹配
适用于需要匹配查找列展示文本的场景,筛选语句为:TallerRelacionado/Value eq '触发动作返回的TallerRelacionado对应显示文本值'
注意:文本类型的匹配值必须用英文单引号包裹,否则会触发OData语法校验失败
避坑提醒
- 不要直接依赖Power Automate自动拼接的查找列动态值,自动生成的字段路径经常不符合OData规范,需要手动修正
- 不要在筛选判断符前加横杠,OData原生的相等判断为小写
eq,带横杠的写法对查找列、人员列这类复杂字段兼容性很差 - 选择动态值时注意区分:查找列的返回内容会拆分出独立的ID数值项、独立的文本显示项,根据筛选规则选对应值,不要混淆类型
内容的提问来源于stack exchange,提问作者Felipe
相关产品推荐
相关产品推荐

