InterSystems IRIS Data Platform 2020.4 > Class Reference > %SYS namespace > %DeepSee.ComputedDimension.Base

%DeepSee.ComputedDimension.Base

class %DeepSee.ComputedDimension.Base extends %Library.RegisteredObject

This is the base class for DeepSee computed dimension classes.
A computed dimension class defines the behavior for a level within a hierarchy within a DeepSee computed dimension.

Property Inventory

Method Inventory

Parameters

parameter BEHAVIOR = BITSET;
Controls the run-time behavior of the dimension. Available values are "BITSET", and "MDX".
BITSET (default) indicates that this class will compute a set of bits that define membership within a given dimension member.
MDX indicates that this class will return a set of valid MDX expressions that will be used to resolve the members of the dimension.
parameter CACHECOMPUTEDBITSET = NEVER;
Controls whether results of %OnComputeBitset() can be reused Available values are "NEVER", "CHECK", with NEVER (default) meaning no values are cached and CHECK meaning the timestamp of previous %OnComputeBitset results is compared to the cube's latest update timestamp.
parameter DIMTYPE = text;
Type reported back to the UI. This determines what type of control to display for filters based on this class.

Properties

property %baseCube as %DeepSee.Datatype.string;
Name of the base cube the computed level belongs to, if ..%cube is a subject area. Otherwise, this property is set to the same value as ..%cube.
Property methods: %baseCubeDisplayToLogical(), %baseCubeGet(), %baseCubeIsValid(), %baseCubeLogicalToDisplay(), %baseCubeLogicalToOdbc(), %baseCubeNormalize(), %baseCubeSet()
property %cube as %DeepSee.Datatype.string;
Name of the cube the computed level belongs to.
Property methods: %cubeDisplayToLogical(), %cubeGet(), %cubeIsValid(), %cubeLogicalToDisplay(), %cubeLogicalToOdbc(), %cubeNormalize(), %cubeSet()
property %dimNumber as %Integer;
Dimension # of the computed level.
Property methods: %dimNumberDisplayToLogical(), %dimNumberGet(), %dimNumberIsValid(), %dimNumberLogicalToDisplay(), %dimNumberNormalize(), %dimNumberSet()
property %factName as %String;
Fact Name associated with the computed level. This is the name of the fact that contains the default search data.
Property methods: %factNameDisplayToLogical(), %factNameGet(), %factNameIsValid(), %factNameLogicalToDisplay(), %factNameLogicalToOdbc(), %factNameNormalize(), %factNameSet()
property %factNumber as %Integer;
Fact # of the computed level.
Property methods: %factNumberDisplayToLogical(), %factNumberGet(), %factNumberIsValid(), %factNumberLogicalToDisplay(), %factNumberNormalize(), %factNumberSet()
property %hierNumber as %Integer;
Hierarchy # of the computed level.
Property methods: %hierNumberDisplayToLogical(), %hierNumberGet(), %hierNumberIsValid(), %hierNumberLogicalToDisplay(), %hierNumberNormalize(), %hierNumberSet()
property %levelNumber as %Integer;
Level # of the computed level.
Property methods: %levelNumberDisplayToLogical(), %levelNumberGet(), %levelNumberIsValid(), %levelNumberLogicalToDisplay(), %levelNumberNormalize(), %levelNumberSet()

Methods

final method %ComputeBitset(pSpec As %String, Output pIndexKey As %String) as %Status [ Language = objectscript ]
Build the bitset that corresponds to the given computed dimension "spec".
method %ComputeIndexKey(pMemberKey As %String) as %String [ Language = objectscript ]
Compute a hash key for a given member member.
classmethod %Count(pCube As %String, pDimNo As %Integer, pHierNo As %Integer, pLevelNo As %Integer) as %Integer [ Language = objectscript ]
Return number of members.
classmethod %Create(pCube As %String, pFactNo As %Integer, pDimNo As %Integer, pHierNo As %Integer, pLevelNo As %Integer) as %DeepSee.ComputedDimension.Base [ Language = objectscript ]
Create a instance of this dimension class.
method %CreateIndexFromSQL(pSQL As %String, pIndexKey As %String, pRS As %SQL.StatementResult = "", pTranslateIds As %Boolean = 0) as %Status [ Language = objectscript ]
Utility method. Prepare and execute the given SQL statement and build an index from it.
If optional pRS is supplied, use it to fetch ID values (result set must have an ID column).
If pTranslateIds is true, then translate source id value to fact ids.
method %CreateIndexFromSearchableMeasure(pSearchMeasureIndex As %String = "", pComparison As %String, pValue As %Numeric, pIndexKey As %String = "") as %Status [ Language = objectscript ]
Utility method. Build an index directly from a comparison on a searchable measure. The comparison is supplied by the arguments
pSearchMeasureIndex - The name of the searchable index on the searchable measure
pComparison - The comparison operator; legal values are SQL numeric comparisons: <,<=,=,=>,>,<>
pValue - The target value of the comparison. This must be numeric
pIndexKey - The key of the new index being constructed out of the searchable measure
classmethod %Eval(pExpr As %String, Output pErrorMsg As %String) as %String [ Language = objectscript ]
Evaluate the given ObjectScript expression.
method %GetAllMembers(ByRef pMemberList, pCube As %String, pDimNo As %Integer, pHierNo As %Integer, pLevelNo As %Integer) as %Status [ Language = objectscript ]
Return the set of all members (pre-defined and run-time) for this dimension. Sort them according to the sort options in the cube meta data.
pMemberList returns a set of members defined in the cube model:
pMemberList(n) = $LB(id,caption,key,[format])
classmethod %GetBehavior() as %String [ Language = objectscript ]
Return the behavior of this class.
final method %GetComputedMembers(ByRef pMemberList, pRollupKey As %String = "", ByRef pRange As %String = "") as %Status [ Language = objectscript ]
Find the set of members for this computed dimension object.
pMemberList may contain a set of members defined in the cube model: pMemberList(n) = $LB(id,name,key,[format])
If so, use this list, otherwise compute one.

