%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