Skip to main content

%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.

  1. An additional index is created based on the "master" level's fact and this level's fact.
  2. 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