You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Apps通过唯一ID查找Dataverse行报类型不兼容错误如何解决

Power Apps通过Dataverse唯一ID查找行报类型不兼容错误的解决方法

问题场景

编写Power Apps公式实现通过唯一ID匹配Dataverse对应行时,通过名称列查找的公式可正常运行:

LookUp('MyTable', Name = "My Row", Name)

当参照Dataverse列显示名称编写按唯一ID查找的公式时(示例中唯一ID列显示名称和表名同为MyTable),公式如下:

LookUp('MyTable', MyTable = "477c7c4e-c8ea-ec11-bb3d-0022489447e3", Name)

此时等号位置抛出报错:

比较的类型不兼容。无法对以下类型执行比较:Table, Text。

报错原因是Power Apps将条件里的MyTable识别成了表对象,而非目标唯一ID列。

解决方法

这个问题是列和表重名导致的引用歧义,Power Apps公式解析时默认优先匹配全局的表对象,不会自动识别为重名列,用以下任意一种方式都可以修复:

  • 直接引用列的逻辑名
    Dataverse的每一列都有全局唯一的逻辑名(Schema Name),不会和其他对象重名。Dataverse主键列的默认逻辑名规则是「表逻辑名+id」,比如表MyTable逻辑名为cr681_mytable时,对应主键列逻辑名就是cr681_mytableid,替换显示名引用即可。另外注意主键是GUID类型,不要直接和文本比较,用GUID()函数转换ID字符串为对应类型,避免额外类型错误,示例公式:
    LookUp('MyTable', cr681_mytableid = GUID("477c7c4e-c8ea-ec11-bb3d-0022489447e3"), Name)
    
  • 用ThisRecord显式指定行级作用域
    如果不想查找列逻辑名,可以在列名前加ThisRecord.前缀,明确告知解析器当前引用的是LookUp遍历行范围内的列,而非全局表对象,示例公式:
    LookUp('MyTable', ThisRecord.MyTable = GUID("477c7c4e-c8ea-ec11-bb3d-0022489447e3"), Name)
    

内容的提问来源于stack exchange,提问作者Matthew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 23:16:01