PowerBI Desktop报表发布至服务器后数据异常,DAX度量值始终返回0
排查与解决步骤
- 第一步:确认数据集刷新状态
发布到PowerBI Server后先手动触发AbpTenants表的全量刷新,确认刷新任务无报错,排除Server端仍在使用旧版本无数据的数据集的情况。 - 第二步:校验列数据类型一致性
Desktop端和Server端的自动类型识别逻辑可能存在差异,如果Server端将Customers列识别为布尔/数值类型而非文本类型,会导致匹配字符串"false-1"全部失败。可以新增测试度量值验证:TEST_COL_TYPE = COUNTROWS(FILTER(AbpTenants, ISSTRING(AbpTenants[Customers])))
对比Desktop和Server端的返回值,如果Server端返回0,说明列类型识别错误,到PowerQuery编辑器中将Customers列强制设置为文本类型后重新发布即可。 - 第三步:优化DAX写法规避上下文干扰
原写法嵌套整表FILTER容易受外部筛选上下文影响,换成更稳定的谓词筛选写法即可:
TOTAL CLIENTS = CALCULATE(COUNTROWS('AbpTenants'), 'AbpTenants'[Customers] = "false-1") + 0
该写法直接在CALCULATE筛选参数中匹配列值,用COUNTROWS替代单列COUNT,性能更优同时避免行上下文传递异常的问题。
- 第四步:检查行级别权限配置
如果该数据集在PowerBI Server端配置了行级别权限(RLS),当前访问账号的权限规则可能刚好过滤掉了所有Customers为"false-1"的行,可以临时关闭RLS规则验证返回值是否正常。
内容的提问来源于stack exchange,提问作者Jennifer
相关产品推荐
相关产品推荐

