From c8b47adcc8b715df1fdaabdc8319342950ee6589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20L=C3=B8nskov?= Date: Mon, 19 Jan 2026 13:22:48 +0100 Subject: [PATCH 01/14] Resolve add/add conflicts: prefer main for KB files --- content/kb/bpa-avoid-invalid-characters-descriptions.md | 3 ++- content/kb/bpa-avoid-invalid-characters-names.md | 2 +- content/kb/bpa-avoid-provider-partitions-structured.md | 2 +- content/kb/bpa-calculation-groups-no-items.md | 2 +- content/kb/bpa-data-column-source.md | 2 +- content/kb/bpa-date-table-exists.md | 2 +- content/kb/bpa-do-not-summarize-numeric.md | 2 +- content/kb/bpa-expression-required.md | 2 +- content/kb/bpa-format-string-columns.md | 2 +- content/kb/bpa-format-string-measures.md | 2 +- content/kb/bpa-hide-foreign-keys.md | 2 +- content/kb/bpa-many-to-many-single-direction.md | 2 +- content/kb/bpa-perspectives-no-objects.md | 2 +- content/kb/bpa-powerbi-latest-compatibility.md | 2 +- content/kb/bpa-relationship-same-datatype.md | 2 +- content/kb/bpa-remove-auto-date-table.md | 2 +- content/kb/bpa-remove-unused-data-sources.md | 7 +++++-- content/kb/bpa-set-isavailableinmdx-false.md | 2 +- content/kb/bpa-set-isavailableinmdx-true-necessary.md | 2 +- content/kb/bpa-specify-application-name.md | 2 +- content/kb/bpa-translate-descriptions.md | 2 +- content/kb/bpa-translate-display-folders.md | 2 +- content/kb/bpa-translate-hierarchy-levels.md | 2 +- content/kb/bpa-translate-perspectives.md | 2 +- content/kb/bpa-translate-visible-names.md | 2 +- 25 files changed, 30 insertions(+), 26 deletions(-) diff --git a/content/kb/bpa-avoid-invalid-characters-descriptions.md b/content/kb/bpa-avoid-invalid-characters-descriptions.md index abd0bd25..0c322b1c 100644 --- a/content/kb/bpa-avoid-invalid-characters-descriptions.md +++ b/content/kb/bpa-avoid-invalid-characters-descriptions.md @@ -12,7 +12,8 @@ description: Best practice rule preventing display and deployment issues by iden This best practice rule identifies objects whose descriptions contain invalid control characters (non-printable characters excluding standard whitespace). These characters can cause display problems, metadata corruption, and deployment failures. -- Category: Error Prevention +- Category: **Error Prevention** + - Severity: High (3) ## Applies To diff --git a/content/kb/bpa-avoid-invalid-characters-names.md b/content/kb/bpa-avoid-invalid-characters-names.md index be43497c..6dcda095 100644 --- a/content/kb/bpa-avoid-invalid-characters-names.md +++ b/content/kb/bpa-avoid-invalid-characters-names.md @@ -12,7 +12,7 @@ description: Best practice rule preventing deployment errors by identifying cont This best practice rule identifies objects whose names contain invalid control characters (non-printable characters excluding standard whitespace). These characters can cause deployment failures, rendering issues, and data corruption. -- Category: Error Prevention +- Category: **Error Prevention** - Severity: High (3) ## Applies To diff --git a/content/kb/bpa-avoid-provider-partitions-structured.md b/content/kb/bpa-avoid-provider-partitions-structured.md index c0f3a440..e6654042 100644 --- a/content/kb/bpa-avoid-provider-partitions-structured.md +++ b/content/kb/bpa-avoid-provider-partitions-structured.md @@ -12,7 +12,7 @@ description: Best practice rule preventing deployment errors by identifying lega This best practice rule identifies partitions that use legacy provider-based queries (SourceType = Query) with structured data sources in Power BI models. This combination is not supported in Power BI Service and will cause deployment failures. -- Category: Error Prevention +- Category: **Error Prevention** - Severity: Medium (2) diff --git a/content/kb/bpa-calculation-groups-no-items.md b/content/kb/bpa-calculation-groups-no-items.md index 486293ab..58d66019 100644 --- a/content/kb/bpa-calculation-groups-no-items.md +++ b/content/kb/bpa-calculation-groups-no-items.md @@ -12,7 +12,7 @@ description: Best practice rule identifying calculation groups without calculati This best practice rule identifies calculation groups that contain no calculation items. Empty calculation groups serve no purpose and should be populated or removed. -- Category: Maintenance +- Category: **Maintenance** - Severity: Medium (2) ## Applies To diff --git a/content/kb/bpa-data-column-source.md b/content/kb/bpa-data-column-source.md index 9bc9e55b..f9a29af0 100644 --- a/content/kb/bpa-data-column-source.md +++ b/content/kb/bpa-data-column-source.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring data columns have a valid source column This best practice rule identifies data columns that lack a valid `SourceColumn` property. Every data column must reference a source column from the underlying data source to function correctly during refresh. -- Category: Error Prevention +- Category: **Error Prevention** - Severity: High (3) ## Applies To diff --git a/content/kb/bpa-date-table-exists.md b/content/kb/bpa-date-table-exists.md index 97931246..682572a9 100644 --- a/content/kb/bpa-date-table-exists.md +++ b/content/kb/bpa-date-table-exists.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring your model includes a dedicated date ta This best practice rule verifies that your tabular model contains at least one properly configured date table. Date tables are essential for time intelligence calculations and ensuring consistent date-based filtering across your model. -- Category: Performance +- Category: **Performance** - Severity: Medium (2) diff --git a/content/kb/bpa-do-not-summarize-numeric.md b/content/kb/bpa-do-not-summarize-numeric.md index f29ab822..de97647f 100644 --- a/content/kb/bpa-do-not-summarize-numeric.md +++ b/content/kb/bpa-do-not-summarize-numeric.md @@ -12,7 +12,7 @@ description: Best practice rule preventing incorrect default aggregations on num This best practice rule identifies visible numeric columns (Int64, Decimal, Double) that have a default aggregation behavior (`SummarizeBy`) other than `None`. Most numeric columns should not be automatically aggregated, as summing values like IDs, quantities in non-additive contexts, or codes produces meaningless results. -- Category: Formatting +- Category: **Formatting** - Severity: High (3) diff --git a/content/kb/bpa-expression-required.md b/content/kb/bpa-expression-required.md index 5dd370ef..0e76abf9 100644 --- a/content/kb/bpa-expression-required.md +++ b/content/kb/bpa-expression-required.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring measures, calculated columns, and calcu This best practice rule identifies measures, calculated columns, and calculation items that lack a DAX expression. All calculated objects must have a valid, non-empty expression to function correctly and prevent errors during model deployment and query execution. -- Category: Error Prevention +- Category: **Error Prevention** - Severity: High (3) diff --git a/content/kb/bpa-format-string-columns.md b/content/kb/bpa-format-string-columns.md index 69428333..e36aa703 100644 --- a/content/kb/bpa-format-string-columns.md +++ b/content/kb/bpa-format-string-columns.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring visible numeric and date columns have a This best practice rule identifies visible columns with numeric or date data types that lack format strings. Format strings ensure consistent, professional data display across all client tools. -- Category: Formatting +- Category: **Formatting** - Severity: Medium (2) diff --git a/content/kb/bpa-format-string-measures.md b/content/kb/bpa-format-string-measures.md index 7b4cf80f..3f150e64 100644 --- a/content/kb/bpa-format-string-measures.md +++ b/content/kb/bpa-format-string-measures.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring visible measures have appropriate forma This best practice rule identifies visible measures with numeric or date data types that lack format strings. All measures should have explicit format strings for professional, consistent display. -- Category: Formatting +- Category: **Formatting** - Severity: Medium (2) diff --git a/content/kb/bpa-hide-foreign-keys.md b/content/kb/bpa-hide-foreign-keys.md index 62717d39..84dffd1b 100644 --- a/content/kb/bpa-hide-foreign-keys.md +++ b/content/kb/bpa-hide-foreign-keys.md @@ -12,7 +12,7 @@ description: Best practice rule for hiding foreign key columns to simplify the m This best practice rule identifies foreign key columns (many-side of relationships) that are visible to end users. Foreign keys should be hidden because they serve only as relationship connectors and provide no analytical value when displayed. -- Category: Formatting +- Category: **Formatting** - Severity: Medium (2) diff --git a/content/kb/bpa-many-to-many-single-direction.md b/content/kb/bpa-many-to-many-single-direction.md index fdcadb21..42bde8a1 100644 --- a/content/kb/bpa-many-to-many-single-direction.md +++ b/content/kb/bpa-many-to-many-single-direction.md @@ -12,7 +12,7 @@ description: Best practice rule to avoid performance issues by using single-dire This best practice rule identifies many-to-many relationships that use bidirectional cross-filtering. Many-to-many relationships with both-directions filtering cause significant performance degradation. -- Category: Performance +- Category: **Performance** - Severity: Medium (2) ## Applies To diff --git a/content/kb/bpa-perspectives-no-objects.md b/content/kb/bpa-perspectives-no-objects.md index 13772524..7491c4e7 100644 --- a/content/kb/bpa-perspectives-no-objects.md +++ b/content/kb/bpa-perspectives-no-objects.md @@ -12,7 +12,7 @@ description: Best practice rule for removing empty perspectives that contain no This best practice rule identifies perspectives that don't contain any visible tables. Empty perspectives serve no purpose and should be removed. -- Category: Maintenance +- Category: **Maintenance** - Severity: Low (1) ## Applies To diff --git a/content/kb/bpa-powerbi-latest-compatibility.md b/content/kb/bpa-powerbi-latest-compatibility.md index bb97ccb7..c531b366 100644 --- a/content/kb/bpa-powerbi-latest-compatibility.md +++ b/content/kb/bpa-powerbi-latest-compatibility.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring Power BI models use the latest compatib This rule identifies Power BI models not using the latest available compatibility level. Using the latest level ensures access to newest features, performance optimizations, and bug fixes. -- Category: Governance +- Category: **Governance** - Severity: High (3) ## Applies To diff --git a/content/kb/bpa-relationship-same-datatype.md b/content/kb/bpa-relationship-same-datatype.md index fb3263fd..a428edbc 100644 --- a/content/kb/bpa-relationship-same-datatype.md +++ b/content/kb/bpa-relationship-same-datatype.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring relationships connect columns with matc This best practice rule identifies relationships where the connected columns have mismatched data types. Both columns in a relationship must share the same data type to ensure proper filtering, prevent errors, and maintain optimal query performance. -- Category: Error Prevention +- Category: **Error Prevention** - Severity: High (3) diff --git a/content/kb/bpa-remove-auto-date-table.md b/content/kb/bpa-remove-auto-date-table.md index 91451c32..240ed4e9 100644 --- a/content/kb/bpa-remove-auto-date-table.md +++ b/content/kb/bpa-remove-auto-date-table.md @@ -12,7 +12,7 @@ description: Best practice rule to identify and remove automatically generated d This best practice rule identifies automatically generated date tables created by Power BI Desktop. These auto-generated tables (`DateTableTemplate_` and `LocalDateTable_`) should be removed in favor of a single, explicit date table to optimize model size and performance. -- Category: Performance +- Category: **Performance** - Severity: Medium (2) diff --git a/content/kb/bpa-remove-unused-data-sources.md b/content/kb/bpa-remove-unused-data-sources.md index d5b82ed4..cced3cbe 100644 --- a/content/kb/bpa-remove-unused-data-sources.md +++ b/content/kb/bpa-remove-unused-data-sources.md @@ -12,8 +12,9 @@ description: Best practice rule for removing orphaned data sources to reduce mod This best practice rule identifies data sources that are not referenced by any partitions or table expressions. Removing unused data sources reduces model complexity, improves maintainability, and prevents confusion. -- Category: Maintenance -- Severity: Low (1) +Category: **Maintenance** + +Severity: Low (1) ## Applies To @@ -105,6 +106,8 @@ Data Sources: ## False Positives +### Dynamic References + The rule may flag data sources that are: - Referenced through dynamic M expressions using variables - Used in commented-out partition queries diff --git a/content/kb/bpa-set-isavailableinmdx-false.md b/content/kb/bpa-set-isavailableinmdx-false.md index 80f4c327..4c4bace9 100644 --- a/content/kb/bpa-set-isavailableinmdx-false.md +++ b/content/kb/bpa-set-isavailableinmdx-false.md @@ -12,7 +12,7 @@ description: Best practice rule to optimize performance by disabling MDX access This best practice rule identifies hidden columns that have the `IsAvailableInMDX` property set to `true` but don't need to be accessible through MDX queries. Setting this property to `false` for unused hidden columns can improve query performance and reduce memory overhead. -- Category: Performance +- Category: **Performance** - Severity: Medium (2) ## Applies To diff --git a/content/kb/bpa-set-isavailableinmdx-true-necessary.md b/content/kb/bpa-set-isavailableinmdx-true-necessary.md index 5c3062cc..eff2ac93 100644 --- a/content/kb/bpa-set-isavailableinmdx-true-necessary.md +++ b/content/kb/bpa-set-isavailableinmdx-true-necessary.md @@ -12,7 +12,7 @@ description: Best practice rule preventing query errors by ensuring columns used This best practice rule identifies columns that have `IsAvailableInMDX` set to `false` but are actually used in scenarios requiring MDX access. These columns must have MDX availability enabled to function correctly in hierarchies, relationships, and sort operations. -- Category: Error Prevention +- Category: **Error Prevention** - Severity: High (3) ## Applies To diff --git a/content/kb/bpa-specify-application-name.md b/content/kb/bpa-specify-application-name.md index 50dbf82b..05db057c 100644 --- a/content/kb/bpa-specify-application-name.md +++ b/content/kb/bpa-specify-application-name.md @@ -12,7 +12,7 @@ description: Best practice rule for including application name in SQL Server con This rule identifies SQL Server provider data sources that lack an Application Name parameter in their connection strings. Including the application name enables better monitoring and troubleshooting. -- Category: Performance +- Category: **Performance** - Severity: Low (1) ## Applies To diff --git a/content/kb/bpa-translate-descriptions.md b/content/kb/bpa-translate-descriptions.md index 24a01fb4..35d897f7 100644 --- a/content/kb/bpa-translate-descriptions.md +++ b/content/kb/bpa-translate-descriptions.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring object descriptions are translated for This rule identifies objects with descriptions that lack translations for one or more cultures. -- Category: Model Layout +- Category: **Model Layout** - Severity: Low (1) ## Applies To diff --git a/content/kb/bpa-translate-display-folders.md b/content/kb/bpa-translate-display-folders.md index a8b7bb38..64c7ba21 100644 --- a/content/kb/bpa-translate-display-folders.md +++ b/content/kb/bpa-translate-display-folders.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring display folders are translated for all This rule identifies visible objects with display folders that lack translations for one or more cultures. -- Category: Model Layout +- Category: **Model Layout** - Severity: Low (1) ## Applies To diff --git a/content/kb/bpa-translate-hierarchy-levels.md b/content/kb/bpa-translate-hierarchy-levels.md index 63265dc2..386bba89 100644 --- a/content/kb/bpa-translate-hierarchy-levels.md +++ b/content/kb/bpa-translate-hierarchy-levels.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring hierarchy level names are translated fo This rule identifies hierarchy levels in visible hierarchies that lack name translations for one or more cultures. -- Category: Model Layout +- Category: **Model Layout** - Severity: Low (1) ## Applies To diff --git a/content/kb/bpa-translate-perspectives.md b/content/kb/bpa-translate-perspectives.md index 8a14a954..05556dc3 100644 --- a/content/kb/bpa-translate-perspectives.md +++ b/content/kb/bpa-translate-perspectives.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring perspective names are translated for al This rule identifies model perspectives that lack name translations for one or more cultures. -- Category: Model Layout +- Category: **Model Layout** - Severity: Low (1) ## Applies To diff --git a/content/kb/bpa-translate-visible-names.md b/content/kb/bpa-translate-visible-names.md index db2d51f6..64a85cbc 100644 --- a/content/kb/bpa-translate-visible-names.md +++ b/content/kb/bpa-translate-visible-names.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring visible object names are translated for This rule identifies visible objects whose names lack translations for one or more cultures defined in the model. -- Category: Model Layout +- Category: **Model Layout** - Severity: Low (1) ## Applies To From d6963da5cb2cd9bb6136891d473ea4f8cbbebbec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20L=C3=B8nskov?= Date: Fri, 9 Jan 2026 20:38:42 +0100 Subject: [PATCH 02/14] Fixed bold formatting issue --- content/kb/bpa-avoid-invalid-characters-descriptions.md | 3 +-- content/kb/bpa-avoid-invalid-characters-names.md | 2 +- content/kb/bpa-avoid-provider-partitions-structured.md | 2 +- content/kb/bpa-calculation-groups-no-items.md | 2 +- content/kb/bpa-data-column-source.md | 2 +- content/kb/bpa-date-table-exists.md | 2 +- content/kb/bpa-do-not-summarize-numeric.md | 2 +- content/kb/bpa-expression-required.md | 2 +- content/kb/bpa-format-string-columns.md | 2 +- content/kb/bpa-format-string-measures.md | 2 +- content/kb/bpa-hide-foreign-keys.md | 2 +- content/kb/bpa-many-to-many-single-direction.md | 2 +- content/kb/bpa-perspectives-no-objects.md | 2 +- content/kb/bpa-powerbi-latest-compatibility.md | 2 +- content/kb/bpa-relationship-same-datatype.md | 2 +- content/kb/bpa-remove-auto-date-table.md | 2 +- content/kb/bpa-remove-unused-data-sources.md | 7 ++----- content/kb/bpa-set-isavailableinmdx-false.md | 2 +- content/kb/bpa-set-isavailableinmdx-true-necessary.md | 2 +- content/kb/bpa-specify-application-name.md | 2 +- content/kb/bpa-translate-descriptions.md | 2 +- content/kb/bpa-translate-display-folders.md | 2 +- content/kb/bpa-translate-hierarchy-levels.md | 2 +- content/kb/bpa-translate-perspectives.md | 2 +- content/kb/bpa-translate-visible-names.md | 2 +- 25 files changed, 26 insertions(+), 30 deletions(-) diff --git a/content/kb/bpa-avoid-invalid-characters-descriptions.md b/content/kb/bpa-avoid-invalid-characters-descriptions.md index 0c322b1c..abd0bd25 100644 --- a/content/kb/bpa-avoid-invalid-characters-descriptions.md +++ b/content/kb/bpa-avoid-invalid-characters-descriptions.md @@ -12,8 +12,7 @@ description: Best practice rule preventing display and deployment issues by iden This best practice rule identifies objects whose descriptions contain invalid control characters (non-printable characters excluding standard whitespace). These characters can cause display problems, metadata corruption, and deployment failures. -- Category: **Error Prevention** - +- Category: Error Prevention - Severity: High (3) ## Applies To diff --git a/content/kb/bpa-avoid-invalid-characters-names.md b/content/kb/bpa-avoid-invalid-characters-names.md index 6dcda095..be43497c 100644 --- a/content/kb/bpa-avoid-invalid-characters-names.md +++ b/content/kb/bpa-avoid-invalid-characters-names.md @@ -12,7 +12,7 @@ description: Best practice rule preventing deployment errors by identifying cont This best practice rule identifies objects whose names contain invalid control characters (non-printable characters excluding standard whitespace). These characters can cause deployment failures, rendering issues, and data corruption. -- Category: **Error Prevention** +- Category: Error Prevention - Severity: High (3) ## Applies To diff --git a/content/kb/bpa-avoid-provider-partitions-structured.md b/content/kb/bpa-avoid-provider-partitions-structured.md index e6654042..c0f3a440 100644 --- a/content/kb/bpa-avoid-provider-partitions-structured.md +++ b/content/kb/bpa-avoid-provider-partitions-structured.md @@ -12,7 +12,7 @@ description: Best practice rule preventing deployment errors by identifying lega This best practice rule identifies partitions that use legacy provider-based queries (SourceType = Query) with structured data sources in Power BI models. This combination is not supported in Power BI Service and will cause deployment failures. -- Category: **Error Prevention** +- Category: Error Prevention - Severity: Medium (2) diff --git a/content/kb/bpa-calculation-groups-no-items.md b/content/kb/bpa-calculation-groups-no-items.md index 58d66019..486293ab 100644 --- a/content/kb/bpa-calculation-groups-no-items.md +++ b/content/kb/bpa-calculation-groups-no-items.md @@ -12,7 +12,7 @@ description: Best practice rule identifying calculation groups without calculati This best practice rule identifies calculation groups that contain no calculation items. Empty calculation groups serve no purpose and should be populated or removed. -- Category: **Maintenance** +- Category: Maintenance - Severity: Medium (2) ## Applies To diff --git a/content/kb/bpa-data-column-source.md b/content/kb/bpa-data-column-source.md index f9a29af0..9bc9e55b 100644 --- a/content/kb/bpa-data-column-source.md +++ b/content/kb/bpa-data-column-source.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring data columns have a valid source column This best practice rule identifies data columns that lack a valid `SourceColumn` property. Every data column must reference a source column from the underlying data source to function correctly during refresh. -- Category: **Error Prevention** +- Category: Error Prevention - Severity: High (3) ## Applies To diff --git a/content/kb/bpa-date-table-exists.md b/content/kb/bpa-date-table-exists.md index 682572a9..97931246 100644 --- a/content/kb/bpa-date-table-exists.md +++ b/content/kb/bpa-date-table-exists.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring your model includes a dedicated date ta This best practice rule verifies that your tabular model contains at least one properly configured date table. Date tables are essential for time intelligence calculations and ensuring consistent date-based filtering across your model. -- Category: **Performance** +- Category: Performance - Severity: Medium (2) diff --git a/content/kb/bpa-do-not-summarize-numeric.md b/content/kb/bpa-do-not-summarize-numeric.md index de97647f..f29ab822 100644 --- a/content/kb/bpa-do-not-summarize-numeric.md +++ b/content/kb/bpa-do-not-summarize-numeric.md @@ -12,7 +12,7 @@ description: Best practice rule preventing incorrect default aggregations on num This best practice rule identifies visible numeric columns (Int64, Decimal, Double) that have a default aggregation behavior (`SummarizeBy`) other than `None`. Most numeric columns should not be automatically aggregated, as summing values like IDs, quantities in non-additive contexts, or codes produces meaningless results. -- Category: **Formatting** +- Category: Formatting - Severity: High (3) diff --git a/content/kb/bpa-expression-required.md b/content/kb/bpa-expression-required.md index 0e76abf9..5dd370ef 100644 --- a/content/kb/bpa-expression-required.md +++ b/content/kb/bpa-expression-required.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring measures, calculated columns, and calcu This best practice rule identifies measures, calculated columns, and calculation items that lack a DAX expression. All calculated objects must have a valid, non-empty expression to function correctly and prevent errors during model deployment and query execution. -- Category: **Error Prevention** +- Category: Error Prevention - Severity: High (3) diff --git a/content/kb/bpa-format-string-columns.md b/content/kb/bpa-format-string-columns.md index e36aa703..69428333 100644 --- a/content/kb/bpa-format-string-columns.md +++ b/content/kb/bpa-format-string-columns.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring visible numeric and date columns have a This best practice rule identifies visible columns with numeric or date data types that lack format strings. Format strings ensure consistent, professional data display across all client tools. -- Category: **Formatting** +- Category: Formatting - Severity: Medium (2) diff --git a/content/kb/bpa-format-string-measures.md b/content/kb/bpa-format-string-measures.md index 3f150e64..7b4cf80f 100644 --- a/content/kb/bpa-format-string-measures.md +++ b/content/kb/bpa-format-string-measures.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring visible measures have appropriate forma This best practice rule identifies visible measures with numeric or date data types that lack format strings. All measures should have explicit format strings for professional, consistent display. -- Category: **Formatting** +- Category: Formatting - Severity: Medium (2) diff --git a/content/kb/bpa-hide-foreign-keys.md b/content/kb/bpa-hide-foreign-keys.md index 84dffd1b..62717d39 100644 --- a/content/kb/bpa-hide-foreign-keys.md +++ b/content/kb/bpa-hide-foreign-keys.md @@ -12,7 +12,7 @@ description: Best practice rule for hiding foreign key columns to simplify the m This best practice rule identifies foreign key columns (many-side of relationships) that are visible to end users. Foreign keys should be hidden because they serve only as relationship connectors and provide no analytical value when displayed. -- Category: **Formatting** +- Category: Formatting - Severity: Medium (2) diff --git a/content/kb/bpa-many-to-many-single-direction.md b/content/kb/bpa-many-to-many-single-direction.md index 42bde8a1..fdcadb21 100644 --- a/content/kb/bpa-many-to-many-single-direction.md +++ b/content/kb/bpa-many-to-many-single-direction.md @@ -12,7 +12,7 @@ description: Best practice rule to avoid performance issues by using single-dire This best practice rule identifies many-to-many relationships that use bidirectional cross-filtering. Many-to-many relationships with both-directions filtering cause significant performance degradation. -- Category: **Performance** +- Category: Performance - Severity: Medium (2) ## Applies To diff --git a/content/kb/bpa-perspectives-no-objects.md b/content/kb/bpa-perspectives-no-objects.md index 7491c4e7..13772524 100644 --- a/content/kb/bpa-perspectives-no-objects.md +++ b/content/kb/bpa-perspectives-no-objects.md @@ -12,7 +12,7 @@ description: Best practice rule for removing empty perspectives that contain no This best practice rule identifies perspectives that don't contain any visible tables. Empty perspectives serve no purpose and should be removed. -- Category: **Maintenance** +- Category: Maintenance - Severity: Low (1) ## Applies To diff --git a/content/kb/bpa-powerbi-latest-compatibility.md b/content/kb/bpa-powerbi-latest-compatibility.md index c531b366..bb97ccb7 100644 --- a/content/kb/bpa-powerbi-latest-compatibility.md +++ b/content/kb/bpa-powerbi-latest-compatibility.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring Power BI models use the latest compatib This rule identifies Power BI models not using the latest available compatibility level. Using the latest level ensures access to newest features, performance optimizations, and bug fixes. -- Category: **Governance** +- Category: Governance - Severity: High (3) ## Applies To diff --git a/content/kb/bpa-relationship-same-datatype.md b/content/kb/bpa-relationship-same-datatype.md index a428edbc..fb3263fd 100644 --- a/content/kb/bpa-relationship-same-datatype.md +++ b/content/kb/bpa-relationship-same-datatype.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring relationships connect columns with matc This best practice rule identifies relationships where the connected columns have mismatched data types. Both columns in a relationship must share the same data type to ensure proper filtering, prevent errors, and maintain optimal query performance. -- Category: **Error Prevention** +- Category: Error Prevention - Severity: High (3) diff --git a/content/kb/bpa-remove-auto-date-table.md b/content/kb/bpa-remove-auto-date-table.md index 240ed4e9..91451c32 100644 --- a/content/kb/bpa-remove-auto-date-table.md +++ b/content/kb/bpa-remove-auto-date-table.md @@ -12,7 +12,7 @@ description: Best practice rule to identify and remove automatically generated d This best practice rule identifies automatically generated date tables created by Power BI Desktop. These auto-generated tables (`DateTableTemplate_` and `LocalDateTable_`) should be removed in favor of a single, explicit date table to optimize model size and performance. -- Category: **Performance** +- Category: Performance - Severity: Medium (2) diff --git a/content/kb/bpa-remove-unused-data-sources.md b/content/kb/bpa-remove-unused-data-sources.md index cced3cbe..d5b82ed4 100644 --- a/content/kb/bpa-remove-unused-data-sources.md +++ b/content/kb/bpa-remove-unused-data-sources.md @@ -12,9 +12,8 @@ description: Best practice rule for removing orphaned data sources to reduce mod This best practice rule identifies data sources that are not referenced by any partitions or table expressions. Removing unused data sources reduces model complexity, improves maintainability, and prevents confusion. -Category: **Maintenance** - -Severity: Low (1) +- Category: Maintenance +- Severity: Low (1) ## Applies To @@ -106,8 +105,6 @@ Data Sources: ## False Positives -### Dynamic References - The rule may flag data sources that are: - Referenced through dynamic M expressions using variables - Used in commented-out partition queries diff --git a/content/kb/bpa-set-isavailableinmdx-false.md b/content/kb/bpa-set-isavailableinmdx-false.md index 4c4bace9..80f4c327 100644 --- a/content/kb/bpa-set-isavailableinmdx-false.md +++ b/content/kb/bpa-set-isavailableinmdx-false.md @@ -12,7 +12,7 @@ description: Best practice rule to optimize performance by disabling MDX access This best practice rule identifies hidden columns that have the `IsAvailableInMDX` property set to `true` but don't need to be accessible through MDX queries. Setting this property to `false` for unused hidden columns can improve query performance and reduce memory overhead. -- Category: **Performance** +- Category: Performance - Severity: Medium (2) ## Applies To diff --git a/content/kb/bpa-set-isavailableinmdx-true-necessary.md b/content/kb/bpa-set-isavailableinmdx-true-necessary.md index eff2ac93..5c3062cc 100644 --- a/content/kb/bpa-set-isavailableinmdx-true-necessary.md +++ b/content/kb/bpa-set-isavailableinmdx-true-necessary.md @@ -12,7 +12,7 @@ description: Best practice rule preventing query errors by ensuring columns used This best practice rule identifies columns that have `IsAvailableInMDX` set to `false` but are actually used in scenarios requiring MDX access. These columns must have MDX availability enabled to function correctly in hierarchies, relationships, and sort operations. -- Category: **Error Prevention** +- Category: Error Prevention - Severity: High (3) ## Applies To diff --git a/content/kb/bpa-specify-application-name.md b/content/kb/bpa-specify-application-name.md index 05db057c..50dbf82b 100644 --- a/content/kb/bpa-specify-application-name.md +++ b/content/kb/bpa-specify-application-name.md @@ -12,7 +12,7 @@ description: Best practice rule for including application name in SQL Server con This rule identifies SQL Server provider data sources that lack an Application Name parameter in their connection strings. Including the application name enables better monitoring and troubleshooting. -- Category: **Performance** +- Category: Performance - Severity: Low (1) ## Applies To diff --git a/content/kb/bpa-translate-descriptions.md b/content/kb/bpa-translate-descriptions.md index 35d897f7..24a01fb4 100644 --- a/content/kb/bpa-translate-descriptions.md +++ b/content/kb/bpa-translate-descriptions.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring object descriptions are translated for This rule identifies objects with descriptions that lack translations for one or more cultures. -- Category: **Model Layout** +- Category: Model Layout - Severity: Low (1) ## Applies To diff --git a/content/kb/bpa-translate-display-folders.md b/content/kb/bpa-translate-display-folders.md index 64c7ba21..a8b7bb38 100644 --- a/content/kb/bpa-translate-display-folders.md +++ b/content/kb/bpa-translate-display-folders.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring display folders are translated for all This rule identifies visible objects with display folders that lack translations for one or more cultures. -- Category: **Model Layout** +- Category: Model Layout - Severity: Low (1) ## Applies To diff --git a/content/kb/bpa-translate-hierarchy-levels.md b/content/kb/bpa-translate-hierarchy-levels.md index 386bba89..63265dc2 100644 --- a/content/kb/bpa-translate-hierarchy-levels.md +++ b/content/kb/bpa-translate-hierarchy-levels.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring hierarchy level names are translated fo This rule identifies hierarchy levels in visible hierarchies that lack name translations for one or more cultures. -- Category: **Model Layout** +- Category: Model Layout - Severity: Low (1) ## Applies To diff --git a/content/kb/bpa-translate-perspectives.md b/content/kb/bpa-translate-perspectives.md index 05556dc3..8a14a954 100644 --- a/content/kb/bpa-translate-perspectives.md +++ b/content/kb/bpa-translate-perspectives.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring perspective names are translated for al This rule identifies model perspectives that lack name translations for one or more cultures. -- Category: **Model Layout** +- Category: Model Layout - Severity: Low (1) ## Applies To diff --git a/content/kb/bpa-translate-visible-names.md b/content/kb/bpa-translate-visible-names.md index 64a85cbc..db2d51f6 100644 --- a/content/kb/bpa-translate-visible-names.md +++ b/content/kb/bpa-translate-visible-names.md @@ -12,7 +12,7 @@ description: Best practice rule ensuring visible object names are translated for This rule identifies visible objects whose names lack translations for one or more cultures defined in the model. -- Category: **Model Layout** +- Category: Model Layout - Severity: Low (1) ## Applies To From 5a6a81a4687941d6035b49c4f3251986b5cbee1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20L=C3=B8nskov?= Date: Fri, 9 Jan 2026 20:39:22 +0100 Subject: [PATCH 03/14] Initial Documentation for built in BPA rules --- content/features/built-in-bpa-rules.md | 190 +++++++++++++++++++++++++ content/features/toc.md | 1 + 2 files changed, 191 insertions(+) create mode 100644 content/features/built-in-bpa-rules.md diff --git a/content/features/built-in-bpa-rules.md b/content/features/built-in-bpa-rules.md new file mode 100644 index 00000000..311d7811 --- /dev/null +++ b/content/features/built-in-bpa-rules.md @@ -0,0 +1,190 @@ +--- +uid: built-in-bpa-rules +title: Built-in BPA Rules +author: Morten Lønskov +updated: 2026-01-09 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.24.0 + editions: + - edition: Desktop + none: true + - edition: Business + none: true + - edition: Enterprise + full: true +description: Enterprise Edition feature providing 27 curated best practice rules hardcoded into Tabular Editor 3 with knowledge base integration. +--- + +# Built-in BPA Rules + +## Overview + +Tabular Editor 3 Enterprise Edition includes 27 built-in best practice rules. These rules cover common issues in semantic model development and are updated automatically with each release. + +Unlike custom rules stored in JSON files, built-in rules: +- Are integrated directly into the application +- Update automatically with new releases +- Link to knowledge base documentation +- Are read-only to ensure consistency across teams +- Work immediately without configuration + +## Key Features + +### Rule Categories + +The 27 built-in rules cover four areas: +- **Error Prevention**: Invalid characters, missing expressions, data type mismatches +- **Performance**: Relationships, partitions, aggregations +- **Formatting**: Format strings, visibility, naming conventions +- **Maintenance**: Descriptions, calculation groups, unused objects + +### Global and Per-Rule Control + +![Placeholder: Screenshot showing BPA preferences with global enable/disable toggle and per-rule checkboxes](~/content/assets/images/features/bpa-built-in-rules-preferences.png) + +You can enable or disable built-in rules globally or individually. Settings persist across sessions and work independently from your custom rules. + +To manage built-in rules: +1. Go to **Tools** > **Preferences** > **Best Practice Analyzer** +2. Find the **Built-in Rules** section +3. Toggle **Enable Built-in Rules** to turn the entire collection on or off +4. Use the BPA Manager to enable or disable individual rules + +### Enterprise-Only Access + +Built-in BPA Rules require Enterprise Edition. If you're using Desktop or Business Edition, you can still use custom BPA rules but won't see the built-in rules. + +### First-Run Notification + +![Placeholder: Screenshot of first-run notification dialog introducing built-in BPA rules](~/content/assets/images/features/bpa-built-in-rules-notification.png) + +The first time you open a model after upgrading to a version with built-in rules, you'll see a notification explaining the feature with a link to preferences. This notification only appears once. + +### Knowledge Base Integration + +![Placeholder: Screenshot showing BPA window with rule selected and "View Documentation" button highlighted](~/content/assets/images/features/bpa-built-in-rules-kb-link.png) + +Every built-in rule links to a knowledge base article through the `KnowledgeBaseArticle` property. Each article explains what the rule checks, why it matters, and how to fix violations. + +To view documentation, select a rule in the Best Practice Analyzer window. + + +### Read-Only Protection + +Built-in rules can't be edited, cloned, or deleted. This ensures all users have the same rule definitions. You can disable individual rules, but the rule definitions themselves remain unchanged. + +![Placeholder: Screenshot showing built-in rule with read-only badge/icon in BPA window](~/content/assets/images/features/bpa-built-in-rules-readonly.png) + +### ID Collision Prevention + +Built-in rules use reserved ID prefixes. When you create a custom rule, Tabular Editor validates that your ID doesn't conflict with built-in rules and shows an error if it does. + +## Built-in Rules Catalog + +The initial release includes the following rules: + +### Error Prevention Rules +- [Avoid Invalid Characters in Object Names](xref:kb.bpa-avoid-invalid-characters-names) +- [Avoid Invalid Characters in Descriptions](xref:kb.bpa-avoid-invalid-characters-descriptions) +- [Expression Required for Calculated Objects](xref:kb.bpa-expression-required) +- [Data Column Must Have Source](xref:kb.bpa-data-column-source) +- [Relationship Columns Must Have Same Data Type](xref:kb.bpa-relationship-same-datatype) +- [Avoid Provider Partitions with Structured Data Sources](xref:kb.bpa-avoid-provider-partitions-structured) + +### Performance Rules +- [Many-to-Many Relationships Should Use Single Direction](xref:kb.bpa-many-to-many-single-direction) +- [Hide Foreign Key Columns](xref:kb.bpa-hide-foreign-keys) +- [Set SummarizeBy to None for Numeric Columns](xref:kb.bpa-do-not-summarize-numeric) +- [Remove Auto Date Tables](xref:kb.bpa-remove-auto-date-table) +- [Remove Unused Data Sources](xref:kb.bpa-remove-unused-data-sources) + +### Formatting Rules +- [Provide Format String for Measures](xref:kb.bpa-format-string-measures) +- [Provide Format String for Numeric and Date Columns](xref:kb.bpa-format-string-columns) +- [Visible Objects Should Have Descriptions](xref:kb.bpa-visible-objects-no-description) +- [Trim Object Names](xref:kb.bpa-trim-object-names) +- [Date Table Should Exist](xref:kb.bpa-date-table-exists) + +### Maintenance Rules +- [Calculation Groups Should Contain Items](xref:kb.bpa-calculation-groups-no-items) +- [Perspectives Should Contain Objects](xref:kb.bpa-perspectives-no-objects) +- [Use Latest Power BI Compatibility Level](xref:kb.bpa-powerbi-latest-compatibility) + +## Working with Built-in and Custom Rules + +Built-in and custom rules work side by side: + +| Feature | Built-in Rules | Custom Rules | +|---------|---------------|--------------| +| **Storage** | Hardcoded in application | JSON files or model annotations | +| **Updates** | Automatic with releases | Manual editing required | +| **Modification** | Read-only | Fully editable | +| **Documentation** | Integrated KB articles | User-provided descriptions | +| **Availability** | Enterprise Edition only | All editions | +| **Sharing** | Consistent across teams | Requires manual distribution | + +### Recommended Workflow + +1. Enable built-in rules for immediate coverage +2. Review violations and apply fixes +3. Disable rules that don't apply to your conventions +4. Add custom rules for organization-specific requirements +5. Use the "Ignore" feature for intentional violations + +## Best Practices + +### Onboarding Teams + +When rolling out built-in rules to your team: +- Start with all rules enabled to establish a baseline +- Review violations together and agree on which rules apply +- Document why specific rules are disabled +- Add custom rules for organization-specific requirements + +### Model Maintenance + +- Run BPA before committing changes to version control +- Fix high-severity violations immediately +- Review medium and low-severity issues regularly +- Use automatic fixes where available + +### Custom Rules + +- Don't duplicate built-in rule functionality +- Use different ID prefixes to avoid conflicts +- Document your custom rules +- Share rule collections within your team + +## Troubleshooting + +### Built-in Rules Not Appearing + +If built-in rules don't show in the BPA window: +1. Check that you're using Tabular Editor 3 Enterprise Edition +2. Verify that built-in rules are enabled in **Tools** > **Preferences** > **Best Practice Analyzer** +3. Restart Tabular Editor if you just changed preferences +4. Confirm your license is active + +### Cannot Modify Built-in Rule + +This is expected. Built-in rules are read-only. If you need different logic, create a custom rule with your expression and disable the corresponding built-in rule. + +### ID Collision Error + +Built-in rules reserve certain ID prefixes. Choose a different ID that doesn't start with `TE3_BUILT_IN`. + +## Compatibility + +- Requires Tabular Editor 3.24.0 or later +- Enterprise Edition only +- Works with all compatibility levels (1200+) + +## Next Steps + +- [Using the Best Practice Analyzer](xref:using-bpa) +- [BPA sample rules and expressions](xref:using-bpa-sample-rules-expressions) +- [Custom BPA rules](xref:best-practice-analyzer) \ No newline at end of file diff --git a/content/features/toc.md b/content/features/toc.md index b84b5325..0f9f4d80 100644 --- a/content/features/toc.md +++ b/content/features/toc.md @@ -28,6 +28,7 @@ # Model Analysis and Quality ## @best-practice-analyzer +### @built-in-bpa-rules ### @using-bpa ### @using-bpa-sample-rules-expressions ## @dax-optimizer-integration From 6761a3411838fe246fb031ee5c2bf37fd0680e1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20L=C3=B8nskov?= Date: Fri, 9 Jan 2026 20:42:04 +0100 Subject: [PATCH 04/14] remove kb articles from branch --- ...a-avoid-invalid-characters-descriptions.md | 123 --------------- .../kb/bpa-avoid-invalid-characters-names.md | 125 --------------- ...pa-avoid-provider-partitions-structured.md | 96 ------------ content/kb/bpa-calculation-groups-no-items.md | 102 ------------- content/kb/bpa-data-column-source.md | 93 ----------- content/kb/bpa-date-table-exists.md | 113 -------------- content/kb/bpa-do-not-summarize-numeric.md | 119 --------------- content/kb/bpa-expression-required.md | 98 ------------ content/kb/bpa-format-string-columns.md | 84 ---------- content/kb/bpa-format-string-measures.md | 105 ------------- content/kb/bpa-hide-foreign-keys.md | 118 -------------- .../kb/bpa-many-to-many-single-direction.md | 115 -------------- content/kb/bpa-perspectives-no-objects.md | 89 ----------- .../kb/bpa-powerbi-latest-compatibility.md | 86 ----------- content/kb/bpa-relationship-same-datatype.md | 92 ----------- content/kb/bpa-remove-auto-date-table.md | 106 ------------- content/kb/bpa-remove-unused-data-sources.md | 117 -------------- content/kb/bpa-set-isavailableinmdx-false.md | 91 ----------- ...bpa-set-isavailableinmdx-true-necessary.md | 144 ------------------ content/kb/bpa-specify-application-name.md | 70 --------- content/kb/bpa-translate-descriptions.md | 99 ------------ content/kb/bpa-translate-display-folders.md | 104 ------------- content/kb/bpa-translate-hierarchy-levels.md | 92 ----------- content/kb/bpa-translate-perspectives.md | 87 ----------- content/kb/bpa-translate-visible-names.md | 99 ------------ content/kb/bpa-trim-object-names.md | 103 ------------- .../kb/bpa-visible-objects-no-description.md | 106 ------------- 27 files changed, 2776 deletions(-) delete mode 100644 content/kb/bpa-avoid-invalid-characters-descriptions.md delete mode 100644 content/kb/bpa-avoid-invalid-characters-names.md delete mode 100644 content/kb/bpa-avoid-provider-partitions-structured.md delete mode 100644 content/kb/bpa-calculation-groups-no-items.md delete mode 100644 content/kb/bpa-data-column-source.md delete mode 100644 content/kb/bpa-date-table-exists.md delete mode 100644 content/kb/bpa-do-not-summarize-numeric.md delete mode 100644 content/kb/bpa-expression-required.md delete mode 100644 content/kb/bpa-format-string-columns.md delete mode 100644 content/kb/bpa-format-string-measures.md delete mode 100644 content/kb/bpa-hide-foreign-keys.md delete mode 100644 content/kb/bpa-many-to-many-single-direction.md delete mode 100644 content/kb/bpa-perspectives-no-objects.md delete mode 100644 content/kb/bpa-powerbi-latest-compatibility.md delete mode 100644 content/kb/bpa-relationship-same-datatype.md delete mode 100644 content/kb/bpa-remove-auto-date-table.md delete mode 100644 content/kb/bpa-remove-unused-data-sources.md delete mode 100644 content/kb/bpa-set-isavailableinmdx-false.md delete mode 100644 content/kb/bpa-set-isavailableinmdx-true-necessary.md delete mode 100644 content/kb/bpa-specify-application-name.md delete mode 100644 content/kb/bpa-translate-descriptions.md delete mode 100644 content/kb/bpa-translate-display-folders.md delete mode 100644 content/kb/bpa-translate-hierarchy-levels.md delete mode 100644 content/kb/bpa-translate-perspectives.md delete mode 100644 content/kb/bpa-translate-visible-names.md delete mode 100644 content/kb/bpa-trim-object-names.md delete mode 100644 content/kb/bpa-visible-objects-no-description.md diff --git a/content/kb/bpa-avoid-invalid-characters-descriptions.md b/content/kb/bpa-avoid-invalid-characters-descriptions.md deleted file mode 100644 index abd0bd25..00000000 --- a/content/kb/bpa-avoid-invalid-characters-descriptions.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -uid: kb.bpa-avoid-invalid-characters-descriptions -title: Avoid Invalid Characters in Descriptions -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule preventing display and deployment issues by identifying control characters in object descriptions. ---- - -# Avoid Invalid Characters in Descriptions - -## Overview - -This best practice rule identifies objects whose descriptions contain invalid control characters (non-printable characters excluding standard whitespace). These characters can cause display problems, metadata corruption, and deployment failures. - -- Category: Error Prevention -- Severity: High (3) - -## Applies To - -- Tables -- Measures -- Hierarchies -- Levels -- Perspectives -- Partitions -- Data Columns -- Calculated Columns -- Calculated Table Columns -- KPIs -- Model Roles -- Calculation Groups -- Calculation Items - -## Why This Matters - -Control characters in descriptions cause various issues: - -- **Display corruption**: Tooltips and documentation panels may show garbled text -- **Metadata problems**: TMSL/XMLA export may produce invalid XML -- **Deployment failures**: Power BI Service or Analysis Services may reject the model -- **Documentation issues**: Generated documentation may break formatting -- **Encoding errors**: Cross-platform synchronization problems -- **User confusion**: Invisible characters create confusing or corrupted descriptions - -Standard whitespace (spaces, newlines, tabs) is acceptable, but non-printable control characters should be removed. - -## When This Rule Triggers - -The rule triggers when an object's description contains control characters that are not standard whitespace: - -```csharp -Description.ToCharArray().Any(char.IsControl(it) and !char.IsWhiteSpace(it)) -``` - -This detects problematic characters while allowing legitimate whitespace formatting. - -## How to Fix - -### Automatic Fix - -This rule includes an automatic fix that replaces invalid characters with spaces: - -```csharp -Description = string.Concat( - it.Description.ToCharArray().Select( - c => (char.IsControl(c) && !char.IsWhiteSpace(c)) ? ' ' : c - ) -) -``` - -To apply: -1. In the **Best Practice Analyzer** select flagged objects -3. Click **Apply Fix** - -### Manual Fix - -1. In **TOM Explorer**, select the object -2. In **Properties** pane, locate the **Description** field -3. Edit the description to remove invalid characters -4. Save changes - -## Common Causes - -### Cause 1: Copy/Paste from Rich Text - -Copying descriptions from Word documents, web pages, or emails can introduce hidden formatting characters. - -### Cause 2: Automated Documentation Generation - -Scripts generating descriptions may include control characters from source systems. - -### Cause 3: Data Import from External Sources - -Importing metadata that contains encoding artifacts or control codes. - -## Example - -### Before Fix - -``` -Measure: [Total Revenue] -Description: "Calculates\x00total\x0Brevenue" (contains NULL and vertical tab) -``` - -Tooltip displays: "Calculates□total□revenue" (with visible corruption) - -### After Fix - -``` -Measure: [Total Revenue] -Description: "Calculates total revenue" (control characters replaced with spaces) -``` - -Tooltip displays correctly: "Calculates total revenue" - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Avoid Invalid Characters in Names](xref:kb.bpa-avoid-invalid-characters-names) - Similar validation for object names -- [Visible Objects Should Have Descriptions](xref:kb.bpa-visible-objects-no-description) - Ensuring descriptions exist diff --git a/content/kb/bpa-avoid-invalid-characters-names.md b/content/kb/bpa-avoid-invalid-characters-names.md deleted file mode 100644 index be43497c..00000000 --- a/content/kb/bpa-avoid-invalid-characters-names.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -uid: kb.bpa-avoid-invalid-characters-names -title: Avoid Invalid Characters in Object Names -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule preventing deployment errors by identifying control characters in object names. ---- - -# Avoid Invalid Characters in Object Names - -## Overview - -This best practice rule identifies objects whose names contain invalid control characters (non-printable characters excluding standard whitespace). These characters can cause deployment failures, rendering issues, and data corruption. - -- Category: Error Prevention -- Severity: High (3) - -## Applies To - -- Tables -- Measures -- Hierarchies -- Levels -- Perspectives -- Partitions -- Data Columns -- Calculated Columns -- Calculated Table Columns -- KPIs -- Model Roles -- Calculation Groups -- Calculation Items - -## Why This Matters - -Control characters in object names cause serious issues: - -- **Deployment failures**: Power BI Service and Analysis Services may reject models with invalid characters -- **Rendering problems**: Client tools may display garbled or invisible names -- **DAX parsing errors**: Invalid characters can break DAX expressions referencing the object -- **XML corruption**: Model metadata (TMSL/XMLA) may become malformed -- **Copy/paste issues**: Names may not transfer correctly between applications -- **Encoding problems**: Cross-platform compatibility issues - -Standard whitespace (spaces, newlines, carriage returns) is allowed, but control characters should be removed. - -## When This Rule Triggers - -The rule triggers when an object's name contains control characters that are not standard whitespace: - -```csharp -Name.ToCharArray().Any(char.IsControl(it) and !char.IsWhiteSpace(it)) -``` - -This detects problematic characters while allowing legitimate whitespace formatting. - -## How to Fix - -### Automatic Fix - -This rule includes an automatic fix that replaces invalid characters with spaces: - -```csharp -Name = string.Concat( - it.Name.ToCharArray().Select( - c => (char.IsControl(c) && !char.IsWhiteSpace(c)) ? ' ' : c - ) -) -``` - -To apply: -1. In the **Best Practice Analyzer** select flagged objects -2. Click **Apply Fix** - -### Manual Fix - -1. In **TOM Explorer**, select the object -2. In **Properties** pane, locate the **Name** field -3. Edit the name to remove invalid characters -4. Save changes - -## Common Causes - -### Cause 1: Copy/Paste from Rich Text - -Copying names from Word documents, web pages, or emails can introduce hidden formatting characters. - -### Cause 2: Automated Name Generation - -Scripts generating names may include control characters from source systems. - -### Cause 3: Data Import from External Sources - -Importing metadata that contains encoding artifacts or control codes. - -## Example - -### Before Fix - -``` -Measure Name: "Total\x00Sales" (contains NULL character) -``` - -Deployment fails with "Invalid character in object name" - -### After Fix - -``` -Measure Name: "Total Sales" (NULL replaced with space) -``` - -Deploys successfully and displays correctly in all tools. - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Avoid Invalid Characters in Descriptions](xref:kb.bpa-avoid-invalid-characters-descriptions) - Similar validation for description properties -- [Trim Object Names](xref:kb.bpa-trim-object-names) - Removing leading/trailing spaces - -## Learn More - -- [DAX Naming Rules](https://learn.microsoft.com/dax/dax-syntax-reference) diff --git a/content/kb/bpa-avoid-provider-partitions-structured.md b/content/kb/bpa-avoid-provider-partitions-structured.md deleted file mode 100644 index c0f3a440..00000000 --- a/content/kb/bpa-avoid-provider-partitions-structured.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -uid: kb.bpa-avoid-provider-partitions-structured -title: Avoid Provider Partitions with Structured Data Sources -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule preventing deployment errors by identifying legacy provider partitions used with structured data sources in Power BI. ---- - -# Avoid Provider Partitions with Structured Data Sources - -## Overview - -This best practice rule identifies partitions that use legacy provider-based queries (SourceType = Query) with structured data sources in Power BI models. This combination is not supported in Power BI Service and will cause deployment failures. - -- Category: Error Prevention - -- Severity: Medium (2) - -## Applies To - -- Partitions - -## Why This Matters - -Power BI Service requires structured data sources to use Power Query (M) partitions rather than legacy provider partitions. Using provider partitions with structured data sources causes: - -- **Deployment failures**: Models fail to publish to Power BI Service -- **Refresh errors**: Scheduled refresh operations fail in the service -- **Compatibility issues**: The model cannot be shared or deployed properly -- **Migration blockers**: Prevents moving from Analysis Services to Power BI - -## When This Rule Triggers - -The rule triggers when a partition meets all these conditions: - -1. `SourceType = "Query"` (legacy provider partition) -2. `DataSource.Type = "Structured"` (Power Query/M data source) -3. `Model.Database.CompatibilityMode != "AnalysisServices"` (Power BI or Azure AS) - -This combination indicates a structural mismatch that Power BI cannot process. - -## How to Fix - -### Manual Fix - -1. In **TOM Explorer**, select the affected partition -2. In **Properties** pane, note the existing query -3. Create a new **Power Query** partition with M expression -4. Delete the old provider partition after verifying the new one works - -## Common Causes - -### Cause 1: Migration from Analysis Services - -Models migrated from SQL Server Analysis Services retain legacy provider partitions. - -### Cause 2: Mixed Partition Types - -Mixing partition types during model development creates incompatible configurations. - -## Example - -### Before Fix - -``` -Partition: Sales_Partition - SourceType: Query - Query: SELECT * FROM Sales - DataSource: PowerQuerySource (Type: Structured) -``` - -**Error**: Deployment fails to Power BI Service - -### After Fix - -``` -Partition: Sales_Partition - SourceType: M - Expression: - let - Source = Sql.Database("server", "database"), - Sales = Source{[Schema="dbo",Item="Sales"]}[Data] - in - Sales - DataSource: PowerQuerySource (Type: Structured) -``` - -**Result**: Deploys successfully to Power BI Service - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher when deployed to Power BI or Azure Analysis Services. - -## Related Rules - -- [Data Column Must Have Source](xref:kb.bpa-data-column-source) - Ensuring column source mappings diff --git a/content/kb/bpa-calculation-groups-no-items.md b/content/kb/bpa-calculation-groups-no-items.md deleted file mode 100644 index 486293ab..00000000 --- a/content/kb/bpa-calculation-groups-no-items.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -uid: kb.bpa-calculation-groups-no-items -title: Calculation Groups Should Contain Items -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule identifying calculation groups without calculation items that should be populated or removed. ---- - -# Calculation Groups Should Contain Items - -## Overview - -This best practice rule identifies calculation groups that contain no calculation items. Empty calculation groups serve no purpose and should be populated or removed. - -- Category: Maintenance -- Severity: Medium (2) - -## Applies To - -- Calculation Groups - -## Why This Matters - -- **Deployment errors**: Empty groups may fail validation in Power BI Service -- **Model errors**: Can cause unexpected behavior in DAX calculations -- **Developer confusion**: Team members waste time investigating incomplete structures -- **Performance overhead**: Engine processes unnecessary metadata - -## When This Rule Triggers - -The rule triggers when a calculation group has zero calculation items: - -```csharp -CalculationItems.Count == 0 -``` - -## How to Fix - -### Option 1: Add Calculation Items - -If the calculation group has a valid business purpose: - -1. In **TOM Explorer**, expand the calculation group table -2. Expand the **Calculation Group** column -3. Right-click and select **Add Calculation Item** -4. Define the calculation item expression - -### Option 2: Delete the Calculation Group - -If no longer needed: - -1. In **TOM Explorer**, locate the calculation group table -2. Right-click the table -3. Select **Delete** - -## Common Causes - -### Cause 1: Incomplete Development - -Calculation group created during planning but not yet implemented. - -### Cause 2: Migration from Other Models - -Calculation group structure copied without items. - -### Cause 3: Refactoring - -All calculation items moved to a different calculation group. - -## Example - -### Before Fix - -``` -Calculation Group: Time Intelligence - Items: (none) ← Problem -``` - -### After Fix - -``` -Calculation Group: Time Intelligence - Items: - - Current Period: SELECTEDMEASURE() - - Year-to-Date: CALCULATE(SELECTEDMEASURE(), DATESYTD('Date'[Date])) - - Prior Year: CALCULATE(SELECTEDMEASURE(), SAMEPERIODLASTYEAR('Date'[Date])) -``` - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Perspectives Should Contain Objects](xref:kb.bpa-perspectives-no-objects) - Similar rule for empty perspectives -- [Expression Required](xref:kb.bpa-expression-required) - Ensuring calculation items have expressions - -## Learn More - -- [Calculation Groups in Tabular Models](https://learn.microsoft.com/analysis-services/tabular-models/calculation-groups) -- [Creating Calculation Groups](https://www.sqlbi.com/articles/introducing-calculation-groups/) -- [Calculation Group Patterns](https://www.sqlbi.com/calculation-groups/) diff --git a/content/kb/bpa-data-column-source.md b/content/kb/bpa-data-column-source.md deleted file mode 100644 index 9bc9e55b..00000000 --- a/content/kb/bpa-data-column-source.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -uid: kb.bpa-data-column-source -title: Data Column Must Have Source -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring data columns have a valid source column mapping to prevent refresh errors. ---- - -# Data Column Must Have Source - -## Overview - -This best practice rule identifies data columns that lack a valid `SourceColumn` property. Every data column must reference a source column from the underlying data source to function correctly during refresh. - -- Category: Error Prevention -- Severity: High (3) - -## Applies To - -- Data Columns - -## Why This Matters - -- **Refresh failures**: Data refresh operations fail with column not found errors -- **Deployment issues**: Model validation fails in Power BI Service or Analysis Services -- **Data integrity**: Column remains empty or contains stale data -- **Broken dependencies**: Measures and relationships produce incorrect results - -## When This Rule Triggers - -The rule triggers when a data column has: - -```csharp -string.IsNullOrWhitespace(SourceColumn) -``` - -## How to Fix - -### Manual Fix - -1. In **TOM Explorer**, locate the flagged data column -2. In **Properties** pane, find the `Source Column` property -3. Enter the correct source column name from your data source query -4. Verify the mapping matches the partition query - -The source column name must exactly match: -- For Power Query: Column name in M expression output -- For SQL: Column name or alias in SELECT statement -- For Direct Lake: Column name in Delta Lake table - -## Common Causes - -### Cause 1: Renamed Source Column - -Source query was modified and column renamed. - -### Cause 2: Manual Column Creation - -Column created manually without specifying source. - -### Cause 3: Copy/Paste Corruption - -Columns copied from another table without preserving metadata. - -## Example - -### Before Fix - -``` -Table: Sales -Column: ProductName (DataColumn) - SourceColumn: [empty] -``` - -Result: Refresh fails with "Column 'ProductName' not found in source query" - -### After Fix - -``` -Table: Sales -Column: ProductName (DataColumn) - SourceColumn: ProductName -``` - -Result: Column populates correctly during refresh - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Expression Required for Calculated Objects](xref:kb.bpa-expression-required) - Ensuring calculated columns have expressions diff --git a/content/kb/bpa-date-table-exists.md b/content/kb/bpa-date-table-exists.md deleted file mode 100644 index 97931246..00000000 --- a/content/kb/bpa-date-table-exists.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -uid: kb.bpa-date-table-exists -title: Date Table Should Exist -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring your model includes a dedicated date table for proper time intelligence functionality. ---- - -# Date Table Should Exist - -## Overview - -This best practice rule verifies that your tabular model contains at least one properly configured date table. Date tables are essential for time intelligence calculations and ensuring consistent date-based filtering across your model. - -- Category: Performance - -- Severity: Medium (2) - -## Applies To - -- Model - -## Why This Matters - -A dedicated date table is essential because it: - -- **Enables time intelligence**: Functions like `DATESYTD`, `SAMEPERIODLASTYEAR`, and `TOTALYTD` require a date table -- **Ensures consistent filtering**: Provides single source of truth for date attributes -- **Improves performance**: Establishes proper calendar relationships -- **Supports custom calendars**: Enables fiscal year calculations and custom hierarchies - -Without a properly marked date table, many DAX time intelligence functions will fail or produce incorrect results. - -## When This Rule Triggers - -The rule triggers when **all** tables in your model meet the following conditions: - -1. No table has any calendars defined (`Calendars.Count = 0`) -2. No table contains a column marked as a key with `DataType = DateTime` -3. No table has `DataCategory = "Time"` - -This indicates that the model lacks a proper date dimension. - -## How to Fix - -### Option 1: Create a Date Table Using DAX - -Add a calculated table with a complete date range: - -```dax -DateTable = -ADDCOLUMNS ( - CALENDAR (DATE(2020, 1, 1), DATE(2030, 12, 31)), - "Year", YEAR([Date]), - "Quarter", "Q" & FORMAT([Date], "Q"), - "Month", FORMAT([Date], "MMMM"), - "MonthNumber", MONTH([Date]), - "Day", DAY([Date]), - "WeekDay", FORMAT([Date], "dddd") -) -``` - -### Option 2: Import from Data Source - -Create a date dimension table in your data warehouse or data source and import it into the model. - -### Mark as Date Table - -After creating the table: - -1. Select the date table in the **TOM Explorer** -2. Right-click and choose **Mark as Date Table** -3. Select the date column as the key column -4. Create relationships between the date table and your fact tables - -### Set Calendar Metadata - -Alternatively, configure the calendar metadata: - -1. Select the date table -2. In the **Properties** pane, expand **Calendars** -3. Add a new calendar and configure the date column reference - -## Example - -A typical date table structure: - -| Date | Year | Quarter | Month | MonthNumber | Day | -|------|------|---------|-------|-------------|-----| -| 2025-01-01 | 2025 | Q1 | January | 1 | 1 | -| 2025-01-02 | 2025 | Q1 | January | 1 | 2 | -| ... | ... | ... | ... | ... | ... | - -Once created, establish relationships: - -``` -'DateTable'[Date] (1) -> (*) 'Sales'[OrderDate] -'DateTable'[Date] (1) -> (*) 'Orders'[ShipDate] -``` - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Remove Auto Date Table](xref:kb.bpa-remove-auto-date-table) - Removing automatic date tables that duplicate functionality - -## Learn More - -- [Create Date Tables in Power BI](https://learn.microsoft.com/power-bi/guidance/model-date-tables) -- [Time Intelligence Functions in DAX](https://learn.microsoft.com/dax/time-intelligence-functions-dax) -- [Mark as Date Table](https://learn.microsoft.com/power-bi/transform-model/desktop-date-tables) diff --git a/content/kb/bpa-do-not-summarize-numeric.md b/content/kb/bpa-do-not-summarize-numeric.md deleted file mode 100644 index f29ab822..00000000 --- a/content/kb/bpa-do-not-summarize-numeric.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -uid: kb.bpa-do-not-summarize-numeric -title: Set SummarizeBy to None for Numeric Columns -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule preventing incorrect default aggregations on numeric columns that should not be summed. ---- - -# Set SummarizeBy to None for Numeric Columns - -## Overview - -This best practice rule identifies visible numeric columns (Int64, Decimal, Double) that have a default aggregation behavior (`SummarizeBy`) other than `None`. Most numeric columns should not be automatically aggregated, as summing values like IDs, quantities in non-additive contexts, or codes produces meaningless results. - -- Category: Formatting - -- Severity: High (3) - -## Applies To - -- Data Columns -- Calculated Columns -- Calculated Table Columns - -## Why This Matters - -Default aggregation on inappropriate columns causes serious issues: - -- **Incorrect analysis**: Users get meaningless totals (sum of CustomerIDs, etc.) -- **Misleading dashboards**: Visualizations show wrong numbers by default -- **User confusion**: Users must manually change aggregation for every visual -- **Wrong decisions**: Business decisions based on incorrect automatic aggregations -- **Data credibility**: Users lose trust in the model and data - -Common columns that should NOT be aggregated include IDs, keys, codes, ratios, percentages, and non-additive quantities. - -## When This Rule Triggers - -The rule triggers when a column meets ALL these conditions: - -```csharp -(DataType = "Int64" or DataType="Decimal" or DataType="Double") -and -SummarizeBy <> "None" -and not (IsHidden or Table.IsHidden) -``` - -In other words: visible numeric columns that have a summarization behavior other than "None". - -## How to Fix - -### Automatic Fix - -This rule includes an automatic fix: - -```csharp -SummarizeBy = AggregateFunction.None -``` - -To apply: -1. In the **Best Practice Analyzer** select flagged objects -3. Click **Apply Fix** - -### Manual Fix - -1. In **TOM Explorer**, locate the column -2. In **Properties** pane, find **Summarize By** -3. Change from **Sum**, **Average**, **Min**, **Max**, **Count**, or **DistinctCount** to **None** -4. Save changes - -## Common Causes - -### Cause 1: Default Import Behavior - -Numeric columns default to Sum aggregation during import. - -### Cause 2: Lack of Column Review - -Models deployed without reviewing column aggregation settings. - -### Cause 3: ID Columns Not Hidden - -Numeric ID columns remain visible with default Sum aggregation. - -## Example - -### Before Fix - -``` -Column: CustomerID - DataType: Int64 - SummarizeBy: Sum -``` - -**Result**: Visual shows "Sum of CustomerID: 12,456,789" (meaningless number) - -### After Fix - -``` -Column: CustomerID - DataType: Int64 - SummarizeBy: None -``` - -**Result**: Visual requires explicit aggregation or shows individual Customer IDs - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Hide Foreign Keys](xref:kb.bpa-hide-foreign-keys) - Related column hygiene rule -- [Format String for Columns](xref:kb.bpa-format-string-columns) - Column formatting - -## Learn More - -- [Column Properties](https://learn.microsoft.com/analysis-services/tabular-models/column-properties-ssas-tabular) -- [When to Use Measures vs. Calculated Columns](https://learn.microsoft.com/power-bi/transform-model/desktop-tutorial-create-measures) diff --git a/content/kb/bpa-expression-required.md b/content/kb/bpa-expression-required.md deleted file mode 100644 index 5dd370ef..00000000 --- a/content/kb/bpa-expression-required.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -uid: kb.bpa-expression-required -title: Expression Required for Calculated Objects -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring measures, calculated columns, and calculation items have valid DAX expressions. ---- - -# Expression Required for Calculated Objects - -## Overview - -This best practice rule identifies measures, calculated columns, and calculation items that lack a DAX expression. All calculated objects must have a valid, non-empty expression to function correctly and prevent errors during model deployment and query execution. - -- Category: Error Prevention - -- Severity: High (3) - -## Applies To - -- Measures -- Calculated Columns -- Calculation Items - -## Why This Matters - -Calculated objects without expressions will cause critical failures: - -- **Model validation errors**: The model will fail validation when saved or deployed -- **Query failures**: Attempts to use the object in queries will generate errors -- **Broken dependencies**: Other measures or calculations referencing the object will fail -- **Deployment blockers**: Power BI Service and Analysis Services will reject models with empty expressions -- **Unexpected behavior**: The object may appear in field lists but produce no results - -Empty expressions typically result from incomplete object creation, copy/paste operations, or programmatic model generation errors. - -## When This Rule Triggers - -The rule triggers when any of the following objects have an empty or whitespace-only expression: - -```csharp -string.IsNullOrWhiteSpace(Expression) -``` - -This applies to: -- **Measures**: Should contain a DAX aggregation or calculation -- **Calculated Columns**: Should contain a row-context DAX expression -- **Calculation Items**: Should contain a DAX expression modifying the base measure - -## How to Fix - -### Manual Fix - -1. In **TOM Explorer**, locate the measure, calculated column, or calculation item -2. Double-click to open the **DAX Editor** -3. Enter a valid DAX expression -4. Validate the syntax and save - -## Common Causes - -### Cause 1: Incomplete Creation - -Object was created intending to define it later but was forgotten. - -### Cause 2: Template-Based Creation - -Scripts or templates created objects without expressions. - -### Cause 3: Failed Copy Operation - -Copied an object but the expression didn't transfer. - -## Example - -### Before Fix - -``` -Measure: [Total Revenue] - Expression: [empty] - FormatString: $#,0.00 -``` - -**Error when queried**: "The expression for measure '[Total Revenue]' is not valid." - -### After Fix - -``` -Measure: [Total Revenue] - Expression: SUM('Sales'[Revenue]) - FormatString: $#,0.00 -``` - -**Result**: Measure functions correctly and returns aggregated revenue. - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - diff --git a/content/kb/bpa-format-string-columns.md b/content/kb/bpa-format-string-columns.md deleted file mode 100644 index 69428333..00000000 --- a/content/kb/bpa-format-string-columns.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -uid: kb.bpa-format-string-columns -title: Provide Format String for Numeric and Date Columns -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring visible numeric and date columns have appropriate format strings for consistent display. ---- - -# Provide Format String for Numeric and Date Columns - -## Overview - -This best practice rule identifies visible columns with numeric or date data types that lack format strings. Format strings ensure consistent, professional data display across all client tools. - -- Category: Formatting - -- Severity: Medium (2) - -## Applies To - -- Data Columns -- Calculated Columns -- Calculated Table Columns - -## Why This Matters - -Columns without format strings display inconsistently: - -- **Unprofessional appearance**: Raw numbers like 1234567.89 instead of $1,234,567.89 -- **User confusion**: Users can't tell if values are currency, percentages, or plain numbers -- **Inconsistent formatting**: Different visuals may show different formats -- **Manual formatting burden**: Users must format every visual individually -- **Date ambiguity**: Dates show timestamps when only dates are needed - -## When This Rule Triggers - -```csharp -IsVisible -and string.IsNullOrWhitespace(FormatString) -and (DataType = "Int64" or DataType = "DateTime" or DataType = "Double" or DataType = "Decimal") -``` - -## How to Fix - -### Manual Fix - -1. In **TOM Explorer**, select the column -2. In **Properties** pane, locate the **Format String** field -3. Choose from standard formats or enter custom format -4. Save changes - -## Common Causes - -### Cause 1: Missing Format Definition - -Columns do not have a format string when imported. - -## Example - -### Before Fix - -``` -Column: SalesAmount -Format String: (empty) -``` - -**Display**: 1234567.89 (hard to read, no currency symbol) - -### After Fix - -``` -Column: SalesAmount -Format String: "$#,0.00" -``` - -**Display**: $1,234,567.89 (clear, professional formatting) - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Provide Format String for Measures](xref:kb.bpa-format-string-measures) - Similar validation for measures diff --git a/content/kb/bpa-format-string-measures.md b/content/kb/bpa-format-string-measures.md deleted file mode 100644 index 7b4cf80f..00000000 --- a/content/kb/bpa-format-string-measures.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -uid: kb.bpa-format-string-measures -title: Provide Format String for Measures -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring visible measures have appropriate format strings for consistent display. ---- - -# Provide Format String for Measures - -## Overview - -This best practice rule identifies visible measures with numeric or date data types that lack format strings. All measures should have explicit format strings for professional, consistent display. - -- Category: Formatting - -- Severity: Medium (2) - -## Applies To - -- Measures - -## Why This Matters - -Measures without format strings display raw values, causing user confusion and inconsistent reporting. Format strings ensure: - -- **Professional appearance**: Values display with appropriate currency, percentage, or number formatting -- **Consistency**: All reports show values in the same format -- **User confidence**: Properly formatted numbers are easier to read and interpret -- **Business alignment**: Formatting matches corporate standards - -## When This Rule Triggers - -```csharp -IsVisible -and string.IsNullOrWhitespace(FormatString) -and (DataType = "Int64" or DataType = "DateTime" or DataType = "Double" or DataType = "Decimal") -``` - -## How to Fix - -### Manual Fix - -1. In **TOM Explorer**, select the measure -2. In **Properties** pane, locate the **Format String** field -3. Enter an appropriate format string based on what the measure calculates -4. Save changes - -### Common Format Patterns - -```dax -Total Revenue = -SUM('Sales'[Amount]) -// Format String: "$#,0" - -Average Price = -AVERAGE('Sales'[UnitPrice]) -// Format String: "$#,0.00" - -YoY Growth = -DIVIDE([This Year] - [Last Year], [Last Year], 0) -// Format String: "0.0%" - -Order Count = -COUNTROWS('Orders') -// Format String: "#,0" -``` - -## Common Causes - -### Cause 1: Missing Format Definition - -When creating a new measure the defualt state is to not have any format string set. - -### Cause 2: Copy/Paste from Calculated Columns - -Copying measures from columns that don't require format strings. - -## Example - -### Before Fix - -```dax -Total Revenue = SUM('Sales'[Amount]) -// No Format String -``` - -**Display**: 1234567.89 (hard to read, no currency symbol) - -### After Fix - -```dax -Total Revenue = SUM('Sales'[Amount]) -// Format String: "$#,0" -``` - -**Display**: $1,234,568 (clear, professional formatting) - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Format String for Columns](xref:kb.bpa-format-string-columns) - Similar validation for columns diff --git a/content/kb/bpa-hide-foreign-keys.md b/content/kb/bpa-hide-foreign-keys.md deleted file mode 100644 index 62717d39..00000000 --- a/content/kb/bpa-hide-foreign-keys.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -uid: kb.bpa-hide-foreign-keys -title: Hide Foreign Key Columns -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule for hiding foreign key columns to simplify the model for end users. ---- - -# Hide Foreign Key Columns - -## Overview - -This best practice rule identifies foreign key columns (many-side of relationships) that are visible to end users. Foreign keys should be hidden because they serve only as relationship connectors and provide no analytical value when displayed. - -- Category: Formatting - -- Severity: Medium (2) - -## Applies To - -- Data Columns -- Calculated Columns -- Calculated Table Columns - -## Why This Matters - -Visible foreign key columns create unnecessary clutter: - -- **User confusion**: Foreign keys look like useful data but duplicate dimension attributes -- **Redundant fields**: Users see both the key and the related dimension attributes -- **Larger field lists**: More objects to scroll through finding relevant fields -- **Incorrect usage**: Users may group by keys instead of proper dimension attributes -- **Poor visualizations**: Charts showing key values instead of descriptive names - -Foreign keys exist only to create relationships between tables. Once relationships are established, users should work with dimension attributes, not the foreign keys themselves. - -## When This Rule Triggers - -The rule triggers when a column is: - -1. Used as the "from" column in a relationship (many-side) -2. The relationship has many cardinality on the from-side -3. The column is visible (`IsHidden = false`) - -```csharp -UsedInRelationships.Any(FromColumn.Name == current.Name and FromCardinality == "Many") -and -IsHidden == false -``` - -## How to Fix - -### Automatic Fix - -This rule includes an automatic fix: - -```csharp -IsHidden = true -``` - -To apply: -1. In the **Best Practice Analyzer** select flagged foreign key columns -2. Click **Apply Fix** - -### Manual Fix - -1. In **TOM Explorer**, locate the foreign key column -2. In **Properties** pane, set **IsHidden** to **true** -3. Save changes - -## Common Causes - -### Cause 1: Incomplete Model Setup - -Foreign keys remain visible after creating relationships. - -### Cause 2: Bulk Import - -Tables imported without post-processing to hide foreign keys. - -### Cause 3: Legacy Models - -Older models where foreign key hiding wasn't enforced. - -## Example - -### Before Fix - -``` -Sales Table Fields (visible): - - OrderDate - - CustomerKey ← Foreign key (should be hidden) - - ProductKey ← Foreign key (should be hidden) - - SalesAmount - - Quantity -``` - -**User experience**: Field list is cluttered. Users might mistakenly use `Sales[CustomerKey]` instead of `Customer[CustomerName]`. - -### After Fix - -``` -Sales Table Fields (visible): - - OrderDate - - SalesAmount - - Quantity -``` - -**User experience**: Clean field list. Users naturally use dimension attributes, relationship filtering works automatically. - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Set SummarizeBy to None for Numeric Columns](xref:kb.bpa-do-not-summarize-numeric) - Related column configuration -- [Format String for Columns](xref:kb.bpa-format-string-columns) - Column display settings diff --git a/content/kb/bpa-many-to-many-single-direction.md b/content/kb/bpa-many-to-many-single-direction.md deleted file mode 100644 index fdcadb21..00000000 --- a/content/kb/bpa-many-to-many-single-direction.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -uid: kb.bpa-many-to-many-single-direction -title: Many-to-Many Relationships Should Use Single Direction -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule to avoid performance issues by using single-direction filtering on many-to-many relationships. ---- - -# Many-to-Many Relationships Should Use Single Direction - -## Overview - -This best practice rule identifies many-to-many relationships that use bidirectional cross-filtering. Many-to-many relationships with both-directions filtering cause significant performance degradation. - -- Category: Performance -- Severity: Medium (2) - -## Applies To - -- Relationships - -## Why This Matters - -- **Severe performance impact**: Engine must evaluate filters in both directions -- **Memory consumption**: Additional filter contexts maintained -- **Ambiguous filter paths**: Multiple routes produce unexpected results -- **Complex DAX logic**: Debugging filter context becomes difficult -- **Risk circular dependencies**: Can lead to infinite evaluation loops - -## When This Rule Triggers - -The rule triggers when a relationship meets all conditions: - -1. `FromCardinality = "Many"` -2. `ToCardinality = "Many"` -3. `CrossFilteringBehavior = "BothDirections"` - -## How to Fix - -### Manual Fix - -1. In **TOM Explorer**, locate the flagged relationship -2. In **Properties** pane, find `Cross Filter Direction` -3. Change from **Both** to **Single** - -Choose direction based on typical filter flow: -- From dimension to fact -- From lookup to data table - -When opposite-direction filtering is needed, handle explicitly in measures: - -```dax -SalesWithCrossFilter = -CALCULATE( - SUM('Sales'[Amount]), - CROSSFILTER('BridgeTable'[Key], 'DimensionTable'[Key], Both) -) -``` - -## Common Causes - -### Cause 1: Default Both-Direction Setting - -Model designer applied bidirectional filtering by default. - -### Cause 2: Misunderstood Requirements - -Believed both-direction filtering was necessary for all scenarios. - -### Cause 3: Quick Fix Approach - -Used both-direction filtering to solve a specific problem without considering performance. - -## Example - -### Before Fix - -``` -'Sales' (Many) <--> (Many) 'ProductBridge' -Cross Filter Direction: Both ← Problem -``` - -### After Fix - -``` -'Sales' (Many) --> (Many) 'ProductBridge' -Cross Filter Direction: Single -``` - -When Products need to filter Sales, use DAX: - -```dax -SalesForSelectedProducts = -VAR SelectedProducts = VALUES('Products'[ProductKey]) -RETURN -CALCULATE( - SUM('Sales'[Amount]), - TREATAS(SelectedProducts, 'ProductBridge'[ProductKey]) -) -``` - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Relationship Data Types Must Match](xref:kb.bpa-relationship-same-datatype) - Ensuring relationship integrity - -## Learn More - -- [Many-to-Many Relationships in Power BI](https://learn.microsoft.com/power-bi/transform-model/desktop-many-to-many-relationships) -- [Relationship Cross-Filtering](https://learn.microsoft.com/power-bi/transform-model/desktop-relationships-understand) -- [DAX CROSSFILTER Function](https://dax.guide/crossfilter/) -- [DAX TREATAS Function](https://dax.guide/treatas) diff --git a/content/kb/bpa-perspectives-no-objects.md b/content/kb/bpa-perspectives-no-objects.md deleted file mode 100644 index 13772524..00000000 --- a/content/kb/bpa-perspectives-no-objects.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -uid: kb.bpa-perspectives-no-objects -title: Perspectives Should Contain Objects -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule for removing empty perspectives that contain no visible objects. ---- - -# Perspectives Should Contain Objects - -## Overview - -This best practice rule identifies perspectives that don't contain any visible tables. Empty perspectives serve no purpose and should be removed. - -- Category: Maintenance -- Severity: Low (1) - -## Applies To - -- Perspectives - -## Why This Matters - -- **User confusion**: Empty perspectives appear in client tools but show no data - -## When This Rule Triggers - -The rule triggers when a perspective has no visible tables: - -```csharp -Model.Tables.Any(InPerspective[current.Name]) == false -``` - -## How to Fix - -### Automatic Fix - -This rule includes an automatic fix that deletes the empty perspective: - -```csharp -Delete() -``` - -To apply: -1. Run the **Best Practice Analyzer** -2. Select the empty perspectives -3. Click **Apply Fix** - -### Manual Fix - -1. In **TOM Explorer**, expand the **Perspectives** node -2. Right-click the empty perspective -3. Select **Delete** - -## Common Causes - -### Cause 1: Removed All Tables - -All tables removed from perspective without deleting it. - -### Cause 2: Incomplete Configuration - -Perspective created during design but never populated. - -## Example - -### Before Fix - -``` -Perspectives: - - Sales (contains: Sales, Customer, Product tables) ✓ - - Marketing (contains: NO TABLES) ✗ -``` - -### After Fix - -``` -Perspectives: - - Sales (contains: Sales, Customer, Product tables) ✓ -``` - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Learn More - -- [Perspectives in Tabular Models](https://learn.microsoft.com/analysis-services/tabular-models/perspectives-ssas-tabular) - diff --git a/content/kb/bpa-powerbi-latest-compatibility.md b/content/kb/bpa-powerbi-latest-compatibility.md deleted file mode 100644 index bb97ccb7..00000000 --- a/content/kb/bpa-powerbi-latest-compatibility.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -uid: kb.bpa-powerbi-latest-compatibility -title: Use Latest Compatibility Level for Power BI Models -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring Power BI models use the latest compatibility level for optimal features and performance. ---- - -# Use Latest Compatibility Level for Power BI Models - -## Overview - -This rule identifies Power BI models not using the latest available compatibility level. Using the latest level ensures access to newest features, performance optimizations, and bug fixes. - -- Category: Governance -- Severity: High (3) - -## Applies To - -- Model (Power BI semantic models only) - -## Why This Matters - -- **Missing features**: New DAX functions and model capabilities unavailable -- **Future compatibility**: Easier upgrades when using recent levels - -## When This Rule Triggers - -For Power BI models, triggers when compatibility level is below current maximum: - -```csharp -Model.Database.CompatibilityMode=="PowerBI" -and Model.Database.CompatibilityLevel<>[CurrentMaxLevel] -``` - -## How to Fix - -### Automatic Fix - -The best practice rule includes an automatic fix that sets the Compatability Level to the highest avaliable that exist on the current installation of Tabular Editor 3. If you have an older version of Tabular Editor 3 installed you should update your installation. - -```csharp -Model.Database.CompatibilityLevel = [PowerBIMaxCompatibilityLevel] -``` - -### Manual Fix - -1. In Tabular Editor, go to **Model** properties -2. Set **Compatibility Level** to the latest version -3. Test all DAX expressions and features -4. Deploy to Power BI Service - -## Common Causes - -### Cause 1: Model Created in Power BI Desktop - -Model created with in Power BI Desktop does not necesarily have the latest Compatability Level. - -### Cause 2: Model Created at Lower Level - -Model created with older version of Power BI Desktop. - -### Cause 3: Conservative Approach - -Team policy to delay upgrades. - -## Example - -### Before Fix - -``` -Model Compatibility Level: 1500 -Current Maximum Level: 1700 -``` - -### After Fix - -``` -Model Compatibility Level: 1700 (Latest) -``` - -Access to new features like enhanced calculation groups and field parameters. - -## Compatibility Level - -This rule applies to Power BI models at all compatibility levels. \ No newline at end of file diff --git a/content/kb/bpa-relationship-same-datatype.md b/content/kb/bpa-relationship-same-datatype.md deleted file mode 100644 index fb3263fd..00000000 --- a/content/kb/bpa-relationship-same-datatype.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -uid: kb.bpa-relationship-same-datatype -title: Relationship Columns Must Have Same Data Type -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring relationships connect columns with matching data types to prevent errors and performance issues. ---- - -# Relationship Columns Must Have Same Data Type - -## Overview - -This best practice rule identifies relationships where the connected columns have mismatched data types. Both columns in a relationship must share the same data type to ensure proper filtering, prevent errors, and maintain optimal query performance. - -- Category: Error Prevention - -- Severity: High (3) - -## Applies To - -- Relationships - -## Why This Matters - -Relationships with mismatched data types cause serious problems: - -- **Model validation errors**: The model may fail to save or deploy -- **Relationship creation failures**: Power BI and Analysis Services may reject the relationship -- **Implicit conversions**: Expensive data type conversions on every query -- **Incorrect results**: Type coercion leads to unexpected filtering behavior -- **Performance degradation**: Converting data types during queries slows execution -- **Memory overhead**: Additional memory required for conversion buffers - -## When This Rule Triggers - -The rule triggers when: - -```csharp -FromColumn.DataType != ToColumn.DataType -``` - -This detects relationships connecting columns with different data types. - -## How to Fix - -### Manual Fix - -1. Identify which column should change data type -2. Change the data type in **Power Query**, in the underlying data source or in the model -3. Delete the existing relationship -4. Create a new relationship between the corrected columns -5. Verify filtering works correctly - -## Common Causes - -### Cause 1: Inconsistent Data Type Choices - -Different data types chosen for the same logical key during import or table creation. - -### Cause 2: Source System Differences - -Foreign keys imported from different source systems with different type conventions. - -### Cause 3: DateTime vs Date Mismatch - -Fact tables using DateTime columns while date dimensions use Date type. - -## Example - -### Before Fix - -``` -Relationship: Sales[CustomerID] (Int64) → Customers[CustomerID] (String) -``` - -**Error**: Relationship fails validation or creates performance issues with implicit conversion - -### After Fix - -``` -Relationship: Sales[CustomerID] (Int64) → Customers[CustomerID] (Int64) -``` - -**Result**: Relationship works efficiently with no type conversion overhead - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Many-to-Many Relationships Should Use Single Direction](xref:kb.bpa-many-to-many-single-direction) - Relationship performance optimization diff --git a/content/kb/bpa-remove-auto-date-table.md b/content/kb/bpa-remove-auto-date-table.md deleted file mode 100644 index 91451c32..00000000 --- a/content/kb/bpa-remove-auto-date-table.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -uid: kb.bpa-remove-auto-date-table -title: Remove Auto Date Tables -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule to identify and remove automatically generated date tables that increase model size and reduce performance. ---- - -# Remove Auto Date Tables - -## Overview - -This best practice rule identifies automatically generated date tables created by Power BI Desktop. These auto-generated tables (`DateTableTemplate_` and `LocalDateTable_`) should be removed in favor of a single, explicit date table to optimize model size and performance. - -- Category: Performance - -- Severity: Medium (2) - -## Applies To - -- Tables -- Calculated Tables - -## Why This Matters - -Power BI automatically creates hidden date tables for every date/datetime column when "Auto Date/Time" is enabled. This causes issues: - -- **Increased model size**: Each auto-generated table adds unnecessary data -- **Memory overhead**: Multiple date tables consume more memory than one shared table -- **Slower refresh**: Additional tables increase refresh duration - -A single, well-designed date table is far more efficient and maintainable. - -## When This Rule Triggers - -The rule triggers when it finds calculated tables with names that: - -- Start with `"DateTableTemplate_"`, or -- Start with `"LocalDateTable_"` - -These prefixes indicate Power BI's automatically generated date tables. - -## How to Fix - -### Manual Fix - -1. Disable **Auto Date/Time** in Power BI Desktop (**File** > **Options** > **Data Load**) -2. Create a dedicated date table. -3. Mark it as a date table and create relationships to fact tables -4. In **TOM Explorer**, delete tables starting with `DateTableTemplate_` or `LocalDateTable_` -5. Verify custom date table relationships work correctly - -## Common Causes - -### Cause 1: Auto Date/Time Feature Enabled - -Power BI Desktop's "Auto Date/Time" feature automatically creates these tables. - -### Cause 2: Migrated Models - -Models created with auto tables enabled and never cleaned up. - -### Cause 3: Default Settings - -New models use default settings which enable auto date tables. - -## Example - -### Before Fix - -``` -Tables: - - Sales - - LocalDateTable_OrderDate (hidden, auto-generated) - - LocalDateTable_ShipDate (hidden, auto-generated) - - Products - - LocalDateTable_ReleaseDate (hidden, auto-generated) -``` - -**Result**: Multiple hidden tables inflate model size - -### After Fix - -``` -Tables: - - Sales - - Products - - DateTable (explicit, marked as date table) - -> Relationships to Sales[OrderDate], Sales[ShipDate], Products[ReleaseDate] -``` - -**Result**: Single efficient date table serves all date relationships - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Date Table Should Exist](xref:kb.bpa-date-table-exists) - Ensuring a proper date table is present - -## Learn More - -- [Disable Auto Date/Time in Power BI](https://learn.microsoft.com/power-bi/guidance/auto-date-time) -- [Create Date Tables](https://learn.microsoft.com/power-bi/guidance/model-date-tables) -- [Date Table Best Practices](https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/) diff --git a/content/kb/bpa-remove-unused-data-sources.md b/content/kb/bpa-remove-unused-data-sources.md deleted file mode 100644 index d5b82ed4..00000000 --- a/content/kb/bpa-remove-unused-data-sources.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -uid: kb.bpa-remove-unused-data-sources -title: Remove Unused Data Sources -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule for removing orphaned data sources to reduce model complexity and improve maintainability. ---- - -# Remove Unused Data Sources - -## Overview - -This best practice rule identifies data sources that are not referenced by any partitions or table expressions. Removing unused data sources reduces model complexity, improves maintainability, and prevents confusion. - -- Category: Maintenance -- Severity: Low (1) - -## Applies To - -- Provider Data Sources -- Structured Data Sources - -## Why This Matters - -Unused data sources create unnecessary overhead: - -- **Maintenance burden**: Credentials and connection strings must be maintained for unused connections -- **Security concerns**: Unnecessary connection strings may expose sensitive information -- **Model complexity**: Extra objects clutter the data source list -- **Confusion**: Developers may mistakenly use obsolete data sources -- **Deployment issues**: Unused data sources may reference systems that no longer exist -- **Documentation overhead**: Extra objects require explanation in model documentation - -Unused data sources typically result from: -- Refactoring partitions to use different sources -- Consolidating multiple sources into one -- Removing tables without cleaning up their data sources -- Testing alternative connection methods - -## When This Rule Triggers - -The rule triggers when a data source meets all these conditions: - -```csharp -UsedByPartitions.Count() == 0 -and not Model.Tables.Any(SourceExpression.Contains(OuterIt.Name)) -and not Model.AllPartitions.Any(Query.Contains(OuterIt.Name)) -``` - -In other words: -1. No partitions directly reference the data source -2. No table source expressions (M queries) reference the data source by name -3. No partition queries contain the data source name - -## How to Fix - -### Automatic Fix - -This rule includes an automatic fix that deletes the unused data source: - -```csharp -Delete() -``` - -To apply: -1. In the **Best Practice Analyzer** select flagged objects -3. Click **Apply Fix** - -### Manual Fix - -1. In **TOM Explorer**, expand the **Data Sources** node -2. Right-click the unused data source -3. Select **Delete** -4. Confirm the deletion - -### Before Deleting - -Verify the data source is truly unused: -- Check all partitions in all tables -- Search M expressions for references to the data source name -- Review custom expressions and calculated tables -- Ensure no documentation references the connection - -## Example - -### Before Fix - -``` -Data Sources: - - SQLServer_Production (Provider, used by Sales partition) - - SQLServer_Staging (Provider, NOT USED) ← Remove - - AzureSQL_Archive (Structured, NOT USED) ← Remove - - PowerQuery_Web (Structured, used by Product partition) -``` - -### After Fix - -``` -Data Sources: - - SQLServer_Production (Provider, used by Sales partition) - - PowerQuery_Web (Structured, used by Product partition) -``` - -**Result**: Simpler model with only necessary data sources - -## False Positives - -The rule may flag data sources that are: -- Referenced through dynamic M expressions using variables -- Used in commented-out partition queries -- Referenced by name in annotations or descriptions - -**Solution**: Manually verify before deleting; add comments or annotations if the data source should be kept for documentation purposes. - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. \ No newline at end of file diff --git a/content/kb/bpa-set-isavailableinmdx-false.md b/content/kb/bpa-set-isavailableinmdx-false.md deleted file mode 100644 index 80f4c327..00000000 --- a/content/kb/bpa-set-isavailableinmdx-false.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -uid: kb.bpa-set-isavailableinmdx-false -title: Set IsAvailableInMDX to False -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule to optimize performance by disabling MDX access for hidden columns that are not used in relationships or hierarchies. ---- - -# Set IsAvailableInMDX to False - -## Overview - -This best practice rule identifies hidden columns that have the `IsAvailableInMDX` property set to `true` but don't need to be accessible through MDX queries. Setting this property to `false` for unused hidden columns can improve query performance and reduce memory overhead. - -- Category: Performance -- Severity: Medium (2) - -## Applies To - -- Data Columns -- Calculated Columns -- Calculated Table Columns - -## Why This Matters - -When a column has `IsAvailableInMDX` set to `true`, the Analysis Services engine maintains additional metadata and structures to support MDX queries against that column. For hidden columns that aren't used in relationships, hierarchies, variations, calendars, or as sort-by columns, this overhead is unnecessary and can: - -- Increase memory consumption -- Slow down query processing -- Add complexity to the model metadata - -By explicitly setting `IsAvailableInMDX` to `false` for these columns, you optimize the model for DAX-only scenarios, which is the primary query language for Power BI and modern Analysis Services models. - -## When This Rule Triggers - -The rule triggers when all of the following conditions are met: - -1. The column has `IsAvailableInMDX = true` -2. The column is hidden (or its table is hidden) -3. The column is NOT used in any `SortBy` relationships -4. The column is NOT used in any hierarchies -5. The column is NOT used in any variations -6. The column is NOT used in any calendars -7. The column is NOT serving as a `SortByColumn` for another column - -## How to Fix - -### Automatic Fix - -This rule includes an automatic fix expression. When you apply the fix in the Best Practice Analyzer: - -```csharp -IsAvailableInMDX = false -``` -To apply: -1. In the **Best Practice Analyzer** select flagged objects -3. Click **Apply Fix** - -### Manual Fix - -1. In the **TOM Explorer**, locate the flagged column -2. In the **Properties** pane, find the `IsAvailableInMDX` property -3. Set the value to `false` -4. Save your changes - -## Example - -Consider a hidden calculated column used only for intermediate calculations: - -```dax -_TempCalculation = -CALCULATE( - SUM('Sales'[Amount]), - ALLEXCEPT('Sales', 'Sales'[ProductKey]) -) -``` - -If this column is: -- Hidden from client tools -- Not used in any hierarchies or relationships -- Not referenced by sort operations - -Then setting `IsAvailableInMDX = false` is recommended for optimal performance. - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Set IsAvailableInMDX to True When Necessary](xref:kb.bpa-set-isavailableinmdx-true-necessary) - The complementary rule ensuring columns that need MDX access have it enabled diff --git a/content/kb/bpa-set-isavailableinmdx-true-necessary.md b/content/kb/bpa-set-isavailableinmdx-true-necessary.md deleted file mode 100644 index 5c3062cc..00000000 --- a/content/kb/bpa-set-isavailableinmdx-true-necessary.md +++ /dev/null @@ -1,144 +0,0 @@ ---- -uid: kb.bpa-set-isavailableinmdx-true-necessary -title: Set IsAvailableInMDX to True When Necessary -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule preventing query errors by ensuring columns used in hierarchies and relationships have MDX availability enabled. ---- - -# Set IsAvailableInMDX to True When Necessary - -## Overview - -This best practice rule identifies columns that have `IsAvailableInMDX` set to `false` but are actually used in scenarios requiring MDX access. These columns must have MDX availability enabled to function correctly in hierarchies, relationships, and sort operations. - -- Category: Error Prevention -- Severity: High (3) - -## Applies To - -- Data Columns -- Calculated Columns -- Calculated Table Columns - -## Why This Matters - -When a column is used in certain model structures, the Analysis Services engine requires MDX access to that column. Disabling MDX access for columns that need it causes: - -- **Query failures**: Hierarchies and sort operations fail with errors -- **Broken visualizations**: Charts and tables using affected hierarchies display errors -- **Relationship problems**: MDX queries against relationships may fail -- **Calendar/variation errors**: Time intelligence features break -- **Unpredictable behavior**: Some queries work while others fail depending on client tool - -Columns need `IsAvailableInMDX = true` when they are: -- Used in hierarchies as levels -- Referenced as sort-by columns -- Used in variations (alternate hierarchies) -- Part of calendar definitions -- Serving as sort-by targets for other columns - -## When This Rule Triggers - -The rule triggers when a column has `IsAvailableInMDX = false` AND any of these conditions are true: - -```csharp -IsAvailableInMDX = false -and -( - UsedInSortBy.Any() - or - UsedInHierarchies.Any() - or - UsedInVariations.Any() - or - UsedInCalendars.Any() - or - SortByColumn != null -) -``` - -The rule checks these dependency collections: - -| Property | Description | Example Usage | -|----------|-------------|---------------| -| `UsedInHierarchies` | Hierarchies where column is a level | Product hierarchy levels | -| `UsedInSortBy` | Columns using this as sort key | Month names sorted by month number | -| `UsedInVariations` | Alternate hierarchies using column | Product variations | -| `UsedInCalendars` | Calendar metadata references | Date table calendar definitions | -| `SortByColumn` | Column sorts by another column | This column has a sort-by reference | - -## How to Fix - -### Automatic Fix - -This rule includes an automatic fix: - -```csharp -IsAvailableInMDX = true -``` - -To apply: -1. In the **Best Practice Analyzer** select flagged objects -3. Click **Apply Fix** - -### Manual Fix - -1. In **TOM Explorer**, locate the flagged column -2. In **Properties** pane, find `IsAvailableInMDX` -3. Set the value to `true` -4. Save and test affected hierarchies/sorts - -## Common Scenarios - -### Scenario 1: Hierarchy Level Column - -**Problem**: A column used as a hierarchy level has MDX disabled - -```dax -Hierarchy: Geography - Levels: - - Country - - State (IsAvailableInMDX = false) ← Problem - - City -``` - -**Error**: "The hierarchy 'Geography' cannot be used because one of its levels is not available in MDX." - -**Solution**: Set `State[IsAvailableInMDX] = true` - -### Scenario 2: Sort-By Column - -**Problem**: A column serving as a sort-by target has MDX disabled - -``` -Month Name column: - - SortByColumn = MonthNumber - - MonthNumber.IsAvailableInMDX = false ← Problem -``` - -**Error**: Months display in alphabetical order instead of calendar order - -**Solution**: Set `MonthNumber[IsAvailableInMDX] = true` - -### Scenario 3: Calendar Definition - -**Problem**: A date column used in calendar metadata has MDX disabled - -``` -DateTable: - - Calendar uses DateKey column - - DateKey.IsAvailableInMDX = false ← Problem -``` - -**Error**: Time intelligence functions fail - -**Solution**: Set `DateKey[IsAvailableInMDX] = true` - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Set IsAvailableInMDX to False](xref:kb.bpa-set-isavailableinmdx-false) - The complementary optimization rule diff --git a/content/kb/bpa-specify-application-name.md b/content/kb/bpa-specify-application-name.md deleted file mode 100644 index 50dbf82b..00000000 --- a/content/kb/bpa-specify-application-name.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -uid: kb.bpa-specify-application-name -title: Specify Application Name in Connection Strings -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule for including application name in SQL Server connection strings to enable monitoring and troubleshooting. ---- - -# Specify Application Name in Connection Strings - -## Overview - -This rule identifies SQL Server provider data sources that lack an Application Name parameter in their connection strings. Including the application name enables better monitoring and troubleshooting. - -- Category: Performance -- Severity: Low (1) - -## Applies To - -- Provider Data Sources - -## Why This Matters - -- **Query tracking**: DBAs can identify which application generated queries -- **Performance monitoring**: Isolate tabular model queries for analysis -- **Troubleshooting**: Quickly identify source of problem queries -- **Auditing**: Track data access by application - -## When This Rule Triggers - -This rule triggers when a data source meets both of these conditions: - -1. The connection string uses a SQL Server provider (contains `SQLNCLI`, `SQLOLEDB`, or `MSOLEDBSQL`) -2. The connection string does NOT include an `Application Name` parameter - -In other words, the rule identifies SQL Server connections that are missing the application name identifier. - -## How to Fix - -### Manual Fix - -Add Application Name to your connection string: - -``` -Provider=MSOLEDBSQL;Data Source=ServerName;Initial Catalog=DatabaseName;Application Name=Tabular Editor;Integrated Security=SSPI; -``` - -## Example - -### Before Fix - -``` -Provider=MSOLEDBSQL;Data Source=localhost;Initial Catalog=AdventureWorks; -``` - -### After Fix - -``` -Provider=MSOLEDBSQL;Data Source=localhost;Initial Catalog=AdventureWorks;Application Name=Sales Model; -``` - -Result: Queries now identifiable in SQL Server monitoring tools. - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Remove Unused Data Sources](xref:kb.bpa-remove-unused-data-sources) - Data source maintenance diff --git a/content/kb/bpa-translate-descriptions.md b/content/kb/bpa-translate-descriptions.md deleted file mode 100644 index 24a01fb4..00000000 --- a/content/kb/bpa-translate-descriptions.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -uid: kb.bpa-translate-descriptions -title: Translate Descriptions for All Cultures -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring object descriptions are translated for all defined cultures. ---- - -# Translate Descriptions for All Cultures - -## Overview - -This rule identifies objects with descriptions that lack translations for one or more cultures. - -- Category: Model Layout -- Severity: Low (1) - -## Applies To - -- Model -- Tables -- Measures -- Hierarchies -- Levels -- Perspectives -- Data Columns -- Calculated Columns -- Calculated Tables -- Calculated Table Columns - -## Why This Matters - -- **Incomplete localization**: Descriptions display in default language only -- **Inconsistent help text**: Users see mix of languages -- **User confusion**: Documentation appears incomplete -- **Professional appearance**: Missing translations reduce model quality - -## When This Rule Triggers - -```csharp -not string.IsNullOrEmpty(Description) -and Model.Cultures.Any(string.IsNullOrEmpty(outerIt.TranslatedDescriptions[it])) -``` -This rule triggers when an object meets both of these conditions: - -1. The object has a description (not empty) -2. At least one culture in the model is missing a translation for that description - -In other words, if you have descriptions and multiple cultures defined, all descriptions should be translated for all cultures. - - -## How to Fix - -### Manual Fix - -1. In **TOM Explorer**, select the object -2. In **Properties** pane, expand **Translated Descriptions** -3. Enter translation for each culture - -## Common Causes - -### Cause 1: New Descriptions Added - -Descriptions created without translations. - -### Cause 2: Culture Added Later - -Culture added after descriptions were written. - -### Cause 3: Incomplete Translation - -Translation process didn't cover descriptions. - -## Example - -### Before Fix - -``` -Measure: [Total Revenue] -Description (English): "Sum of all revenue" -Description (Spanish): (missing) -``` - -### After Fix - -``` -Measure: [Total Revenue] -Description (English): "Sum of all revenue" -Description (Spanish): "Suma de todos los ingresos" -``` - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Translate Visible Names](xref:kb.bpa-translate-visible-names) - Translating object names -- [Translate Display Folders](xref:kb.bpa-translate-display-folders) - Translating display folders diff --git a/content/kb/bpa-translate-display-folders.md b/content/kb/bpa-translate-display-folders.md deleted file mode 100644 index a8b7bb38..00000000 --- a/content/kb/bpa-translate-display-folders.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -uid: kb.bpa-translate-display-folders -title: Translate Display Folders for All Cultures -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring display folders are translated for all defined cultures. ---- - -# Translate Display Folders for All Cultures - -## Overview - -This rule identifies visible objects with display folders that lack translations for one or more cultures. - -- Category: Model Layout -- Severity: Low (1) - -## Applies To - -- Measures -- Hierarchies -- Data Columns -- Calculated Columns -- Calculated Table Columns - -## Why This Matters - -- **Incomplete localization**: Display folders show in default language only -- **Inconsistent navigation**: Partially translated folder structure -- **User confusion**: Organization appears incomplete -- **Professional appearance**: Missing translations reduce model quality - -## When This Rule Triggers - -This rule triggers when an object meets all three of these conditions: - -1. The object is **visible** to end users (not hidden) -2. The object has a **display folder** assigned (organizing it into a folder structure) -3. At least one culture in the model is **missing a translation** for that display folder - -In plain language: visible objects that are organized in display folders should have those folder names translated for all cultures in your model. - -```csharp -IsVisible -and not string.IsNullOrEmpty(DisplayFolder) -and Model.Cultures.Any(string.IsNullOrEmpty(outerIt.TranslatedDisplayFolders[it])) -``` - -## How to Fix - -### Automatic Fix - -```csharp -TranslatedDisplayFolders.Reset() -``` - -Resets translations to use the default display folder. - -### Manual Fix - -1. Select object in **TOM Explorer** -2. Expand **Translated Display Folders** in properties -3. Enter translation for each culture - -## Common Causes - -### Cause 1: New Display Folders Added - -Display folders created without translations. - -### Cause 2: Culture Added Later - -Culture added after display folders were defined. - -### Cause 3: Incomplete Translation - -Translation workflow didn't cover display folders. - -## Example - -### Before Fix - -``` -Measure: [Total Sales] -Display Folder (English): "Sales Metrics" -Display Folder (French): (missing) -``` - -### After Fix - -``` -Measure: [Total Sales] -Display Folder (English): "Sales Metrics" -Display Folder (French): "Métriques de Vente" -``` - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Translate Visible Names](xref:kb.bpa-translate-visible-names) - Translating object names -- [Translate Descriptions](xref:kb.bpa-translate-descriptions) - Translating descriptions diff --git a/content/kb/bpa-translate-hierarchy-levels.md b/content/kb/bpa-translate-hierarchy-levels.md deleted file mode 100644 index 63265dc2..00000000 --- a/content/kb/bpa-translate-hierarchy-levels.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -uid: kb.bpa-translate-hierarchy-levels -title: Translate Hierarchy Level Names for All Cultures -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring hierarchy level names are translated for all defined cultures. ---- - -# Translate Hierarchy Level Names for All Cultures - -## Overview - -This rule identifies hierarchy levels in visible hierarchies that lack name translations for one or more cultures. - -- Category: Model Layout -- Severity: Low (1) - -## Applies To - -- Levels (within hierarchies) - -## Why This Matters - -- **Incomplete localization**: Level names display in default language only -- **Inconsistent experience**: Partially translated hierarchies -- **User confusion**: Navigation appears incomplete -- **Professional appearance**: Missing translations reduce quality - -## When This Rule Triggers - -This rule triggers when a hierarchy level meets both of these conditions: - -1. The hierarchy containing the level is **visible** to end users -2. At least one culture in the model is **missing a translation** for the level name - -That is if you have visible hierarchies with multiple cultures, all the level names within those hierarchies should be translated for each culture. - -```csharp -Hierarchy.IsVisible -and Model.Cultures.Any(string.IsNullOrEmpty(outerIt.TranslatedNames[it])) -``` - -## How to Fix - -### Manual Fix - -1. In **TOM Explorer**, select the level -2. In **Properties** pane, expand **Translated Names** -3. Enter translation for each culture - -## Common Causes - -### Cause 1: New Levels Added - -Levels created without translations. - -### Cause 2: Culture Added Later - -Culture added after hierarchy was created. - -### Cause 3: Incomplete Translation - -Translation process didn't cover all hierarchy levels. - -## Example - -### Before Fix - -``` -Hierarchy: Geography - Level: Country - English: "Country" - Spanish: (missing) -``` - -### After Fix - -``` -Hierarchy: Geography - Level: Country - English: "Country" - Spanish: "País" -``` - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Translate Visible Names](xref:kb.bpa-translate-visible-names) - Translating object names -- [Translate Perspectives](xref:kb.bpa-translate-perspectives) - Translating perspective names diff --git a/content/kb/bpa-translate-perspectives.md b/content/kb/bpa-translate-perspectives.md deleted file mode 100644 index 8a14a954..00000000 --- a/content/kb/bpa-translate-perspectives.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -uid: kb.bpa-translate-perspectives -title: Translate Perspective Names for All Cultures -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring perspective names are translated for all defined cultures. ---- - -# Translate Perspective Names for All Cultures - -## Overview - -This rule identifies model perspectives that lack name translations for one or more cultures. - -- Category: Model Layout -- Severity: Low (1) - -## Applies To - -- Model -- Perspectives - -## Why This Matters - -- **Incomplete localization**: Perspectives display in default language only -- **Inconsistent experience**: Mix of translated and untranslated perspective names -- **User confusion**: Expected language support not available -- **Professional appearance**: Incomplete translations reduce model quality - -## When This Rule Triggers - -This rule triggers when a perspective has: - -- At least one culture in the model that is **missing a translation** for the perspective name - -```csharp -Model.Cultures.Any(string.IsNullOrEmpty(outerIt.TranslatedNames[it])) -``` - -## How to Fix - -### Manual Fix - -1. In **TOM Explorer**, select the perspective -2. In **Properties** pane, expand **Translated Names** -3. Enter translation for each culture - -## Common Causes - -### Cause 1: New Perspectives Added - -Perspectives created without translations. - -### Cause 2: Culture Added Later - -Culture added after perspectives were defined. - -### Cause 3: Incomplete Translation - -Translation workflow didn't cover perspectives. - -## Example - -### Before Fix - -``` -Perspective: "Sales Analysis" -English: "Sales Analysis" -German: (missing) -``` - -### After Fix - -``` -Perspective: "Sales Analysis" -English: "Sales Analysis" -German: "Vertriebsanalyse" -``` - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Translate Visible Names](xref:kb.bpa-translate-visible-names) - Translating object names -- [Translate Descriptions](xref:kb.bpa-translate-descriptions) - Translating descriptions diff --git a/content/kb/bpa-translate-visible-names.md b/content/kb/bpa-translate-visible-names.md deleted file mode 100644 index db2d51f6..00000000 --- a/content/kb/bpa-translate-visible-names.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -uid: kb.bpa-translate-visible-names -title: Translate Visible Object Names for All Cultures -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring visible object names are translated for all defined cultures. ---- - -# Translate Visible Object Names for All Cultures - -## Overview - -This rule identifies visible objects whose names lack translations for one or more cultures defined in the model. - -- Category: Model Layout -- Severity: Low (1) - -## Applies To - -- Tables -- Measures -- Hierarchies -- Data Columns -- Calculated Columns -- Calculated Tables -- Calculated Table Columns - -## Why This Matters - -- **Incomplete localization**: Users in different cultures see untranslated names -- **Inconsistent experience**: Mix of translated and untranslated content -- **User confusion**: Expected language support not provided -- **Professional appearance**: Incomplete translations appear unpolished - -## When This Rule Triggers - -This rule triggers when an object meets both of these conditions: - -1. The object is **visible** to end users (not hidden) -2. At least one culture in the model is **missing a translation** for the object name - -In other words visible objects with multiple cultures defined should have their names translated for each culture. - -```csharp -IsVisible -and Model.Cultures.Any(string.IsNullOrEmpty(outerIt.TranslatedNames[it])) -``` - -## How to Fix - -### Manual Fix - -1. In **TOM Explorer**, select the object -2. In **Properties** pane, expand **Translated Names** -3. Enter translation for each culture -4. Save changes - -## Common Causes - -### Cause 1: New Objects Added - -New objects created without translations. - -### Cause 2: Culture Added Later - -Culture added to model after objects were created. - -### Cause 3: Incomplete Translation Process - -Translation workflow didn't cover all objects. - -## Example - -### Before Fix - -``` -Measure: [Total Sales] -English: "Total Sales" -Spanish: (missing) -French: (missing) -``` - -### After Fix - -``` -Measure: [Total Sales] -English: "Total Sales" -Spanish: "Total de Ventas" -French: "Total des Ventes" -``` - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Translate Perspectives](xref:kb.bpa-translate-perspectives) - Translating perspective names -- [Translate Descriptions](xref:kb.bpa-translate-descriptions) - Translating descriptions diff --git a/content/kb/bpa-trim-object-names.md b/content/kb/bpa-trim-object-names.md deleted file mode 100644 index 9318b2e1..00000000 --- a/content/kb/bpa-trim-object-names.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -uid: kb.bpa-trim-object-names -title: Trim Leading and Trailing Spaces from Object Names -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule for removing leading and trailing spaces from object names to prevent confusion and referencing issues. ---- - -# Trim Leading and Trailing Spaces from Object Names - -## Overview - -This best practice rule identifies objects whose names contain leading or trailing spaces. These unnecessary spaces cause DAX referencing issues, display problems, and general confusion. - -- Category: **Naming Conventions** -- Severity: Low (1) - -## Applies To - -- Model -- Tables -- Measures -- Hierarchies -- Levels -- Perspectives -- Partitions -- Provider Data Sources -- Data Columns -- Calculated Columns -- Calculated Tables -- Calculated Table Columns -- Structured Data Sources -- Named Expressions -- Model Roles -- Calculation Groups -- Calculation Items - -## Why This Matters - -- **DAX syntax problems**: Extra spaces require careful bracket notation -- **Display inconsistency**: Objects appear misaligned in field lists -- **Search difficulties**: Users may not find objects when searching -- **Maintenance confusion**: Developers may create duplicates not noticing spaces - -## When This Rule Triggers - -The rule triggers when an object name starts or ends with a space: - -```csharp -Name.StartsWith(" ") or Name.EndsWith(" ") -``` - -## How to Fix - -### Manual Fix - -1. In **TOM Explorer**, locate the object -2. Right-click and select **Rename** (or press F2) -3. Remove leading/trailing spaces -4. Press Enter to confirm - -## Common Causes - -### Cause 1: Accidental Spacebar Presses - -Accidental spacebar presses during naming. - -### Cause 2: Copy/Paste from External Sources - -Copy/paste from documents with formatting. - -### Cause 3: Dublicating objects - -When dublicating objects the name with have an added " copy" post-fixed. It is easy to miss deleting the space before "copy" - -## Example - -### Before Fix - -``` -Measures: - - Total Sales - - Total Sales (with spaces - appears different!) -``` - -DAX: `[ Total Sales]` - Which one? - -### After Fix - -``` -Measures: - - Total Sales (single consistent measure) -``` - -DAX: `[Total Sales]` - Unambiguous - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -## Related Rules - -- [Avoid Invalid Characters in Names](xref:kb.bpa-avoid-invalid-characters-names) - Related naming hygiene rule diff --git a/content/kb/bpa-visible-objects-no-description.md b/content/kb/bpa-visible-objects-no-description.md deleted file mode 100644 index 7685d2b2..00000000 --- a/content/kb/bpa-visible-objects-no-description.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -uid: kb.bpa-visible-objects-no-description -title: Visible Objects Should Have Descriptions -author: Morten Lønskov -updated: 2026-01-09 -description: Best practice rule ensuring visible model objects have descriptions to improve discoverability and user experience. ---- - -# Visible Objects Should Have Descriptions - -## Overview - -This best practice rule identifies visible tables, columns, measures, calculation groups, and user-defined functions that lack descriptions. Adding descriptions improves model usability, documentation quality, and user experience. - -- Category: **Maintenance** - -- Severity: Low (1) - -## Applies To - -- Tables -- Calculated Tables -- Data Columns -- Calculated Columns -- Calculated Table Columns -- Measures -- Calculation Groups -- User-Defined Functions (Compatibility Level 1702+) - -## Why This Matters - -Descriptions provide critical context for model users: - -- **Improved discoverability**: Users understand field purpose before using them -- **Better self-service BI**: Business users can work independently with clear guidance -- **Reduced support burden**: Fewer questions about field definitions -- **Enhanced tooltips**: Power BI and Excel show descriptions in hover tooltips -- **Documentation foundation**: Descriptions form the basis for automated documentation -- **Governance and compliance**: Descriptions can include data lineage and business definitions -- **Useage by AI**: AI Agents can better infer the purpose of an object if it has a description. -Without descriptions, users guess at field meanings, leading to incorrect analysis and increased support requests. - -## When This Rule Triggers - -The rule triggers when an object is **visible** AND has an empty or whitespace-only description: - -```csharp -string.IsNullOrWhitespace(Description) -and -IsHidden == false -``` - -**Note**: Hidden objects are excluded because they are not meant for end-user consumption. - -## How to Fix - -### Manual Fix - -1. In **TOM Explorer**, select the object -2. In **Properties** pane, locate the **Description** field -3. Enter a clear, concise description -4. Save changes - -## Common Causes - -### Cause 1: Missing Documentation During Development - -Objects created without adding descriptions. - -### Cause 2: Rapid Prototyping - -Models built quickly without proper documentation. - -### Cause 3: Legacy Models - -Older models created before description standards were established. - -## Example - -### Before Fix - -``` -Measure: [Total Revenue] -Description: (empty) -``` - -**User experience**: Tooltip shows no information, users must guess measure purpose. - -### After Fix - -``` -Measure: [Total Revenue] -Description: "Total revenue excluding taxes and discounts. Calculated as SUM(Sales[UnitPrice] * Sales[Quantity]). Use for financial reporting." -``` - -**User experience**: Clear tooltip helps users understand and correctly use the measure. - -## Compatibility Level - -This rule applies to models with compatibility level **1200** and higher. - -User-Defined Function descriptions are validated at compatibility level **1702** and higher. - -## Related Rules - -- [Avoid Invalid Characters in Descriptions](xref:kb.bpa-avoid-invalid-characters-descriptions) - Ensuring description quality From 0dbe43b2f1ab4b8d72d945d03dd8724966fd181f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20L=C3=B8nskov?= Date: Fri, 9 Jan 2026 20:48:17 +0100 Subject: [PATCH 05/14] comment out placeholder links --- content/features/built-in-bpa-rules.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/content/features/built-in-bpa-rules.md b/content/features/built-in-bpa-rules.md index 311d7811..8e71913d 100644 --- a/content/features/built-in-bpa-rules.md +++ b/content/features/built-in-bpa-rules.md @@ -43,9 +43,9 @@ The 27 built-in rules cover four areas: - **Maintenance**: Descriptions, calculation groups, unused objects ### Global and Per-Rule Control - + You can enable or disable built-in rules globally or individually. Settings persist across sessions and work independently from your custom rules. To manage built-in rules: @@ -59,15 +59,16 @@ To manage built-in rules: Built-in BPA Rules require Enterprise Edition. If you're using Desktop or Business Edition, you can still use custom BPA rules but won't see the built-in rules. ### First-Run Notification - + The first time you open a model after upgrading to a version with built-in rules, you'll see a notification explaining the feature with a link to preferences. This notification only appears once. ### Knowledge Base Integration + Every built-in rule links to a knowledge base article through the `KnowledgeBaseArticle` property. Each article explains what the rule checks, why it matters, and how to fix violations. To view documentation, select a rule in the Best Practice Analyzer window. @@ -77,8 +78,9 @@ To view documentation, select a rule in the Best Practice Analyzer window. Built-in rules can't be edited, cloned, or deleted. This ensures all users have the same rule definitions. You can disable individual rules, but the rule definitions themselves remain unchanged. + ### ID Collision Prevention Built-in rules use reserved ID prefixes. When you create a custom rule, Tabular Editor validates that your ID doesn't conflict with built-in rules and shows an error if it does. @@ -87,6 +89,7 @@ Built-in rules use reserved ID prefixes. When you create a custom rule, Tabular The initial release includes the following rules: + ## Working with Built-in and Custom Rules From 09e9b803971a3fe727e13add722bce3b6844947c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20L=C3=B8nskov?= Date: Mon, 12 Jan 2026 15:34:34 +0100 Subject: [PATCH 06/14] Application Language Docs --- .../chaning-language-preferences.png | Bin 0 -> 141071 bytes .../chaning-language-restart-pop-up.png | Bin 0 -> 41494 bytes .../chaning-language-windows-ui.png | Bin 0 -> 106771 bytes content/references/Application Language.md | 101 ++++++++++++++++++ 4 files changed, 101 insertions(+) create mode 100644 content/assets/images/user-interface/chaning-language-preferences.png create mode 100644 content/assets/images/user-interface/chaning-language-restart-pop-up.png create mode 100644 content/assets/images/user-interface/chaning-language-windows-ui.png create mode 100644 content/references/Application Language.md diff --git a/content/assets/images/user-interface/chaning-language-preferences.png b/content/assets/images/user-interface/chaning-language-preferences.png new file mode 100644 index 0000000000000000000000000000000000000000..272ecf0c352b47318d1e7dbdb090986e41c368a5 GIT binary patch literal 141071 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

Xx0A*?R@s}tOkRx8q7yO%a` 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 O!g+(s`p5R9lm7?nRR44U literal 0 HcmV?d00001 diff --git a/content/assets/images/user-interface/chaning-language-windows-ui.png b/content/assets/images/user-interface/chaning-language-windows-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..01db3ea36f2a5a58782b5a7f443598edd3628c88 GIT binary patch literal 106771 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
jWR|=Wb>vtn+(_Dzv-emz zz$tSFY4{EN;ck0q=^2wH_4F%W73!x?$SzhT7~`kNLo`4>p^Ytrbt#FO(v~xZ6HUE! zAlJD?uk~l8_r`l#Vic*GVhiVVg3HYamb3)UufS$8j|h~O9%t9T7IlA&S zTHf5CK$EIE46i2|EYjgP)bA@`Q{@+{xw(GEd~W zwIG?-h1!Rhm!{ z(AZzouLP;4!$$lS#TO(CrKRvTi`3?inRc)4-@*#lR(+pmw)Z-yB#|OG z@3DxiJW(4w7KlYdb{(UBRA~1n7RSsze`ieY(JST`5-8FPq*Cf}sDshbW5};TDZG2` zA|k4!BASeuO`G2x(RvN!zTuPldjx3HM0yk^@%ZP-c)qP0U5L*m%6Zu}FX~jupOi~O z>gtfOQ8Of>M5KzDl7Bg{3MgQkDWN^N^Pr!oHRk5`*FIc(rX37_vAw5YUOAT%${;K&M8YK9M8#`*A@zURD zzH!_a!~ps=(U%cf4A9LWH0*A=5Ff@7#`n1t@#U|z5_^)Y?Wtu4O<^+d4crJ+;QT=W zAWZ70$i`I$h|5#{nll(Rn8Do*<42dZJ%;2}QXO=00RvFDb`6N{z<1-?9E>;GS2-1X z5|tU1T=It?OX3}HydorQ5M0KYE`DSoD&!ixiUmOUkmuMYH{sdQQ&6vl zUFZhn>JTd-T$l*U*eS4!@-g`J4!%Y8brhMnh`u3n0P_0{C8iZ7G=nl=3PQdt$XVW7 zGgQjKCJ-e4Deh_`9bl)ZgWC|2_W?Rs|GX8>mlcHoJ2|145c?_>anU^VFaj73FlILpSBPQ%VF+2ZtSW5Rl^Lj#;pl}^o`Jr;d`x}ibHGmXP@sw!*tc^f z4*~nF0IK1j>O~`-!VSNF{f;((tcti9_y~+JBEWN-2Lk?LPTx4`xQ0xaI@!nXX6$YG zNGB!HkKLgo_mbTZKNUSJkraO@mV1gOZqTmBMJwv6RT({b79U`RQ37qOh zsfAIJG1kwo(RJJ%8oyLLt(l$oyhBp;A4cXJEA$OG_zTZrm}JcGcy`)-wmt52nXy#< zQ%ifM%#U>m>{<_on|A^Cy;s%LxxNg@Ql|BnsTZ;{l@F;4OPB-#CUXvzC~Z`&os$ng_JH$QL!{71r&Im?xwFw@(% zB{T=m4IkCbZSUk`ck(nDbs1G2!YLMxto;T`(*RH}q3tZeyVld8#MQ2d=mw;5t7S6> z=Ze;TGBxhtk;=61a30?&58!u7Fs}JS$s@c&88(sf50D?=wXN~gq%W#i+$mSy7g>0_Cm=$h&HPZN{&5-yu@3v4F zh+X|-56PHR_~Es2DvDi^kYg?y`a_<_T^PG*bi>Io43`%kn-cRQpH};jRyPK;k+8aMETn66()Tkm~C>Im8%4vF4WdMZjqgVwa-)ukH zbN;%~o5_RH^+l8+^}~-0Ud?Eroq{?QqyVrSjx$O(KVh|2?I}dA-`!|*uc;0rnhuY+ zj>u?$mHJ|_ty21b4@lD+nLdIAqy>N}uzp7_H~d%8Z<83k)ht$X+t`nv?snp-`p}JF zn@GQ_A*d0H9;03hU&HP6NZp<`iC%fvL!oz*pItZ;r;tB#vaAK0S{Zk@%znHS9y>Ry z;PF@+8EvtpqPs<7(zeHG-%9g7hv#svik*)0sls|Gz0-)#>dW=D$1jXo(@)vzyLh*D zO7P_0-21VYjEVToTY9K)c)H~-i&r^jy7iXC(zsT?(+!Ucw{sQ+98Ky%*22-8$Kw*a z7NZGl!Q0J_>w$Xu>4pCzs=ZuEui0y~8??oEOOsVVq+#eMTE$Xz*22%_pRdc@k3=zQ z#^0mJi+HNJ�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 literal 0 HcmV?d00001 diff --git a/content/references/Application Language.md b/content/references/Application Language.md new file mode 100644 index 00000000..9568e42c --- /dev/null +++ b/content/references/Application Language.md @@ -0,0 +1,101 @@ +--- +uid: references-application-language +title: Application Language +author: Morten Lønskov +updated: 2026-01-12 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + full: true + - edition: Business + full: true + - edition: Enterprise + full: true +description: Change the display language for Tabular Editor 3's user interface. +--- + +# Application Language + +Tabular Editor 3 supports multiple UI languages. You can switch between them at any time. + +> [!NOTE] +Tabular Editor 3 is still not fully localized. Specifically we have so far not localized the individual TOM properties. + +## Supported Languages + +| Language | Status | +|----------|--------| +| English | Fully supported | +| Spanish | Preview | +| Chinese | Preview | +| French | Beta | +| German | Beta | +| Japanese | Beta | + +> [!NOTE] +> **Preview** languages have core UI elements translated but may have incomplete coverage. **Beta** languages are experimental and may have significant gaps or inconsistencies. Report issues on [GitHub](https://github.com/TabularEditor/TabularEditor3/issues). + +### Preview Languages +The languages under Beta support means that they have been verified by an human translator, but that Tabular Editor 3 may still not be fully localized. Specifically we have so far not localized the individual TOM properties. + +### Beta Languages +Beta languages are have been translated exclusively through AI and as not been verified by human translators. We plan to bring beta languages into Preview in Q2 2026. + +## Changing the Language + +There are two ways to change the application language: + +### Via Window Menu + +1. Click **Window** > **Language** +2. Select your desired language +3. Click **OK** when prompted to restart +4. Restart Tabular Editor 3 manually + +[Change Language via Window Menu](~/content/assets/images/user-interface/chaning-language-windows-ui.png) + +### Via Preferences + +1. Click **Tools** > **Preferences** +2. Navigate to **UI** section +3. Select your desired language from the **Language** dropdown +4. Click **OK** when prompted to restart +5. Restart Tabular Editor 3 manually + +[Change Language via Window Menu](~/content/assets/images/user-interface/chaning-language-preferences.png) + +## Restart Requirement + +**You must restart Tabular Editor 3** for language changes to take effect. The application prompts you to restart but does not restart automatically. Save your work before changing the language. + +[Change Language via Window Menu](~/content/assets/images/user-interface/chaning-language-restart-pop-up.png) + +## Installation Language + +During installation, the installer prompts you to select a language (English, Spanish, or Chinese). This sets your initial language preference, and Tabular Editor 3 displays in that language on first launch. + +The installer writes your selection to the preferences file in your LocalAppData folder. You can change this later using either method above. + +## Language Persistence + +Your language preference is stored in `UiPreferences.json` in your user profile. The setting persists across application updates and restarts. + +## Providing Feedback + +### Translation Issues + +If you find incorrect translations or missing text: + +- Open an issue on [GitHub](https://github.com/TabularEditor/TabularEditor3/issues) +- Include the language, the incorrect text, and where it appears in the UI +- Suggest the correct translation if possible + +## See Also + +- [Preferences](xref:preferences-index) +- [User Interface Overview](xref:ui-overview) From c769ac23e05e09e3a0d953b9a5498e071cf2ba4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peer=20Gr=C3=B8nnerup?= <52330973+gronnerup@users.noreply.github.com> Date: Mon, 12 Jan 2026 15:58:12 +0100 Subject: [PATCH 07/14] Save with supporting files (#242) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit documentation for the "Save with supporting files" feature in Tabular Editor 3, which enables saving semantic models with additional metadata files required for Microsoft Fabric Git integration. Authored-by: Peer Grønnerup --- .../common/SaveWithSupportingFilesDialog.png | Bin 0 -> 10019 bytes .../assets/images/common/WorkspaceGitSync.png | Bin 0 -> 26207 bytes content/features/save-to-folder.md | 2 - .../features/save-with-supporting-files.md | 109 ++++++++++++++++++ content/features/toc.md | 1 + 5 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 content/assets/images/common/SaveWithSupportingFilesDialog.png create mode 100644 content/assets/images/common/WorkspaceGitSync.png create mode 100644 content/features/save-with-supporting-files.md diff --git a/content/assets/images/common/SaveWithSupportingFilesDialog.png b/content/assets/images/common/SaveWithSupportingFilesDialog.png new file mode 100644 index 0000000000000000000000000000000000000000..dd2b380a1d4383bae16f11b8b6811483c7bb9541 GIT binary patch literal 10019 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 literal 0 HcmV?d00001 diff --git a/content/assets/images/common/WorkspaceGitSync.png b/content/assets/images/common/WorkspaceGitSync.png new file mode 100644 index 0000000000000000000000000000000000000000..79488d7f334fd23b58cbc4aa632aa3ea54228cd5 GIT binary patch literal 26207 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 Ilv(Ki0Gg*RPyhe` literal 0 HcmV?d00001 diff --git a/content/features/save-to-folder.md b/content/features/save-to-folder.md index 30ee426d..cb0ff125 100644 --- a/content/features/save-to-folder.md +++ b/content/features/save-to-folder.md @@ -34,8 +34,6 @@ To save your model to folder, follow these steps: ## Serialization settings The serialization settings defines how the model objects are split into separate files. In these settings you can also define if you wish to use JSON or TMDL formats. -> [!NOTE] ->JSON is the default format as TMDL is currently in preview. ### [Tabular Editor 2 Preferences](#tab/TE2Preferences) diff --git a/content/features/save-with-supporting-files.md b/content/features/save-with-supporting-files.md new file mode 100644 index 00000000..68c32139 --- /dev/null +++ b/content/features/save-with-supporting-files.md @@ -0,0 +1,109 @@ +--- +uid: save-with-supporting-files +title: Save with supporting files +author: Peer Grønnerup +updated: 2026-01-12 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + editions: + - edition: Desktop + none: true + - edition: Business + full: true + - edition: Enterprise + full: true +--- +# Save with supporting files + +Save with supporting files is a feature that enables saving of semantic models with additional supporting files that follow the source code format required for Git Integration in Microsoft Fabric. This feature ensures that your Tabular Editor models are fully compatible with Fabric's Git integration capabilities, allowing seamless version control and deployment workflows. + +When you save a semantic model with supporting files, Tabular Editor creates a folder structure that includes all necessary metadata files required by Microsoft Fabric's Git integration. This allows you to use Fabric Git integration to synchronize your semantic models between Fabric workspaces and Git repositories. + +> [!NOTE] +> Saving with supporting files is only available when saving to .bim (TMSL) or when Save to Folder is set to TMDL as serialization mode. + +## File structure and model properties + +Semantic models saved with supporting files are stored in a folder with the **.SemanticModel** suffix. This suffix is required by Microsoft Fabric to recognize the folder as a semantic model item. If the parent folder does not have the .SemanticModel suffix, you will be prompted with a confirmation dialog to rename the folder. + +> [!IMPORTANT] +> Model properties such as **name** and **description** are maintained through the **Name** and **Description** properties of the Database object in the TOM Explorer. These properties are automatically synchronized to the .platform metadata file. The folder name itself has no impact on the semantic model properties when deployed to Microsoft Fabric. + +### Files included + +Every saved model includes these core files: +- **.platform** - Metadata about the item including its type, display name, and description. Also contains a logicalId property, an automatically generated cross-workspace identifier. +- **definition.pbism** - Overall definition and core settings of the semantic model. + +The complete folder structure depends on your serialization format: + +| Format | Model storage | +|--------|------------------| +| **TMDL** | `\definition` folder containing TMDL files with the model metadata | +| **TMSL (.bim)** | `model.bim` file (automatically saved with a fixed filename) | + +## How to save with supporting files + +To save your model with supporting files: + +1. Create a new or open an existing semantic model in Tabular Editor 3 +2. Ensure your serialization mode is set to either TMDL or that you're saving as a .bim file + - Go to **Tools > Preferences > File Formats** to configure serialization settings +3. Click on **File > Save As** or **File > Save to Folder** +4. Choose a folder where you want to save your model + - Check the checkbox **Save with supporting files** + ![Save with supporting files dialog](~/content/assets/images/common/SaveWithSupportingFilesDialog.png) +5. Click **Save** + - If the folder name doesn't end with .SemanticModel, you'll be prompted to confirm the folder renaming + +Tabular Editor will create the folder structure with all necessary files in the format compatible with Microsoft Fabric Git integration. + +> [!IMPORTANT] +> The model culture must be present when synchronizing the model from Git to Microsoft Fabric. If the culture is not set, Fabric will apply its default culture, which can result in uncommitted changes appearing after the initial synchronization. To prevent this, Tabular Editor automatically sets the model culture to **en-US** when saving with supporting files. + +## Git Integration in Microsoft Fabric + +The **Save with supporting files** feature is designed to work seamlessly with Microsoft Fabric's Git integration capabilities. + +> [!NOTE] +> Git Integration is available on workspaces assigned to: +> - Microsoft Fabric F-SKU capacity +> - Power BI Premium capacity +> - Power BI Premium Per User (PPU) + +### Workflow with Fabric Git integration + +1. **Save your model** using the Save with supporting files option in Tabular Editor 3 +2. **Commit the changes** to your Git repository +3. **Connect your Fabric workspace** to the Git repository +4. **Synchronize** your model between Fabric and Git using the **Update all** button in the workspace source control pane. + ![Synchronize workspace with Git](~/content/assets/images/common/WorkspaceGitSync.png) + +For more information about working with Git integration in Fabric, see the following resources: +- [Microsoft Fabric Git integration documentation](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/intro-to-git-integration?tabs=azure-devops) +- [Tabular Editor and Fabric Git Integration blog post](https://tabulareditor.com/blog/tabular-editor-and-fabric-git-integration) + +## Comparing serialization formats + +When using Save with supporting files, you can choose between two serialization formats: + +### TMDL (Tabular Model Definition Language) +- Human-readable text format +- Easier to review changes in Git diffs +- Better for code reviews and collaboration +- Learn more: [TMDL documentation](tmdl.md) + +### TMSL/JSON (.bim) +- JSON-based format +- Single file representation +- Compatible with older tools and workflows + +Both formats are supported by Microsoft Fabric Git integration, and the choice depends on your team's preferences and workflow requirements. + +## See also + +- [Save to folder](save-to-folder.md) +- [TMDL - Tabular Model Definition Language](tmdl.md) diff --git a/content/features/toc.md b/content/features/toc.md index 0f9f4d80..b9bedcc8 100644 --- a/content/features/toc.md +++ b/content/features/toc.md @@ -55,6 +55,7 @@ ## @workspace-mode ## @tmdl ## @save-to-folder +## @save-with-supporting-files # Command Line and Integration ## @command-line-options \ No newline at end of file From 659f40890683ff021f9d2c93d41a9c8e08810da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peer=20Gr=C3=B8nnerup?= <52330973+gronnerup@users.noreply.github.com> Date: Mon, 12 Jan 2026 16:04:24 +0100 Subject: [PATCH 08/14] Added customdata section for impersonation (#243) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit added customdata section for impersonation Co-authored-by: Peer Grønnerup --- .../images/impersonation-customdata.png | Bin 0 -> 6062 bytes .../assets/images/impersonation-dropdown.png | Bin 12241 -> 17482 bytes .../assets/images/select-impersonation.png | Bin 22654 -> 37203 bytes .../getting-started/refresh-preview-query.md | 19 +++++++++++++++++- 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 content/assets/images/impersonation-customdata.png diff --git a/content/assets/images/impersonation-customdata.png b/content/assets/images/impersonation-customdata.png new file mode 100644 index 0000000000000000000000000000000000000000..52956eb29179d46605ea9c81f5d6a29628b9793b GIT binary patch literal 6062 zcmbVQWmKC>w@z?(D^73?R$79)yS8X>iUdfC6)%P2QmidS3&l(DV#SM7L5daE;>Gm_ z&N<(A*1i93)_U{q%zmD2vu0*bqI9)Y2=Qp~0001?nyR8c0010B$$U6isPFalmz4kj zUYWCkg07l^0<*3c%)!~!9sp2{N=?T$C7+}U+12z{#UXi#kcWLY190a?3NR?LvjOFC zSx6MOdKd93FiA;uO%Rld?X`fapOw~7(n@Q&2fd)2vKUM{9#}|1Wz+7n-N4;|xz~S2 z`aZ2?J#*X%-~=S5PRc_eeAu!P%qkSCzvU95;_{c2fuvkONnId9jMJ=_fRGU5<>2J! zfr|^kn>wGtLip9i?v2s%r)F0ofG$@@)Qqb(R>ud@z)sR=FM#YAC}@^ayu*1%(Nr&- z;$@}Xn^%r!v!a~Cg0wQ^~~IC+8i)06!L84<`ct>neg{+IGhHg zu1vU=`^F#3BwRRW^dw$eTvK@kRBK}qnzzT?=pOIwE?A6h1g`Oq6Y_=a7N;#g@bgkDtstqwR7|(htTb?DaTGsCS^Fs8vwm6s9OC-!du)-s{8 z7tIO$!1*$Cfarx^wzO9dmk+?Hdg-Oor)ufLL(Jy^q+GJ3XCNmu3u}zQko%R`!)*+{ z=)ojtAXz@sh|xD_!XY?ifYNp>T@3X$?@D~bu&a6IBFr!CYF`Pa+Sok^XV7Nn8GQ-Z ztZ|w#mgc20!kKZflUR7(qdCi+Cvw{n3Nf4X(&2@71Gv?7}E3Lvdfn%QResS-7ms2rF9sMurh;fv}Z@9piqY0 zAf6^^Aw8T1js>TL6N`lVC3M?3n<|u{j}z0yXmwX~xVP_gi`jr}o>e~oiAzuPAxxzE z)4aTgt2t2xPCd2{fe&yZhOQ&9Yhb>1Z`_wDfZj3$+?KwSusE{xY`^nVEsS0+dtMQT z#RHcYcN!-Wr#yT*oTYfoF(E$M9PTM@fv4Nzsl$O9`Z~uxPccM~~N7qWD;q z!T5n5v4K@VkZy}XpuB=Xr-?!lQe~;CCxb)lhlPkywdSAZ)gmgR0i&3YMuku1exoLP z`2B|;yz3_GOH-RuK~px{=u;L`uOJbSBnT!X4x)pIY9yFtn-!k*p7oUCZ((j3^FQ)W zIK(|CxT3h4J!d#)A|N2lBNV$QN*7DRLsv!chwwMyMO?44yYeID`^r9X$R2_v(WRE2 zS&qu6cWTjUseNt+KSzJ1z#1oN99bN4m*m?!-n6sa&Y3<_{q!@D5)a21zEz9)j&$4P~q@SD1lY#14 z$BVZ3C)9TJeHF7ir7h1}dRyCrM&(9W+H|LSeK3xy}A6CF!;g`#HyD3YE z?;ARfB5R^+`NOO+1l0Rf439Mcu*QM9leYCzicX6f zi-^Bjek=HvOcRrFU#Q;3$o34$@7d5$)X?ckuF;&n^;nn!Mr}nA99+Ecy}95)TCsqJ zmAAXNz4)`UVhl}rM8~&q@D_4BMata?0q^^-hb5qdeU7ic_t}mxu*Uq z^{olf+Qsrs4PHxhbxC0D@g`v@_PF2#y(xaVmict6wvWX^WA0JwZ#xdgyMmm7Vq1h zw+3(6`H}omj#ndf^^p3kv+m1uR<|iPqqUS_Hwhg{E8n0^`Rf-^F�s>B(TiIxs9a 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 z zrehLUm-$ax$C5>oVF1digdA7z;5+&qjm&U04|tNhXPn|b#HWAxR7r6VFRnbr_n6*0 zXjG)cCwR0mC0Ps^?~kA3SU!s;*SGgdXG|M}1%AT59R)eI@h>@+@E!xm6|Om78$K2p zy*E4|)2YGXkwz)sJwr*?!7yx1mp_rb`XMDG39U0|J98)-HyO~$FpaHQ)QgC)_}ean zz2!l(jVA+_p;>&4hKV$90V!Wo@(l77#!1-w1~z`3+_VDhFf-TgfA|(>$D+dGu{3G% z%G1;xjao{n*F7T%@s977Ad_}q3pO);XPZn;o6x3zQm*=>C&ZHQs5g(ggEk+M3;NIy zK3!|DoDv^>-spUMN@zL2GL~#yWFr`gIh-H5{At5@HyF>68c$uVpIMxf@}Yf7{Fc9CZIQ<}yd7CWS#^=c40Alg?uT9!d|=!v_$ zwXl1geuJ^Yb>6r#mQYjF)E@RB}=DTY5o162$|L z!_GkQ>rimJrNm(=Jbw=h{WRyWL#A(^7V$Y?)HX9Q68w${ zklG;dDM0p4j#WdeQEt`lpuI>ilTW&XkCTtTp$gU1pL9Hv#ybRyx(pI48+wWU!rdx>L0@GsNu%gJUpe(_a1^ikBC^k-yr(;mhy>eT|B>PFeqjkgz<*JI zE0n^421zL(HTC!=?j2d9-fg3}{a>sML$bk)6i!=xmGnnIf7Ler26#`NAbL1COkfFy#y^Wfw>1i8J?@QkLzX$YFG~jldn*X!l3QtR5Gs47; zCF9&?!*5nwK}$TcdK)Hw-tx?SYS!JTAkbpY76(&7gQvp2dJ?hwYIe>FonQf3Ai~b* z`TXUZH#|#&{)cMus=TSK@eTPD6S^;N;j0r_r>-vPS+?d`4yUYCY>67M?efC*e?+j2 zPwxkxm#h2sSZ)e3x+6Y|>(`6_iQU$;!+mg{xU{PnUqt?SMl?y~2KKC|+2z_DxB z#QqrgTrZv{WAcvWgrLoue*UYV4)?V_hVof$eUoqJJh553S20B%?Com}4Hp-CT}u$T g2@acvt;!$%$1S<5TAlIe7-*xTr>mdKI;Vst0GtnGe*gdg literal 12241 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 V<+Imd@-ci04K-cWvPaJ%{}=A&qbC3W diff --git a/content/assets/images/select-impersonation.png b/content/assets/images/select-impersonation.png index 8a3331fe6ebb48cd8d8e661336804ca6ab897af6..c7d064da8f2f637d7db7dbfbae4b80e946cc5368 100644 GIT binary patch literal 37203 zcmdqJbx>Sg*FA_kK|*lX;7$j3cL?t8?(Xgo+#y(y;O+!>cXx-7;4;la^1Sc&{bs7> z-&k&%K5z!D(~ zoeXTjRY0Pk$f-Df5bCM}sa~km)kCS&Mc~XGHCN2u-anL~X1rv&*?H%*Sghl0Vi-4kh1m%(gb!4N^7(hToga{p3>==G{ z07~qA zrD0lv$=xao#TWxN@B8;CdtsFvAg-wCv=UIhhJm+-O&NxyNP|dvlAy`-e4mi?<|8Ae z=(=fPaEKTM0*kJgQD5RI?rhlK7qBm$7*dW`7>QhHKU(T>cCx=oHssm!Ct% zkDIu@3kOvchmqmyci9H=#wm_#q;V7u(TjO^*gwqT6nx-f$VRiXQBk=2n;wgG&8*Be zL9ZCI6gtFk$+h5RH;x&3zsEQdFjc=)JM&0#uu+h8%QhpO+}*o@?Rk!!V47KJW+mTv zN_}O~PT3~PluW^=irO!Dka${b+MKFl9~frmW&7M5Qeycs!4Bn3h&I8GTM3Hb%XNyY ztv&XOn2R}xTKIA23ogfdb~7#x$xcQcv4;BEdT`zQm9cho8-kGx(a_-R8>2K3U0y%F zht?Qc(2X*15S9nGY##f*k1imlHQS-WO*K5fenAF!qI~2-xg$0O)6#_)@nx-q9_z$& z1@}P)Bj%$~4W3B@WAcS511ar-l7o=wbgqQ|?EkbuSPa?UB|d?$)JbNGxB|Aif$xey zsteN!vAw~a5=aOG9Y;j<70itPK9Re1Y$9?I}9RU{shhebELm`C2<)jPA578xN$eAEkrAtOmNMHXCv|&oJuF_ z1!E&@JH)#Gc^B#}8J8c}M=UhNf+!|IM!BqFsTEcs49NYSbDje|v3+2J$s~ej5N_99$-tOm zI07eyQi$t-=>X;M!2yXm&@HA{-%M4o415j=CqlZnqT9Obtd~unUf-iKU;!5QU6DU? zZ_|c=t)=F>3YZ3H7X%m3`3RhDuOGu3br*B41fICszVw~R+c8_?+a8xax8nY|{Mj2q zFhsVn)UeAiAu#2E%Yj7Qr1Dv&Vva;2$ckY&p&x!gZ7J#VUY18jMn*^GkLY8ykGQA8 zrM_pHH-a+ci9-`3CzVy;5|>(%;1FmQa~E@$Bu_vbINSMT|IUrNDcUpj@ynxp5|str zaQyC2MM8PJRs3n9moSmsFG{H)CJCN`4Eu2VbS84qSmxNPF9yTqiKX$J)bkVoBH6@- zc%-=T*mYu`&(Fb+p<6EH{GhkexTWU{K=D2i0 z8?hR>7-iX4+2{Y{-W{iM{9u#Fl88q&N+tVw@*DZL2ql%`GsU)V9EF9&du4s{)XJPC z*J60e0C^-uodR#UHbpN1LB$>w!Qv{>?drZ1a_MO;W~CabtJb|@bfsaXi0?{;PW;Ef z%^v$&G);Y=aloIIuu8hhwCcQS$4%Qt*f#6_ z+dbwN>^;I0+SBSi-aP>V0%9H_8x{*rBqkM3HNq9*G2%nifQYq-nh2|iOH@@K!Zyox zTi+^qWmu+oxOn2AmEyw8+83MV`C1bqoHoRbcdLTCsyC{^z?KB(5Iw^gxK?WwA$t=ADP-!7EZm{qx1S(p#k zteQM@Mw??8HVjs*o|U!*v<C`!P4Pz$MF2i zw&T>HtO@fz%YObCNdyAMB|4ru%R%0Dw=??&v0Xt6dE@f|mEE+nLCb6-x5K>CelvkH zfiX6-VrqZNcP<)kA$$`q9#;;xip$o6pr1c~Q(YhZRKAG*Rq@OFD1STQMDd*Y%woS~ z=q8V#kG|6;M2A2!pjU6Us_zN!asE~ZmJl)!`ZE+4JPRxuWIa?D|1&>lzENHVb7xgJe#A7Elatx#e}qKJFrPUXK8 z-xfC)BTZ^g7EH!tMx?MZHs~uE+*Q%qH8vJE_Sn6bY)w8kNC`N0PX^MTAUh*^5XU8|W_}vG+&S56-D!3hZp`Px(5AHcG)Pv$ zVn(`1=4SHKG+aZ%Z3uHcL1)k>^C-EQ_qU+B*iu|=$*+T7eF&Z+0)1+J{)E!DWQxqp z^fjWUR5Yj()fv^!Mo|%9LLoJ|Ck2bN?BQYoGn8zoJ{0%^PNU^RPmRRpy(L_CT>RSm z5($avD)06mc3x`X+QMtTdDUGXA(leVG0fwt!k0^HF1O3LXl*v<{%$|E03ZXtTHV%l zR_D}ito9v5l?P!59m7L+Ts>8^i`9#Lo@p3#n|?l@T)*l#U$U%m8{f0(UD-+}OCsAP z)2X+uUwQ003JE7DtS7fRT{7;lT6aEi?z(>9TydUB8cN+Vq@s4i8E)`exW_!p&I`C0&<7R?qwM!g|OF6%JJ8E!i z(pM00qx+OSG|pcpLDd9bO=@8>FY#CJz6#76h0wDG!Oypd@5d98|uRoiB}Yw~U5E7}JQ=}hNL6Ysi*-%`n5 zD$`aW%e1S}tL5Ag?qfI2zqOmUo%WZs=2kUs{Lg={#I(NT(6`I}^nK9X(Yx=NkFh6^ z=Fwh{Ii&X{zWMrCazCB69_eH8WkGTb(G}5=2j1t}HJ17I=grA_2f_y)3SN4GIqV9Y zDtt4X-&m*KRXe>ClAFVWRe8KSFU8(Qzm9%opZPdP_eUZDJy(`{&2IV7GRe8+dYx>b z43}5-rT0(4OVPxbx@^pB4jxe-{4C8&$eV(#(#!cd8_@OpBBsK^KuZ*l!Vi2za1>;q z7ke-uJE|bXt02h9BiFOcV583%DMT09uJt!rC>|h3bKuB+rpWdhr|*10yU~6G6Ju|_ z)5XCl8T;MI{B&P?K=>3-3wel}^BjkHA)9)-`=W5eOB-wal>UUlpa)sl@clC?5WXrK zsfrs*OM_4WuVFwyL(D)RfLEZvFE;QC0sZmF$#bID$MW<(Iqi;m#YGwOc1%%6$19)j= zf7=ldKX2nSay9!;Pu329rUjfJ{p%BY zMmh%if7=FD<$Ar#A!p`lWT_@(W(8axU>`gz3~XHgl>a}T{HMqNs;T;4HQ8DJyXJpA z`QJ5_9E|J*ZLEM@I`aHyXZ}?F?}vXXa?!ue{J&P>ZJGbM3tVR&I4=5s_lyV5RXx-k z1cVPnT!{a(E9glktmfz0<$fQ-UW7t~9I&*ltWfy8u<+29Sn9^SLP~Y>xl(;0;OtKfr%Wers8ZBIg)cnqG|~e(Bn@|M#r%gqx&{{KLq$Y!=sKQIVKgyo^DRRNUsS zbRx5I@)wo(X3|VY^0z_9lgOngQcFk|9xw?9&zpVAAbQAh+ryF%slZ>gC~4*2ABAjW z-iCHrm|BdzN-`|4SAe`9)0|U{{aH}Mqjt)5+Q_4(I4vO&Q}R0w_ifZ@QNBbb$}F^Q zV{<7yuO-@>r3RA?zt+^_pS6-fkBxI3BqR(SIIXROi9@^0J-R;LGU9W)lj1Ar9n!FK zmqa?!?n;_aYQ-l^IgKybH@i*Mk@kGA+g515ZmRSYpF?9;G$i%4T{K%8J>`&AQLl z<$1@8#9|t=i)nKRxgvEQwZQ<2gner=Y6O~GN8Mb2)I zKaU8N32;$(+#s<&YiycEhv4UOOtfV`JE$9PW_nbQk8`}Lv7Q)9*l{wtt*g)A;a0#B zm!TplIL;!&n^FVlG}F=O#OE`=t#XPCU-tAgE$yI~$*QM!`6({qpg5C4yW`wk5pB=* z5{aG`yIHdaRet99wn8&$ku1hdUA#}+&K+yaF}!;wfW8yyjH^H%;IcxM2#18v^)V-8 z_z)j5P}QH5XuQk>@TJPW9>Pc9! zcM=@O(}cU1HD~}*ib2fy?ZbGIL_;Sh@x%BGo{-^T(|t)huV&Y*>s*WU9Tn1LQnjoK z>fztVPHS9(_O&Z+lKH>|;SGBVGEsaxORp_Ugm#`(SqV{$77g8X&385t?8#{AFdVf0 zhLtq4(-SQCm>Kr((JLZkFrM2ZPM$lTiYN<)18x!UyuCi%Bi5a9yJ~Vi4M5tY{LgJN z$<8lcnoF!{JFQI$?eC)r{_7aWlM&vjT2WY+1q);XR7mkWudpHiHYb#02y6R7b*Db) zhf~^Bd^Jb+Q99eANIv7w5eGqWbq5pvT}94$UId6@`L7Q7eKTCd}xCa!PMcEO%-9v&*Qf#s#*w6#ee?r*hFzCqMjTmY}dgN|Sw zrsJ9ds5q>O7>P|7+@ICxM1{500XQ9fK3Q%U*S(4+;EkTw@zHuTP3F%fHU^d)+(%b# zmD|@!0o%R)9gu!Hn6QjF4;2FX=@~a6{SZjG7X|pTwKy1 z;tY!f+KikPl#O%L^XVca{X|#l&z$>MHB&Tg2WlISwYN@{Yuu-C*P?D{v_`;Wec3)~|Hur(1knTMVcDr?>!xqF^os8n?g_t& zCsQu9>*Ixi%423V(*8>$Xw0)B!_cnmqfL*tp|P>P=>=Hp+-PE=$@J~h9*M3aiDz=` z$j`I9s{<|##6^q_TkPlJNzg%@4iSR zS54u2cqrH$cy#s3d0xDRpZK5m>BU-{z>&}@R2y~MQfd@z^Cmv>Pf{SOs0Te#T`|CM6*OkB-)gb8`T} zmcB&|P%k;2oKhxC^L!?sqf>i_<&gIt8tKPW);S>^+q>>rL02OQw8s`&KU(@kH@F+i z0JSxi$<20FDlx0l>1?Re?cQht3I3fVZd*gBF|Rg?;E`279_ify)M{6@Inj~s@+I&p z_CRKkYpYv?&A8)Brvb4`j@_Yi)w&((s>k~#8{OR`@LNMq6~41bNF7Um+G&s9oq&{< zJ?JtRtRS+QFPI;^VC{6q(1r;!`IMgeAS#(oxE-U%emN|}Y1vb3keqYwJoLIu;Wc8p4-wKAqM)dU-9S5OW@2cL+Pv!Bbbe3t+dv(P&YjNpd2nGDQ zM40mz9x;cu_wME;(^k?*Z_i}F=J{f90nF|02)7i>wIY0tPYWU(-%KpM+QZCPOSy@U z^qov5x82DMx4d%SkO=(~%>1}^7q=mCzfq1z$g|kx@znPig@3GcVu0^8c0*KDlrdbJ zMuRokyPRU4Im3M|Pe~)&b2c#fYx`Szt)7eqcSF?%v-gdvrFCp(QxGzvM>X)ji$8xG z?pp)pl7%}TJA<`gyQ3-IiQP|1{2A_^w0ObT(yoh`8l~Kh|ReO6B6`9e3ZfWEewW~{JKy1m^rM=^O z#l%KOhKk)0Q*kWQKPCiSmT%e4!bT=xu2Ztd4+HXuSr~;bye!rZvBPMW8@o_SB`-RG zS&>LEeJ;xG>dfHw_BJ%c!;9jh=C^?Jhy)B-zrr~oo(I>Jh;9vpRvJ$ zaT{{A4vawi4hA%^`y@?xFl_9Rtw}tO(CWd{qU09E<`(O~1&pC0dcgyFDovF?-j{1b zu@5WGoQGaiCjTr+Vy_onm|+Qw#s%x@!lz<$$K~D?WHHijZMAp)bpJaFW!NL?1$p`r zcXIwafpI%Q;8z~6#o#*1yI&t3y1Nj&>E$t7HrSX5csdVK;WsF))0i!@t+g0yM7Q@f zJjMBfRE%ZbyR@|&)aJH(00N;)i$tXT_kbr<%CuOn1?S+^ z^ve|t(LY-GeidGsLPtM+G*skI_s>Qp`h)0rXxEy?b&Z-$k=N6=--2mtYr8(*?Mntm zoT&qDTKfDyydR+GqHnr!U*Z_Tgey~|-aY1r9Tj3vB;|ztzF_$WW+%0iQ zr@!NIxk`hqi%b)EgA(_!#h`;Gxw z_V9S0zx=*c8R70frsJPE83}eCq`54ne9kg25BbDqB=c`1;YQ3ya{hA$#}NM2M89Iv z_b@3ttp)72#HVb4Tzgcax4S?iH1l0F(X*VA3(jdRp6SpsTp|8H&!i}TQ0Gunb?_DG z5K?ZN{12S*@mn_Qpj&cT*w?84z#D9^o!0DN{6w-p9mqieW1M7A$8Yg}%5+X613_Bd z{(8ZuQ#K#$na@doC+!Wk(jn2V{7|NY-KP`tO-oFnFjK@1IK+P@E3|P4i#FSjjqAqS zM)~#cOhHgSA_9Aq44^tB{o7;sYmda53etZn=CHt^4Z2;iyZx`x`_Rs~Nk$w9D`{4b z5?lR6P&Da$@{d-zV;VRg*ln$_(J1~l%LEaAq!R(`t50a^&z1x0a3O-)ugMC=455O) zjr1cpa6H2x97^JU$881^d*zMo{_jNju#gG&wV)v7#R?s)&W_lvO`tKlyd_maH znS5oG{H2&f3HVu9TvVfRHOKt( zHu-I#GPGPJ;Whw2z`aClsH);0O=FEqO%3yUxX!g&uCHupm`Bh3^tZf(Y-gFpn&-ES zn8p^zLxoN|i<`iJ0Ptp)^XQ!&LoWAUVw}_fIzqiwi4)28cwX7t_s8{TquIvYv$GKo zakjtwVdImC6c(2(u-Zh*314?)2Zf>Zs@?e%J0ml**Xfk&{jdJp(Dd(KMFjg$-}W4dD=+4y%unWUQ1-8clIO4cwl?ypPW3;9ngUJq<(Y*yw>Jaogu z2S{v~2eU9hPygElgJ`xuP36|fo>m|%oGdNV2?xMTU>;fj>)IS!0_C3uf>0Tb(*WyA z))p2POcL#JwA9qYIi3x6U5!_JLYCaCc+Y1tkUMnvQKCPp>jvuMx2=ueLCHQLZ$H9u z9D+|eR6=WA4hB|iT=v9hUAheMWV~!caox*yeN5)P>_GJBt-Hwy~*+@pAQ}n@QxCB zu0h@*BJ{*hFetEJ@vL%}LGCPkN&W{BTF&|1X$oIO!ysn9!_c6fY$ssKAbh#P_`2Hc z2Mwn}qsgE%GORoOk{gj1TR!A>a^J+Fwv7-%j#4-rNR@+wNCXGy$qY$}T+fUHMJhxzHF4Xu z02m?pCfh>6R2?~4r8`%E%gf~9%bp~q#x@cJNqS{bO-tN*8ZQDn_`IB^%mJ<-kNSWg ztpx2_K^o~8M4JGzSSMI!<8l$(&$y)?%*xUSk+G1BX=y-Q*VRqy@gqHmbr?f;K$E<| zjhT3zfOx1ZCM8Itu0@|&a`~~xIMVV#ryVQ!3w4LVkcmze6R)n=(}QZ$uCIE-3Ko3( z0_j}Sh84YM%^vgu+o?ZU%^F`6`l`@79_bI*oUUINoOY)LFy79st_+y5(;9v21=!ho zhmHNiZN9(GRYe zXl-Q4LGxU-{Ir8fLGHAqrq;kd0rV6PW$1Kt*WT~#9AkzLP7XcaF)FsEE?4=SC~()R z&?hG+7wpcU0^u=OWI6=biEKZo_u_|nVA)CT=^uyb=u&Ujpn`d`J0N|Bx-a=%{R+{1 ze=aae-_>V5vF>s@T?fW+~KOD`#dtC*br0N-q(ugCJi9iR8RH5FRSbSEwL9WQWpWmhCoa*XSmZ3mY4V^`g~^2Be}B_+&PEz>0c3Q=g^ z$`Vh*9H2wc;d)7o&1z0chQ(7OZ*$NhSh=y?>lvnsAia3NPNv67w!x~Fe2BCeWdXFGR)E%T+^gqjMn zLxhG3&#WW=n`1C0*PTPO80WspxD~16_PEY58P7@slpfZna$3`E@9jZZSZr@gmz3r2 z+alOK;8Rx=D;h?hqA)sqB<@2Bn(}KqAnV5_3E=gkSY}by@A}_h%Kmr5Uu5PtTdq%X zIH|}ZG@T4Lhs*52;@#f6PFmDW&0N$K)T`;=laqlL?d@eiXhQOIf3}K@&sD9v=}B3K z{HY3F;PIhrvzO!IcnxeIbEnd32{efjG@8IkIw3V}T3 zxFhpPm2h@ubKsz|i&8K79L`yO=P>}tlp~_EEOw3~?zdTM4RhEZ3yX5L5?PBRiDd|R!7&2@!TXwzbO{IYxH~M-U|y0+mK0zem2E?VSx1kPnRleNuxc>@oUqq>OuLI49~C~vVYTp!>8$0k)$`DS9jRuG>2JKtzmJG}p^@-6e(nx0bolUcadGLIn5a}8#{d3XPr}c4F|%Q(v8}C5c)xs= z90vzyrcCX9YHI32gAKt_y%oHNhldqP_!~QhoVx)QRmCOunkxZt8#BFev{q*Tm zj>pZJn2bzczGzHsjs3RT0(RR6HFx`uVSiC`!TbLKgt|L_q5yOrWF#f0Nrp0RhRWrR z2CKe&EsrQ7c`hSsm{4#JU;4)YG4O)caGWnU*yNi{7m_!`5C3FJWc*tAERU5gZS_X} zzXlCXqv_{V4Rv*_T{Lwt>jO!NN((!;tdWNR0?_<)-Q$=L+kHQhZev-Yt!AahSa&R> zj8vdnGeCgpJA(p9`EI@?b1} zJa=6q9eL*xz_V(@-lJ!&@7Z~^^0v*c(cO-sTTq#}g(}vp+^Qih@z$oIe7!$tm;BrDJ5F?Hj5Qu^ zXPhaV|03A{FKQ_axuwd&Xm78TUp1+&^8VA#;CodywGSn2tx~x}%#iG(0?3?ORv8Nn zNQ#9%k-Nw9Ti|nhQmlwi1F3P zVyDv0ZZx1@yV$$cWw{9rC?aWic7Yiq&~-auk$1M;NWQqb@`tbK+D-&8>NiIeTU@8) ziv7Ilw>YO2*c$~kW!aQOFfY&rASW{z%$biwg}=99VUn@@@kO(x$yrfAL_q+w1%BG& zQ4Wr{;RMCTQ>rAu@Q(rFf*3h!)p6Z~Tq_Bl}sKQ9lfW9oaKSv zq1`x?0nkvZwCmxsLql9>Zrr-7r43cx^(6`b7c%iW?4)eGYoqFOQ%kktMmU~>35n72 z-zR)-)Ode;cOn02*ugTU-l--wF|&uxH@)Lb_}7#{Jb>n~YWeIAY zo8gUm<1=muPtG`V!=;B4E->uYt7AD9uZEb9oe;RsqXgiR($cJpZdaq`o&g%U{B+yi zayGG5TwDXg@rwsy)t<*IC(Y97on$w8;tAxo=E~W-n&2lNVl%#uRI$!gMEA{|*KhQ| ze%E&#K%J5Q;0Z~fVm5lrhFXEY;CnyW_H;{k1({`KPQBn!KxfW^SX z%Nd{#8F^S&m!NJX#r%f}@NI%kaq3b32LNf^avdqv=|9=oszskl0Oe(yxZ0nWKTJ@^xgI1#q zGY0CmkH)+jzx0UQ(j3$*8@A;^-G{tcuOWEQn&{SSk2ChmD07eN6aMimZdM!R>7Xt^ zy&V<+08rJC+}77B+0trZt?#$2&+P~Q5HQS35E_&uK5 znj|EZy!J{Apl54g*uYZPN`oMGlgBb`1rCKdgjoMk?jzoUq>+6YBh&5s`n6F&H`crI zW@tha5r*J*QKCJ@c$;&1g(8jLb$CZSd11u8?yC_k6p`6j5pzjG_;l};zTrk@{Uk~| zN~0(Z8MHy{q~P~jJQ2}qymu0uUg3rcK4BC8-bWPFmiBP0q?=Zh013U23^pYeZ6Q+x)JOy9J=4qT=K zY_?XK9JUM$qHq8rb>_1|c%D(|vZYrj4W*@}w;3*Ri8z#=+ru_90$b@tFV*s|_Le!W2&*SZ9_X-j}bIX<%0YMiajdLHJRz0+T zn$3UcUmqw1F*M?q3~87R>#(7S{y{PGUvC=gtLBoPoU{5h{Ey?~DVS^p&0 zsHprTSgo|>Im1r==B|ls_eQWT^7EkW*FLmCQ>Q#7{Uj*z*Q0O<<0~M|c}l^A?)>gF zO+|$Xd|tOtm9v`ki=YT>iy{HYNmmkr)$UpGXNpU|@nL>LuPM6S0~2$yKOhbH6{O9i z&Y-VxOIzO_9AN8F$0^EG=o&-H<4gq)m{#G|KFIDTSu@dUHjL-rR*R z%oid*CLA|j??+64^$MSe2o#WrB|zZ^1_GN02cgYQ$9WQoR7Rme-~J#GVmWWvFJV{h zF6a0%SzNFb6cn|Vi>N?K6$6&r^#UZBUZ?N*>0xto6O@y)<)>sc%^&1VEGGgn0#p_B zpPru5a@d?YFE1?Q7>}k6jEwwf_j;J9x6)WxUbcvk`!q?11obm3tgYto?1VQma)W%>&y#9@Elv}`nl5R6pdvM3= zvN0_&9}t83mVnN2gh`oo(`j)=92*QlROz0)W@^`5o1UONH4H(Tp3n|mDm^(*P^-CfwACy9o#vR=Zr<$c4tCq$&Re>pFHcP4Z+ zOgcA8*s=1az>yJ`?N5Q3N2JY<;O~USyEgkPp?2OCQuNtb?}Tq&t~xIR4K+=U@16p9evtamCsFA3$0MlobAnTrNcpl>~VQqRg20ks;s*h`*G}{{AZxT_*X?+-|ovYUnDtH#{ zpNr~O5j2{hE4QaH7kgQ3^O$H(Z{`&eabH?1N#JbfwMXZn%eqUP`tW88zQ6(Zz=lWK z+Q_KDY{2K`sVGbmrJb$<&oxy*&=}4>Er`(h$MUBtJ^Vtc7tG=L@4e6?l;6|1(JfGA zNEURS^keg($Msf+K2#cwJ^q@bNA524Y#7P*4>Woa3~!}od%0jQmFZjwGl-q&1NZjq zblZkGgQn}f+^%@dOc4Z;FSOp#%F{{ePFXr)bGb0*&6NkkE7DZ5ZUOqC^P5C*x$v5P zcL>@(gA5xKg;fWDcNhXbYTN3uxwif!7m;#7aT>*EMiYO2c0Fwq9%y9;i6Zw5<1a@W zG12ahR4Zi!P|37T4t%OYQM5nZTe^az)o9WRh+0b2mW4(KakAR1>!@$`m4y~ z6?H=WQ8jdueOmuKAK-zn{0O!W%&~Rx-dxp{9Kp{{bhml6vp8r24@JjCH+-Yd3(svZ z3;u0-{q@;u`uDa+L`{W_nCMHB4tPYis0m6J^#(Nuz>Mi7?n>_@%S3k_R{Qvf2ItvK zL&rg5lZ;D;%EibK{bGuSZp*T4SB2zzAyLtYS=e#z7#(^|qp|dInuSKaoKN9UmRg#Z zo=fOLW%ix1U7&e2?T#C0E05YAwp%Ml>hXh}ECPG_>AD<{eOAh0A3bkBX6yp9Tg%OA z14Cna7@ea!H^lCTj4LnnIP=zzLHH-ed;m?3cAVm~z#h)It;&=^ns!^^mC9s5Oq_$X{V6@#Zfp zm~WP+R4jHDna!+NO>w2rY=rlrzOmyfx{KASj^>a46`^}eeQW#%8VTg5K==uZ-NGus zm1krjf5P;2UA-?EZ3Z}*UR-{@XsNu9;?t?GK3NwF;^f34d@POAYS8Ygwi*G*#Q;nv z_*Ue{0C|^n=fGbAy#t4ShlZpDGi->yEQ|bu7HU5%RX|Ir{0!*BqZD9Czgk9o?)D?9dxh zsvP-W%8$JY*CG<(Ik4PiKT5sMN$gU26+D)i1XD1iFJG@F+SVe@g<}4HCR$3V{ppScouc5UxW)MA%s)~8l!G@eJ18`^hRW7 zx1{V8+qj$36N;?<$7>sjbS|ua4AMfJq!aWxj!aC%{@QjfDM3B97_O9bPEXgdlipWd zQdj8+;Gz-H}7lf(Xx{yuDgb)@<1w=lQ=foB^E zw%&6DHZOTe{azkuVx1+n9V3?LEd($3!@)m&Qwd&mcgz-`; z1HqO6f|8sJWY?wd;UBKW<-Eo`M#@Gp_b4&e{km@gDbe62>4$dhFKx(Q=0dF5fdNNB zdx>IEbfZ~RM}G$I{AeZ{(&Hq|eSgFuYj7pp>U@RR?|_I#6vWH^iIUcsj?Bbe+JAUruy8(e$IXMeyA=U8}%8U<{{ z?uvkgH=Er-giAt*k@6oP`vuIeCZwIVUirDWu3fYxynKR>-+m3MQ_g-6C3X$36YrCc z3pe+^mc6C;D;v2R0^%c*!Fg_yoZ_z>r!zI{AHYtN3R3Q-VSk=0T zwZMS^F`>R6gsfUdl_?zCaA0ZB8xlkcvI*r<++hPzVH{Mo$DiZZ_na-&mHKi6bD<*HJYH~LkI8?Cj0n#1JE&Hp)`&*-2cTze zEY{-VYqkX9K_^`L^t3rfd|CKiD60c~?-{ITb%JoTf?k8UPP)Qh#M8E!TgmjXpE<4F zG+B0X{_+;KOdlyBD)ZqDJmp=VnpP%D8c&DQvC(mTxYuy2mA2v8Q8CQ z;(=cKYX<;RlZqB*?ow${$al{fl<*fW(FL;sSKI>(-@Xo>sifJ z^dRaa(YAnFSrNjEQRK%AciHK_(+K0uvQ`Xd{G~8K&i9w3c8v8eY030(RP?$Ez)0Dk zVXNibS$}%wECs(^YGi9y7A7;U@hZ01z&;z@)nE+nmz~QGjVtA?WA+3VCo|Ex3XPDp z@4x&;n%;9PXLr{dW^&X8Ic$$EmKyp<6YZBnBa)%`Nyz#Zj#59#b~1siNOkzRGo=2xQed~^aUx6t8Jg$u^^aQf2Z`=v<1`E zzurj@n+y%i?`Gd z+ZYt6hzo?&ZhR^-cANazj|niJ6@aupwOPN0dW{j2*Ks#f?I|}@73j83hT_n z;_L36d*jJ2#j@GK#`+v#!R%|T#o$VUtAVDZSm-rG%^RaTm)_+Zl3rA*_>M=hCDSLOXVWs5VXX+*5-yp&oQspYv|gf_5RUrAB8+x>6}inP}_GX`W$)OVGVJ~ z+4pFeej>*T20NSsLi6@FI(4~kLj!mc&3bgP8MrX>lyy-)|JlJquEe@Ty>I#QJAHj2 zf%Yg90Mb42vn>_*4NI%N)59F=r;oV5Sd*t-!O#u_!pm;)j&AYYhX_7+7Xa>3`a@(x zY;-J&*F;4o5-=5qTzy5=9nc?!h>e2^>ZU;Bxe&~%qoX4gy`Y|x>#4<|Z>$4xa}K`l z3sTQci!2VnHy;8twQ4DP8%#+vuKMKg>aXDk&+pTW6v>Klh9|IFO{$sn-xB)xoGdjl zXP2Gz-qlbZtkjiSGrh@|b$i)Rc0JxhbnL8?jE;>3OB8fJJ>2Aerh3&nL`EW5a^wnV zF31UpLck$U+)6;kYZtWA~5MEvx!2`~y=hQVdWgP$)4@O&t* z`j#O|Q_j7M3ji8G34f56ESK-vZ5NMM>pW*s6~~mK~_w*xc9v2@>!F z`b>Vhh79PU%*E4qT6VAFaF8#3^iXb zAZcxN^DbVIornY|=ultrEMDs|F)#oJe8)FE-BOh~Az}WfA)y?u_YAdm4PUL;jt4Xb zZV_#w+&@gV$aeP?LUH16Ej!`VW>vDbxpmKywqDwOIfRsoA9>YvG`{$Qn^z_~Zft4^ zg+N!$YtvEB^i5Uuljc(g#x{9Rd;o*O0%~u7NjQf7bx!8!)*1$YD|##WNPnpHZ&o~j z!h33U(tqT@-?H0i)d#!3T21uWAgeEa<6Zn@-wi?IV?sQ#&Yioev946v^*pYBld_tg(^ce`_-q!LC_6?3;ZxDKM~%V-7>^`6n^6m&YER zCjZ2$$bQ|hDWh&W(vm?M)967OUq$ste?nq1xj^5uB$7xD_?M5MOBz!$Qr)9&wSV@h zaeG<;*p^=NS-!i|oT;?wF@cHEjQK7&WAFe}YE(H7+7ATsGTL46(VX7B+tS}A)Z`9S zDHQ7JSVmnqDoLkUoU?(!+5Ezh+~(}ig^`|u*f|Tnu6ve7P)Tg~8PtQR0{zSJj~!3& z0NwS-xe3IaLc_N=jRBZH%V?0YMkLZO@)w5`=Hk*8S&46Q{p8N@$i0k)rb`g{M|e8D z`YlX^yE&qoDLHu}Wfl43Vj|H#;lK-uii zvWkNOg3bFy>c$YMokj$-X{VP>f~pCM`9XR)mD(xotA>KhL#S+K47`wTt z6L#1x96F>_AB+dWp@R8*WhSW^&DV9|;{h{XwxV;m>^pE)OJVfDVya#cV*@-o@6kAf z`QmvbABXjv81!>h#$B8}HBHaZ07$6e>CR43aM8oR6-5&X(guZi3eiCQm6`5ngTF~e zquguD#cA~e4|%Kf81tOhdq?cPS9besUynkYF8IoNz%MlHtMUZ7U1KJ3rd8r&Foy%c zwmsvF;4Wg^l&fMDsSTSgKWFq@zd zwXuS(5$|3=-$a8GD!m7ya`q4i+{*(URM)_t1Z_x7n>25IUTjF= z>7>;mGxKQgrdGr-FyBFPtr6|>m6xUZ<2(gW3S! zL~55@7Yd|Pp|`X%-&ndg#BNe&9Eqsy(F`R76jYu}CP&axsxv9db*4xDdJg}m4hs_= z(Ui1m@NMvxP5>bY&su&gxw|--K1LfPfsW0s`@5cw48}JA5(#eB*RGsyF>zD7((68(vrubLCC|p;ShVW~rz4 z=d~P8s9Eu@K9UBOu%R71vFa;<_ngnc;7($)cVTTVoiU4h@at=SpHkdqM;2;+X-OeI zft|}>MuDu;9pHU}ERpz4E+c5v*^b3?J{os%ZPX0re{m?P$jGeFd?>Gf*IGi1VWUGZ z5-t51Cl)AdYlXFS`fXxmV$U3~aXh?y60nM4$}4KEG8qQ*g$fi%!z7zain#@m+rB(| zUC3X@5()k|yacMBESKvMz3zYUmnxS_nJ+In9Zx)rx(;NVPAooyTS~TvY~ov{sk?zD z_~$dyo8v51I~nk&(s5kBBHq9WtT4{xP#heab>qWBQAXf@Xrb@&BR|)l`=UsyXF)Gv z^5<^(#nv)QWN-ws_9KKveJlOZ;p~e80`5itV6UuG2hf~*m`?p$CS8(B6e7A?^}2bZ zN}Kt|*Ayjc6tr4=pYq|=fkDMxr%DpMYD6>v`@_)k zme+b+hSyP_!Hx9yp|)j)H$T;W;XV7Pt35%OQ&9Ra62lLXfXOVRNa@ zA~Za_`}grY3I+!BGp5>iZF27%jXQYM7@n?k(RpGfCe$1JMZNi$qsgtH9@ye#b~(qD z6}HswRCZp_7U#^az`-6CSyG@hmE?4P+mxF@%yGqh5ejp)i1He*Sy!MYO-~o;cSNY+ zSmwrIUZBFn6-+*;^q98bB$XGZb5RN5*HdAAV-18I0D(IHScc_}f9i>_U;rbtIqm0e zaOsModEL?A2D;VOoRL=Qy+eAEjh&K~l#3q`<61D&y!AZMuvtgpWosD zC-2!gOb)(P8R3AW%Jx?1&0+lovFx@*Ipc%45zSdgVqlmj1PoN^P$IwnKm!YAtGxtz zrrGYD!Gy&JTL>EMR!nDSXG|W?MoM$xRFdWTJZBwV79;mYy76``J4#0ULrc<+Txf*! z7YrSpYlyl%Q&%coM!z9bD{^>pi)0e?9zXfikF}xTEEc!OZitOW1*zBhUZfJ49s$60 zY!>|sy7H`9X!PN105JEF;!^$xn<; z??d?)o*mX|J7D|bU{ESQf%QF)B^nw4wcVuBQ@=k$kV0z%wZoA(fOnn^g=YMnb5_v* z7iV7?RmawC86-%6;K3odyE_C8Zo%E%B?otx;O?5>4#9)FyK8WF?IOANd#`2m=+S?Y zK|$5oRj2k|bIm!|+KgwzdzfsNs>h57V5RZF{Aur0PRcl{tw|!ak+|V8pd|g zZLKO(`iW)nE4z%zZ_c>~@X7KQzn+LRHDs`mkf53{>|h+KTyGp4o?e?5H7yxAeaXjX zO+2RNr83yERgga*&;*MuLe+NTP%TTu4J;yICa!OiZMGmE*`3an|0Hq*T;T$gNDNoy z29!$DR3QR_;7dNTscfaXfzfD$M-(zUH6maA9>XU59-kPA^~lL?(tNk8MTy;$=#Qrz zb?K)ada9E0F>z3Qnk-2UHe2A&e+bM{u7C9sD15BqoWUgc`9^z0)5Sx|%LHbHU_By* zRddW?ysW7OwtyHc3r}0O0UAE`Vdmk4&Os5cX~(9Ue=afRE3+fttW9i~OfN(A6-R`Yo z@7!nxN=R`-0j};zQ?i@cGI+pk^!2{*~IN7owVIi;Vf4vOvtb#Mh0>smWZGpNy zEd19iJo}|f3t$xO8!#o0dv$7y!Xt|%4d0pg&R1Gp!F+(<0D>zT7~eUY32>UjM8VIw zq6a)Ss})U>XuB&FLrv=YrV6|R*4f>UdBC3{`J4-QM>UV)-_KYU0GS$&`Hx`KF|CUo z8%gScF!kF5`MU!4KbXenTv$N;g6%S8H>NHgaLJ`m>@iDt&ooDDWJ|r?GXc{*~;*%J2v7HmKO8&iO_4Fku{FSG%tb)twy_g@QvZFSzaHo^Y&PiN9EVPNj z(pQ>3jI!^A?KoY`(&kgg^>a91SE-7Uxd;Shc&y85{m$LEWBF4)i0#!?HfvsjPx>7~9yM@3842EvVkXZ405{ zcJphy)6G_Aa6zNL$>&<=Ou@-Xf4L`p+BwnrsSyc6+uP6b*G z5gCL@2)NaQ^o*i#IeiriW%P!U7>i#2-$;3U@JjF5JCL2jsNN4Vb4zFoz`4ddJGkC1 zI=F!aU*zvdq$WC}$4P>t(g=StMP8a`x#_R1wmp@x>U-u2z`aA+bNM-s z75s20gxlna$dn9@FFik7e<*Tw_Y8U#k#)392|{gK5gJ{hcf`9lgXVFg9Uv#yQZiX( zR|%r&Vt#_Aqb7uLVSL^^IkgvRBoTdea13yQIh?Q+M!Rsn2&$%l0!3GDPFBUFq{59| zd01J|7wfEq0HSp4#~12YhP1^NOhxUh&KGGv$59=jS%v@0Ho{EIG0}U+L+|=Z9zdZ9Ps0d4n|7S$s^No+_ zNa?UZgl6hBo-O|Y{vfLD`Xlcp!4$iS43w-5y)@QxpJck*`u(wu9W~DF(Wz|FV)C-M zDJ93 z7>W-8Oo;eIz1Cdse5>DbK(&3NJ50~SBxt=e2&0+`YoY$4hoG&{bf7Kko3j^O@Y5k` z^X}7!6`d+5=H963KFmnNFvY`#yLl?&)b$_rqO;22G9)@3XSuy&`6@0)IlEggAzx$9 z%x*tj+7{FA@ajzBWr~!2!aJ~ZN9I8ZQXFd2&KwngP4u$FAx*cmNHj?_$6+wBK^M;A z@0+cce_FP<;%0c%HOMl(6X$Y*iAZVK>$qS)Hsom!b4pjmkL7k0jtaMqp~YtF@91dh z-w(GWeSgSVLLGOq(4^v(HisOEI*>TlimX9EPqOsF4e_E*J;wYICijuY_WrW_lY|@_ zK)-B9Ki#Bb7S6!kP+V;=Z4&+V0 zL$6$w_MUcABq;vWlu;OfKQ8Y8W)lN;C4k_ zohZ<{B1jDjx4nIp2O z1q&5XLj*`a3XFnOd}Ydpq*-bfo0*ui>t2J}8SI$#Md)hK6gV+tI8ZXE@Q(<%o$}_0 zjed4nsE3yph)H~&AHg7chuqb_DE%?c%UQ!%hG}@eq~e*extR_xS{8jLl3BZ|=NF#( zAr0yG8clWOA^GliiMx7wQc9&SU6rb{3qt?$fxv8q2Ld~3XLQYOON$Bjvm_%-8XzO}(VMPMpO!~7HZ@`7icH!#R}>@M7($jOT(kj?B{p3>EHpH z?*LI3dEirCXhvz5e;HVV!lkbgPzB+m|61G!Z>p5{h}O)6r)ogvT?c*JNq$55MIPq%Sf zzGr%{RMF?m?syQ8lSpOHO7=lc_qM@~Y#`>fCNDnVO++)bq^wGgGu33Q9mN&$;{qF! zMhoSm6U}n$55fwQy{06rMvZ0}=>;DF9UaJu&X*PnMrrQM-oijn9~bg)VwZ>q^{aTP*YE_91%!Sz8n&<|D4_iMx5IILIshoM3?GuGOx zxATl+8NV3};ZDL%%MBRE9*imxFVAL`1YT?F;8C)o>jhcj*SNt4w*j2n@ZaFRR8%&^J%C zmV2*A9|-p`fd=o-9pkEKP3YDm_IU(q5tZwM6&8E&E$WV_2(?B64x9^!X+D(%r;RXR z%*nZYT>6+i_K|uDb04~n#f60e;P?2w!k$wdY|P_&tT>x*X!Jd~D9_>Xj?^f;v^4&d zE_jQsTvAtHf@}M&bof9(15AwGSM~HyeK}SEb)_EMvcjW?03%YE^^Nj!z|9rm10KTY z;RKLT4K>k_>CTp+R(Lt`y5ws9o1Ri&*Z5y;^TOzS=oH=4bv1IGyi`^;)n|r39RCy- z!|CE%7#6eaxV83c9kRWS?b=F>a-n)Vu~;r$meI~2Wxeh+v@CNm;JaWhgYghWTEjKD zl4WrE^@UvxJ|+nlP?@w;N4|tN%`O=*KQZqW7g$L7*y#DX&}_Y?{*OGn14J-=V~d5< z33R-J>da%NVNg;JD72n@zD@@TdTaL|<}f*zi<+$q!iuS}tB^Sn%V>_5n!yZ5oaa8Y zf#J-S_g*6VA+fliL)Bc3#VTuPRro)bs^2GNQpDNEGefobJMT9^nO<< zIa`&A9?0%m>uLyoTBWbN<6yE0<0cb3N4Ukn?PoPZJC}=tqSz%de#X zUe$#ZaI?2)RsIC6AOdoBW+R@ds}3L5&FQmG&)bT-$jtP_4PFFA=3D|-4A7e<{vEZA zt-ft~FpJ`e8gSYMslz>3reR{4$iW#bAy%!6{yo+!rrXC9R7xx-LEq$mGnUA5PZ<(F zCqVRcP`fNNQ`GHlmXGR70Pf6>{9whnA8KN6w>NvEqSJ>9I_5TJ0Bvo)NHAn*NXpRA zPO;6E$6@&E!`UwbPieh5iYl zBH)j1D~~71K+y_N%mWUD&{X5A{NY=Df_x?@#3$H? zGO6ImW2Cx6AV9urYjF4-X^ni=Nn$dRM)}Q}#-|N2{cj$}g94N`2ZdWHcwEn$NIS1| zn~7DXx!6(VFbNAJzG)Mp9RP}mc>aoqRMcP#70POE84LfEqN67OW!>)96`TI5X<5HefZ(Cm6bb*g>fC2Q0`MFg9f8c*fmI%uV@j&8Cs@u#uLC~-K~hc) zNNLMTcx8|Nu{^(%%n~039k?+|1z2%nY41SZE>48r`+l%y@%jwMOQ5~8EC%&@p6_ch zJDk&sX0~HoRyts+4t_OW07?T2AF%cYd*>s61DXOvHj7X06j0Q#Bu(MJ9)8vT0K==} zUd;ELyREe`zU9M)OOfQjniXT%+3;h4xbn^elFsMv^mQ51nXQr1ZM!b*X@e8_nFgI@nr!N| zc}MfXoRWzfhAGcg>N&4PI$3Fe7h7wD%YO)@4i5eSS~hT)`X$H=LY=3ys`>mEdRJym z&x2rTrS;Qs^QApfljEIBuJTvMec#)pFMa&5gu2@UTD!~rou+DkO≪^B_sMz3pl& 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 literal 22654 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 q=eWS7B`YumZSP0Xl5=9yfB93jsXAX8ca{NL& Date: Mon, 12 Jan 2026 19:51:19 +0100 Subject: [PATCH 09/14] Updated DI0005 Code action for expanded table scenario --- content/kb/DI005.md | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/content/kb/DI005.md b/content/kb/DI005.md index 430b83c9..a824b872 100644 --- a/content/kb/DI005.md +++ b/content/kb/DI005.md @@ -4,7 +4,7 @@ category: Code actions sub-category: Improvements title: Rewrite table filter as scalar predicate author: Daniel Otykier -updated: 2024-12-19 +updated: 2026-01-12 --- Code action `DI005` (Improvement) **Rewrite table filter as scalar predicate** @@ -66,4 +66,45 @@ For example, an expression such as `FILTER(Sales, < condition >)` will iterate o By using scalar predicates, you also make your code more concise and easier to read. -Behind the scenes, scalar predicates are syntax sugar for a table expression that also uses the `FILTER` function. However, the `FILTER` function is applied to a single column, which is more efficient than filtering the entire table. \ No newline at end of file +Behind the scenes, scalar predicates are syntax sugar for a table expression that also uses the `FILTER` function. However, the `FILTER` function is applied to a single column, which is more efficient than filtering the entire table. + +## When this suggestion is not shown + +Starting with Tabular Editor 3.25.0, this code action is **not suggested** when [table expansion](https://www.sqlbi.com/articles/expanded-tables-in-dax/) occurs in the `FILTER` expression. This is because rewriting a table filter into a scalar predicate can change the semantics of the filter and produce different results in such cases. + +### Table expansion scenario + +Table expansion happens when DAX automatically includes related tables on the "one" side of a relationship. For example, if you filter the `Sales` table, DAX automatically expands the filter to include related dimension tables like `Product`, `Customer`, etc. + +When you write: + +```dax +CALCULATE( + [Total Sales], + FILTER(Sales, Sales[Quantity] > 10) +) +``` + +The filter operates on the expanded `Sales` table, which includes all related dimension tables. This means the filter context includes not only the `Sales` table but also any tables on the "one" side of relationships from `Sales`. + +### Why rewriting can change results + +Converting a table filter to a scalar predicate changes which tables are affected: + +**Original (with table expansion):** +```dax +CALCULATE([Total Sales], FILTER(Sales, Sales[Quantity] > 10)) +``` +This filters the *expanded* `Sales` table, affecting `Sales` and all related dimension tables. + +**After rewrite (scalar predicate):** +```dax +CALCULATE([Total Sales], Sales[Quantity] > 10) +``` +This filters only the `Sales[Quantity]` column, which does not trigger table expansion to related dimension tables. + +In most cases, this difference doesn't matter because the related dimension tables don't affect the calculation. However, in certain scenarios, particularly when relationships or calculated tables are involved, the two expressions can produce different results. To ensure correctness, Tabular Editor avoids suggesting this rewrite when table expansion is detected. + +### Further reading + +- [SQLBI: Expanded tables in DAX](https://www.sqlbi.com/articles/expanded-tables-in-dax/) - A comprehensive explanation of how table expansion works and its implications for filter context. \ No newline at end of file From cec295d248bc89e433438dfb947c07e34ba85337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peer=20Gr=C3=B8nnerup?= Date: Mon, 19 Jan 2026 13:06:38 +0100 Subject: [PATCH 10/14] Update save with supporting files doc page --- .../common/SaveWithSupportingFilesSetName.png | Bin 0 -> 31282 bytes .../assets/images/common/WorkspaceGitSync.png | Bin 26207 -> 20258 bytes .../features/save-with-supporting-files.md | 78 ++++++++++++------ 3 files changed, 53 insertions(+), 25 deletions(-) create mode 100644 content/assets/images/common/SaveWithSupportingFilesSetName.png diff --git a/content/assets/images/common/SaveWithSupportingFilesSetName.png b/content/assets/images/common/SaveWithSupportingFilesSetName.png new file mode 100644 index 0000000000000000000000000000000000000000..cd4f5adf4f38883d842256ebd7176d0181147ad1 GIT binary patch literal 31282 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 DC)$zD literal 0 HcmV?d00001 diff --git a/content/assets/images/common/WorkspaceGitSync.png b/content/assets/images/common/WorkspaceGitSync.png index 79488d7f334fd23b58cbc4aa632aa3ea54228cd5..8139f672cb10497a42a0a008c27a7048cd551834 100644 GIT binary patch literal 20258 zcmeFYWmJ_>*ER|W0-|(xcL>srba!`&ba#UY(hbrr-Q6LAv+J3 zj5Ed==g)EME&Ja0y?U)Vuj`s~e^FA9eDezb6%-WI8)+#q6(}fZH}K|0cnQ8yd_C(4 z1@)@TQdCq)T2z!&$;tkMrHwfhl+>4`6nM3SIrM;|r*EO3paP|6&Z(tn0um=g(F%f# zKT!(PlEDUr5ozlMVu_2vPGRX6(l*n(R%lgM)6yG>a1G|=R7SuN&>z7g8@n%i9%XWE z%WVyt9WJ(h~h0}ly?@ZUzqoH`#@bCr{6dVQN_~=Ffna`_VT!gu_NKk4_Ycu*uR2f@# zpRmNG0uf}3cpQ_L<(=k=Q!|$*1|=mCmYp>!Ep{5~gVu=Za0Bzn z8P!c%R(6|w@pCmAI)#`AuMou}izoV1@;igHgi(dW(*x}futz_~F^g(7pR)g5FUKd- zXD#%hDyzf~a>3TrN{#y|N?)balKM$c5T3QXJ9(EudHE*WRG~<6gwUesbM02@@a1{R zmb5|g?xU|}-P1RG%k+`OSax}6F7ZbT~|LOIMQQ(&8q-%k7{!4-zZ%t25Kpq_w}=zgsQ z&9?%(7=Uy9LWK0SSTL4Ug*54#ux|QlY#SK390VKqHesq+6yzWshu0ZU6)Wt`P?Z4$ zE7&_PPy%5i18|H8+u;*XVOL4n#6r|anWRYALdr>BZoqhoKr10&zUdeF5(|YcYMnc( zgr@dN{XKjR?~X+=Q7e>wuvhNg1SjzGaa+EiGEUi@n4c7zYzarwWcBYzbgT6dJ#&xzsYWVdunad#M|_6k*$&HE?MX zT7$t&r~qdX?)(F8b+(yN584jpkoJ)9kkbzK3XLUrrdM~hWJ9G(z1ToJ%vR_|uCFH2>$Td(2zNCB!{@%pK#>UHr z%qDAo%|>8OZx%hQmxLF8Bc?+7HI`qhhLY8iU>9MRe^+pq>8l(kXp!SCC2Jfl( zsp+Ytc4>JFqiixmn@FQfqxfax0mG}nJVj#_4J9YK&BTPn^u!b=Se_R=C_IgeUM=)3 zZY|I)h@PeGg+8%9X+AYR9rqkJ%5WJ$fk7!Snq-EnIlbZ`#`NK(vKKi{#pxxX#VI8e z;acLN;>jkpCUI-5{lxu_RB%)Tg$RX&h4h8*WYF=$KM0%tQn93}$Ef$4--g3SN=5QO zYGnSX=iuD~Z_Z)PWuE1f>y+S>eQJT#8lEB(K7^d4ktA9AQ5|Etu(V9=s>DFUx1^|e ztKf$+gBoA%r7)2Omokd7VZNVIhpz8?QPn<4(c&7(^}HXl@@YlsA8J2*-O?UqWhzaM zz&0$C+t2vp+=`wltyriz!SZXMVY#0kc3-K$;bYSD=^m1^zkl4#qj&t@Lf%MccU$E-t^EJiRzqpWeBh(^9u~C??7#|qV82K2NwZ3XOmY0?v>LgTj zRB&lEX?HcUHmuGa)U{a1HoU1{GFh;^n;!eCU^erS>qC_ViG`u9P`8p9?7MJ0O`^BR zhsXqk3Vc3J_0A(s{HxdB627X2t9Ja}G3o1X?+?XB;oIk~%S7Rp)!SiqWEN_b(reJ4 ztK_IuTy$A#whLX#VvYLxb0mL6^AP)x{OZFM3UM^?KL40^9=|U?l7M$RW_xc3eFw4k zz6XsLmq*Oq>}~l8&r!t5#nsX(U-zVuqn2yAqmXx(t6$2!^keR0(xW1b9E=z=QJ_PP z;mTNd57n(KtgKG3Fe<}Gi-~-rzLm%o!(@|`mn;=Jx9s29%xtAJX*pcXKl<+6y}hcA zuMS<6SY10FLy!@(5!3%3Dm6YhDJ4CXSL~|Hm8YJ6^UIdCIW;V`j}>FMJ^7ywC%QF( zF6u(pqJ!tysWpR|Wr;e{z)Y?@}!X8~*gqJVFu5hEU+S}@W%i+hPU(07*M{`yk zuH%2~Ll%4Y#j(XV#SO!G`e*#B?{n8eOKcGrykrh!E^P!AqcNy_1bC(#RTO8iH{fUn$nD7WcD6%88I{O{YBVHSOI6j zrAnr+zJ7<7uk?#WQafBeeDCu=tmCG(Q6Hk<(>}_J5A-;moNNmXJS_V6K8bBh|M>Ys z_4Zq7ddX-AlhW{B^2wh94QX8$UHdjeZ;Mb>$upL%E<&CP-`2gz$*=Ks-|KEHzKv~W zrE|0JKb^i`3t1gY%0yw2&~Nv)+%3!+eoUz{IO%k%iI{UeEIph4JwsU4U}&Ld-(l>Y zU%1fNcB8pqnC^YxrDHe0Y}2;sP?qoRcr>?A*~GGV((b&;ynh(gN#)z|u=;TI(gdFJ zs`*Od=-Xfa2hzKqjlQVh)Sg~Rrl2@^CZp*(#oe&hEK z!%~l`r@v1vbjJ52DkKzRJY$x;IuC9Jkyayqroj0RJ}Ey8?M#;lEj=C($KaEAGI1;Rpj@}zVtg4U6o9VX~@RSZWWaD^W$vULpqf0*Ich6TE6dkqfjU> zk2ptuIYJxo9#cUIYGo7+YVa47l0CGr9w(pXI0E~fq0#4V|FyX}Z;9BSg?1EB#$hkX z4a=6G-U_D%%^HdIEkfDYGEKMOd3-R)#wIc|sLdr!c)`w%5BEq{S9fo?_xKHNvfRJ! z3C2_u&i+H!U_L;v8s=KkALQks=)q?MDCkg2C|K|b8ocqr8w%=0{AVb5@E0At#d2W& z$6aW*oEQJ|GdJWx5mixXY4BIo)XCi3&iSLgOLChmK*7*|EY-AJwB+S@P3>)&jm_*$ z%$YrG9Uw)Z_&s>RM_Y3jV^R-W8#`xS4*~M$CwReU$k#07q|cAISPPJA$t#hH+B=z( zax%YVeoHR+ijkxETPScEdsPFY3=Ezz!^FwUUW`l_Q#^6+g7U)?)*H@7YK>(^I*w*_x} zKa2}p@o)b{44)FCr4)t%FJ=q`6qJbEJwc-m0D;TC2u%F|(`0$`=O?_i5(JH|7Z z;-L^@19HK|oBrV;>HiP!pyTTBG0;GxA0q_5vl#OzAnu4in5)}wTf8NM);aLwE+Irm zj1@M*$T2}VxY^zTUA>Qm!fGQ?pbr&;p+ubpLwMo+$m4}h3N1t_+YxKdW;8EyP zu66QYPsFyl$?q6SN^a#yc)19HA3ItTY2A@{?>5ryJL5XMuXM84YM^0>1-vMOU%rXo zn=Tt(Y;oRP>yLn;60-lxU!ql$_Zs)D@ZoY7%fs!(yBybHdK&pO$`}%%M!9K#v4q|f<@l;4e*_+KCAmg_btp!y>*kQ?`Y3YyjSLBya@ zI4Bm9i|K>?FqT30O))zelTJnIWUYVwSjwkspUeJl;)l^R={Rz6v-KZQ@w~295elL` zD1_Wfn>F0V6FpU3kMzUIObOx<*wPLT)k_*VQv_UgjELxzv2Oq7=SDGhzGP3^F>)O) zCwcO5(QOKD_bJ44i@Z;%!Ofcm%`sC*Mq|>tTklSlB)A+d&hdU7c!|O7c95#lTGerx z*27feWskb^x1&w1Qcv6KV$Zy(r9T2k_HVnV`9L(0+qgHc<7#h+jHRffXbX*u*{($Q zl6byE6s1ACN3Bs0j3O6_#h&;1`Ir0Z8U0IdxT~U=lsP6| z83&&kwFc{!i{$*--fS+jLDVD)|Hu2&y|OA9DXFl&Q8{c?8PMlr zhKgqNa=$~x8OrW(l>c0QtDPmz?_ApEPb|bp(^n-Gc>XnGsLJBB*(5X@OQqGt@~eP% zW9$3a1Mb|#oVN4a{1#J)-a`UxY$|l#v=`Za zx6&Bg3% z7t5rFoR1Gzh8F{$E@hMG%}e{fWx+Q<5kxaU3P(|MCJ>-{s?R)`ZCR`90G7 zZy&hnC1$D&Q`E~e5V=i}oi_$^Z?R~tshZ!q?f;QKe!%6hN=zfL_&u^cs(QE3XscSO zpt%?9y%ELr*P&1<@^o+LVU%lGtrDlaYSsIF;UkPiX>37Ij6jRqQKid+WroUL9|32= zmbqa~3ezpSe4LjWugebVR~p5v!5}y!39DD{=35)4?+1HBkjmI-zxlHl;*`*tM4YC@ zt8RmxYaQpeGeM@xbFiN`Q^>R@Zsm?jKdx)vQJ5W_0S+1E{I9cJ-GcpE-@D5}U{&Tf zelg}r$*=Cu5!yAN)=P~ZeN^o<`x#%vR{YI=xicc8Pdl@x5#^V@-)7Nxng@pG{2Mr6eAY&-Jm?KXO}Dl+=$n^d0yO(|6`$%-xJA17rtGx(6%rObWiwN`ep_P{ zTooPh?s8XG>uvY@DvgS?@Eq+>HVpC9g2u7@; ze%Gt;c)Tvf^HoZ@L8n4AvdMDDB!Z06@s!HDGzuB9$xOPX;znAe^Wq}xABU{&9NKi@CqAj#?f=+m<#3^tbe?qp&7I}3&Vz5Bgpu`lS;R z&@jv9i{iWPAAU6i@>SGZ{+37?HQhep`pmb@W!^@-};j32&k9r%IiJc^JEb#sJe&N!8}Kd6MGNF6)`fBA0z4TY2Hlo1Od^Mumry z0TO!sHd3tuU6PM7>YIJ~fj60-JO$+)(-~by`%V1l(KQXUR*cv`jNty}$qe2S`~u6M zU$147goE99IZ#L=*=WCPP-tq+)Y@-1Dy2%eSBbREitOA1JY~UFw2G@$&18|PSJ(Zh z3D=vq*zO}0CpryQ;#SP;NJxwK?H7VuRSKEB*f&x5uMP$GXR1g_@SNgw)G}_3NG!(| zSMjG=^7mW^OtSN|H><~V$I^Cw9p);2=FfrM7k0*=?Ml0(Qo~;E35G9}PM~&L>4tWl z3*?A|rzfp88-?@JTOw(;7$-hcWt|^Tb>Ct*IaXfld4quMLi97+|Iv~c&anP*uGTz4 zWQhGnIjSu^dV|d*CYnsl)+~VOCA?D}*^j0ii zTy?RO$jAP?826Ka35jL%{&bhB#8v;yes+y*{<%JzrV?~II zBjDujJ{jyDA+Ue zwzsjv@9Xw@=Qd)uIpR7ZbMp?YV$p}8L}?~B$&{JQvsRVRxFB4wGj2C}ciGyy#wRKP zobf*<(+R_=T+1^i^CW|F1gmaBDMyR7j0YQW71WNkISg|vDW8r!zK5aFFDkbsrKpvt zd@Y@@BeJ~@@p6gs+z2858^RLPVzenhUvo)EQAr%cY2>(|s>dDUQ+=?yKXXJHYsY*% z%!i)X<+`67e(9Jf*%d%W{t}1Pdb4sFEmd-tyL33y#ag0u&FwqFde9Ezl4ZKNKFu*$ z!-y?%HTMhw@5}m|yB3GlARW=()e@cz|;qwSv zT?|^E*i@Ga4ZGYW_oAQdGsn@8JXjiCNEmrk+8QO+9Q%=H5V4cX#hWH_n{&!fj#Y*d z>8A5Yvc!JpG0KTM+=Ydx4-T_**~kp6k?C>&ImBZ$YbEy(LGS$3ENtY6nrm|j8xf+l zAy&K$PvT=#cWqr2>4}eRej+}AgO8MRiCul}*mpXRLUc&4U%eAD&`(x8tY6bfDxpqt z8^VIM1#?8!^S*=`0SyiVp_h~HFHJxf(FhXufN>ASJ+{AUswpg#Q4Qe`wnhi>Ya=rj z>p$fsFmLi&Bc?>j8aQw%+SY!%ZcC>d&~Gu5`dgw97f!t=)=jRW7MT~4L{Fm>t1Y}` z@mWwN_TB|hp+cuY<&~VSlxp(ZawS?5+aBcxl;v`}q%|@m{=!#O(I1h0L~^B2-$k=k zPc-z)t9Iosa@zkbU+Y1W4)SoiJ~)X+*MzM(IKDD2Bxa#}@8h0Cuddb=O~{kCHgF;t zSVMYAXg?P0TEGNVGEg4}-)Wv0n7t6U;){!mWOB4>G0+cf|5w!P&0Z#(d3d&+CywD{bemGnMaDog^w zR?-5bKVdhb{8}r05uZ`5Lb+yFgLT{gc6gUHE$*6U&aJ^oH}7<(HQMQ-^nBvDz1hwl zUg-%=+O#9i3p+6~=BEFdTR}uRg=(B#-N{O*h-{pzQBcF2@QXIMF`)T{Ho}`|EYS`L>q+2tcJR1 zn`-!aER*jWGoizc5izPE3akI=6dHxrz6Uw>qu&T3cK_-a43e|s6w4X^VhkQM|M-e@ zPr3%(Ax6O1vqRRYs0* z1+?vRrZ=NaxWci(ea%SaO!E#()Ir$duos?}`Xp_e9rgR0+Cl$ewgU)CHFvY0s`(%s zc!e37-pw7cmLD+|3h^2jT#%%rx`jfXT%-alky#`ea86Qa5(;o(iqU%r9*YfV17vcE zYVh>A22*h1Yx91V2t0=FkODYo8?1H~qz0czsBHd=8bo7vaB&|Y9A*D`Fc8V&4UyWa z+}uXf*n^zygb7#f3i5N~@X(#GBSKqo`JkFGIGD~`^tU<(HOJ;g36N%tC_&#Sc5Ce* zt$^EV2Q^Tc^3Uu%4s;-@V7L{+&PlPs=mub1IHe){UIIPGge#tTpBgd*K3KPdSu%j@ zG`jL_w(D=@E$$UgSNlT$Wkz#Gq0ov)gyB6i|97we7?A>`ngre@uP~@&3ZfY_%0F5e z0h$J&4CY1Ol~lQARhG-Y`DvHGUx{=M#*|EmA^kdr3Iud6J(0K6`+O%Zl8{G*oSa-5ns%og;W z-{MD)CgS_RwWMqU!_Om51{nkT+brR&k*~J+0407YP{`CNT;Pkr(5^MBp~F#sA5>jk zT|9P12${~#2Jhy-MXv&d2L@aRAXRRvuXr!5U)&WJtFR2HB2EP5Ck^!0d+L--)B=KAkU z+t~0WZIuy8NHII~X6Nl_(ssxFKNU`=8`7IjJqd+b*z|6S80Nl^QLF@XPZr8Dnasw$ zsY3NQ-S`rW&MI4E5`)K;Ob%Iy6hz>7{}hb?ndAF3e5MV3jZBV76HKq@^CE={_XNS& zmj3wt6sCPupj6`>PrVN*7D$WG{&>5u(&^)=8VyvHi}Ml&#pJYCk~Mvruf(83zd<%2 zDLo9UXCc&HAIe9)EzXGO1x`L$$Hn3(|Oj`z7al?JjEzg!~>#mj`nc_MJCHAu3$(pR>b)ytjZV#75Nw zwx3KQZEkdxK}YG>)!~w^PW?wRaIQ3VX@6Jh^X)FS)B(mXsn1U=Y$MS5u-HF(%O{7 z0e_WN`u=Z_FE8TI=HV}e^>2oQ zhdue`S6?wyc83)=`(!vahMMsv%YCqRIW0;{(h@XThBGdoXl7_elK;9A$Zmg4kl!wM z=OpBzol^<<8B(Ka{-I6LEOje*+4J_3D<^RR6rx9L09hrj)#F8Gn$D#;bOmIVqRYFBeT&=8ctgJ%ao`Aw z#;|CWgq4>2LQx7GR(p%?FWq#S>?#h49hgmjM9Q3)jIMNC{Z*Y)hQCeXwAFEqG-({{;;_;Mwznj%Od7MrROH}I%O7qM&@!9;As!r9~lqkbU3}15C(SPf! z8p_Mm-B_z2aJqXGXmQyuGDDEJ{B71Fr@bLs!N1Xv5-uAUslCzN@=k?!z~9}76D}2E zXE~uoF}=ZVP#<`Fyt8l0H!`|NXK+>1tN*C{Tl@txCIX|w(ko5Gd4F*J{vExc&!qAmohlh#@v-e#H)91F7{&p}=08dIQ*v-{CT&L(dNN}Injk$QGo1d4 zfup($+(L)9dtjj*vr=UBmH^cjQn{97zzz=UK4&zEQ00#pakJ*g6=Ll+w+dIz&;dL) zGt}z9G8*s81LQN$yYG2Kx|HN>@1tWkrVALP+t1p?tTk0#2N4)Y!Nx#9tT+k4JtTni_$AFpZE|g;E-Aou*ADo zLXUobi~0G0sZYeJ%^y{%@Nl1Q&LH&|`L$5E3RwqJUbEz85v3}7I~hcTcwn0MLyfg6 z^?1y~OrlO`mY zU91@po1me;OpP_ggE-m=gy#HNM|c#Rw|S={aO2sS^lF2<+e#zDCM3RWBUq+OxG@ks z8vtv7Dx64YP-nt)nYUejCgv{JPfSFX^$c)cAgmZmmjBj9`t!ObY%dxY9cx`7R15Sq z02U^&yF2hjQVfyuCxm)oN+N@SC|W#z{iEm!6ZcT!VF+#(evQ~26K$ajTu6a|WzZnc zC!tEiuD^xFg5IOfCsV{&Mb97r19nlH-!< z9E`XUZlQPSZ0YT)P22w}2;_!*KgpiCHIHpoAOL5K+6@gjNMgMD5AUdfefb(U$4?viD1OqP zX-qky&F!BG3mf}WA*ZBg#qW~YiZ92hkm0{3huZf(-2j;tO%2vF$+s8#WjIuOEC}BT zjL;qtWQn?daGDP#eq@2VY#nlt^j1rK29pY?VV2Dl2I`N$6@`H5ke#w;Uguc%;BarW znJWPDv`Ukme$Rs0$#HyHkf1W?cGUBDS9k(b0XKnWi(Zmy{ZIVRp$`~zfqyJ-RWk%$8f57B9E6` z*2gMt`BeTE%JFPP6{{|G3{0U;GTT}e^e}5s@A`ZsoP+=PSSHOki;={E)fpRF*wDf_ z!lN#lxwKAG=V(Mq)Q_;&^M8fYPq?}Negkgy(ZF}(_LAt=rJ(B^n~KYzkuDCLfKxEbTRb)$D!KV>Ae4k$!?Jwdps!ArfV;iTY_-UI zgY~!Bz@FI}(?ZQEgUM2L20TuiRI7Xt$A||(PY56QE>=UKuoQQ%-W6wNr)3z_5D`Q1 zrL;YtO^ycIpA?m$5|{Qb5P78mzs)y85QiN`>AVD?MLJCgUz9h8M7seu(HtTg!h1EW zr%|p&2FOOz&Dr+wbeX0)5qHdG?gp@bOaPmyzp?~z@1i`#Y{8_%r8WizkLgnNQxN6> zIQ2dclbD&jxw)GI`U)+vt0jnCeQh%{0*8e@0)NQkSDrYGTPum*_3`SElR=A9p~@fJ zVSpT&yuu=AeuRt9#ZgEOfhB|;B1nFcB=IdcH5oDVe`pBcyY7|=y?Y(e0tsj`b7b`4 zLoxTRMBnrfeiu7Fj^kUi^K_s8pp70T4^xvj>$s1+|CTpUHrI3@TE?-L{B!yiU^qo4 zORcUL&8RuCM$$TW0Sis`Rg8NeP%H&pY~p)KW7-XXv1KmyrqzW`w??gNe>nO9NKfAZ zc1Jv^2#onAc@XUGNy9gSxX*3K=P2fmacnXbs2u#R8cm`pFh&izK^>`->5Wffc>pPl)CK(8}blzYmBYF2Ch< z-5bmj@P>`!YG!y*m5Pu>>ngd(bfmDrC<{{~P3rZ}O8AJ)Vyv98w{1R{Mj6p=ef4M> z?yeev3`E_O!cAAY15dA({nIBe+GpSA?!%Pfhr`1ZzD|j1**PRCSj~N*)!iJsL-NUh zJe-D`TdT$W@p>J_aqV zMG>9cuegvGHH99p^ZkYnHAq+vZ6>&UzyYCR(y2$C3gqcof;k)%e7bkGoUbog^2(F_ zZVhuRW+?}|sg(5|CQyp>Ls4RSfe{l3F>ADFtt3Q!S>YtnZ~?(OHOFTCj5jf#6mcIN zoqO_fnR9i%i+B3mBxdU-@#QOa$jEH zmSu_ghdKGU%bjPW_6Z?=4>v)1^(r2y$qYhFjFOABfEVk4Gx04kzAlbc$)FnFSf2v_ zyLMn3bU1oAhTj^{U4{V5l-FRHTs6_EHVOx7Rny4s zfp-Dk;?%eX+t2a*g`e~J3)`OQASGpIk**b;pv}k=qd2vzs6LYDd+uyHRccrFU=BoI zvibsSo}h~_AX$XY9l6}sStK*H4xDX-!$wrZ;1HE^Rij^cn?3Lmg)1)$qazR(#kIKM z6vbx2DLPC!?&6&DmD;^u!`Wxra$RqL@v(^HK|6$hHnIT_W&<2tWcd4@3SLZhpT_E! znaT&WXZ<*aQa~+GH+$(b2vjL&t49OB8}q{RoYa*pI`z^-l@;(ai#B?ch(`b@Reo_h z&~vpaVOK$m8R-8TE&)H>M@p2|?l(dZbE{;N+`6jtkz&>EAo7e4)`hImEFrWXS1akZ}F<6ek>jz9QS5rFfr6 zr@8@5G5s1!^VNY6lKP-Th8`Q*>C%Z@S*y zPaMMyh(oe%!dqe@eBB$ywNU$i7x?5&sXL93NWt!eBNohUX#v>8FVn55&su{%aHw2c z9tpvSQr$rSV!081FgF&hfYdof!y`WcQh z0xYMy0%3sw1^a@>9Q~1bU?7OCniOEUz+m`iSayX7WatN;4TS%ThEQXV!oMK>)>uy` zb6V-0Yo1W=+BJpwC%}%8-k3atlyaWV>PQ+W9f0j^G{z?>4@mL=>^1sZp)5V*D9~#y z7$3yc8Xs*wNEc$eonc)1kISBW>L&r@zj5lszGn%S-pvpGx%F{~;6L}ti5t>0;r_8B zPz;Fuct8;pN>@UD7W<25Z-|~pE(8(!Eii^wA(ca6@pZj`lv=TXh=expc?cmR%`w?_ zf1Zr{NHBxh^0c9%kcm<|xJQPR3djZ!_o@zY(*e?aKzQadWJ=MG-+?FmICBY~<$k4_ zGrs>PoeqSpVa>|qa~}eV#wJJ$!5$rmAu-&WDxm;hCVQNCjMfD7y@0gm5HGA$K&`NK zq16a1<UYE2X0 zv{)mm^jb{vr(D?}*=qny4dNL3kfEWWd9gJ;Pb7>2dKgwevHCJPwH$3QJW4V|EeGIb z1B8>5&9`|VeISKqfDtU5#h{eR!Q^dx0gs#rlEfgus-l&!uCM8@mn@JJ(dv2`#bKc3 zRseE21#vT3fMlpNEA`@83{@XkaT683!J9hy=fs$=&y?&Y1@q!^4E> z0sxk><5>cQ{!fo8H74RQ)5GCX-OC8|)-wtqae)~)mDtyKY=ZzIZyvAqS*3zxs3Z^x zkO7#s5IA;)H$*??0d_V6ttxC_%l1eKyW-JVDX6a?s+gUV!yZn2`{kAo?(wyjvIq$VBY+vmXY;1A&RW~ z>f1b0hfwmxo2e4jy(7fUWM=)+OXX~4kU7Kkpigdle|@3?WXmKJ=3KBSJK8M`qNJo) ze0qYd-tfxY&f8<^AAxk4*J%cl@8UsdX6WlX3ppI9%q5Tp#|VsI0+0|PGGc+q>4@NXYwUc3I|tJzvEPX z{FOJED+=%WjK)S2zw%M8z{8fRmE`%XRafFL>(N%1OGe`6GM?PuoRy)i*_Q&9(W(mw z?t7JP%bmVM+%jL;3V+hXbTt%6CzK+EWC`(#A>;)tcKYf*Eb;0xw|YI?_z3G9TvB5; zeU4={{ZYIi(5#;`MRxsu7m{h&kS^%!)ey3oi)5$0TQ_6ru&)T4(|ls{6QFV`paxBr zX|kl#3|yS7+2I_<`#s#!r69tPE+Xpw&}WULVQgGefKn`4ZgW?(kJjY_<|teA7n4Wx z$IHVd>yyB$*!M7$r11jYZVj>F7qsOp+DPU5#(kelG=s|xy9`Tq+e37@*Iz@1QY>dN?9`){OEuyhC(?z1-VKNTys}~>ZVFWOq0?eO%`h1> z2R^9-cSTPL!n2X!mJOH0=EztuK_n20wNnGb~Bmd z>j?ZHI5o!j!`T{9JZT^*sDd;?fA3~mMxA;o0FN11I?m&TTST?jgB(Ey-R6KI2<*`Z zE6Hw1KIG=+(!X(s#vFi!`C|f%QEmJE>9AEGJoZaiB!O!f|C`N}A^&UOTT4FT3|xDB zhP_XRx?lAmTW)q-SNlE-oG`3EU!BExGN3ooAdIvD2$LGxyXw;1of8{`*W`?my{Dgh z%$RNG>(Tg)qqn6R?UqXQvOTykvGvhXp=K-q9g!CYno#9D_^;DT>D2`}dDL2}aCtlI z0cbW!(D#! z&7eVLz-~KRGF5nX3i>deRyFYDF-z`U^apql$J8tdyqJI=BXE4eFoKYa?V?Xa&r!E4 z;K|wsVhW#SkZp)tTTHALeRfd9z?)rN*RVgkHbQWbosRAn2J!QY5RXPIl>8h7&W2n# ztM(#4Yg^u68!fF5Og`7(3@&`_WM;{poktAtY~J@;X^_Gz5LeeiXB-L{T(y-me*7PfIE_aZF9;J^HEra?;#osmXGee;4q{(qGW2Ko&F(7n0ISv>>qm z34mn}1BS4fq-o%2ZZiTDG*n3hJ%0!Nt;1{v|BPGFEHVC?9ao2YqmtyhGxpIF?(xt$C6^0I~TABtx5_w}D_@4>7pi_cPA* zmQ?>_X<6q_v9=D36A$mLm#JqVxif!%fc7?qHBdjO?#yj>EhIuiBfCx|*}uEhusA;7 zRrQ@ITL5-o2n2IF=BWuN0)@#O?ta{FFG8n(ELZ-%seM(2R8VsO)s+t<|( zG(}<+`q7z%f&=Hi0m?y`E}dF&?8Z=%EJVc?0@cl)wpTY%nWJZKxSSj8*AIY`& z9M#INI%y9{&yASdP8!#YF9?l;;A=9hiF}RXqfeV0ar08aVAp<^HudXS8{Vw9MiFw? zK4m3MhqP{bglSy%%)regRp>SifiRFc2&bz6?M3xr5uE5_=0IH(`=9nS{&fo;XM=(!b~{11fJhK5B;gj4bUsz8E(>ybKZw8#wE{pBzO*6?WU(7ZunN|9w@EE{tR}rdXkh$A0MKZ_3gFLrDT(; zn-XHMKdlqZ-6vV9)eJE`CNbIezx&4(NPaj|l|7OzWJs-$QOvjxlCn$TbAT^p2n*^7 zRsu>$wI$ppnm0*Gy zKM`a-N&#=GzEpio2W;LYV&Y)2KrybFA)KXRL$Uv*%ny`s7OHp2_3q)8<3L{MkJhdJ zlNLji$M6ezoXJ&kXbB_y;U+aHq5w2iYq!Lk1REmgckf~DN|6il3A{8SnC{QPuRxN3 zwE~Ij@D9J^vIX_WvW5N=NJ9Ulr2-7K4Pt>*;(Pk-;_@uc20`z=A9PFsy^{}l+dZnq zKZ6o>Ll@`CjGmk@S&#y5rR)dL{lY@oXG^doS=IUe!G$Gf#$u`^|j5e;RXWGgz$`0Hd9@T(0?-qH4|nvNJjPxTtpI7a~3 z=5q#Zr_Qz8*R@Z;xOb!W6XW4o&b^B9NrT!R{`M_2lLBOP zfxx={AsiBD1iU;T(#C*NE&1~ncmwk}gwM;w!!n^TmVcLR=wIm7=D~%vljH)#41iZ2 z^@?-2fMwoy9UE8m62tmL%;7|NJHciacM_pQIXab}ff3sq15Eydy-T{A+TY(vqi0CP zTi#UtZNa*r_54rBHY`Aq?(&>YWvEvpTdMc^#C)T5^Yrf53#au*eGZ~r>G&b*kZ|dg z(uM-{{=G?)AFy=ERBiQD=R%$jZN|{-=7jW+j*H26TlgH5#8W32&buTmStv?Rv%WC@ zl~qAq7)`e5<)DatIL|mefSfE~p;*>#S8%>15t2`kRLs)4 zoIKb$`Asvqp7OQ!>_B?=!pirbT-EuRocvq>@EUO)fHaV2{V`kgs%E9akP4 zTqLPY8W>?Ev$yok-4%EdS!!%yrJqSX75k{CyX2#@eJ+Yespkl;Hp`XZ=<#~S|3LwY z*R%UrbW~-?{}Pb6sgv$FaWEN~9xdoWpO@4-09sSlZ>to>~Rwq2~&4 zw3$6A@Hqbyr=Y6cN~HHh`Z}hqc^{A6p~|Buf(UYu-H8Qa#l4$`8`_$Z7>eH?`q1;u z^Z48Z$t|2N6R1km9h=L4l^{A2@R#^Q@~~iM zKn;lyLm_}k>Uz44yBxceG{}x~`Kd~4eVbY|`_2-Lr-@@<)z;$ot+vC91^O$AGwptgD3SJrlgf3U2j`juZ4xHRg;GsyEM zHJCMKpyQ+GVR~olMAdUz4LepWeNS6Etf;_p(R(ZJH(%G^uG6sGd1^gbA|vmrJXqf1 zipn#!o}$g>ydaU@F891;P>&Hwyyd=;XBKU|uh(*Or;?Xa@!Z@WFZ{0AQ81k$P0!hx zUnEENV9oKT{HRUEP0Wz)(p+)3&MXUdpsAghGlN})KJtL2%J-dE=TfsyZJ`Xsrt@aP zq0o4u_QI3Og^M<~{`~0I@{o^Pv1961KkxN*H?ZVy@)vjaH4EM48DSTOct?3z*qhU* z@Sc+PD6o^4>C}5TDO4e6a)k$4_6?S-)~o+5x&=l0Yp#ssX0Dj2QnqyeF1dK?y2|>i=D)vj|DF`doK;F^&n*b4{C2}?xqSPk zI=^)P4jJ?2`=)Ax6C{+EbL5rJ>bxnr!qQ1-;t+K%)NDMa%-T*V&5Dl~6r^2{f~8xH zdg|2EhzQB?+_E>%i~R)g;>+kJEu>iHY|0&jF{N-&w{=+_lK=?>CIO#N>_fF*@F|lm zw_Mfy(hoI@bnTJ9HOqKTlrs{hy>8&O0!3u_+GTe0VNq50OY0fnQ%|HR;)}O$=t*k( zz$&~Fe(gt3pQ^mbfIgW^f_N`(bUv-wNZM%+NsawurHuS-xfIndQhi=)V4mG#Uk}a< z)$S5&szjs3Q)GJxi$zjx`Jy^~>gr`JymPkN$Au(!+6*?uifT{R;*|+24(yem zc5jiQnX_wm5XsdYg-vEAkN^pgz;gmVqSzyq^6jMgo(E_yjUg)+sR$H%vy@0vy2Beb zmm->F{OY(b>}64DU#?oLTqK>fh0qS#0wgTu_?lAReCn8b*NkPsAlcpfE6tL>DS5)u z%Ngy5LZ)unAh$G^%%n}ftHsN`eTHfgFAwF0_U@W{W(&QWP8?HK`sVI~B|>wl-~wVU zm!H4KX2C~Y@bGX6 z3k!3tkiogpC!es`&0o9wRI_fOyz$AJI<2yF;rcjxJzQ=+f77GETv$B`kN^q9X#zf> z*c}l(r@2$`F-or7xvg9oc=D7&0wh2J{zAZ~6}!=p@$QyUzu6C$G`elpPXZ)B0!9&d z5s+${9c4|4W03~3EV*j|xYub~Q)dCc0+!{9K3G+oE0TS>Z z0){-Gq~qE1?`hd|;;8nn^~ZV=w?0AuZ)j1pJc#6}x}V tD@R2FBoM#^sMrH|@;P)8AOZg*@c%_9ad{yllU4u#002ovPDHLkV1kuD>=gh2 literal 26207 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 Ilv(Ki0Gg*RPyhe` diff --git a/content/features/save-with-supporting-files.md b/content/features/save-with-supporting-files.md index 68c32139..b186fd44 100644 --- a/content/features/save-with-supporting-files.md +++ b/content/features/save-with-supporting-files.md @@ -2,7 +2,7 @@ uid: save-with-supporting-files title: Save with supporting files author: Peer Grønnerup -updated: 2026-01-12 +updated: 2026-01-19 applies_to: products: - product: Tabular Editor 2 @@ -27,10 +27,16 @@ When you save a semantic model with supporting files, Tabular Editor creates a f ## File structure and model properties -Semantic models saved with supporting files are stored in a folder with the **.SemanticModel** suffix. This suffix is required by Microsoft Fabric to recognize the folder as a semantic model item. If the parent folder does not have the .SemanticModel suffix, you will be prompted with a confirmation dialog to rename the folder. +When you save with supporting files, Tabular Editor creates a new folder in the save path using the following naming convention: **Database Name.SemanticModel**. The folder name is derived from the `Name` property of the Database object in the TOM Explorer, with the **.SemanticModel** suffix appended. This suffix is required by Microsoft Fabric to recognize the folder as a semantic model item. -> [!IMPORTANT] -> Model properties such as **name** and **description** are maintained through the **Name** and **Description** properties of the Database object in the TOM Explorer. These properties are automatically synchronized to the .platform metadata file. The folder name itself has no impact on the semantic model properties when deployed to Microsoft Fabric. +The Database `Name` property is also synchronized to the `displayName` property in the .platform metadata file, which is used by Microsoft Fabric. + +> [!TIP] +> The `Name` property of the Database object in the TOM Explorer serves two purposes: +> 1. Determines the folder name (with .SemanticModel suffix added) +> 2. Sets the displayName in the .platform metadata file +> +> The property `Description` is also synchronized to the .platform metadata file. ### Files included @@ -38,51 +44,73 @@ Every saved model includes these core files: - **.platform** - Metadata about the item including its type, display name, and description. Also contains a logicalId property, an automatically generated cross-workspace identifier. - **definition.pbism** - Overall definition and core settings of the semantic model. -The complete folder structure depends on your serialization format: +The model file structure within the created folder depends on your serialization format: | Format | Model storage | |--------|------------------| -| **TMDL** | `\definition` folder containing TMDL files with the model metadata | +| **TMDL** | `definition` folder containing TMDL files with the model metadata | | **TMSL (.bim)** | `model.bim` file (automatically saved with a fixed filename) | +Example folder structure for a database named "Sales": + +``` +Sales.SemanticModel/ +├── .platform +├── definition.pbism +├── model.bim (if saved as TMSL) +└── definition/ (if saved as TMDL) + ├── database.tmdl + ├── tables.tmdl + └── ... +``` + ## How to save with supporting files To save your model with supporting files: 1. Create a new or open an existing semantic model in Tabular Editor 3 -2. Ensure your serialization mode is set to either TMDL or that you're saving as a .bim file +2. **Configure the model name** - Set the `Name` property of the Database object in the TOM Explorer + - This sets the folder name (with .SemanticModel suffix) and displayName in the .platform file + ![Set Database Name property](~/content/assets/images/common/SaveWithSupportingFilesSetName.png) +3. Ensure your serialization mode is set to either TMDL or that you're saving as a .bim file - Go to **Tools > Preferences > File Formats** to configure serialization settings -3. Click on **File > Save As** or **File > Save to Folder** -4. Choose a folder where you want to save your model +4. Click on **File > Save As** or **File > Save to Folder** +5. Choose a folder where you want to save your model - Check the checkbox **Save with supporting files** ![Save with supporting files dialog](~/content/assets/images/common/SaveWithSupportingFilesDialog.png) -5. Click **Save** - - If the folder name doesn't end with .SemanticModel, you'll be prompted to confirm the folder renaming +6. Click **Save** -Tabular Editor will create the folder structure with all necessary files in the format compatible with Microsoft Fabric Git integration. - -> [!IMPORTANT] -> The model culture must be present when synchronizing the model from Git to Microsoft Fabric. If the culture is not set, Fabric will apply its default culture, which can result in uncommitted changes appearing after the initial synchronization. To prevent this, Tabular Editor automatically sets the model culture to **en-US** when saving with supporting files. +Tabular Editor will create a new folder using the Database name with a **.SemanticModel** suffix (e.g., `Sales.SemanticModel`) in the save location and populate it with all necessary files in the format compatible with Microsoft Fabric Git integration. ## Git Integration in Microsoft Fabric -The **Save with supporting files** feature is designed to work seamlessly with Microsoft Fabric's Git integration capabilities. +The **Save with supporting files** feature is designed to work seamlessly with Microsoft Fabric's Git integration capabilities. Git Integration is available on workspaces assigned to Microsoft Fabric F-SKU capacity, Power BI Premium capacity, or Power BI Premium Per User (PPU). -> [!NOTE] -> Git Integration is available on workspaces assigned to: -> - Microsoft Fabric F-SKU capacity -> - Power BI Premium capacity -> - Power BI Premium Per User (PPU) +> [!WARNING] +> Git Integration for the Semantic Model item is currently in preview. For the latest information on supported items for Fabric Git Integration, see [Supported items in Fabric Git Integration](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/intro-to-git-integration#supported-items). -### Workflow with Fabric Git integration +> [!CAUTION] +> Do **not** enable Git integration on the Fabric workspace that you use to host your Tabular Editor workspace databases. +Maintaining semantic models in both the hosted workspace and in repository files simultaneously while Git integration is enabled creates risks of uncommitted changes and conflicts. When a model is synchronized between Tabular Editor and the workspace, changes may not align properly with the Git repository state, resulting in out-of-sync uncommitted changes and potential Git conflicts. +> +> +> Instead, use deployment workflows to deploy semantic models to workspaces via Tabular Editor, the Fabric REST APIs, Fabric CLI, or the fabric-cicd Python library. This ensures clean separation between your Git repository and workspace. -1. **Save your model** using the Save with supporting files option in Tabular Editor 3 +### Using Git integration with Tabular Editor + +When your semantic model is saved with supporting files and synchronized to your Git repository, you can then sync it to Microsoft Fabric using the following workflow: + +1. **Save your model** in Tabular Editor using the Save with supporting files option 2. **Commit the changes** to your Git repository 3. **Connect your Fabric workspace** to the Git repository -4. **Synchronize** your model between Fabric and Git using the **Update all** button in the workspace source control pane. +4. **Synchronize** your model between Fabric and Git using the **Update all** button in the workspace source control pane ![Synchronize workspace with Git](~/content/assets/images/common/WorkspaceGitSync.png) -For more information about working with Git integration in Fabric, see the following resources: +When your model is synchronized to Microsoft Fabric/Power BI, the semantic model name displayed in the workspace is based on the `displayName` property in the .platform file, which is automatically set from the Database `Name` property in Tabular Editor. This means the name you configure in Tabular Editor will be the name displayed in Fabric/Power BI. + +Tabular Editor automatically sets the model culture to **en-US** when saving with supporting files. This ensures the model culture is present when synchronizing with Fabric, preventing uncommitted changes that can occur if the culture is not set during the initial synchronization. + +For more information, see: - [Microsoft Fabric Git integration documentation](https://learn.microsoft.com/en-us/fabric/cicd/git-integration/intro-to-git-integration?tabs=azure-devops) - [Tabular Editor and Fabric Git Integration blog post](https://tabulareditor.com/blog/tabular-editor-and-fabric-git-integration) From 4525a59c9060872ddd87836f20ef77097b02e0f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20L=C3=B8nskov?= Date: Mon, 19 Jan 2026 13:19:05 +0100 Subject: [PATCH 11/14] Preferences documentation updated. --- content/references/preferences.md | 783 +++++++++++++++++++++++++++++- 1 file changed, 759 insertions(+), 24 deletions(-) diff --git a/content/references/preferences.md b/content/references/preferences.md index 93c70aa0..1ee557a3 100644 --- a/content/references/preferences.md +++ b/content/references/preferences.md @@ -2,7 +2,7 @@ uid: preferences title: Controlling preferences author: Daniel Otykier -updated: 2021-09-08 +updated: 2026-01-12 applies_to: products: - product: Tabular Editor 2 @@ -27,62 +27,797 @@ To access the preferences dialog, go to **Tools > Preferences**. > [!NOTE] > All Tabular Editor preferences are stored for each Windows user profile, in the `%localappdata%\TabularEditor3` folder. It is possible to migrate your settings to another machine by simply copying the contents of this folder. +> [!TIP] +> Use the search box at the top of the Preferences dialog to quickly find specific settings. + ## Tabular Editor > Features -![image](https://user-images.githubusercontent.com/8976200/104600495-5ad6f300-5679-11eb-9572-af99f0895859.png) +![Pref General Features](~/content/assets/images/pref-general-features.png) ### Power BI -- **Allow unsupported editing**: This option is only relevant when Tabular Editor 3 is used as an external tool for Power BI Desktop. When checked, all TOM data modeling properties are available for editing when connected to an instance of Power BI Desktop. It's generally recommended to leave this unchecked, to make sure that you do not accidentally make changes to your Power BI file, [that are not supported by Power BI Desktop](xref:desktop-limitations). +##### *Allow unsupported editing* (disabled) + +This option is only relevant when Tabular Editor 3 is used as an external tool for Power BI Desktop. When checked, all TOM data modeling properties are available for editing when connected to an instance of Power BI Desktop. It's generally recommended to leave this unchecked, to make sure that you do not accidentally make changes to your Power BI file, [that are not supported by Power BI Desktop](xref:desktop-limitations). + +##### *Hide auto date/time warnings* (disabled) + +When checked, warnings about Power BI auto date/time tables will be suppressed. These warnings appear when the "Auto date/time" setting in Power BI Desktop is enabled, which creates calculated tables that trigger warnings in Tabular Editor 3's built-in DAX analyzer. + +##### *Line break on first line of DAX* (disabled) + +In Power BI Desktop it is common to insert a line break on the first line of a DAX expression, due to the way the formula bar displays the DAX code. If you often switch back and forth between Tabular Editor and Power BI Desktop, consider enabling this option to have Tabular Editor 3 insert the line break automatically. + +##### *Default Power BI authentication mode* (Integrated) + +Select the default authentication method (Integrated, ServicePrincipal, or MasterUser) to use when connecting to Power BI datasets. ### Metadata Synchronization -- **Warn when local metadata is out-of-sync with deployed model**: When checked, an information bar is displayed inside Tabular Editor, whenever you have made local changes to the model that have not yet been saved to Analysis Services. For example, if you're wondering why a DAX query or a Pivot Grid does not produce the expected result, this could be due to a measure expression being changed in Tabular Editor without saving the change to Analysis Services. The bar disappears when you hit save (Ctrl+S). Uncheck this if you get tired of seeing the information bar. -- **Track external model changes**: Just like Power BI Desktop can detect when an external tool makes a change to the data model, so too can Tabular Editor. In other words, when this is checked, and another user or application makes a change to the model *on a local instance of Analysis Services*, Tabular Editor will receive a notification. - - **Refresh local Tabular Object Model metadata automatically**: Check this if you want the notification from above to actually trigger a refresh of the metadata inside Tabular Editor. +These settings control the behavior of Tabular Editor 3 when model metadata is loaded from a database on an instance of Analysis Services. The settings specify how Tabular Editor 3 should deal with metadata changes applied to the database from outside the application. + +##### *Warn when local metadata is out-of-sync with deployed model* (enabled) + +When checked, an information bar is displayed inside Tabular Editor, whenever you have made local changes to the model that have not yet been saved to Analysis Services. For example, if you're wondering why a DAX query or a Pivot Grid does not produce the expected result, this could be due to a measure expression being changed in Tabular Editor without saving the change to Analysis Services. The bar disappears when you hit save (Ctrl+S). + +##### *Track external model changes* (enabled) + +Just like Power BI Desktop can detect when an external tool makes a change to the data model, so too can Tabular Editor. This option is only relevant for local instances of Analysis Services (i.e. msmdsrv.exe processes running on the same machine as Tabular Editor). When checked, Tabular Editor starts a trace on Analysis Services and notifies you if external changes are made. + +##### *Refresh local Tabular Object Model metadata automatically* (enabled) + +When the tracing mechanism as described above is enabled, this option allows Tabular Editor to automatically refresh the model metadata when an external change is detected. This is useful if you often switch back and forth between Power BI Desktop and Tabular Editor 3. + +##### *Cleanup orphaned Tabular Editor traces* + +Normally, Tabular Editor 3 should automatically stop and remove any AS traces started due to the settings above. However, if the application was shut down prematurely, the traces may never be stopped. By clicking this button, all AS traces started by any instance of Tabular Editor will be removed. + +> [!NOTE] +> The cleanup button is only available when Tabular Editor is connected to an instance of Analysis Services. ### Best Practice Analyzer -- **Scan for Best Practice violations in the background** If unchecked, you will have to explicitly run a Best Practice Analysis from inside the Best Practice Analyzer tool window, to view if there are any violations. If checked, the scan happens continuously on a background thread whenever changes are made. For very large models, or models with very complex Best Practice rules, this may cause issues. +##### *Scan for Best Practice violations in the background* (enabled) + +If unchecked, you will have to explicitly run a Best Practice Analysis from inside the Best Practice Analyzer tool window, to view if there are any violations. If checked, the scan happens continuously on a background thread whenever changes are made. For very large models, or models with very complex Best Practice rules, this may cause issues. + +##### *Built-in BPA rules* (enabled for new users) + +Choose whether to enable, disable, or be prompted about using Tabular Editor's built-in Best Practice Analyzer rules. The built-in rules cover key best practices across formatting, metadata, model layout, DAX expressions, and translations. New installations will have built-in rules enabled by default. + +### DAX Formula Fix-up + +##### *Enable formula fix-up* (enabled) + +Automatically adjusts references in DAX expressions when objects are renamed or moved. This feature ensures that your DAX code remains valid when you reorganize your model. + +##### *Enable formula fix-up on paste* (enabled) + +Automatically adjusts references in DAX expressions when pasting objects. This is useful when copying measures or calculated columns between tables or models. + +### Direct Lake + +##### *Auto-refresh on save* (enabled) + +Automatically refresh Direct Lake tables when saving changes to ensure data is current. This ensures that your Direct Lake model stays in sync with the underlying data source. ## Tabular Editor > Updates and Feedback -![image](https://user-images.githubusercontent.com/8976200/104601469-92926a80-567a-11eb-9499-1d1c8d967c72.png) +![Placeholder: Screenshot of Updates and Feedback preferences page] + +##### *Check for updates on start-up* (enabled) + +When checked, Tabular Editor will check for new versions when the application starts. This ensures you stay up to date with the latest features and bug fixes. + +##### *Check for major updates only* (disabled) + +When checked, only major version updates will trigger notifications. Minor and patch updates will be ignored. + +##### *Help improve Tabular Editor by collecting anonymous usage data* (enabled) + +Data does not contain any personally identifiable information, nor any information about the structure or content of your data models. If you would still like to opt out of telemetry, uncheck this. + +##### *Send error reports* (enabled) + +In cases of crashes, Tabular Editor displays an option for sending a crash report when this is checked. Crash reports are very helpful when debugging, so please leave this checked if you don't mind! + +## Tabular Editor > Deployment + +![Placeholder: Screenshot of Deployment preferences page] + +Configure which types of objects are deployed by default when using the deployment wizard: + +##### *Deploy data sources* (disabled) + +Include data source definitions when deploying. Enable this if you want data source connection strings and settings to be deployed along with your model changes. + +##### *Deploy partitions* (disabled) + +Include partition definitions when deploying. Enable this if you want partition configurations to be deployed along with your model changes. + +##### *Deploy refresh policy partitions* (disabled) -- **Check for updates on start-up**: Pretty self-explanatory. Update notifications will not be sent during the public preview period, and the "Check for updates" button below also does not work at the moment. -- **Help improve Tabular Editor by collecting anonymous usage data**: Data does not contain any personally identifiable information, nor any information about the structure or content of your data models. If you would still like to opt out of telemetry, uncheck this. -- **Send error reports**: In cases of crashes, Tabular Editor displays an option for sending a crash report when this is checked. Crash reports are very helpful when debugging, so please leave this checked if you don't mind! +Include incremental refresh policy partitions when deploying. This controls whether partitions created by incremental refresh policies are deployed. + +##### *Deploy model roles* (disabled) + +Include role definitions when deploying. Enable this if you want Row-Level Security (RLS) and Object-Level Security (OLS) roles to be deployed. + +##### *Deploy model role members* (disabled) + +Include role member assignments when deploying. Enable this if you want user and group assignments to security roles to be deployed. + +##### *Deploy shared expressions* (disabled) + +Include shared expressions (M expressions) when deploying. Enable this if you want Power Query shared expressions to be deployed. + +### Deployment Metadata + +##### *Annotate deployment metadata* (disabled) + +Add deployment timestamp and user information as annotations on deployed objects. This can be useful for tracking when and by whom model changes were deployed. + +### Backup Settings + +##### *Backup on save* (enabled) + +Create a backup of the model when saving changes locally. This provides a safety net in case you need to revert changes. + +##### *Save backup location* + +Specify the folder where save backups are stored. By default, backups are not created unless a location is specified. + +##### *Backup on deploy* (enabled) + +Create a backup of the target model before deploying changes. This allows you to restore the previous version if needed. + +##### *Backup location* + +Specify the folder where deployment backups are stored. By default, backups are not created unless a location is specified. + +## Tabular Editor > Defaults + +![Placeholder: Screenshot of Defaults preferences page] + +##### *New model compatibility level* (1600) + +Set the default compatibility level for newly created models. Compatibility level 1600 corresponds to SQL Server 2022 and Power BI. + +##### *Use latest compatibility level as default* (enabled) + +Automatically use the latest available compatibility level for new models. When enabled, this overrides the specific compatibility level setting above. + +##### *New models use workspace database* (enabled) + +When creating a new model, automatically create a workspace database on Analysis Services. This allows you to immediately test and query your model during development. + +##### *Default save mode* (AlwaysAsk) + +Choose whether to always save as a file (.bim), folder (multiple JSON files), TMDL (Tabular Model Definition Language), or always ask when saving. Options: AlwaysAsk, File, Folder, TMDL. + +##### *Use PBIX file name when saving to disk* (enabled) + +When saving a model loaded from a PBIX file, use the PBIX filename as the default. This maintains naming consistency between Power BI files and saved model metadata. + +##### *Create user options for new models* (enabled) + +Automatically create .tmuo (Tabular Model User Options) files for new models. These files store user-specific settings like diagram layouts and window positions. ## Tabular Editor > Keyboard -![image](~/content/assets/images/keyboard-mappings.png) +![Keyboard mappings](~/content/assets/images/keyboard-mappings.png) + +Configure keyboard shortcuts for all Tabular Editor commands. Use the search functionality to quickly find specific commands and assign or modify their keyboard shortcuts to match your preferred workflow. + +## Tabular Editor > TOM Explorer View + +![Tom Explorer Settings](~/content/assets/images/tom-explorer-settings.png) + +Control which objects and properties are visible in the TOM (Tabular Object Model) Explorer: + +##### *Display folders* (enabled) + +Show or hide display folder groupings. When enabled, objects are organized into their display folder hierarchy. + +##### *Hidden objects* (disabled) + +Show or hide objects marked as hidden in the model. Enable this if you need to work with hidden tables, columns, or measures. + +##### *All object types* (enabled) + +Show all object types in the explorer tree. When disabled, only the most common object types are shown. + +##### *Sort alphabetically* (enabled) + +Sort objects alphabetically instead of by creation order. This makes it easier to find specific objects in large models. + +##### *Show measures* (enabled) + +Display measures in the explorer tree. + +##### *Show columns* (enabled) + +Display columns in the explorer tree. + +##### *Show hierarchies* (enabled) + +Display hierarchies in the explorer tree. + +##### *Show partitions* (enabled) + +Display partitions in the explorer tree. + +##### *Show metadata information* (disabled) + +Display additional metadata properties in tooltips and property grid. This includes information like lineage tags, creation timestamps, and other technical metadata. + +##### *Show full branch* (disabled) + +When filtering the TOM Explorer, by default Tabular Editor 3 shows all items in the hierarchy that matches the filter string, including their parents. If you want to see all child items as well (even though these might not match the filter string), enable this option. + +##### *Always show delete warnings* (disabled) + +If you prefer Tabular Editor 3 to prompt you to confirm all object deletions, enable this setting. Otherwise, Tabular Editor 3 will only prompt you to confirm multi-object deletions, or deletions of objects that are referenced by other objects. + +> [!NOTE] +> All delete operations in Tabular Editor 3 can be undone by hitting CTRL+Z. + +### Column Preferences + +Configure which columns are visible in multi-column views and their display order. + +## Tabular Editor > Copy/Paste + +![Placeholder: Screenshot of Copy/Paste preferences page] + +Control what metadata is included when copying objects: + +##### *Include translations* (enabled) + +Copy translation metadata with objects. When enabled, any translations defined for the copied object will also be copied. + +##### *Include perspectives* (enabled) + +Copy perspective membership with objects. When enabled, the copied object will belong to the same perspectives as the original. + +##### *Include RLS* (enabled) + +Copy Row-Level Security expressions with objects. This applies when copying tables that have RLS rules defined. + +##### *Include OLS* (enabled) + +Copy Object-Level Security settings with objects. This applies when copying objects that have OLS restrictions. + +## Tabular Editor > Perspectives + +![Placeholder: Screenshot of Perspectives preferences page] + +Control how perspective membership is handled: + +##### *Inherit perspective membership for new objects* (disabled) + +Newly created objects automatically inherit perspective membership from their parent. For example, a new measure would automatically be added to the same perspectives as its parent table. + +##### *Inherit perspective membership for relocated objects* (disabled) + +Objects that are moved inherit perspective membership from their new parent. This is useful when reorganizing your model structure. + +##### *Inherit when adding table to perspective* (enabled) + +Automatically add all table objects (columns, measures, hierarchies) when a table is added to a perspective. + +##### *Inherit when removing table from perspective* (enabled) + +Automatically remove all table objects when a table is removed from a perspective. + +## Tabular Editor > Schema Compare + +![Placeholder: Screenshot of Schema Compare preferences page] + +Configure which changes are ignored during schema comparison when updating table schemas: + +##### *Ignore Import mode changes* (disabled) + +Don't flag changes to Import mode properties. Enable this if you want to ignore changes between Import, DirectQuery, and Dual modes during schema comparison. + +##### *Ignore data type changes* (disabled) + +Don't flag column data type changes. Enable this if you want to ignore data type changes during schema comparison. + +##### *Ignore description changes* (disabled) + +Don't flag changes to object descriptions. Enable this if you don't want to see description changes in the schema comparison. + +##### *Ignore decimal to double changes* (disabled) + +Don't flag changes between decimal and double data types. This is useful when working with data sources that don't distinguish between these types. + +##### *Prioritize Analysis Services schema detector* (disabled) + +Use Analysis Services metadata as the source of truth for schema detection. When enabled, Tabular Editor will query the Analysis Services instance directly instead of using the data source provider's schema information. + +## Tabular Editor > Save to Folder/File + +![Placeholder: Screenshot of Save to Folder preferences page] + +### Serialization Mode + +##### *Use TMDL format* (disabled) + +Save model metadata using the Tabular Model Definition Language (TMDL) format instead of JSON. TMDL is the modern format recommended for version control and collaboration. + +##### *Use recommended serialization settings* (enabled) + +Apply recommended settings for folder-based serialization (overrides custom settings). When enabled, Tabular Editor uses best practices for saving models to folders, optimized for version control. + +### Legacy (JSON) Serialization Settings + +##### *Prefix filenames* (disabled) + +Add numeric prefixes to filenames for ordering. This can help maintain a consistent file order in file explorers. + +##### *Local relationships* (enabled) + +Store relationship definitions with individual tables instead of in a central location. This makes it easier to see which relationships belong to each table when using version control. + +##### *Local perspectives* (enabled) + +Store perspective membership with individual objects instead of in a central location. This reduces merge conflicts in version control. + +##### *Local translations* (enabled) + +Store translations with individual objects instead of in a central location. This reduces merge conflicts in version control. + +##### *Levels* + +Select which object types to serialize at different folder levels. This allows you to organize your model files into a hierarchical structure. + +##### *Ignore inferred objects* (enabled) + +Don't serialize objects that are automatically inferred by the engine. This reduces clutter in saved metadata. + +##### *Ignore inferred properties* (enabled) + +Don't serialize properties that are automatically inferred by the engine. This keeps saved metadata clean and focused on explicitly set values. + +##### *Ignore timestamps* (enabled) + +Don't serialize timestamp metadata. This is highly recommended for version control as it prevents unnecessary changes in every commit. + +##### *Ignore lineage tags* (disabled) + +Don't serialize Power BI lineage tag metadata. Enable this if you don't want lineage information in your saved metadata. + +##### *Ignore privacy settings* (disabled) + +Don't serialize data source privacy settings. Enable this if you manage privacy settings separately. + +##### *Include sensitive data* (disabled) + +Include sensitive information like passwords in serialized metadata. This is not recommended for security reasons. + +##### *Ignore incremental refresh partitions* (disabled) + +Don't serialize partitions created by incremental refresh policies. Enable this if you want incremental refresh to be managed separately from your saved metadata. + +##### *Split multiline strings* (enabled) + +Split long string values across multiple lines for better readability in version control. This makes it easier to see changes in DAX expressions and other long text properties. + +##### *Sort arrays* (disabled) -## Data Browsing > Pivot Grid / DAX Query +Sort array elements alphabetically for consistent serialization. This can reduce meaningless differences in version control, but may change the logical order of some elements. -![image](https://user-images.githubusercontent.com/8976200/104601874-0df41c00-567b-11eb-8ba1-41a992e5664f.png) +### TMDL Serialization Settings -More configuration options will certainly follow at some point, but this setting allows you to indicate whether new Pivot Grids or DAX Query windows will automatically be refreshed, by default, when model changes are saved to Analysis Services. You can change this behavior on a per-window basis by toggling the "Auto-execute" button as seen on the screenshot below: +##### *Indentation mode* (tabs) -![image](https://user-images.githubusercontent.com/8976200/104602109-56abd500-567b-11eb-9e8f-32ab58390449.png) +Choose between tabs or spaces for indentation in TMDL files. Tabs are the default and recommended option. -This feature is super-useful when debugging a measure for example: Update the measure expression in one window, while having a Pivot Grid or a DAX query that uses that measure open in another window. Whenever you hit CTRL+S, the Pivot Grids or DAX Queries are automatically refreshed to immediately show the impact of the change you made. +##### *Indentation spaces* (4) + +When using spaces, specify the number of spaces per indentation level. + +## Data Browsing > General + +![Placeholder: Screenshot of Data Browsing General preferences page] + +##### *Auto-refresh data preview* (enabled) + +Automatically refresh table preview windows when model changes are saved. This feature is super-useful when debugging - update an expression in one window while having a data preview open in another. Whenever you hit CTRL+S, the preview is automatically refreshed. + +##### *Auto-execute DAX queries* (enabled) + +Automatically execute DAX queries when model changes are saved. Similar to auto-refresh data preview, this allows you to see the immediate impact of changes to measures or calculated columns. + +##### *DAX query smart selection* (enabled) + +When executing a partial selection in a DAX query, intelligently determine the query context. This allows you to execute just a portion of your query for testing. + +##### *Keep filtering and sorting in DAX query results* (WhenQueryUnchanged) + +Control whether to preserve grid filters and sorting when re-executing queries: +- **Never**: Sorting and filtering are always reset when a query is executed +- **WhenQueryUnchanged**: Sorting and filtering are reset only when the query is modified +- **Always**: Sorting and filtering are never reset if the columns still exist + +##### *Direct query max rows* (100) + +Maximum number of rows to retrieve in Direct Query mode. Adjust this if you need to preview more data, but be mindful of performance. + +##### *DAX query max rows* (1000) + +Maximum number of rows to retrieve for DAX queries. Increase this if you need to analyze larger result sets. + +## Data Browsing > Pivot Grid + +![Placeholder: Screenshot of Pivot Grid preferences page] + +##### *Auto-refresh pivot grid* (enabled) + +Automatically refresh pivot grids when model changes are saved. Just like with DAX queries, this allows you to immediately see the impact of changes to measures. + +##### *Pivot grid customization default layout* (StackedDefault) + +Choose the default layout for the pivot grid field list. Options include: +- **StackedDefault**: Fields and areas in a single stacked panel +- **StackedSideBySide**: Fields and areas in side-by-side panels +- **TopPanelOnly**: Field list at the top only +- **BottomPanelOnly2by2**: Field list in a 2x2 grid at the bottom +- **BottomPanelOnly1by4**: Field list in a 1x4 layout at the bottom + +##### *Show all fields in pivot customization* (enabled) + +Display all available fields in the pivot grid field list by default, including hidden fields. + +##### *Pivot header word wrap* (enabled) + +Enable word wrapping in pivot grid headers. This makes long field names more readable. + +##### *Warn if pivot grid fields mismatch* (enabled) + +Show a warning when pivot grid field definitions don't match the current model. This can happen if you've deleted or renamed fields used in a saved pivot grid. + +##### *Always show pivot grid field list* (enabled) + +Keep the pivot grid field list visible by default. Disable this if you prefer more screen space for the pivot grid itself. ## DAX Editor > General -![image](https://user-images.githubusercontent.com/8976200/104602381-a7233280-567b-11eb-8151-cf810b7cb748.png) +![Dax Editor General](~/content/assets/images/dax-editor-general.png) + +Tabular Editor 3's DAX editor is highly configurable. This page provides settings for general configuration of the DAX editor: + +##### *Line numbers* (enabled) + +Display line numbers in the left margin of the editor. + +##### *Code folding* (enabled) + +Enable collapsible regions in DAX code for better readability. Make sure you try out this feature! + +##### *Visible whitespace* (disabled) + +Show dots for spaces and arrows for tabs. This can be helpful when diagnosing indentation issues. + +##### *Indentation guides* (enabled) + +Display vertical lines to show indentation levels. + +##### *Use tabs* (disabled) + +When checked, a tab character (`\t`) is inserted whenever the TAB button is hit. Otherwise, a number of spaces corresponding to the *Indent width* setting is inserted. + +##### *Comment style* (slashes) + +DAX supports line comments that use slashes (`//`) or hyphens (`--`). This setting determines which style of comment is used when Tabular Editor 3 generates DAX code. + +##### *DAX function documentation* + +Use this setting to specify which URL to launch in the default web browser, whenever you hit F12 while the cursor is on a DAX function. Options include https://dax.guide (recommended) and Microsoft's official documentation. -Now we're starting to get to the good stuff! This page provides a number of settings for general configuration of the DAX editor. Make sure you try out the "Code folding" feature! +### DAX Settings -- **DAX function documentation**: Use this setting to specify which URL to launch in the default web browser, whenever you hit F12 while the cursor is on a DAX function. I recommend using https://dax.guide but some people tend to like Microsoft's official documentation (which is available in the drop down). +##### *Locale* + +Specify the locale for DAX functions and formatting. + +##### *Analysis Services version settings* + +These settings are relevant only when Tabular Editor 3 cannot determine the version of Analysis Services used, as is the case when a Model.bim file is loaded directly. In this case, Tabular Editor tries to guess which version the model will be deployed to, based on the compatibility level. If Tabular Editor reports incorrect semantic/syntax errors, you may need to tweak these settings. ## DAX Editor > Auto Formatting -![image](https://user-images.githubusercontent.com/8976200/104602767-084b0600-567c-11eb-88ea-018e3d436f68.png) +![Auto Formatting Settings](~/content/assets/images/auto-formatting-settings.png) + +The DAX Editor is **very** powerful and helps you produce beautiful, readable DAX code as you type. + +##### *Auto format code as you type* (enabled) + +This option will automatically apply certain formatting rules whenever certain keystrokes occur. For example, when a parenthesis is closed, this feature will ensure that everything within the parentheses is formatted according to the other settings on this page. + +##### *Auto-format function calls* (enabled) + +This option specifically controls whether automatic formatting of function calls (spacing between arguments and parentheses) should happen when a parenthesis is closed. + +##### *Auto-indent* (enabled) + +This option automatically indents function arguments when a line break is inserted within a function call. + +##### *Auto-brace* (enabled) + +This option automatically inserts the closing brace or quote whenever an opening brace or quote is entered. + +##### *Wrap selection* (enabled) + +When enabled, this option automatically wraps the current selection with the closing brace, when an opening brace is entered. + +### Formatting Rules + +These settings control how DAX code whitespace is formatted, both when auto-formatting occurs and when code is manually formatted. + +##### *Space after functions* (disabled) + +# [Enabled](#tab/space-after-function-on) + +```DAX +SUM ( 'Sales'[Amount] ) +``` + +# [Disabled](#tab/space-after-function-off) + +```DAX +SUM( 'Sales'[Amount] ) +``` + +*** + +##### *Newline after functions* (disabled) + +Applies only when a function call needs to be broken across multiple lines. + +# [Enabled](#tab/newline-after-function-on) + +```DAX +SUM +( + 'Sales'[Amount] +) +``` + +# [Disabled](#tab/newline-after-function-off) + +```DAX +SUM( + 'Sales'[Amount] +) +``` + +*** + +##### *Pad parentheses* (enabled) + +# [Enabled](#tab/pad-parentheses-on) + +```DAX +SUM( Sales[Amount] ) +``` + +# [Disabled](#tab/pad-parentheses-off) + +```DAX +SUM(Sales[Amount]) +``` + +*** + +##### *Long format line limit* (120) + +The maximal number of characters to keep on a single line before an expression is broken across multiple lines, when using the **Format DAX (long lines)** option. + +##### *Short format line limit* (60) + +The maximal number of characters to keep on a single line before an expression is broken across multiple lines, when using the **Format DAX (short lines)** option. + +### Casings and Quotes + +In addition to formatting the DAX code whitespace, Tabular Editor 3 can also fix object references and function/keyword casings. + +##### *Fix measure/column qualifiers* (enabled) + +When checked, table prefixes are automatically removed from measure references, and automatically inserted on column references. + +##### *Preferred keyword casing* (UPPER) -As can be seen from the screenshot above, the new DAX Editor is **very** powerful and helps you produce beautiful, readable DAX code, as you type. Feel free to experiment with these settings to figure out what editor behavior works best for you, and don't forget to provide [feedback](https://github.com/TabularEditor3/PublicPreview/issues/new) if something does not work as you expect, or if you have any ideas for additional improvements. +This setting allows you to change the casing used for keywords, such as `ORDER BY`, `VAR`, `EVALUATE`, etc. + +##### *Preferred function casing* (UPPER) + +This setting allows you to change the casing used for functions, such as `CALCULATE(...)`, `SUM(...)`, etc. + +##### *Fix keyword/function casing* (enabled) + +When checked, casing of keywords and functions is automatically corrected whenever code is auto-formatted or manually formatted. + +##### *Fix object reference casing* (enabled) + +DAX is a case-insensitive language. When this is enabled, references to tables, columns and measures are automatically corrected such that the casing matches the physical name of the referenced objects. + +##### *Always quote tables* (disabled) + +Referencing certain table names do not require surrounding single quotes in DAX. However, if you prefer table references to always be quoted, you can check this option. + +##### *Always prefix extension columns* (disabled) + +Extension columns can be defined without a table name. When checked, the DAX editor will always add the table prefix to an extension column. ## DAX Editor > Code Assist -![image](https://user-images.githubusercontent.com/8976200/104603313-90311000-567c-11eb-853d-6ca6e0f0ed07.png) +![Placeholder: Screenshot of DAX Editor Code Assist preferences page] + +On this page, you can configure the two most important Code Assist features, namely calltips (aka. "parameter info") and auto-complete. + +##### *Auto-complete trigger* + +Control when the auto-complete list appears. Options include automatic triggering after typing a certain number of characters, or manual triggering with CTRL+Space. + +##### *Calltip trigger* + +Control when parameter information appears. Options include automatic triggering when opening a function parenthesis, or manual triggering. + +##### *Incremental search* (enabled) + +Enable fuzzy/incremental searching in auto-complete. This allows you to find items by typing parts of their name, not just the beginning. + +##### *Suggest table names* (enabled) + +Include table names in auto-complete suggestions. + +##### *Always quote table names* (disabled) + +Automatically quote table names in suggestions, even when not required. + +##### *Show first letter only* (disabled) + +Only show items starting with the typed letter. Disable this to use incremental search instead. + +## DAX Editor > Code Actions + +![Placeholder: Screenshot of DAX Editor Code Actions preferences page] + +Configure automatic code improvement suggestions: + +##### *Variable prefixes* + +Define acceptable prefixes for variable names (e.g., `_`, `__`, `$`, `var_`, `var`, `v_`, `v`, `VAR_`). Code actions will suggest adding these prefixes to variable names that don't follow the convention. + +##### *Column prefixes* + +Define acceptable prefixes for temporary column names (e.g., `@`, `$`, `_`, `x`, `x_`). Code actions will suggest adding these prefixes to temporary column names that don't follow the convention. + +## SQL Editor / M Editor / C# Editor + +![Placeholder: Screenshot of SQL/M/C# Editor preferences pages] + +Similar configuration options are available for SQL, M (Power Query), and C# script editors, including: +- Syntax highlighting and color schemes +- Auto-formatting options +- Code assist and auto-complete features +- Comment styles and indentation preferences + +Each editor can be customized independently to match your preferred coding style. + +## DAX Formatter + +![Placeholder: Screenshot of DAX Formatter preferences page] + +##### *DAX formatter consent* (disabled) + +Agree to send DAX code to the external DAX formatting service (www.daxformatter.com). When enabled, you can use this service to format DAX code according to community standards. + +##### *DAX formatter request timeout* (5000) + +Timeout in milliseconds for DAX formatter requests. Increase this if you frequently get timeout errors when using the DAX formatter. + +## DAX Optimizer Integration + +![Placeholder: Screenshot of DAX Optimizer Integration preferences page] + +Configure integration with DAX Optimizer (Enterprise Edition only): + +##### *Connect automatically* (null/prompt) + +Automatically connect to DAX Optimizer when available. When not set, you will be prompted the first time. + +##### *Obfuscate VPAX files* (enabled) + +Anonymize model metadata when sending to DAX Optimizer. This protects sensitive information like table and column names while still allowing analysis. + +##### *Obfuscation dictionary directory* (`%LocalAppData%\TabularEditor3\DaxOptimizer`) + +Specify where obfuscation dictionaries are stored. The dictionary maintains consistent obfuscation across multiple analyses. + +## VertiPaq Analyzer + +![Placeholder: Screenshot of VertiPaq Analyzer preferences page] + +##### *Include TOM metadata* (enabled) + +Include Tabular Object Model metadata in VertiPaq Analyzer statistics. This provides richer information about your model structure. + +##### *Read stats from data* (enabled) + +Read statistics by scanning actual data (more accurate but slower). When disabled, only metadata is used. + +##### *Direct Lake extraction mode* (ResidentOnly) + +How to extract statistics from Direct Lake models: +- **ResidentOnly**: Only analyze data currently loaded in memory +- **All**: Include non-resident data (slower, may trigger data loading) + +##### *Read stats from Dynamic Management Views* (disabled) + +Use DMVs to gather statistics (faster but less accurate). This is an alternative to reading from data. + +##### *Relationship sample rows* (3) + +Number of rows to sample when analyzing relationships. Higher values provide more accuracy but take longer. + +##### *Column batch size* (50) + +Number of columns to analyze in each batch. Adjust this based on your model size and performance requirements. + +## Power BI Integration + +![Placeholder: Screenshot of Power BI Integration preferences page] + +##### *Power BI endpoint base URL* (`https://api.powerbi.com`) + +The base URL for Power BI API calls. Change this if you're working with a sovereign cloud or custom environment. + +##### *Fabric endpoint base URL* (`https://api.fabric.microsoft.com`) + +The base URL for Microsoft Fabric API calls. Change this if you're working with a sovereign cloud or custom environment. + +##### *Use embedded browser for authentication* (enabled) + +Use the embedded browser for OAuth authentication instead of the system browser. This provides a more integrated experience. + +## Proxy Settings + +![Placeholder: Screenshot of Proxy Settings preferences page] + +##### *Proxy type* (None) + +Choose between: +- **None**: No proxy configuration +- **System**: Use system proxy settings +- **Custom**: Specify custom proxy configuration + +##### *Proxy address* + +The address of the proxy server (e.g., `http://proxy.company.com:8080`). + +##### *Proxy user* + +Username for proxy authentication if required. + +##### *Proxy password* + +Password for proxy authentication (stored encrypted). + +##### *Use default credentials* (enabled) + +Use the current Windows credentials for proxy authentication. This implements the [same behavior as Power BI Desktop](https://docs.microsoft.com/en-us/power-bi/connect-data/desktop-troubleshooting-sign-in#using-default-system-credentials-for-web-proxy). + +##### *Bypass proxy on local* (enabled) + +Bypass the proxy for local addresses. This is recommended for performance. + +##### *Proxy bypass list* + +List of addresses that should bypass the proxy (e.g., `localhost;*.company.local`). + +## Next Steps -On this page, you can configure the two most important Code Assist features, namely calltips (aka. "parameter info") and auto-complete. The settings mostly control under what circumstances the calltips and auto-complete box appears on the screen. However, for the auto-complete, there are a number of features for controlling which items are suggested, whether table names should always be quoted, incremental search, etc. +For a user-friendly guide to the most commonly adjusted preferences, see the getting started guide (Personalizing TE3)[xrefid: personalizing-te3]. From 9f7e0737fd4d96238fa6e3172da7df9e5fa6eb0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20L=C3=B8nskov?= Date: Mon, 19 Jan 2026 13:29:33 +0100 Subject: [PATCH 12/14] Restore KB files from origin/main after rebase --- ...a-avoid-invalid-characters-descriptions.md | 123 +++++++++++++++ .../kb/bpa-avoid-invalid-characters-names.md | 125 +++++++++++++++ ...pa-avoid-provider-partitions-structured.md | 96 ++++++++++++ content/kb/bpa-calculation-groups-no-items.md | 102 +++++++++++++ content/kb/bpa-data-column-source.md | 93 +++++++++++ content/kb/bpa-date-table-exists.md | 113 ++++++++++++++ content/kb/bpa-do-not-summarize-numeric.md | 119 +++++++++++++++ content/kb/bpa-expression-required.md | 98 ++++++++++++ content/kb/bpa-format-string-columns.md | 84 ++++++++++ content/kb/bpa-format-string-measures.md | 105 +++++++++++++ content/kb/bpa-hide-foreign-keys.md | 118 ++++++++++++++ .../kb/bpa-many-to-many-single-direction.md | 115 ++++++++++++++ content/kb/bpa-perspectives-no-objects.md | 89 +++++++++++ .../kb/bpa-powerbi-latest-compatibility.md | 86 +++++++++++ content/kb/bpa-relationship-same-datatype.md | 92 +++++++++++ content/kb/bpa-remove-auto-date-table.md | 106 +++++++++++++ content/kb/bpa-remove-unused-data-sources.md | 117 ++++++++++++++ content/kb/bpa-set-isavailableinmdx-false.md | 91 +++++++++++ ...bpa-set-isavailableinmdx-true-necessary.md | 144 ++++++++++++++++++ content/kb/bpa-specify-application-name.md | 70 +++++++++ content/kb/bpa-translate-descriptions.md | 99 ++++++++++++ content/kb/bpa-translate-display-folders.md | 104 +++++++++++++ content/kb/bpa-translate-hierarchy-levels.md | 92 +++++++++++ content/kb/bpa-translate-perspectives.md | 87 +++++++++++ content/kb/bpa-translate-visible-names.md | 99 ++++++++++++ content/kb/bpa-trim-object-names.md | 103 +++++++++++++ .../kb/bpa-visible-objects-no-description.md | 106 +++++++++++++ 27 files changed, 2776 insertions(+) create mode 100644 content/kb/bpa-avoid-invalid-characters-descriptions.md create mode 100644 content/kb/bpa-avoid-invalid-characters-names.md create mode 100644 content/kb/bpa-avoid-provider-partitions-structured.md create mode 100644 content/kb/bpa-calculation-groups-no-items.md create mode 100644 content/kb/bpa-data-column-source.md create mode 100644 content/kb/bpa-date-table-exists.md create mode 100644 content/kb/bpa-do-not-summarize-numeric.md create mode 100644 content/kb/bpa-expression-required.md create mode 100644 content/kb/bpa-format-string-columns.md create mode 100644 content/kb/bpa-format-string-measures.md create mode 100644 content/kb/bpa-hide-foreign-keys.md create mode 100644 content/kb/bpa-many-to-many-single-direction.md create mode 100644 content/kb/bpa-perspectives-no-objects.md create mode 100644 content/kb/bpa-powerbi-latest-compatibility.md create mode 100644 content/kb/bpa-relationship-same-datatype.md create mode 100644 content/kb/bpa-remove-auto-date-table.md create mode 100644 content/kb/bpa-remove-unused-data-sources.md create mode 100644 content/kb/bpa-set-isavailableinmdx-false.md create mode 100644 content/kb/bpa-set-isavailableinmdx-true-necessary.md create mode 100644 content/kb/bpa-specify-application-name.md create mode 100644 content/kb/bpa-translate-descriptions.md create mode 100644 content/kb/bpa-translate-display-folders.md create mode 100644 content/kb/bpa-translate-hierarchy-levels.md create mode 100644 content/kb/bpa-translate-perspectives.md create mode 100644 content/kb/bpa-translate-visible-names.md create mode 100644 content/kb/bpa-trim-object-names.md create mode 100644 content/kb/bpa-visible-objects-no-description.md diff --git a/content/kb/bpa-avoid-invalid-characters-descriptions.md b/content/kb/bpa-avoid-invalid-characters-descriptions.md new file mode 100644 index 00000000..abd0bd25 --- /dev/null +++ b/content/kb/bpa-avoid-invalid-characters-descriptions.md @@ -0,0 +1,123 @@ +--- +uid: kb.bpa-avoid-invalid-characters-descriptions +title: Avoid Invalid Characters in Descriptions +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule preventing display and deployment issues by identifying control characters in object descriptions. +--- + +# Avoid Invalid Characters in Descriptions + +## Overview + +This best practice rule identifies objects whose descriptions contain invalid control characters (non-printable characters excluding standard whitespace). These characters can cause display problems, metadata corruption, and deployment failures. + +- Category: Error Prevention +- Severity: High (3) + +## Applies To + +- Tables +- Measures +- Hierarchies +- Levels +- Perspectives +- Partitions +- Data Columns +- Calculated Columns +- Calculated Table Columns +- KPIs +- Model Roles +- Calculation Groups +- Calculation Items + +## Why This Matters + +Control characters in descriptions cause various issues: + +- **Display corruption**: Tooltips and documentation panels may show garbled text +- **Metadata problems**: TMSL/XMLA export may produce invalid XML +- **Deployment failures**: Power BI Service or Analysis Services may reject the model +- **Documentation issues**: Generated documentation may break formatting +- **Encoding errors**: Cross-platform synchronization problems +- **User confusion**: Invisible characters create confusing or corrupted descriptions + +Standard whitespace (spaces, newlines, tabs) is acceptable, but non-printable control characters should be removed. + +## When This Rule Triggers + +The rule triggers when an object's description contains control characters that are not standard whitespace: + +```csharp +Description.ToCharArray().Any(char.IsControl(it) and !char.IsWhiteSpace(it)) +``` + +This detects problematic characters while allowing legitimate whitespace formatting. + +## How to Fix + +### Automatic Fix + +This rule includes an automatic fix that replaces invalid characters with spaces: + +```csharp +Description = string.Concat( + it.Description.ToCharArray().Select( + c => (char.IsControl(c) && !char.IsWhiteSpace(c)) ? ' ' : c + ) +) +``` + +To apply: +1. In the **Best Practice Analyzer** select flagged objects +3. Click **Apply Fix** + +### Manual Fix + +1. In **TOM Explorer**, select the object +2. In **Properties** pane, locate the **Description** field +3. Edit the description to remove invalid characters +4. Save changes + +## Common Causes + +### Cause 1: Copy/Paste from Rich Text + +Copying descriptions from Word documents, web pages, or emails can introduce hidden formatting characters. + +### Cause 2: Automated Documentation Generation + +Scripts generating descriptions may include control characters from source systems. + +### Cause 3: Data Import from External Sources + +Importing metadata that contains encoding artifacts or control codes. + +## Example + +### Before Fix + +``` +Measure: [Total Revenue] +Description: "Calculates\x00total\x0Brevenue" (contains NULL and vertical tab) +``` + +Tooltip displays: "Calculates□total□revenue" (with visible corruption) + +### After Fix + +``` +Measure: [Total Revenue] +Description: "Calculates total revenue" (control characters replaced with spaces) +``` + +Tooltip displays correctly: "Calculates total revenue" + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Avoid Invalid Characters in Names](xref:kb.bpa-avoid-invalid-characters-names) - Similar validation for object names +- [Visible Objects Should Have Descriptions](xref:kb.bpa-visible-objects-no-description) - Ensuring descriptions exist diff --git a/content/kb/bpa-avoid-invalid-characters-names.md b/content/kb/bpa-avoid-invalid-characters-names.md new file mode 100644 index 00000000..be43497c --- /dev/null +++ b/content/kb/bpa-avoid-invalid-characters-names.md @@ -0,0 +1,125 @@ +--- +uid: kb.bpa-avoid-invalid-characters-names +title: Avoid Invalid Characters in Object Names +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule preventing deployment errors by identifying control characters in object names. +--- + +# Avoid Invalid Characters in Object Names + +## Overview + +This best practice rule identifies objects whose names contain invalid control characters (non-printable characters excluding standard whitespace). These characters can cause deployment failures, rendering issues, and data corruption. + +- Category: Error Prevention +- Severity: High (3) + +## Applies To + +- Tables +- Measures +- Hierarchies +- Levels +- Perspectives +- Partitions +- Data Columns +- Calculated Columns +- Calculated Table Columns +- KPIs +- Model Roles +- Calculation Groups +- Calculation Items + +## Why This Matters + +Control characters in object names cause serious issues: + +- **Deployment failures**: Power BI Service and Analysis Services may reject models with invalid characters +- **Rendering problems**: Client tools may display garbled or invisible names +- **DAX parsing errors**: Invalid characters can break DAX expressions referencing the object +- **XML corruption**: Model metadata (TMSL/XMLA) may become malformed +- **Copy/paste issues**: Names may not transfer correctly between applications +- **Encoding problems**: Cross-platform compatibility issues + +Standard whitespace (spaces, newlines, carriage returns) is allowed, but control characters should be removed. + +## When This Rule Triggers + +The rule triggers when an object's name contains control characters that are not standard whitespace: + +```csharp +Name.ToCharArray().Any(char.IsControl(it) and !char.IsWhiteSpace(it)) +``` + +This detects problematic characters while allowing legitimate whitespace formatting. + +## How to Fix + +### Automatic Fix + +This rule includes an automatic fix that replaces invalid characters with spaces: + +```csharp +Name = string.Concat( + it.Name.ToCharArray().Select( + c => (char.IsControl(c) && !char.IsWhiteSpace(c)) ? ' ' : c + ) +) +``` + +To apply: +1. In the **Best Practice Analyzer** select flagged objects +2. Click **Apply Fix** + +### Manual Fix + +1. In **TOM Explorer**, select the object +2. In **Properties** pane, locate the **Name** field +3. Edit the name to remove invalid characters +4. Save changes + +## Common Causes + +### Cause 1: Copy/Paste from Rich Text + +Copying names from Word documents, web pages, or emails can introduce hidden formatting characters. + +### Cause 2: Automated Name Generation + +Scripts generating names may include control characters from source systems. + +### Cause 3: Data Import from External Sources + +Importing metadata that contains encoding artifacts or control codes. + +## Example + +### Before Fix + +``` +Measure Name: "Total\x00Sales" (contains NULL character) +``` + +Deployment fails with "Invalid character in object name" + +### After Fix + +``` +Measure Name: "Total Sales" (NULL replaced with space) +``` + +Deploys successfully and displays correctly in all tools. + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Avoid Invalid Characters in Descriptions](xref:kb.bpa-avoid-invalid-characters-descriptions) - Similar validation for description properties +- [Trim Object Names](xref:kb.bpa-trim-object-names) - Removing leading/trailing spaces + +## Learn More + +- [DAX Naming Rules](https://learn.microsoft.com/dax/dax-syntax-reference) diff --git a/content/kb/bpa-avoid-provider-partitions-structured.md b/content/kb/bpa-avoid-provider-partitions-structured.md new file mode 100644 index 00000000..c0f3a440 --- /dev/null +++ b/content/kb/bpa-avoid-provider-partitions-structured.md @@ -0,0 +1,96 @@ +--- +uid: kb.bpa-avoid-provider-partitions-structured +title: Avoid Provider Partitions with Structured Data Sources +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule preventing deployment errors by identifying legacy provider partitions used with structured data sources in Power BI. +--- + +# Avoid Provider Partitions with Structured Data Sources + +## Overview + +This best practice rule identifies partitions that use legacy provider-based queries (SourceType = Query) with structured data sources in Power BI models. This combination is not supported in Power BI Service and will cause deployment failures. + +- Category: Error Prevention + +- Severity: Medium (2) + +## Applies To + +- Partitions + +## Why This Matters + +Power BI Service requires structured data sources to use Power Query (M) partitions rather than legacy provider partitions. Using provider partitions with structured data sources causes: + +- **Deployment failures**: Models fail to publish to Power BI Service +- **Refresh errors**: Scheduled refresh operations fail in the service +- **Compatibility issues**: The model cannot be shared or deployed properly +- **Migration blockers**: Prevents moving from Analysis Services to Power BI + +## When This Rule Triggers + +The rule triggers when a partition meets all these conditions: + +1. `SourceType = "Query"` (legacy provider partition) +2. `DataSource.Type = "Structured"` (Power Query/M data source) +3. `Model.Database.CompatibilityMode != "AnalysisServices"` (Power BI or Azure AS) + +This combination indicates a structural mismatch that Power BI cannot process. + +## How to Fix + +### Manual Fix + +1. In **TOM Explorer**, select the affected partition +2. In **Properties** pane, note the existing query +3. Create a new **Power Query** partition with M expression +4. Delete the old provider partition after verifying the new one works + +## Common Causes + +### Cause 1: Migration from Analysis Services + +Models migrated from SQL Server Analysis Services retain legacy provider partitions. + +### Cause 2: Mixed Partition Types + +Mixing partition types during model development creates incompatible configurations. + +## Example + +### Before Fix + +``` +Partition: Sales_Partition + SourceType: Query + Query: SELECT * FROM Sales + DataSource: PowerQuerySource (Type: Structured) +``` + +**Error**: Deployment fails to Power BI Service + +### After Fix + +``` +Partition: Sales_Partition + SourceType: M + Expression: + let + Source = Sql.Database("server", "database"), + Sales = Source{[Schema="dbo",Item="Sales"]}[Data] + in + Sales + DataSource: PowerQuerySource (Type: Structured) +``` + +**Result**: Deploys successfully to Power BI Service + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher when deployed to Power BI or Azure Analysis Services. + +## Related Rules + +- [Data Column Must Have Source](xref:kb.bpa-data-column-source) - Ensuring column source mappings diff --git a/content/kb/bpa-calculation-groups-no-items.md b/content/kb/bpa-calculation-groups-no-items.md new file mode 100644 index 00000000..486293ab --- /dev/null +++ b/content/kb/bpa-calculation-groups-no-items.md @@ -0,0 +1,102 @@ +--- +uid: kb.bpa-calculation-groups-no-items +title: Calculation Groups Should Contain Items +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule identifying calculation groups without calculation items that should be populated or removed. +--- + +# Calculation Groups Should Contain Items + +## Overview + +This best practice rule identifies calculation groups that contain no calculation items. Empty calculation groups serve no purpose and should be populated or removed. + +- Category: Maintenance +- Severity: Medium (2) + +## Applies To + +- Calculation Groups + +## Why This Matters + +- **Deployment errors**: Empty groups may fail validation in Power BI Service +- **Model errors**: Can cause unexpected behavior in DAX calculations +- **Developer confusion**: Team members waste time investigating incomplete structures +- **Performance overhead**: Engine processes unnecessary metadata + +## When This Rule Triggers + +The rule triggers when a calculation group has zero calculation items: + +```csharp +CalculationItems.Count == 0 +``` + +## How to Fix + +### Option 1: Add Calculation Items + +If the calculation group has a valid business purpose: + +1. In **TOM Explorer**, expand the calculation group table +2. Expand the **Calculation Group** column +3. Right-click and select **Add Calculation Item** +4. Define the calculation item expression + +### Option 2: Delete the Calculation Group + +If no longer needed: + +1. In **TOM Explorer**, locate the calculation group table +2. Right-click the table +3. Select **Delete** + +## Common Causes + +### Cause 1: Incomplete Development + +Calculation group created during planning but not yet implemented. + +### Cause 2: Migration from Other Models + +Calculation group structure copied without items. + +### Cause 3: Refactoring + +All calculation items moved to a different calculation group. + +## Example + +### Before Fix + +``` +Calculation Group: Time Intelligence + Items: (none) ← Problem +``` + +### After Fix + +``` +Calculation Group: Time Intelligence + Items: + - Current Period: SELECTEDMEASURE() + - Year-to-Date: CALCULATE(SELECTEDMEASURE(), DATESYTD('Date'[Date])) + - Prior Year: CALCULATE(SELECTEDMEASURE(), SAMEPERIODLASTYEAR('Date'[Date])) +``` + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Perspectives Should Contain Objects](xref:kb.bpa-perspectives-no-objects) - Similar rule for empty perspectives +- [Expression Required](xref:kb.bpa-expression-required) - Ensuring calculation items have expressions + +## Learn More + +- [Calculation Groups in Tabular Models](https://learn.microsoft.com/analysis-services/tabular-models/calculation-groups) +- [Creating Calculation Groups](https://www.sqlbi.com/articles/introducing-calculation-groups/) +- [Calculation Group Patterns](https://www.sqlbi.com/calculation-groups/) diff --git a/content/kb/bpa-data-column-source.md b/content/kb/bpa-data-column-source.md new file mode 100644 index 00000000..9bc9e55b --- /dev/null +++ b/content/kb/bpa-data-column-source.md @@ -0,0 +1,93 @@ +--- +uid: kb.bpa-data-column-source +title: Data Column Must Have Source +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring data columns have a valid source column mapping to prevent refresh errors. +--- + +# Data Column Must Have Source + +## Overview + +This best practice rule identifies data columns that lack a valid `SourceColumn` property. Every data column must reference a source column from the underlying data source to function correctly during refresh. + +- Category: Error Prevention +- Severity: High (3) + +## Applies To + +- Data Columns + +## Why This Matters + +- **Refresh failures**: Data refresh operations fail with column not found errors +- **Deployment issues**: Model validation fails in Power BI Service or Analysis Services +- **Data integrity**: Column remains empty or contains stale data +- **Broken dependencies**: Measures and relationships produce incorrect results + +## When This Rule Triggers + +The rule triggers when a data column has: + +```csharp +string.IsNullOrWhitespace(SourceColumn) +``` + +## How to Fix + +### Manual Fix + +1. In **TOM Explorer**, locate the flagged data column +2. In **Properties** pane, find the `Source Column` property +3. Enter the correct source column name from your data source query +4. Verify the mapping matches the partition query + +The source column name must exactly match: +- For Power Query: Column name in M expression output +- For SQL: Column name or alias in SELECT statement +- For Direct Lake: Column name in Delta Lake table + +## Common Causes + +### Cause 1: Renamed Source Column + +Source query was modified and column renamed. + +### Cause 2: Manual Column Creation + +Column created manually without specifying source. + +### Cause 3: Copy/Paste Corruption + +Columns copied from another table without preserving metadata. + +## Example + +### Before Fix + +``` +Table: Sales +Column: ProductName (DataColumn) + SourceColumn: [empty] +``` + +Result: Refresh fails with "Column 'ProductName' not found in source query" + +### After Fix + +``` +Table: Sales +Column: ProductName (DataColumn) + SourceColumn: ProductName +``` + +Result: Column populates correctly during refresh + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Expression Required for Calculated Objects](xref:kb.bpa-expression-required) - Ensuring calculated columns have expressions diff --git a/content/kb/bpa-date-table-exists.md b/content/kb/bpa-date-table-exists.md new file mode 100644 index 00000000..97931246 --- /dev/null +++ b/content/kb/bpa-date-table-exists.md @@ -0,0 +1,113 @@ +--- +uid: kb.bpa-date-table-exists +title: Date Table Should Exist +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring your model includes a dedicated date table for proper time intelligence functionality. +--- + +# Date Table Should Exist + +## Overview + +This best practice rule verifies that your tabular model contains at least one properly configured date table. Date tables are essential for time intelligence calculations and ensuring consistent date-based filtering across your model. + +- Category: Performance + +- Severity: Medium (2) + +## Applies To + +- Model + +## Why This Matters + +A dedicated date table is essential because it: + +- **Enables time intelligence**: Functions like `DATESYTD`, `SAMEPERIODLASTYEAR`, and `TOTALYTD` require a date table +- **Ensures consistent filtering**: Provides single source of truth for date attributes +- **Improves performance**: Establishes proper calendar relationships +- **Supports custom calendars**: Enables fiscal year calculations and custom hierarchies + +Without a properly marked date table, many DAX time intelligence functions will fail or produce incorrect results. + +## When This Rule Triggers + +The rule triggers when **all** tables in your model meet the following conditions: + +1. No table has any calendars defined (`Calendars.Count = 0`) +2. No table contains a column marked as a key with `DataType = DateTime` +3. No table has `DataCategory = "Time"` + +This indicates that the model lacks a proper date dimension. + +## How to Fix + +### Option 1: Create a Date Table Using DAX + +Add a calculated table with a complete date range: + +```dax +DateTable = +ADDCOLUMNS ( + CALENDAR (DATE(2020, 1, 1), DATE(2030, 12, 31)), + "Year", YEAR([Date]), + "Quarter", "Q" & FORMAT([Date], "Q"), + "Month", FORMAT([Date], "MMMM"), + "MonthNumber", MONTH([Date]), + "Day", DAY([Date]), + "WeekDay", FORMAT([Date], "dddd") +) +``` + +### Option 2: Import from Data Source + +Create a date dimension table in your data warehouse or data source and import it into the model. + +### Mark as Date Table + +After creating the table: + +1. Select the date table in the **TOM Explorer** +2. Right-click and choose **Mark as Date Table** +3. Select the date column as the key column +4. Create relationships between the date table and your fact tables + +### Set Calendar Metadata + +Alternatively, configure the calendar metadata: + +1. Select the date table +2. In the **Properties** pane, expand **Calendars** +3. Add a new calendar and configure the date column reference + +## Example + +A typical date table structure: + +| Date | Year | Quarter | Month | MonthNumber | Day | +|------|------|---------|-------|-------------|-----| +| 2025-01-01 | 2025 | Q1 | January | 1 | 1 | +| 2025-01-02 | 2025 | Q1 | January | 1 | 2 | +| ... | ... | ... | ... | ... | ... | + +Once created, establish relationships: + +``` +'DateTable'[Date] (1) -> (*) 'Sales'[OrderDate] +'DateTable'[Date] (1) -> (*) 'Orders'[ShipDate] +``` + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Remove Auto Date Table](xref:kb.bpa-remove-auto-date-table) - Removing automatic date tables that duplicate functionality + +## Learn More + +- [Create Date Tables in Power BI](https://learn.microsoft.com/power-bi/guidance/model-date-tables) +- [Time Intelligence Functions in DAX](https://learn.microsoft.com/dax/time-intelligence-functions-dax) +- [Mark as Date Table](https://learn.microsoft.com/power-bi/transform-model/desktop-date-tables) diff --git a/content/kb/bpa-do-not-summarize-numeric.md b/content/kb/bpa-do-not-summarize-numeric.md new file mode 100644 index 00000000..f29ab822 --- /dev/null +++ b/content/kb/bpa-do-not-summarize-numeric.md @@ -0,0 +1,119 @@ +--- +uid: kb.bpa-do-not-summarize-numeric +title: Set SummarizeBy to None for Numeric Columns +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule preventing incorrect default aggregations on numeric columns that should not be summed. +--- + +# Set SummarizeBy to None for Numeric Columns + +## Overview + +This best practice rule identifies visible numeric columns (Int64, Decimal, Double) that have a default aggregation behavior (`SummarizeBy`) other than `None`. Most numeric columns should not be automatically aggregated, as summing values like IDs, quantities in non-additive contexts, or codes produces meaningless results. + +- Category: Formatting + +- Severity: High (3) + +## Applies To + +- Data Columns +- Calculated Columns +- Calculated Table Columns + +## Why This Matters + +Default aggregation on inappropriate columns causes serious issues: + +- **Incorrect analysis**: Users get meaningless totals (sum of CustomerIDs, etc.) +- **Misleading dashboards**: Visualizations show wrong numbers by default +- **User confusion**: Users must manually change aggregation for every visual +- **Wrong decisions**: Business decisions based on incorrect automatic aggregations +- **Data credibility**: Users lose trust in the model and data + +Common columns that should NOT be aggregated include IDs, keys, codes, ratios, percentages, and non-additive quantities. + +## When This Rule Triggers + +The rule triggers when a column meets ALL these conditions: + +```csharp +(DataType = "Int64" or DataType="Decimal" or DataType="Double") +and +SummarizeBy <> "None" +and not (IsHidden or Table.IsHidden) +``` + +In other words: visible numeric columns that have a summarization behavior other than "None". + +## How to Fix + +### Automatic Fix + +This rule includes an automatic fix: + +```csharp +SummarizeBy = AggregateFunction.None +``` + +To apply: +1. In the **Best Practice Analyzer** select flagged objects +3. Click **Apply Fix** + +### Manual Fix + +1. In **TOM Explorer**, locate the column +2. In **Properties** pane, find **Summarize By** +3. Change from **Sum**, **Average**, **Min**, **Max**, **Count**, or **DistinctCount** to **None** +4. Save changes + +## Common Causes + +### Cause 1: Default Import Behavior + +Numeric columns default to Sum aggregation during import. + +### Cause 2: Lack of Column Review + +Models deployed without reviewing column aggregation settings. + +### Cause 3: ID Columns Not Hidden + +Numeric ID columns remain visible with default Sum aggregation. + +## Example + +### Before Fix + +``` +Column: CustomerID + DataType: Int64 + SummarizeBy: Sum +``` + +**Result**: Visual shows "Sum of CustomerID: 12,456,789" (meaningless number) + +### After Fix + +``` +Column: CustomerID + DataType: Int64 + SummarizeBy: None +``` + +**Result**: Visual requires explicit aggregation or shows individual Customer IDs + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Hide Foreign Keys](xref:kb.bpa-hide-foreign-keys) - Related column hygiene rule +- [Format String for Columns](xref:kb.bpa-format-string-columns) - Column formatting + +## Learn More + +- [Column Properties](https://learn.microsoft.com/analysis-services/tabular-models/column-properties-ssas-tabular) +- [When to Use Measures vs. Calculated Columns](https://learn.microsoft.com/power-bi/transform-model/desktop-tutorial-create-measures) diff --git a/content/kb/bpa-expression-required.md b/content/kb/bpa-expression-required.md new file mode 100644 index 00000000..5dd370ef --- /dev/null +++ b/content/kb/bpa-expression-required.md @@ -0,0 +1,98 @@ +--- +uid: kb.bpa-expression-required +title: Expression Required for Calculated Objects +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring measures, calculated columns, and calculation items have valid DAX expressions. +--- + +# Expression Required for Calculated Objects + +## Overview + +This best practice rule identifies measures, calculated columns, and calculation items that lack a DAX expression. All calculated objects must have a valid, non-empty expression to function correctly and prevent errors during model deployment and query execution. + +- Category: Error Prevention + +- Severity: High (3) + +## Applies To + +- Measures +- Calculated Columns +- Calculation Items + +## Why This Matters + +Calculated objects without expressions will cause critical failures: + +- **Model validation errors**: The model will fail validation when saved or deployed +- **Query failures**: Attempts to use the object in queries will generate errors +- **Broken dependencies**: Other measures or calculations referencing the object will fail +- **Deployment blockers**: Power BI Service and Analysis Services will reject models with empty expressions +- **Unexpected behavior**: The object may appear in field lists but produce no results + +Empty expressions typically result from incomplete object creation, copy/paste operations, or programmatic model generation errors. + +## When This Rule Triggers + +The rule triggers when any of the following objects have an empty or whitespace-only expression: + +```csharp +string.IsNullOrWhiteSpace(Expression) +``` + +This applies to: +- **Measures**: Should contain a DAX aggregation or calculation +- **Calculated Columns**: Should contain a row-context DAX expression +- **Calculation Items**: Should contain a DAX expression modifying the base measure + +## How to Fix + +### Manual Fix + +1. In **TOM Explorer**, locate the measure, calculated column, or calculation item +2. Double-click to open the **DAX Editor** +3. Enter a valid DAX expression +4. Validate the syntax and save + +## Common Causes + +### Cause 1: Incomplete Creation + +Object was created intending to define it later but was forgotten. + +### Cause 2: Template-Based Creation + +Scripts or templates created objects without expressions. + +### Cause 3: Failed Copy Operation + +Copied an object but the expression didn't transfer. + +## Example + +### Before Fix + +``` +Measure: [Total Revenue] + Expression: [empty] + FormatString: $#,0.00 +``` + +**Error when queried**: "The expression for measure '[Total Revenue]' is not valid." + +### After Fix + +``` +Measure: [Total Revenue] + Expression: SUM('Sales'[Revenue]) + FormatString: $#,0.00 +``` + +**Result**: Measure functions correctly and returns aggregated revenue. + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + diff --git a/content/kb/bpa-format-string-columns.md b/content/kb/bpa-format-string-columns.md new file mode 100644 index 00000000..69428333 --- /dev/null +++ b/content/kb/bpa-format-string-columns.md @@ -0,0 +1,84 @@ +--- +uid: kb.bpa-format-string-columns +title: Provide Format String for Numeric and Date Columns +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring visible numeric and date columns have appropriate format strings for consistent display. +--- + +# Provide Format String for Numeric and Date Columns + +## Overview + +This best practice rule identifies visible columns with numeric or date data types that lack format strings. Format strings ensure consistent, professional data display across all client tools. + +- Category: Formatting + +- Severity: Medium (2) + +## Applies To + +- Data Columns +- Calculated Columns +- Calculated Table Columns + +## Why This Matters + +Columns without format strings display inconsistently: + +- **Unprofessional appearance**: Raw numbers like 1234567.89 instead of $1,234,567.89 +- **User confusion**: Users can't tell if values are currency, percentages, or plain numbers +- **Inconsistent formatting**: Different visuals may show different formats +- **Manual formatting burden**: Users must format every visual individually +- **Date ambiguity**: Dates show timestamps when only dates are needed + +## When This Rule Triggers + +```csharp +IsVisible +and string.IsNullOrWhitespace(FormatString) +and (DataType = "Int64" or DataType = "DateTime" or DataType = "Double" or DataType = "Decimal") +``` + +## How to Fix + +### Manual Fix + +1. In **TOM Explorer**, select the column +2. In **Properties** pane, locate the **Format String** field +3. Choose from standard formats or enter custom format +4. Save changes + +## Common Causes + +### Cause 1: Missing Format Definition + +Columns do not have a format string when imported. + +## Example + +### Before Fix + +``` +Column: SalesAmount +Format String: (empty) +``` + +**Display**: 1234567.89 (hard to read, no currency symbol) + +### After Fix + +``` +Column: SalesAmount +Format String: "$#,0.00" +``` + +**Display**: $1,234,567.89 (clear, professional formatting) + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Provide Format String for Measures](xref:kb.bpa-format-string-measures) - Similar validation for measures diff --git a/content/kb/bpa-format-string-measures.md b/content/kb/bpa-format-string-measures.md new file mode 100644 index 00000000..7b4cf80f --- /dev/null +++ b/content/kb/bpa-format-string-measures.md @@ -0,0 +1,105 @@ +--- +uid: kb.bpa-format-string-measures +title: Provide Format String for Measures +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring visible measures have appropriate format strings for consistent display. +--- + +# Provide Format String for Measures + +## Overview + +This best practice rule identifies visible measures with numeric or date data types that lack format strings. All measures should have explicit format strings for professional, consistent display. + +- Category: Formatting + +- Severity: Medium (2) + +## Applies To + +- Measures + +## Why This Matters + +Measures without format strings display raw values, causing user confusion and inconsistent reporting. Format strings ensure: + +- **Professional appearance**: Values display with appropriate currency, percentage, or number formatting +- **Consistency**: All reports show values in the same format +- **User confidence**: Properly formatted numbers are easier to read and interpret +- **Business alignment**: Formatting matches corporate standards + +## When This Rule Triggers + +```csharp +IsVisible +and string.IsNullOrWhitespace(FormatString) +and (DataType = "Int64" or DataType = "DateTime" or DataType = "Double" or DataType = "Decimal") +``` + +## How to Fix + +### Manual Fix + +1. In **TOM Explorer**, select the measure +2. In **Properties** pane, locate the **Format String** field +3. Enter an appropriate format string based on what the measure calculates +4. Save changes + +### Common Format Patterns + +```dax +Total Revenue = +SUM('Sales'[Amount]) +// Format String: "$#,0" + +Average Price = +AVERAGE('Sales'[UnitPrice]) +// Format String: "$#,0.00" + +YoY Growth = +DIVIDE([This Year] - [Last Year], [Last Year], 0) +// Format String: "0.0%" + +Order Count = +COUNTROWS('Orders') +// Format String: "#,0" +``` + +## Common Causes + +### Cause 1: Missing Format Definition + +When creating a new measure the defualt state is to not have any format string set. + +### Cause 2: Copy/Paste from Calculated Columns + +Copying measures from columns that don't require format strings. + +## Example + +### Before Fix + +```dax +Total Revenue = SUM('Sales'[Amount]) +// No Format String +``` + +**Display**: 1234567.89 (hard to read, no currency symbol) + +### After Fix + +```dax +Total Revenue = SUM('Sales'[Amount]) +// Format String: "$#,0" +``` + +**Display**: $1,234,568 (clear, professional formatting) + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Format String for Columns](xref:kb.bpa-format-string-columns) - Similar validation for columns diff --git a/content/kb/bpa-hide-foreign-keys.md b/content/kb/bpa-hide-foreign-keys.md new file mode 100644 index 00000000..62717d39 --- /dev/null +++ b/content/kb/bpa-hide-foreign-keys.md @@ -0,0 +1,118 @@ +--- +uid: kb.bpa-hide-foreign-keys +title: Hide Foreign Key Columns +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule for hiding foreign key columns to simplify the model for end users. +--- + +# Hide Foreign Key Columns + +## Overview + +This best practice rule identifies foreign key columns (many-side of relationships) that are visible to end users. Foreign keys should be hidden because they serve only as relationship connectors and provide no analytical value when displayed. + +- Category: Formatting + +- Severity: Medium (2) + +## Applies To + +- Data Columns +- Calculated Columns +- Calculated Table Columns + +## Why This Matters + +Visible foreign key columns create unnecessary clutter: + +- **User confusion**: Foreign keys look like useful data but duplicate dimension attributes +- **Redundant fields**: Users see both the key and the related dimension attributes +- **Larger field lists**: More objects to scroll through finding relevant fields +- **Incorrect usage**: Users may group by keys instead of proper dimension attributes +- **Poor visualizations**: Charts showing key values instead of descriptive names + +Foreign keys exist only to create relationships between tables. Once relationships are established, users should work with dimension attributes, not the foreign keys themselves. + +## When This Rule Triggers + +The rule triggers when a column is: + +1. Used as the "from" column in a relationship (many-side) +2. The relationship has many cardinality on the from-side +3. The column is visible (`IsHidden = false`) + +```csharp +UsedInRelationships.Any(FromColumn.Name == current.Name and FromCardinality == "Many") +and +IsHidden == false +``` + +## How to Fix + +### Automatic Fix + +This rule includes an automatic fix: + +```csharp +IsHidden = true +``` + +To apply: +1. In the **Best Practice Analyzer** select flagged foreign key columns +2. Click **Apply Fix** + +### Manual Fix + +1. In **TOM Explorer**, locate the foreign key column +2. In **Properties** pane, set **IsHidden** to **true** +3. Save changes + +## Common Causes + +### Cause 1: Incomplete Model Setup + +Foreign keys remain visible after creating relationships. + +### Cause 2: Bulk Import + +Tables imported without post-processing to hide foreign keys. + +### Cause 3: Legacy Models + +Older models where foreign key hiding wasn't enforced. + +## Example + +### Before Fix + +``` +Sales Table Fields (visible): + - OrderDate + - CustomerKey ← Foreign key (should be hidden) + - ProductKey ← Foreign key (should be hidden) + - SalesAmount + - Quantity +``` + +**User experience**: Field list is cluttered. Users might mistakenly use `Sales[CustomerKey]` instead of `Customer[CustomerName]`. + +### After Fix + +``` +Sales Table Fields (visible): + - OrderDate + - SalesAmount + - Quantity +``` + +**User experience**: Clean field list. Users naturally use dimension attributes, relationship filtering works automatically. + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Set SummarizeBy to None for Numeric Columns](xref:kb.bpa-do-not-summarize-numeric) - Related column configuration +- [Format String for Columns](xref:kb.bpa-format-string-columns) - Column display settings diff --git a/content/kb/bpa-many-to-many-single-direction.md b/content/kb/bpa-many-to-many-single-direction.md new file mode 100644 index 00000000..fdcadb21 --- /dev/null +++ b/content/kb/bpa-many-to-many-single-direction.md @@ -0,0 +1,115 @@ +--- +uid: kb.bpa-many-to-many-single-direction +title: Many-to-Many Relationships Should Use Single Direction +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule to avoid performance issues by using single-direction filtering on many-to-many relationships. +--- + +# Many-to-Many Relationships Should Use Single Direction + +## Overview + +This best practice rule identifies many-to-many relationships that use bidirectional cross-filtering. Many-to-many relationships with both-directions filtering cause significant performance degradation. + +- Category: Performance +- Severity: Medium (2) + +## Applies To + +- Relationships + +## Why This Matters + +- **Severe performance impact**: Engine must evaluate filters in both directions +- **Memory consumption**: Additional filter contexts maintained +- **Ambiguous filter paths**: Multiple routes produce unexpected results +- **Complex DAX logic**: Debugging filter context becomes difficult +- **Risk circular dependencies**: Can lead to infinite evaluation loops + +## When This Rule Triggers + +The rule triggers when a relationship meets all conditions: + +1. `FromCardinality = "Many"` +2. `ToCardinality = "Many"` +3. `CrossFilteringBehavior = "BothDirections"` + +## How to Fix + +### Manual Fix + +1. In **TOM Explorer**, locate the flagged relationship +2. In **Properties** pane, find `Cross Filter Direction` +3. Change from **Both** to **Single** + +Choose direction based on typical filter flow: +- From dimension to fact +- From lookup to data table + +When opposite-direction filtering is needed, handle explicitly in measures: + +```dax +SalesWithCrossFilter = +CALCULATE( + SUM('Sales'[Amount]), + CROSSFILTER('BridgeTable'[Key], 'DimensionTable'[Key], Both) +) +``` + +## Common Causes + +### Cause 1: Default Both-Direction Setting + +Model designer applied bidirectional filtering by default. + +### Cause 2: Misunderstood Requirements + +Believed both-direction filtering was necessary for all scenarios. + +### Cause 3: Quick Fix Approach + +Used both-direction filtering to solve a specific problem without considering performance. + +## Example + +### Before Fix + +``` +'Sales' (Many) <--> (Many) 'ProductBridge' +Cross Filter Direction: Both ← Problem +``` + +### After Fix + +``` +'Sales' (Many) --> (Many) 'ProductBridge' +Cross Filter Direction: Single +``` + +When Products need to filter Sales, use DAX: + +```dax +SalesForSelectedProducts = +VAR SelectedProducts = VALUES('Products'[ProductKey]) +RETURN +CALCULATE( + SUM('Sales'[Amount]), + TREATAS(SelectedProducts, 'ProductBridge'[ProductKey]) +) +``` + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Relationship Data Types Must Match](xref:kb.bpa-relationship-same-datatype) - Ensuring relationship integrity + +## Learn More + +- [Many-to-Many Relationships in Power BI](https://learn.microsoft.com/power-bi/transform-model/desktop-many-to-many-relationships) +- [Relationship Cross-Filtering](https://learn.microsoft.com/power-bi/transform-model/desktop-relationships-understand) +- [DAX CROSSFILTER Function](https://dax.guide/crossfilter/) +- [DAX TREATAS Function](https://dax.guide/treatas) diff --git a/content/kb/bpa-perspectives-no-objects.md b/content/kb/bpa-perspectives-no-objects.md new file mode 100644 index 00000000..13772524 --- /dev/null +++ b/content/kb/bpa-perspectives-no-objects.md @@ -0,0 +1,89 @@ +--- +uid: kb.bpa-perspectives-no-objects +title: Perspectives Should Contain Objects +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule for removing empty perspectives that contain no visible objects. +--- + +# Perspectives Should Contain Objects + +## Overview + +This best practice rule identifies perspectives that don't contain any visible tables. Empty perspectives serve no purpose and should be removed. + +- Category: Maintenance +- Severity: Low (1) + +## Applies To + +- Perspectives + +## Why This Matters + +- **User confusion**: Empty perspectives appear in client tools but show no data + +## When This Rule Triggers + +The rule triggers when a perspective has no visible tables: + +```csharp +Model.Tables.Any(InPerspective[current.Name]) == false +``` + +## How to Fix + +### Automatic Fix + +This rule includes an automatic fix that deletes the empty perspective: + +```csharp +Delete() +``` + +To apply: +1. Run the **Best Practice Analyzer** +2. Select the empty perspectives +3. Click **Apply Fix** + +### Manual Fix + +1. In **TOM Explorer**, expand the **Perspectives** node +2. Right-click the empty perspective +3. Select **Delete** + +## Common Causes + +### Cause 1: Removed All Tables + +All tables removed from perspective without deleting it. + +### Cause 2: Incomplete Configuration + +Perspective created during design but never populated. + +## Example + +### Before Fix + +``` +Perspectives: + - Sales (contains: Sales, Customer, Product tables) ✓ + - Marketing (contains: NO TABLES) ✗ +``` + +### After Fix + +``` +Perspectives: + - Sales (contains: Sales, Customer, Product tables) ✓ +``` + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Learn More + +- [Perspectives in Tabular Models](https://learn.microsoft.com/analysis-services/tabular-models/perspectives-ssas-tabular) + diff --git a/content/kb/bpa-powerbi-latest-compatibility.md b/content/kb/bpa-powerbi-latest-compatibility.md new file mode 100644 index 00000000..bb97ccb7 --- /dev/null +++ b/content/kb/bpa-powerbi-latest-compatibility.md @@ -0,0 +1,86 @@ +--- +uid: kb.bpa-powerbi-latest-compatibility +title: Use Latest Compatibility Level for Power BI Models +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring Power BI models use the latest compatibility level for optimal features and performance. +--- + +# Use Latest Compatibility Level for Power BI Models + +## Overview + +This rule identifies Power BI models not using the latest available compatibility level. Using the latest level ensures access to newest features, performance optimizations, and bug fixes. + +- Category: Governance +- Severity: High (3) + +## Applies To + +- Model (Power BI semantic models only) + +## Why This Matters + +- **Missing features**: New DAX functions and model capabilities unavailable +- **Future compatibility**: Easier upgrades when using recent levels + +## When This Rule Triggers + +For Power BI models, triggers when compatibility level is below current maximum: + +```csharp +Model.Database.CompatibilityMode=="PowerBI" +and Model.Database.CompatibilityLevel<>[CurrentMaxLevel] +``` + +## How to Fix + +### Automatic Fix + +The best practice rule includes an automatic fix that sets the Compatability Level to the highest avaliable that exist on the current installation of Tabular Editor 3. If you have an older version of Tabular Editor 3 installed you should update your installation. + +```csharp +Model.Database.CompatibilityLevel = [PowerBIMaxCompatibilityLevel] +``` + +### Manual Fix + +1. In Tabular Editor, go to **Model** properties +2. Set **Compatibility Level** to the latest version +3. Test all DAX expressions and features +4. Deploy to Power BI Service + +## Common Causes + +### Cause 1: Model Created in Power BI Desktop + +Model created with in Power BI Desktop does not necesarily have the latest Compatability Level. + +### Cause 2: Model Created at Lower Level + +Model created with older version of Power BI Desktop. + +### Cause 3: Conservative Approach + +Team policy to delay upgrades. + +## Example + +### Before Fix + +``` +Model Compatibility Level: 1500 +Current Maximum Level: 1700 +``` + +### After Fix + +``` +Model Compatibility Level: 1700 (Latest) +``` + +Access to new features like enhanced calculation groups and field parameters. + +## Compatibility Level + +This rule applies to Power BI models at all compatibility levels. \ No newline at end of file diff --git a/content/kb/bpa-relationship-same-datatype.md b/content/kb/bpa-relationship-same-datatype.md new file mode 100644 index 00000000..fb3263fd --- /dev/null +++ b/content/kb/bpa-relationship-same-datatype.md @@ -0,0 +1,92 @@ +--- +uid: kb.bpa-relationship-same-datatype +title: Relationship Columns Must Have Same Data Type +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring relationships connect columns with matching data types to prevent errors and performance issues. +--- + +# Relationship Columns Must Have Same Data Type + +## Overview + +This best practice rule identifies relationships where the connected columns have mismatched data types. Both columns in a relationship must share the same data type to ensure proper filtering, prevent errors, and maintain optimal query performance. + +- Category: Error Prevention + +- Severity: High (3) + +## Applies To + +- Relationships + +## Why This Matters + +Relationships with mismatched data types cause serious problems: + +- **Model validation errors**: The model may fail to save or deploy +- **Relationship creation failures**: Power BI and Analysis Services may reject the relationship +- **Implicit conversions**: Expensive data type conversions on every query +- **Incorrect results**: Type coercion leads to unexpected filtering behavior +- **Performance degradation**: Converting data types during queries slows execution +- **Memory overhead**: Additional memory required for conversion buffers + +## When This Rule Triggers + +The rule triggers when: + +```csharp +FromColumn.DataType != ToColumn.DataType +``` + +This detects relationships connecting columns with different data types. + +## How to Fix + +### Manual Fix + +1. Identify which column should change data type +2. Change the data type in **Power Query**, in the underlying data source or in the model +3. Delete the existing relationship +4. Create a new relationship between the corrected columns +5. Verify filtering works correctly + +## Common Causes + +### Cause 1: Inconsistent Data Type Choices + +Different data types chosen for the same logical key during import or table creation. + +### Cause 2: Source System Differences + +Foreign keys imported from different source systems with different type conventions. + +### Cause 3: DateTime vs Date Mismatch + +Fact tables using DateTime columns while date dimensions use Date type. + +## Example + +### Before Fix + +``` +Relationship: Sales[CustomerID] (Int64) → Customers[CustomerID] (String) +``` + +**Error**: Relationship fails validation or creates performance issues with implicit conversion + +### After Fix + +``` +Relationship: Sales[CustomerID] (Int64) → Customers[CustomerID] (Int64) +``` + +**Result**: Relationship works efficiently with no type conversion overhead + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Many-to-Many Relationships Should Use Single Direction](xref:kb.bpa-many-to-many-single-direction) - Relationship performance optimization diff --git a/content/kb/bpa-remove-auto-date-table.md b/content/kb/bpa-remove-auto-date-table.md new file mode 100644 index 00000000..91451c32 --- /dev/null +++ b/content/kb/bpa-remove-auto-date-table.md @@ -0,0 +1,106 @@ +--- +uid: kb.bpa-remove-auto-date-table +title: Remove Auto Date Tables +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule to identify and remove automatically generated date tables that increase model size and reduce performance. +--- + +# Remove Auto Date Tables + +## Overview + +This best practice rule identifies automatically generated date tables created by Power BI Desktop. These auto-generated tables (`DateTableTemplate_` and `LocalDateTable_`) should be removed in favor of a single, explicit date table to optimize model size and performance. + +- Category: Performance + +- Severity: Medium (2) + +## Applies To + +- Tables +- Calculated Tables + +## Why This Matters + +Power BI automatically creates hidden date tables for every date/datetime column when "Auto Date/Time" is enabled. This causes issues: + +- **Increased model size**: Each auto-generated table adds unnecessary data +- **Memory overhead**: Multiple date tables consume more memory than one shared table +- **Slower refresh**: Additional tables increase refresh duration + +A single, well-designed date table is far more efficient and maintainable. + +## When This Rule Triggers + +The rule triggers when it finds calculated tables with names that: + +- Start with `"DateTableTemplate_"`, or +- Start with `"LocalDateTable_"` + +These prefixes indicate Power BI's automatically generated date tables. + +## How to Fix + +### Manual Fix + +1. Disable **Auto Date/Time** in Power BI Desktop (**File** > **Options** > **Data Load**) +2. Create a dedicated date table. +3. Mark it as a date table and create relationships to fact tables +4. In **TOM Explorer**, delete tables starting with `DateTableTemplate_` or `LocalDateTable_` +5. Verify custom date table relationships work correctly + +## Common Causes + +### Cause 1: Auto Date/Time Feature Enabled + +Power BI Desktop's "Auto Date/Time" feature automatically creates these tables. + +### Cause 2: Migrated Models + +Models created with auto tables enabled and never cleaned up. + +### Cause 3: Default Settings + +New models use default settings which enable auto date tables. + +## Example + +### Before Fix + +``` +Tables: + - Sales + - LocalDateTable_OrderDate (hidden, auto-generated) + - LocalDateTable_ShipDate (hidden, auto-generated) + - Products + - LocalDateTable_ReleaseDate (hidden, auto-generated) +``` + +**Result**: Multiple hidden tables inflate model size + +### After Fix + +``` +Tables: + - Sales + - Products + - DateTable (explicit, marked as date table) + -> Relationships to Sales[OrderDate], Sales[ShipDate], Products[ReleaseDate] +``` + +**Result**: Single efficient date table serves all date relationships + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Date Table Should Exist](xref:kb.bpa-date-table-exists) - Ensuring a proper date table is present + +## Learn More + +- [Disable Auto Date/Time in Power BI](https://learn.microsoft.com/power-bi/guidance/auto-date-time) +- [Create Date Tables](https://learn.microsoft.com/power-bi/guidance/model-date-tables) +- [Date Table Best Practices](https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/) diff --git a/content/kb/bpa-remove-unused-data-sources.md b/content/kb/bpa-remove-unused-data-sources.md new file mode 100644 index 00000000..d5b82ed4 --- /dev/null +++ b/content/kb/bpa-remove-unused-data-sources.md @@ -0,0 +1,117 @@ +--- +uid: kb.bpa-remove-unused-data-sources +title: Remove Unused Data Sources +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule for removing orphaned data sources to reduce model complexity and improve maintainability. +--- + +# Remove Unused Data Sources + +## Overview + +This best practice rule identifies data sources that are not referenced by any partitions or table expressions. Removing unused data sources reduces model complexity, improves maintainability, and prevents confusion. + +- Category: Maintenance +- Severity: Low (1) + +## Applies To + +- Provider Data Sources +- Structured Data Sources + +## Why This Matters + +Unused data sources create unnecessary overhead: + +- **Maintenance burden**: Credentials and connection strings must be maintained for unused connections +- **Security concerns**: Unnecessary connection strings may expose sensitive information +- **Model complexity**: Extra objects clutter the data source list +- **Confusion**: Developers may mistakenly use obsolete data sources +- **Deployment issues**: Unused data sources may reference systems that no longer exist +- **Documentation overhead**: Extra objects require explanation in model documentation + +Unused data sources typically result from: +- Refactoring partitions to use different sources +- Consolidating multiple sources into one +- Removing tables without cleaning up their data sources +- Testing alternative connection methods + +## When This Rule Triggers + +The rule triggers when a data source meets all these conditions: + +```csharp +UsedByPartitions.Count() == 0 +and not Model.Tables.Any(SourceExpression.Contains(OuterIt.Name)) +and not Model.AllPartitions.Any(Query.Contains(OuterIt.Name)) +``` + +In other words: +1. No partitions directly reference the data source +2. No table source expressions (M queries) reference the data source by name +3. No partition queries contain the data source name + +## How to Fix + +### Automatic Fix + +This rule includes an automatic fix that deletes the unused data source: + +```csharp +Delete() +``` + +To apply: +1. In the **Best Practice Analyzer** select flagged objects +3. Click **Apply Fix** + +### Manual Fix + +1. In **TOM Explorer**, expand the **Data Sources** node +2. Right-click the unused data source +3. Select **Delete** +4. Confirm the deletion + +### Before Deleting + +Verify the data source is truly unused: +- Check all partitions in all tables +- Search M expressions for references to the data source name +- Review custom expressions and calculated tables +- Ensure no documentation references the connection + +## Example + +### Before Fix + +``` +Data Sources: + - SQLServer_Production (Provider, used by Sales partition) + - SQLServer_Staging (Provider, NOT USED) ← Remove + - AzureSQL_Archive (Structured, NOT USED) ← Remove + - PowerQuery_Web (Structured, used by Product partition) +``` + +### After Fix + +``` +Data Sources: + - SQLServer_Production (Provider, used by Sales partition) + - PowerQuery_Web (Structured, used by Product partition) +``` + +**Result**: Simpler model with only necessary data sources + +## False Positives + +The rule may flag data sources that are: +- Referenced through dynamic M expressions using variables +- Used in commented-out partition queries +- Referenced by name in annotations or descriptions + +**Solution**: Manually verify before deleting; add comments or annotations if the data source should be kept for documentation purposes. + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. \ No newline at end of file diff --git a/content/kb/bpa-set-isavailableinmdx-false.md b/content/kb/bpa-set-isavailableinmdx-false.md new file mode 100644 index 00000000..80f4c327 --- /dev/null +++ b/content/kb/bpa-set-isavailableinmdx-false.md @@ -0,0 +1,91 @@ +--- +uid: kb.bpa-set-isavailableinmdx-false +title: Set IsAvailableInMDX to False +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule to optimize performance by disabling MDX access for hidden columns that are not used in relationships or hierarchies. +--- + +# Set IsAvailableInMDX to False + +## Overview + +This best practice rule identifies hidden columns that have the `IsAvailableInMDX` property set to `true` but don't need to be accessible through MDX queries. Setting this property to `false` for unused hidden columns can improve query performance and reduce memory overhead. + +- Category: Performance +- Severity: Medium (2) + +## Applies To + +- Data Columns +- Calculated Columns +- Calculated Table Columns + +## Why This Matters + +When a column has `IsAvailableInMDX` set to `true`, the Analysis Services engine maintains additional metadata and structures to support MDX queries against that column. For hidden columns that aren't used in relationships, hierarchies, variations, calendars, or as sort-by columns, this overhead is unnecessary and can: + +- Increase memory consumption +- Slow down query processing +- Add complexity to the model metadata + +By explicitly setting `IsAvailableInMDX` to `false` for these columns, you optimize the model for DAX-only scenarios, which is the primary query language for Power BI and modern Analysis Services models. + +## When This Rule Triggers + +The rule triggers when all of the following conditions are met: + +1. The column has `IsAvailableInMDX = true` +2. The column is hidden (or its table is hidden) +3. The column is NOT used in any `SortBy` relationships +4. The column is NOT used in any hierarchies +5. The column is NOT used in any variations +6. The column is NOT used in any calendars +7. The column is NOT serving as a `SortByColumn` for another column + +## How to Fix + +### Automatic Fix + +This rule includes an automatic fix expression. When you apply the fix in the Best Practice Analyzer: + +```csharp +IsAvailableInMDX = false +``` +To apply: +1. In the **Best Practice Analyzer** select flagged objects +3. Click **Apply Fix** + +### Manual Fix + +1. In the **TOM Explorer**, locate the flagged column +2. In the **Properties** pane, find the `IsAvailableInMDX` property +3. Set the value to `false` +4. Save your changes + +## Example + +Consider a hidden calculated column used only for intermediate calculations: + +```dax +_TempCalculation = +CALCULATE( + SUM('Sales'[Amount]), + ALLEXCEPT('Sales', 'Sales'[ProductKey]) +) +``` + +If this column is: +- Hidden from client tools +- Not used in any hierarchies or relationships +- Not referenced by sort operations + +Then setting `IsAvailableInMDX = false` is recommended for optimal performance. + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Set IsAvailableInMDX to True When Necessary](xref:kb.bpa-set-isavailableinmdx-true-necessary) - The complementary rule ensuring columns that need MDX access have it enabled diff --git a/content/kb/bpa-set-isavailableinmdx-true-necessary.md b/content/kb/bpa-set-isavailableinmdx-true-necessary.md new file mode 100644 index 00000000..5c3062cc --- /dev/null +++ b/content/kb/bpa-set-isavailableinmdx-true-necessary.md @@ -0,0 +1,144 @@ +--- +uid: kb.bpa-set-isavailableinmdx-true-necessary +title: Set IsAvailableInMDX to True When Necessary +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule preventing query errors by ensuring columns used in hierarchies and relationships have MDX availability enabled. +--- + +# Set IsAvailableInMDX to True When Necessary + +## Overview + +This best practice rule identifies columns that have `IsAvailableInMDX` set to `false` but are actually used in scenarios requiring MDX access. These columns must have MDX availability enabled to function correctly in hierarchies, relationships, and sort operations. + +- Category: Error Prevention +- Severity: High (3) + +## Applies To + +- Data Columns +- Calculated Columns +- Calculated Table Columns + +## Why This Matters + +When a column is used in certain model structures, the Analysis Services engine requires MDX access to that column. Disabling MDX access for columns that need it causes: + +- **Query failures**: Hierarchies and sort operations fail with errors +- **Broken visualizations**: Charts and tables using affected hierarchies display errors +- **Relationship problems**: MDX queries against relationships may fail +- **Calendar/variation errors**: Time intelligence features break +- **Unpredictable behavior**: Some queries work while others fail depending on client tool + +Columns need `IsAvailableInMDX = true` when they are: +- Used in hierarchies as levels +- Referenced as sort-by columns +- Used in variations (alternate hierarchies) +- Part of calendar definitions +- Serving as sort-by targets for other columns + +## When This Rule Triggers + +The rule triggers when a column has `IsAvailableInMDX = false` AND any of these conditions are true: + +```csharp +IsAvailableInMDX = false +and +( + UsedInSortBy.Any() + or + UsedInHierarchies.Any() + or + UsedInVariations.Any() + or + UsedInCalendars.Any() + or + SortByColumn != null +) +``` + +The rule checks these dependency collections: + +| Property | Description | Example Usage | +|----------|-------------|---------------| +| `UsedInHierarchies` | Hierarchies where column is a level | Product hierarchy levels | +| `UsedInSortBy` | Columns using this as sort key | Month names sorted by month number | +| `UsedInVariations` | Alternate hierarchies using column | Product variations | +| `UsedInCalendars` | Calendar metadata references | Date table calendar definitions | +| `SortByColumn` | Column sorts by another column | This column has a sort-by reference | + +## How to Fix + +### Automatic Fix + +This rule includes an automatic fix: + +```csharp +IsAvailableInMDX = true +``` + +To apply: +1. In the **Best Practice Analyzer** select flagged objects +3. Click **Apply Fix** + +### Manual Fix + +1. In **TOM Explorer**, locate the flagged column +2. In **Properties** pane, find `IsAvailableInMDX` +3. Set the value to `true` +4. Save and test affected hierarchies/sorts + +## Common Scenarios + +### Scenario 1: Hierarchy Level Column + +**Problem**: A column used as a hierarchy level has MDX disabled + +```dax +Hierarchy: Geography + Levels: + - Country + - State (IsAvailableInMDX = false) ← Problem + - City +``` + +**Error**: "The hierarchy 'Geography' cannot be used because one of its levels is not available in MDX." + +**Solution**: Set `State[IsAvailableInMDX] = true` + +### Scenario 2: Sort-By Column + +**Problem**: A column serving as a sort-by target has MDX disabled + +``` +Month Name column: + - SortByColumn = MonthNumber + - MonthNumber.IsAvailableInMDX = false ← Problem +``` + +**Error**: Months display in alphabetical order instead of calendar order + +**Solution**: Set `MonthNumber[IsAvailableInMDX] = true` + +### Scenario 3: Calendar Definition + +**Problem**: A date column used in calendar metadata has MDX disabled + +``` +DateTable: + - Calendar uses DateKey column + - DateKey.IsAvailableInMDX = false ← Problem +``` + +**Error**: Time intelligence functions fail + +**Solution**: Set `DateKey[IsAvailableInMDX] = true` + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Set IsAvailableInMDX to False](xref:kb.bpa-set-isavailableinmdx-false) - The complementary optimization rule diff --git a/content/kb/bpa-specify-application-name.md b/content/kb/bpa-specify-application-name.md new file mode 100644 index 00000000..50dbf82b --- /dev/null +++ b/content/kb/bpa-specify-application-name.md @@ -0,0 +1,70 @@ +--- +uid: kb.bpa-specify-application-name +title: Specify Application Name in Connection Strings +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule for including application name in SQL Server connection strings to enable monitoring and troubleshooting. +--- + +# Specify Application Name in Connection Strings + +## Overview + +This rule identifies SQL Server provider data sources that lack an Application Name parameter in their connection strings. Including the application name enables better monitoring and troubleshooting. + +- Category: Performance +- Severity: Low (1) + +## Applies To + +- Provider Data Sources + +## Why This Matters + +- **Query tracking**: DBAs can identify which application generated queries +- **Performance monitoring**: Isolate tabular model queries for analysis +- **Troubleshooting**: Quickly identify source of problem queries +- **Auditing**: Track data access by application + +## When This Rule Triggers + +This rule triggers when a data source meets both of these conditions: + +1. The connection string uses a SQL Server provider (contains `SQLNCLI`, `SQLOLEDB`, or `MSOLEDBSQL`) +2. The connection string does NOT include an `Application Name` parameter + +In other words, the rule identifies SQL Server connections that are missing the application name identifier. + +## How to Fix + +### Manual Fix + +Add Application Name to your connection string: + +``` +Provider=MSOLEDBSQL;Data Source=ServerName;Initial Catalog=DatabaseName;Application Name=Tabular Editor;Integrated Security=SSPI; +``` + +## Example + +### Before Fix + +``` +Provider=MSOLEDBSQL;Data Source=localhost;Initial Catalog=AdventureWorks; +``` + +### After Fix + +``` +Provider=MSOLEDBSQL;Data Source=localhost;Initial Catalog=AdventureWorks;Application Name=Sales Model; +``` + +Result: Queries now identifiable in SQL Server monitoring tools. + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Remove Unused Data Sources](xref:kb.bpa-remove-unused-data-sources) - Data source maintenance diff --git a/content/kb/bpa-translate-descriptions.md b/content/kb/bpa-translate-descriptions.md new file mode 100644 index 00000000..24a01fb4 --- /dev/null +++ b/content/kb/bpa-translate-descriptions.md @@ -0,0 +1,99 @@ +--- +uid: kb.bpa-translate-descriptions +title: Translate Descriptions for All Cultures +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring object descriptions are translated for all defined cultures. +--- + +# Translate Descriptions for All Cultures + +## Overview + +This rule identifies objects with descriptions that lack translations for one or more cultures. + +- Category: Model Layout +- Severity: Low (1) + +## Applies To + +- Model +- Tables +- Measures +- Hierarchies +- Levels +- Perspectives +- Data Columns +- Calculated Columns +- Calculated Tables +- Calculated Table Columns + +## Why This Matters + +- **Incomplete localization**: Descriptions display in default language only +- **Inconsistent help text**: Users see mix of languages +- **User confusion**: Documentation appears incomplete +- **Professional appearance**: Missing translations reduce model quality + +## When This Rule Triggers + +```csharp +not string.IsNullOrEmpty(Description) +and Model.Cultures.Any(string.IsNullOrEmpty(outerIt.TranslatedDescriptions[it])) +``` +This rule triggers when an object meets both of these conditions: + +1. The object has a description (not empty) +2. At least one culture in the model is missing a translation for that description + +In other words, if you have descriptions and multiple cultures defined, all descriptions should be translated for all cultures. + + +## How to Fix + +### Manual Fix + +1. In **TOM Explorer**, select the object +2. In **Properties** pane, expand **Translated Descriptions** +3. Enter translation for each culture + +## Common Causes + +### Cause 1: New Descriptions Added + +Descriptions created without translations. + +### Cause 2: Culture Added Later + +Culture added after descriptions were written. + +### Cause 3: Incomplete Translation + +Translation process didn't cover descriptions. + +## Example + +### Before Fix + +``` +Measure: [Total Revenue] +Description (English): "Sum of all revenue" +Description (Spanish): (missing) +``` + +### After Fix + +``` +Measure: [Total Revenue] +Description (English): "Sum of all revenue" +Description (Spanish): "Suma de todos los ingresos" +``` + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Translate Visible Names](xref:kb.bpa-translate-visible-names) - Translating object names +- [Translate Display Folders](xref:kb.bpa-translate-display-folders) - Translating display folders diff --git a/content/kb/bpa-translate-display-folders.md b/content/kb/bpa-translate-display-folders.md new file mode 100644 index 00000000..a8b7bb38 --- /dev/null +++ b/content/kb/bpa-translate-display-folders.md @@ -0,0 +1,104 @@ +--- +uid: kb.bpa-translate-display-folders +title: Translate Display Folders for All Cultures +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring display folders are translated for all defined cultures. +--- + +# Translate Display Folders for All Cultures + +## Overview + +This rule identifies visible objects with display folders that lack translations for one or more cultures. + +- Category: Model Layout +- Severity: Low (1) + +## Applies To + +- Measures +- Hierarchies +- Data Columns +- Calculated Columns +- Calculated Table Columns + +## Why This Matters + +- **Incomplete localization**: Display folders show in default language only +- **Inconsistent navigation**: Partially translated folder structure +- **User confusion**: Organization appears incomplete +- **Professional appearance**: Missing translations reduce model quality + +## When This Rule Triggers + +This rule triggers when an object meets all three of these conditions: + +1. The object is **visible** to end users (not hidden) +2. The object has a **display folder** assigned (organizing it into a folder structure) +3. At least one culture in the model is **missing a translation** for that display folder + +In plain language: visible objects that are organized in display folders should have those folder names translated for all cultures in your model. + +```csharp +IsVisible +and not string.IsNullOrEmpty(DisplayFolder) +and Model.Cultures.Any(string.IsNullOrEmpty(outerIt.TranslatedDisplayFolders[it])) +``` + +## How to Fix + +### Automatic Fix + +```csharp +TranslatedDisplayFolders.Reset() +``` + +Resets translations to use the default display folder. + +### Manual Fix + +1. Select object in **TOM Explorer** +2. Expand **Translated Display Folders** in properties +3. Enter translation for each culture + +## Common Causes + +### Cause 1: New Display Folders Added + +Display folders created without translations. + +### Cause 2: Culture Added Later + +Culture added after display folders were defined. + +### Cause 3: Incomplete Translation + +Translation workflow didn't cover display folders. + +## Example + +### Before Fix + +``` +Measure: [Total Sales] +Display Folder (English): "Sales Metrics" +Display Folder (French): (missing) +``` + +### After Fix + +``` +Measure: [Total Sales] +Display Folder (English): "Sales Metrics" +Display Folder (French): "Métriques de Vente" +``` + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Translate Visible Names](xref:kb.bpa-translate-visible-names) - Translating object names +- [Translate Descriptions](xref:kb.bpa-translate-descriptions) - Translating descriptions diff --git a/content/kb/bpa-translate-hierarchy-levels.md b/content/kb/bpa-translate-hierarchy-levels.md new file mode 100644 index 00000000..63265dc2 --- /dev/null +++ b/content/kb/bpa-translate-hierarchy-levels.md @@ -0,0 +1,92 @@ +--- +uid: kb.bpa-translate-hierarchy-levels +title: Translate Hierarchy Level Names for All Cultures +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring hierarchy level names are translated for all defined cultures. +--- + +# Translate Hierarchy Level Names for All Cultures + +## Overview + +This rule identifies hierarchy levels in visible hierarchies that lack name translations for one or more cultures. + +- Category: Model Layout +- Severity: Low (1) + +## Applies To + +- Levels (within hierarchies) + +## Why This Matters + +- **Incomplete localization**: Level names display in default language only +- **Inconsistent experience**: Partially translated hierarchies +- **User confusion**: Navigation appears incomplete +- **Professional appearance**: Missing translations reduce quality + +## When This Rule Triggers + +This rule triggers when a hierarchy level meets both of these conditions: + +1. The hierarchy containing the level is **visible** to end users +2. At least one culture in the model is **missing a translation** for the level name + +That is if you have visible hierarchies with multiple cultures, all the level names within those hierarchies should be translated for each culture. + +```csharp +Hierarchy.IsVisible +and Model.Cultures.Any(string.IsNullOrEmpty(outerIt.TranslatedNames[it])) +``` + +## How to Fix + +### Manual Fix + +1. In **TOM Explorer**, select the level +2. In **Properties** pane, expand **Translated Names** +3. Enter translation for each culture + +## Common Causes + +### Cause 1: New Levels Added + +Levels created without translations. + +### Cause 2: Culture Added Later + +Culture added after hierarchy was created. + +### Cause 3: Incomplete Translation + +Translation process didn't cover all hierarchy levels. + +## Example + +### Before Fix + +``` +Hierarchy: Geography + Level: Country + English: "Country" + Spanish: (missing) +``` + +### After Fix + +``` +Hierarchy: Geography + Level: Country + English: "Country" + Spanish: "País" +``` + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Translate Visible Names](xref:kb.bpa-translate-visible-names) - Translating object names +- [Translate Perspectives](xref:kb.bpa-translate-perspectives) - Translating perspective names diff --git a/content/kb/bpa-translate-perspectives.md b/content/kb/bpa-translate-perspectives.md new file mode 100644 index 00000000..8a14a954 --- /dev/null +++ b/content/kb/bpa-translate-perspectives.md @@ -0,0 +1,87 @@ +--- +uid: kb.bpa-translate-perspectives +title: Translate Perspective Names for All Cultures +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring perspective names are translated for all defined cultures. +--- + +# Translate Perspective Names for All Cultures + +## Overview + +This rule identifies model perspectives that lack name translations for one or more cultures. + +- Category: Model Layout +- Severity: Low (1) + +## Applies To + +- Model +- Perspectives + +## Why This Matters + +- **Incomplete localization**: Perspectives display in default language only +- **Inconsistent experience**: Mix of translated and untranslated perspective names +- **User confusion**: Expected language support not available +- **Professional appearance**: Incomplete translations reduce model quality + +## When This Rule Triggers + +This rule triggers when a perspective has: + +- At least one culture in the model that is **missing a translation** for the perspective name + +```csharp +Model.Cultures.Any(string.IsNullOrEmpty(outerIt.TranslatedNames[it])) +``` + +## How to Fix + +### Manual Fix + +1. In **TOM Explorer**, select the perspective +2. In **Properties** pane, expand **Translated Names** +3. Enter translation for each culture + +## Common Causes + +### Cause 1: New Perspectives Added + +Perspectives created without translations. + +### Cause 2: Culture Added Later + +Culture added after perspectives were defined. + +### Cause 3: Incomplete Translation + +Translation workflow didn't cover perspectives. + +## Example + +### Before Fix + +``` +Perspective: "Sales Analysis" +English: "Sales Analysis" +German: (missing) +``` + +### After Fix + +``` +Perspective: "Sales Analysis" +English: "Sales Analysis" +German: "Vertriebsanalyse" +``` + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Translate Visible Names](xref:kb.bpa-translate-visible-names) - Translating object names +- [Translate Descriptions](xref:kb.bpa-translate-descriptions) - Translating descriptions diff --git a/content/kb/bpa-translate-visible-names.md b/content/kb/bpa-translate-visible-names.md new file mode 100644 index 00000000..db2d51f6 --- /dev/null +++ b/content/kb/bpa-translate-visible-names.md @@ -0,0 +1,99 @@ +--- +uid: kb.bpa-translate-visible-names +title: Translate Visible Object Names for All Cultures +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring visible object names are translated for all defined cultures. +--- + +# Translate Visible Object Names for All Cultures + +## Overview + +This rule identifies visible objects whose names lack translations for one or more cultures defined in the model. + +- Category: Model Layout +- Severity: Low (1) + +## Applies To + +- Tables +- Measures +- Hierarchies +- Data Columns +- Calculated Columns +- Calculated Tables +- Calculated Table Columns + +## Why This Matters + +- **Incomplete localization**: Users in different cultures see untranslated names +- **Inconsistent experience**: Mix of translated and untranslated content +- **User confusion**: Expected language support not provided +- **Professional appearance**: Incomplete translations appear unpolished + +## When This Rule Triggers + +This rule triggers when an object meets both of these conditions: + +1. The object is **visible** to end users (not hidden) +2. At least one culture in the model is **missing a translation** for the object name + +In other words visible objects with multiple cultures defined should have their names translated for each culture. + +```csharp +IsVisible +and Model.Cultures.Any(string.IsNullOrEmpty(outerIt.TranslatedNames[it])) +``` + +## How to Fix + +### Manual Fix + +1. In **TOM Explorer**, select the object +2. In **Properties** pane, expand **Translated Names** +3. Enter translation for each culture +4. Save changes + +## Common Causes + +### Cause 1: New Objects Added + +New objects created without translations. + +### Cause 2: Culture Added Later + +Culture added to model after objects were created. + +### Cause 3: Incomplete Translation Process + +Translation workflow didn't cover all objects. + +## Example + +### Before Fix + +``` +Measure: [Total Sales] +English: "Total Sales" +Spanish: (missing) +French: (missing) +``` + +### After Fix + +``` +Measure: [Total Sales] +English: "Total Sales" +Spanish: "Total de Ventas" +French: "Total des Ventes" +``` + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Translate Perspectives](xref:kb.bpa-translate-perspectives) - Translating perspective names +- [Translate Descriptions](xref:kb.bpa-translate-descriptions) - Translating descriptions diff --git a/content/kb/bpa-trim-object-names.md b/content/kb/bpa-trim-object-names.md new file mode 100644 index 00000000..9318b2e1 --- /dev/null +++ b/content/kb/bpa-trim-object-names.md @@ -0,0 +1,103 @@ +--- +uid: kb.bpa-trim-object-names +title: Trim Leading and Trailing Spaces from Object Names +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule for removing leading and trailing spaces from object names to prevent confusion and referencing issues. +--- + +# Trim Leading and Trailing Spaces from Object Names + +## Overview + +This best practice rule identifies objects whose names contain leading or trailing spaces. These unnecessary spaces cause DAX referencing issues, display problems, and general confusion. + +- Category: **Naming Conventions** +- Severity: Low (1) + +## Applies To + +- Model +- Tables +- Measures +- Hierarchies +- Levels +- Perspectives +- Partitions +- Provider Data Sources +- Data Columns +- Calculated Columns +- Calculated Tables +- Calculated Table Columns +- Structured Data Sources +- Named Expressions +- Model Roles +- Calculation Groups +- Calculation Items + +## Why This Matters + +- **DAX syntax problems**: Extra spaces require careful bracket notation +- **Display inconsistency**: Objects appear misaligned in field lists +- **Search difficulties**: Users may not find objects when searching +- **Maintenance confusion**: Developers may create duplicates not noticing spaces + +## When This Rule Triggers + +The rule triggers when an object name starts or ends with a space: + +```csharp +Name.StartsWith(" ") or Name.EndsWith(" ") +``` + +## How to Fix + +### Manual Fix + +1. In **TOM Explorer**, locate the object +2. Right-click and select **Rename** (or press F2) +3. Remove leading/trailing spaces +4. Press Enter to confirm + +## Common Causes + +### Cause 1: Accidental Spacebar Presses + +Accidental spacebar presses during naming. + +### Cause 2: Copy/Paste from External Sources + +Copy/paste from documents with formatting. + +### Cause 3: Dublicating objects + +When dublicating objects the name with have an added " copy" post-fixed. It is easy to miss deleting the space before "copy" + +## Example + +### Before Fix + +``` +Measures: + - Total Sales + - Total Sales (with spaces - appears different!) +``` + +DAX: `[ Total Sales]` - Which one? + +### After Fix + +``` +Measures: + - Total Sales (single consistent measure) +``` + +DAX: `[Total Sales]` - Unambiguous + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +## Related Rules + +- [Avoid Invalid Characters in Names](xref:kb.bpa-avoid-invalid-characters-names) - Related naming hygiene rule diff --git a/content/kb/bpa-visible-objects-no-description.md b/content/kb/bpa-visible-objects-no-description.md new file mode 100644 index 00000000..7685d2b2 --- /dev/null +++ b/content/kb/bpa-visible-objects-no-description.md @@ -0,0 +1,106 @@ +--- +uid: kb.bpa-visible-objects-no-description +title: Visible Objects Should Have Descriptions +author: Morten Lønskov +updated: 2026-01-09 +description: Best practice rule ensuring visible model objects have descriptions to improve discoverability and user experience. +--- + +# Visible Objects Should Have Descriptions + +## Overview + +This best practice rule identifies visible tables, columns, measures, calculation groups, and user-defined functions that lack descriptions. Adding descriptions improves model usability, documentation quality, and user experience. + +- Category: **Maintenance** + +- Severity: Low (1) + +## Applies To + +- Tables +- Calculated Tables +- Data Columns +- Calculated Columns +- Calculated Table Columns +- Measures +- Calculation Groups +- User-Defined Functions (Compatibility Level 1702+) + +## Why This Matters + +Descriptions provide critical context for model users: + +- **Improved discoverability**: Users understand field purpose before using them +- **Better self-service BI**: Business users can work independently with clear guidance +- **Reduced support burden**: Fewer questions about field definitions +- **Enhanced tooltips**: Power BI and Excel show descriptions in hover tooltips +- **Documentation foundation**: Descriptions form the basis for automated documentation +- **Governance and compliance**: Descriptions can include data lineage and business definitions +- **Useage by AI**: AI Agents can better infer the purpose of an object if it has a description. +Without descriptions, users guess at field meanings, leading to incorrect analysis and increased support requests. + +## When This Rule Triggers + +The rule triggers when an object is **visible** AND has an empty or whitespace-only description: + +```csharp +string.IsNullOrWhitespace(Description) +and +IsHidden == false +``` + +**Note**: Hidden objects are excluded because they are not meant for end-user consumption. + +## How to Fix + +### Manual Fix + +1. In **TOM Explorer**, select the object +2. In **Properties** pane, locate the **Description** field +3. Enter a clear, concise description +4. Save changes + +## Common Causes + +### Cause 1: Missing Documentation During Development + +Objects created without adding descriptions. + +### Cause 2: Rapid Prototyping + +Models built quickly without proper documentation. + +### Cause 3: Legacy Models + +Older models created before description standards were established. + +## Example + +### Before Fix + +``` +Measure: [Total Revenue] +Description: (empty) +``` + +**User experience**: Tooltip shows no information, users must guess measure purpose. + +### After Fix + +``` +Measure: [Total Revenue] +Description: "Total revenue excluding taxes and discounts. Calculated as SUM(Sales[UnitPrice] * Sales[Quantity]). Use for financial reporting." +``` + +**User experience**: Clear tooltip helps users understand and correctly use the measure. + +## Compatibility Level + +This rule applies to models with compatibility level **1200** and higher. + +User-Defined Function descriptions are validated at compatibility level **1702** and higher. + +## Related Rules + +- [Avoid Invalid Characters in Descriptions](xref:kb.bpa-avoid-invalid-characters-descriptions) - Ensuring description quality From cc6e4bffacf4c3b6f53fc24d8189b2448e672147 Mon Sep 17 00:00:00 2001 From: Daniel Otykier Date: Tue, 20 Jan 2026 13:22:02 +0100 Subject: [PATCH 13/14] advanced refresh --- content/features/advanced-refresh.md | 19 +++++++++++++++++++ content/features/toc.md | 1 + 2 files changed, 20 insertions(+) create mode 100644 content/features/advanced-refresh.md diff --git a/content/features/advanced-refresh.md b/content/features/advanced-refresh.md new file mode 100644 index 00000000..7cebd24d --- /dev/null +++ b/content/features/advanced-refresh.md @@ -0,0 +1,19 @@ +--- +uid: advanced-refresh +title: Advanced Refresh Dialog +author: Daniel Otykier +updated: 2026-01-15 +applies_to: + products: + - product: Tabular Editor 2 + none: true + - product: Tabular Editor 3 + since: 3.25.0 + editions: + - edition: Desktop + full: true + - edition: Business + full: true + - edition: Enterprise + full: true +--- \ No newline at end of file diff --git a/content/features/toc.md b/content/features/toc.md index b9bedcc8..e16805db 100644 --- a/content/features/toc.md +++ b/content/features/toc.md @@ -56,6 +56,7 @@ ## @tmdl ## @save-to-folder ## @save-with-supporting-files +## @advanced-refresh # Command Line and Integration ## @command-line-options \ No newline at end of file From db06e6829afb3b916ae97121775ab27aaea528c3 Mon Sep 17 00:00:00 2001 From: Daniel Otykier Date: Tue, 20 Jan 2026 13:56:58 +0100 Subject: [PATCH 14/14] documentation for advanced refresh --- .../images/advanced-refresh-edit-profile.png | Bin 0 -> 37118 bytes ...ced-refresh-incremental-effective-date.png | Bin 0 -> 63937 bytes .../assets/images/advanced-refresh-menu.png | Bin 0 -> 72440 bytes content/assets/images/advanced-refresh.png | Bin 0 -> 27236 bytes content/features/advanced-refresh.md | 87 +++++++++++++++++- 5 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 content/assets/images/advanced-refresh-edit-profile.png create mode 100644 content/assets/images/advanced-refresh-incremental-effective-date.png create mode 100644 content/assets/images/advanced-refresh-menu.png create mode 100644 content/assets/images/advanced-refresh.png diff --git a/content/assets/images/advanced-refresh-edit-profile.png b/content/assets/images/advanced-refresh-edit-profile.png new file mode 100644 index 0000000000000000000000000000000000000000..5575b6fc0ce0c65c9f3580640b27472a5028299d GIT binary patch literal 37118 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 h->P!|hpjCV_L~Vhdr*$|%A<11Sz2x6#)so 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 literal 0 HcmV?d00001 diff --git a/content/features/advanced-refresh.md b/content/features/advanced-refresh.md index 7cebd24d..ada83b0e 100644 --- a/content/features/advanced-refresh.md +++ b/content/features/advanced-refresh.md @@ -16,4 +16,89 @@ applies_to: full: true - edition: Enterprise full: true ---- \ No newline at end of file +--- +# Advanced Refresh Dialog + +The **Advanced Refresh** dialog provides fine-grained control over data refresh operations, allowing you to configure refresh type, parallelism, incremental refresh settings, and override profiles. This is useful when you need more control than the standard refresh menu options provide. + +To open the Advanced Refresh dialog, go to **Model > Refresh model > Advanced...** or use the keyboard shortcut **Ctrl+Shift+F5**. + +![Advanced Refresh Menu](~/content/assets/images/advanced-refresh-menu.png) + +## Refresh scope + +The refresh scope indicates which objects will be refreshed. The scope depends on what is selected in the TOM Explorer when you open the dialog: + +- **Entire model**: When no specific tables or partitions are selected +- **Selected tables**: When one or more tables are selected +- **Selected partitions**: When one or more partitions are selected + +## General Settings + +![Advanced Refresh Dialog](~/content/assets/images/advanced-refresh.png) + +### Refresh Type + +The **Refresh Type** dropdown lets you choose the type of refresh operation to perform. Available options depend on the refresh scope: + +| Refresh Type | Description | Availability | +|--------------|-------------|--------------| +| **Automatic** | Lets Analysis Services determine the optimal refresh type based on the current state of objects | All scopes | +| **Full** | Drops all data and reloads from the data source, then recalculates all dependent objects | All scopes | +| **Clear** | Drops all data from the selected objects without reloading | All scopes | +| **DataOnly** | Loads data from the data source without recalculating dependent objects | All scopes | +| **Calculate** | Recalculates the selected objects and all their dependents without reloading data | All scopes | +| **Defrag** | Defragments the dictionaries for all columns in the scope | Model and table scope only | +| **Add** | Adds new data to partitions without processing existing data | Partition scope only | + +### Max Parallelism + +The **Max Parallelism** setting controls how many objects can be processed simultaneously during the refresh operation. A value of **0** means unlimited parallelism, allowing Analysis Services to process as many objects in parallel as resources permit. Set a specific value to limit parallel operations, which can be useful when you want to reduce resource consumption on the server. + +## Incremental Refresh Settings + +![Incremental Refresh Settings](~/content/assets/images/advanced-refresh-incremental-effective-date.png) + +The **Incremental Refresh Settings** section appears when the refresh scope includes at least one table with an [incremental refresh policy](xref:incremental-refresh-about) configured. This section is not available at partition scope. + +- **Apply Refresh Policy**: When checked, the refresh operation will honor the incremental refresh policy defined on the table(s), creating and managing partitions according to the policy's rolling window settings. +- **Effective Date**: Specifies the date to use when evaluating the incremental refresh policy. By default, this is the current date, but you can select a different date to simulate how the refresh would behave at a different point in time. This is useful for testing incremental refresh configurations. + +## Refresh Override Settings + +Refresh overrides allow you to temporarily modify certain properties for the duration of a refresh operation without changing the actual model metadata. This eliminates the risk of accidentally leaving temporary modifications in your model. + +### Use cases for refresh overrides + +- **Limiting data during development**: Override partition queries to load only a subset of rows (e.g., using TOP or WHERE clauses), speeding up refresh operations while developing and testing +- **Refreshing from alternative sources**: Load data from a test or development database instead of the production source configured in the model +- **Testing with modified expressions**: Override shared expressions (M parameters) to test different configurations + +### Override profiles + +Override profiles store named configurations of TMSL overrides that you can reuse across refresh operations. + +![Override Profile Editor](~/content/assets/images/advanced-refresh-edit-profile.png) + +- **New...**: Creates a new override profile. You provide a profile name and the TMSL definition specifying the overrides. +- **Edit...**: Modifies the selected override profile. +- **Delete**: Removes the selected override profile. + +The TMSL definition follows the [TMSL refresh command specification](https://learn.microsoft.com/en-us/analysis-services/tmsl/refresh-command-tmsl?view=asallproducts-allversions), allowing you to override properties on: + +- Data sources +- Shared expressions +- Partitions +- Data columns + +### Profile storage + +Override profiles are stored per-model in the `UserOptions.tmuo` file. When working with model metadata saved on disk, the `.tmuo` file is stored alongside the model files. When connected directly to a model through the XMLA endpoint, the `.tmuo` files are stored under `%LocalAppData%\TabularEditor3\UserOptions`. + +## Export TMSL script + +The **Export TMSL script...** button opens a dialog where you can view and copy the generated TMSL refresh command. This is useful when you want to: + +- Execute the refresh command through other tools (such as SQL Server Management Studio) +- Include the refresh command in automation scripts or CI/CD pipelines +- Review the exact TMSL that will be sent to Analysis Services \ No newline at end of file