OData筛选查询对人员字段DisplayName无效问题求助
解决Power Apps调用Power Automate流时substringof筛选无结果的问题
以下是几个排查和解决方向:
确认OData查询版本与语法
若你使用的是Dataverse的OData v4端点,substringof属于OData v3语法,v4版本需改用contains函数。调整筛选条件为:ExportRows.Run("contains(SLT_Owner/DisplayName,'"& SLT_Owner_Filter_txt.Text &"')",User().Email);注意
contains的参数顺序是(要检查的字段, 查找的文本),和substringof的参数顺序相反。检查人员字段的正确属性名
确认Dataverse中SLT_Owner字段对应的姓名属性是否为DisplayName,多数默认的用户/人员字段使用的是FullName。如果是FullName,筛选条件需修改为:ExportRows.Run("contains(SLT_Owner/FullName,'"& SLT_Owner_Filter_txt.Text &"')",User().Email);处理字符串拼接的转义问题
若用户输入的文本包含单引号,直接拼接会导致OData查询语法错误,可通过Replace函数转义单引号:ExportRows.Run("contains(SLT_Owner/DisplayName,'"& Replace(SLT_Owner_Filter_txt.Text, "'", "''") &"')",User().Email);在Power Automate中调试查询
打开ExportRows流,在List Rows动作里开启允许分页,将筛选条件参数直接写死测试(比如contains(SLT_Owner/DisplayName,'张三')),排查是Power Apps参数传递问题,还是流本身的查询逻辑问题。
内容的提问来源于stack exchange,提问作者Navid
相关产品推荐
相关产品推荐

