%DeepSee.Model.level
Class %DeepSee.Model.level Extends (%DeepSee.Model.node, %DeepSee.Model.source) [ System = 3 ]
Meta-data for a hierarchy level within a dimension within a DeepSee cube.
Properties
hierarchy
Relationship hierarchy As %DeepSee.Model.hierarchy(XMLPROJECTION = "none") [ Cardinality = one, Inverse = levels ];
Hierarchy that this level belongs to.
properties
Property properties As list Of %DeepSee.Model.property(XMLELEMENTREF = 1, XMLPROJECTION = "ELEMENT", XMLTYPECONSTRAINT = "CHOICE");
Set of properties defined for this level.
members
Property members As list Of %DeepSee.Model.member(XMLELEMENTREF = 1, XMLPROJECTION = "ELEMENT", XMLTYPECONSTRAINT = "CHOICE");
Optional. Set of explicitly defined members for this level.
If defined, this is a list of the members that are to be displayed for this level in the given order.
timeFunction
Property timeFunction As %DeepSee.Datatype.string(VALUELIST = ",Year,QuarterYear,MonthYear,WeekYear,DayMonthYear,Decade,QuarterNumber,MonthNumber,WeekNumber,DayNumber,HourNumber,MinuteNumber,Days,Months,Years", XMLPROJECTION = "attribute") [ Internal ];
For time dimensions, this is the name of the function that provides the data for this level.
A time function is the class name of a time level class (without the package name). E.g., "Year".
timeFormat
Property timeFormat As %DeepSee.Datatype.string(XMLPROJECTION = "attribute") [ Internal ];
For time dimensions, this is optional display format to apply to time values within this level.
(See the %FormatDate method in the %DeepSee.Utils class) for details on the format.
timeOffset
Property timeOffset As %DeepSee.Datatype.string(XMLPROJECTION = "attribute") [ Internal ];
For time dimensions, this is optional offset to apply to time values within this level.
The offset is an interval in the form "99y99m99d" where 9 is any digit and y,m, and d indicate years, months, and days. The interval may have a leading minus sign.
This is used in cases where a time period does not correspond to actual time (such as a fiscal year starting on Oct 1).
list
Property list As %Boolean(XMLPROJECTION = "attribute") [ InitialExpression = 0 ];
If true, then the value for this level contains a list of items. Each distinct item is treated as a member of this level.
By default the list consists of a $List of items. You can also use a character-delimited list by setting the listDelimiter attribute.
A nullReplacement for a list property is applied when the entire list is missing. Missing elements within a list are simply ignored.
listDelimiter
Property listDelimiter As %DeepSee.Datatype.string(MAXLEN = 1, XMLPROJECTION = "attribute");
Optional. If the list attribute for this level is true, then setting this will cause the list to be interpreted as a character delimited value using this attribute as the delimiter character.
nullReplacement
Property nullReplacement As %DeepSee.Datatype.string(XMLPROJECTION = "attribute");
Optional. If defined, this is used as the display value for any members of this level whose value is null (missing).
If not defined, then missing members will not be listed by queries.
This cannot be used for levels within time dimensions or for levels that contain a list of values (see list).
rangeExpression
Property rangeExpression As %DeepSee.Datatype.string(MAXLEN = 32000, XMLPROJECTION = "attribute");
Optional. If defined, this contains a range expression that transforms incoming values according to a set of range conditions.
A range condition is a string containing one or more range conditions. Each condition has a test value and a replacement value of the form "test:replace;" A test value can contain a single value or a range. A range is enclosed with () (exclusive) or [] (inclusive).
For example:
"(,0]:Below Normal;(0,100):Normal;[100,):Above Normal;" This cannot be used for levels within time dimensions or for levels that contain a list of values (see list).
Range expressions are applied before null value substitution.
Values that do not match any range condition are converted to null.
memberList
Property memberList As %DeepSee.Datatype.string(XMLPROJECTION = "attribute") [ Deprecated ];
Optional. If defined, this is a comma-delimited list of the members that are to be displayed for this level in the given order.
This is deprecated in favor of the members collection.
useDisplayValue
Property useDisplayValue As %Boolean(XMLPROJECTION = "attribute") [ InitialExpression = 0 ];
If true, then use the display (external) value of the field (if applicable) in the source table when fetching data for this level.
This is only applied for levels that specify a sourceProperty.
sort
Property sort As %DeepSee.Datatype.string(VALUELIST = ",asc,desc,asc numeric,desc numeric", XMLPROJECTION = "attribute");
If specified, then use this property to define the default sort order for members of the current level.
The value can be "asc" for ascending order, "desc" for descending order, "asc numeric" for ascending numeric order, or "desc numeric" for descending numeric order.
For more precise control, you can specify sort order within the property definitions associated with this level.
dependsOn
Property dependsOn As %DeepSee.Datatype.string(MAXLEN = 32000, XMLPROJECTION = "attribute");
If defined, this is an MDX expression identifying another level within this cube that this level depends on, e.g., "[Outlet].[H1].[City]"
This causes the following changes to this cube.
- An additional index is created based on the "master" level's fact and this level's fact.
- When the set of members for this level is produced it is filtered using this index.
useAsFilter
Property useAsFilter As %Boolean(XMLPROJECTION = "attribute") [ InitialExpression = 1 ];
If true (the default), then this level can be used a filter within a dashboard. If false, it is still visible to the Analyzer, but is not listed as a choice for a widget filter.
This has no effect on the operation of the cube.
castAsNumeric
Property castAsNumeric As %Boolean(XMLPROJECTION = "attribute");
If true, the engine will treat the members of this level as numbers.
hidden
Property hidden As %Boolean(XMLPROJECTION = "attribute") [ InitialExpression = 0 ];
If true, this level is hidden. That is, it will not be listed among the cube's members within the various DeepSee utilities.
It can still be used within MDX queries and expressions.
factNumber
Property factNumber As %DeepSee.Datatype.string(XMLPROJECTION = "attribute");
Define a stable fact number for this level
Methods
timeFunctionIsValid
ClassMethod timeFunctionIsValid(%val) As %Status
Override default validation to allow for additional time classes.
%AtScaleExport
Method %AtScaleExport(pStatus As %Status = {$$$OK}, ByRef pAuxiliaryIndex As %DynamicAbstractObject = {$$$NULLOREF}) As %DynamicAbstractObject
Produce the structures needed to emit the appropriate JSON and export this item to AtScale