Skip to main content

%DeepSee.Model.dimension

Class %DeepSee.Model.dimension Extends node [ System = 3 ]

Meta-data for a dimension within a DeepSee cube. Subclasses of this class are used to implement specific types of dimension.

Properties

cube

Relationship cube As %DeepSee.Model.cube(XMLPROJECTION = "none") [ Cardinality = one, Inverse = dimensions ];

Cube that this dimension belongs to.

sharesFrom

Property sharesFrom As %DeepSee.Datatype.entityName(XMLPROJECTION = "attribute");

Optional. If true, this is the name of another, pre-existing, cube that this dimension shares from. This means that the other cube has a dimension of the same name and that the dimensional tables of the other cube are used to track members of the dimension in *this* cube.

hasAll

Property hasAll As %Library.Boolean(XMLPROJECTION = "attribute") [ InitialExpression = 1 ];

Indicates whether this dimension has an "All" level.
The default is true.

allCaption

Property allCaption As %DeepSee.Datatype.string(XMLPROJECTION = "attribute");

Optional. Specifies the name used for the All level for this dimension. If not provided, then "All" + dimension name is used.

allDisplayName

Property allDisplayName As %DeepSee.Datatype.string(XMLPROJECTION = "attribute");

Optional. Specifies the localized name used for the All level for this dimension. If defined, this is the text displayed by DeepSee applications, otherwise the allCaption is used.

sourceProperty

Property sourceProperty As %DeepSee.Datatype.string(XMLPROJECTION = "attribute");

Name of the property in the source data that provides the value for this element.
If specified, this is used as a default value for any level within this dimension that does not explicitly define a sourceProperty.
For time dimensions, this property must be defined.
Using dot syntax, it is possible to refer to a property within a related class, for example "City.Name" or "City.State.Name".

sourceExpression

Property sourceExpression As %ZEN.Datatype.expression(LANGUAGE = "OBJECTSCRIPT", XMLPROJECTION = "attribute");

Optional expression used to get the value of this member.
This can refer to properties of the source table using the syntax: "%source.Property".

localSourceProperty

Property localSourceProperty As %DeepSee.Datatype.string(XMLPROJECTION = "none") [ Internal ];

For shared dimensions, this is used to track a local override of this property on the sharing side.

localSourceExpression

Property localSourceExpression As %ZEN.Datatype.expression(LANGUAGE = "OBJECTSCRIPT", XMLPROJECTION = "none") [ Internal ];

For shared dimensions, this is used to track a local override of this property on the sharing side.

type

Property type As %DeepSee.Datatype.string(VALUELIST = ",measures,data,time,age,computed,iKnow", XMLPROJECTION = "ATTRIBUTE") [ InitialExpression = "data" ];

Specifies what type of dimension this is.
The type can be one of the following:

  • "measures" - reserved.
  • "data" - this dimension is based on data values supplied from a source property or expression. One or more dimension tables are generated to hold the set of possible values.
  • "time" - this dimension is based on time values. No dimension tables are generated, instead the hierarchy of time classes are used to process the values for this dimension.
  • "age" - similar to "time" except that the hierarchy of age classes are used to process the values for this dimension.
  • "computed" - a computed dimension that uses a special dimension class (dimensionClass) to process its values.
  • "iKnow" - a dimension that makes use of text processed by the iKnow Smart Indexing API. This must be linked to an "iKnow" measure (iKnowMeasure) which supplies the values for this dimension. If not specified, then the type will be set to "data".

calendar

Property calendar As %DeepSee.Datatype.string(VALUELIST = ",gregorian,partial,hijriTabular,hijriObserved", XMLPROJECTION = "ATTRIBUTE");

Specifies which calendar is to be used if this is a time dimension

dimensionClass

Property dimensionClass As %DeepSee.Datatype.string(XMLPROJECTION = "attribute") [ Internal ];

Optional. For "computed" dimensions, this is the name of the class that provides the dimension computation logic. This is an advanced feature that requires some expertise.
If the package name is omitted, then the "%DeepSee.ComputedDimension" package is used.

iKnowMeasure

Property iKnowMeasure As %DeepSee.Datatype.string(XMLPROJECTION = "attribute");

Optional. For "iKnow" dimensions, this is the name of the "iKnow" measure that provides the data for this dimension.

iKnowType

Property iKnowType As %DeepSee.Datatype.string(VALUELIST = ",entity,dictionary", XMLPROJECTION = "attribute");

Optional. For "iKnow" dimensions, this provides a way to define the specific way in which iKnow works with this dimension.

hierarchies

Relationship hierarchies As %DeepSee.Model.hierarchy(XMLELEMENTREF = 1, XMLPROJECTION = "ELEMENT", XMLTYPECONSTRAINT = "CHOICE") [ Cardinality = many, Inverse = dimension ];

Set of hierarchies defined for this dimension.
Via a set of levels, a hierarchy defines a way in which this dimension can roll up.

hidden

Property hidden As %Boolean(XMLPROJECTION = "attribute") [ InitialExpression = 0 ];

If true, this dimension 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.

showHierarchies

Property showHierarchies As %DeepSee.Datatype.string(VALUELIST = ",true,false,default", XMLPROJECTION = "ATTRIBUTE") [ InitialExpression = "default" ];

If "true", then always display this dimension's hierarchies within the Analyzer. If "false", then never display hierarchies. If "default", then only show hierarchies if there is more than one hierarchy.
This has no effect on the operation of the cube.

Methods

%Validate

Method %Validate() As %Status

Test if this dimension's definition is valid.

%GetSQLTableName

ClassMethod %GetSQLTableName(pClass As %String) As %String [ CodeMode = expression ]

Return the SQL table name for the given class name.

%GetSQLColumnName

ClassMethod %GetSQLColumnName(pClass As %String, pProp As %String) As %String [ Final ]

Returns the SQL name of property pProp for class pClass.

%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