Skip to content

BPA Rules - Suggested updates due to new functionality #359

@Eivind4

Description

@Eivind4

In the attached file, I have added some suggestion s to the existing rules and added some rules. To summarize:

  1. I have edited IDs to have the same text as the Name. The reason for this is a suggested updated to the Semantic Link Labs, where I have in a project added logic to catch ignored rules from the annotations created from ignoring the rules with Tabular Editor. The simplest way was then to align the ID and name (and transform it to same format as the ID), as this is the way the annotation is noted. Then I can get an annotation and add a column in the lakehouse to flag it as an ignored rule.
  2. Added the rules that have been added in Semantic Link Labs. I have not been able to properly test the DirectLake-related content, as I currently do not have the enterprise license, but used similar logic as for DirectQuery
  3. Added two rules based on recent video with Chris Webb and Analytics Endevours related to preparing the model for copilot (and humans) creating business friendly and not technical names. Not using dim/fact prefix and not CamelCase, PascalCase, SnakeCase for visible columns
  4. Added some logic related to functions and calendar option. Not possible to add functions as scope (yet). I assume the challenge then is that you need a file for the most recent edition and one for older editions of TE.
  5. Modified descriptions where syntax is changed

In addition to the rule-IDs, and the added rules, the following is the modification to existing rules:

  • "Provide format string for measures" and "Whole numbers should be formatted with thousand separators and no decimals": Added format string expressions. More likely more in use with DaxUDF and should not violate. The same when DataType is string for the measure. If it should have a violation, it would be best to have separate violation along with a fix script. Not sure what it should be for a text measure. A bit annoying if creating dynamic text/ conditional formatting. Did not add DataType=DateTime for a measue, but it could be removed and have a separate rule with a fix script similar to the column, if required
  • "Provide format string for columns". Aligned with SLL. For regions where the American date format is not standard, I think it is better that it is not violating. And the it can easily be tailored by removing the ones that are not used for consistency.
  • "Inactive relationships that are never activated": Added functions to the rules, as ti could be that it is only used in a function and not a measure
  • "Removed unnecessary columns". Added a check to see if it is used as part of the Calendar Option as well and not violate if this is the case
  • "Set IsAvailableInMdx to false on non-attribute / true on necessary columns. Added direct lake logic according to SLL, but not verified
  • "Measures using time intelligence and model is using DirectQuery". Added WTD calculations, as these are possible with Calendar options
  • "Split date and time": The script returns Yes/No in the annotation and fails, as it checks for a numeric value

When possible, add function as scope to most of the "DAX expression"-rules

The suggested updates to the Rules-file:
BPARules_MicrosoftInput.json

Will get back when to SLL when I have some input there as well in the SLL repository.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions