The MeasuresTemplate template class creates measures based on the template in the following Measure Template Definition definition.
The template identifies column, table, and measure dependencies by using specific annotations.
{
"_comment": "Standard Time Intelligence",
"TargetTable": {
"SQLBI_CalendarType": "Calendar"
},
"TemplateAnnotations": {
"SQLBI_Template": "TimeIntelligence",
"SQLBI_TimeIntelligence": "Standard",
"SQLBI_CalendarType": "Calendar"
},
"MeasureTemplates": [...]
}
Measure Template Definition
TargetTable
List of annotations that must be matched at the table level in order to apply the measure template. See Annotations for standard annotations used.
TemplateAnnotations
List of annotations applied to the measures generated by the template. By looking at these annotations it is possible to identify and modify/remove the measures created by a measure template. For example, when a Time Intelligence template is applied to a model, the measures generated by a previous execution of a Time Intelligence template are removed. See Annotations for standard annotations used.
MeasureTemplates
List of Measure Template objects, one for each template item.
Measure Template
A measure template item defines how to create a measure for the template.
"MeasureTemplates": [
{
"Name": "_ShowValueForDates",
"IsHidden": true,
"IsSingleInstance": true,
"MultiLineComment": [
"Returns TRUE if the period selected is earlier",
"than the last period with data."
],
"MultiLineExpression": [
"VAR __LastDateWithData =",
" CALCULATE (",
" @@GETMAXDATE(),",
" REMOVEFILTERS ()",
" )",
"VAR __FirstDateVisible =",
" MIN ( @_C-SQLBI_AttributeTypes-Date_@ )",
"VAR __Result =",
" __FirstDateVisible <= __LastDateWithData",
"RETURN",
" __Result"
]
},
{
"Name": "YTD",
"DisplayFolder": "To-date total",
"MultiLineExpression": [
"IF (",
" [_ShowValueForDates],",
" CALCULATE (",
" @@GETMEASURE(),",
" DATESYTD ( @_C-SQLBI_AttributeTypes-Date_@ )",
" )",
")"
]
},
...
]
Name
Name of the measure template. if IsSingleInstance is false, this is the name applied as a prefix or suffix to the existing measure name when the new measure is created from the template. For example, YTD for Sales Amount will create YTD Sales Amount or Sales Amount YTD.
FormatString
(optional) Format String of the measure.
IsHidden
true if the measure is hidden.
IsSingleInstance
true if the measure must be created in a single instance and not for every measure. For example, the _ShowValueForDates measure is created only once by the time intelligence template and used by other measures created by the same template.
DisplayFolder
Name of the display folder.
Description
Description of the measure.
Annotations
List of annotations applied to the measure.
Expression
DAX expression defined in a single line. If defined, Expression has precedence over MultiLineExpression.
MultiLineExpression
Array of strings that define a comment in multiple lines. If Expression is defined, then MultiLineExpression is ignored.
Comment
Single line comment. If defined, Comment has precedence over MultiLineComment.
MultiLineComment
Array of strings that define a DAX expression in a multiple lines. If Comment is defined, then MultiLineComment is ignored.