最佳实践分析器
Best Practice Analyzer 会根据一组规则检查你的模型,并列出所有违反这些规则的对象。它会在你工作时在后台运行,因此未解决问题的数量始终保持最新,并且还能帮你修复它发现的许多问题。
规则是针对模型对象编写的一个条件,并附带严重性级别和说明。规则涵盖那些容易出错、且事后才发现代价高昂的问题:本应下推到数据源的计算列、基于数据类型不匹配的列建立的关系、缺少格式字符串的度量值,以及本应隐藏却仍然可见的对象。
按 F10,或点击主窗口中的问题数量,即可打开 Best Practice Analyzer。可在 工具 > 偏好 > Best Practice Analyzer 中关闭后台扫描(Tabular Editor 2 中为 文件 > 偏好 > Best Practice Analyzer)。
后续阅读
| 页面 | 涵盖内容 |
|---|---|
| 使用 Best Practice Analyzer | 如何处理结果:问题列表、定位到对象、忽略对象或规则,以及生成或应用修复脚本。还包括“管理 BPA 规则”窗口,以及其中列出的规则集。 |
| 内置 BPA 规则 | Tabular Editor 3 随附的精选规则集、其分类,以及如何关闭单个规则。 |
| BPA 示例规则表达式 | 如何编写你自己的规则表达式,并提供完整示例。 |
本页其余内容将介绍规则的来源,以及如何引入存放在模型外部的规则。
规则集与优先级
规则通过 规则集 进入模型,这些规则集列在“管理 BPA 规则”窗口的上半部分。 使用 Best Practice Analyzer 介绍了每个规则集,以及其规则存储的位置。
如果同一个规则 ID 出现在多个规则集中,优先级按列表从上到下确定:在模型中定义的规则,会优先于在本地计算机上定义且 ID 相同的规则。这就使你能够覆盖共享规则,以便考虑某个模型特有的约定。
在列表顶部选择 (有效规则),即可查看在解析优先级后实际适用的规则。每条规则都会显示它来自哪个规则集;带删除线的规则表示它已被优先级更高的规则集覆盖。
添加规则集
除了内置、模型、用户和计算机规则集外,你还可以附加其他位置的规则文件。通过这种方式添加的规则集优先于模型内定义的规则;如果添加了多个,还可以上下移动它们来设置顺序。
在“管理 BPA 规则”窗口中,单击 添加...,然后从以下选项中选择一项:
- 创建新的规则文件 会在你指定的位置创建一个空的
.json文件,供你添加规则。 - 包含本地规则文件 会附加你已有的
.json规则文件。 - 包含来自 URL 的规则文件 会附加通过 HTTP 或 HTTPS 提供的规则,例如 Microsoft 发布的 标准 BPA 规则。从 URL 加载的规则集为只读。

对于这两个文件选项,你可以将引用保存为相对路径;当规则文件与模型位于同一 repository 中时,建议这样做。只有当模型本身是从磁盘加载时,相对引用才能被解析,因为从服务器加载的模型没有可供解析的工作目录。位于其他驱动器或网络共享上的文件必须使用绝对路径引用。
在任何你具有写入权限的规则集中,你都可以添加、编辑、克隆和删除规则。移动到... 可将所选规则移动或复制到另一个规则集。
规则说明中的占位符
规则说明会以工具提示的形式显示在每个违反该规则的对象上,因此最好在说明中点明它所指的对象名称。显示说明时,会替换以下三个占位符:
| 占位符 | 展开为 |
|---|---|
%object% |
在适用的情况下,对象的完全限定 DAX 引用 |
%objectname% |
对象的名称 |
%objecttype% |
对象类型 |