pRollupKey and pRange can be used to filter the computed members returned, if applicable for this computed dimension.

classmethod %GetDimType() as %String [ Language = objectscript ]
Return the type of this class (used by UI components).
method %GetFactTable() as %String [ Language = objectscript ]
Return the (SQL) name of the fact table for the current cube.
classmethod %GetLevelNumber(pCube As %String, pDimNo As %Integer, pHierNo As %Integer, pLevelName As %String) as %Integer [ Language = objectscript ]
Given a level name, pLevelName, return the corresponding level number. Return "" if there is no level with the name.
classmethod %GetPredefinedMembers(ByRef pMemberList, pCube As %String, pDimNo As %Integer, pHierNo As %Integer, pLevelNo As %Integer) as %Status [ Language = objectscript ]
Return the set of pre-defined members for this dimension. These will be in the cube meta data.
pMemberList returns a set of members defined in the cube model: pMemberList(n) = $LB(id,caption,key,[format])
method %GetSourceTable() as %String [ Language = objectscript ]
Return the (SQL) name of the source table for the current cube.
method %MemberSearch(pSearchKey As %String, Output pList As %List) as %Status [ Language = objectscript ]
Execute a search for members.
Return a list of the form:
pList(n) = $LB(value,key)
method %MemberSearchByIndex(pSearchKey As %String, Output pList As %List) as %Status [ Language = objectscript ]
Helper method; execute a member search using the contents of the fact index.
method %MemberSearchByMembers(pSearchKey As %String, Output pList As %List) as %Status [ Language = objectscript ]
Helper method; execute a member search using the set of defined (and run-time) members.
method %OnComputeBitset(pSpec As %String, pIndexKey As %String) as %Status [ Language = objectscript ]
Do the actual work of building the bitset. Implemented in subclasses.
method %OnGetComputedMembers(ByRef pMemberList) as %Status [ Language = objectscript ]
Find the set of members for this computed dimension object.
pMemberList(n) = $LB(id,name,key)
This can be implemented by subclasses.

This method is deprecated, implement %OnGetComputedMembersFiltered() instead.

method %OnGetComputedMembersFiltered(ByRef pMemberList, pRollupKey As %String = "", ByRef pRange As %String = "") as %Status [ Language = objectscript ]
Find the set of members for this computed dimension object satisfying pRollupKey and pRange (if applicable for this implementation).
pMemberList(n) = $LB(id,name,key)
This can be implemented by subclasses.
classmethod %OnKillFacts(pCubeName As %String, pFactNo As %Integer, pDimNo As %Integer, pHierNo As %Integer, pLevelNo As %Integer) as %Status [ Language = objectscript ]
Notifies the computed dimension all facts of a cube referencing are being killed. This method should erase any temporary or cached data the computed dimension implementation has written as part of its "lifetime" for the given cube and dimension coordinates. Indices cached as part of the CACHECOMPUTEDBITSET setting are taken care of by the default implementation of this method.
method %ProcessSQL(pSQL As %String, ByRef pSubstList, Output pFirstToken As %String, Output pErrorMsg As %String) as %String [ Language = objectscript ]
Apply substitutions to an SQL query string used within a computed dimension expression.
pSubstList is an array of $$$ substitution values, e.g.:
pSubstList("TABLE") = table name
pSubstList("FACT") = fact name
{} can be used to enclose an ObjectScript expression that is evaluated and whose results become part of the SQL text of the query.
[dim].[mbr] can be used to refer to a specific cube element (such as a measure). This is replaced with the fact name that corresponds to the element.
method %ResolveKey(pSpec As %String, Output pRKey As %String) as %Status [ Language = objectscript ]
Resolve any special tokens or expression in a key value and return the result.

Inherited Members

Inherited Methods

Subclasses

Feedback