Class Reference
IRIS for UNIX 2019.3
InterSystems: The power behind what matters   
Documentation  Search
  [ENSLIB] >  [%DeepSee] >  [ComputedDimension] >  [Base]
Private  Storage   

class %DeepSee.ComputedDimension.Base extends %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.

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
3 7 28


Summary

Properties
%baseCube %cube %dimNumber %factName %factNumber
%hierNumber %levelNumber

Methods
%%OIDGet %AddToSaveSet %BindExport
%BuildObjectGraph %ClassIsLatestVersion %ClassName
%Close %ComputeBitset %ComputeIndexKey
%ConstructClone %Count %Create
%CreateIndexFromSQL %CreateIndexFromSearchableMeasure %DispatchClassMethod
%DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty
%Eval %Extends %FindComputedMemberByKey
%FindComputedMemberByName %GetAllMembers %GetBehavior
%GetComputedMembers %GetDimType %GetFactTable
%GetLevelNumber %GetMemberSpec %GetParameter
%GetPredefinedMembers %GetSourceTable %IncrementCount
%IsA %IsModified %MemberSearch
%MemberSearchByIndex %MemberSearchByMembers %New
%NormalizeObject %ObjectModified %OnComputeBitset
%OnGetComputedMembers %OnGetComputedMembersFiltered %OnKillFacts
%OriginalNamespace %PackageName %ProcessSQL
%RemoveFromSaveSet %ResolveKey %SerializeObject
%SetModified %ValidateObject

Subclasses
%DeepSee.ComputedDimension.MDX %DeepSee.ComputedDimension.SET %DeepSee.ComputedDimension.SQL
%iKnow.DeepSee.Dimensions.Base

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 %cube as %DeepSee.Datatype.string;
Name of the cube the computed level belongs to.
• property %dimNumber as %Integer;
Dimension # of the computed level.
• 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 %factNumber as %Integer;
Fact # of the computed level.
• property %hierNumber as %Integer;
Hierarchy # of the computed level.
• property %levelNumber as %Integer;
Level # of the computed level.

Methods

• final method %ComputeBitset(pSpec As %String, Output pIndexKey As %String) as %Status
Build the bitset that corresponds to the given computed dimension "spec".
• method %ComputeIndexKey(pMemberKey As %String) as %String
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
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
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
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
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
Evaluate the given ObjectScript expression.
• method %FindComputedMemberByKey(pKey As %String, Output pFlag As %Boolean, Output pMemberName As %String, Output pMemberId As %String) as %Status
Find the member with the given key value.
• method %FindComputedMemberByName(pName As %String, Output pFlag As %Boolean, Output pMemberKey As %String, Output pMemberId As %String) as %Status
Test if pName is a valid member name.
• method %GetAllMembers(ByRef pMemberList, pCube As %String, pDimNo As %Integer, pHierNo As %Integer, pLevelNo As %Integer) as %Status
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
Return the behavior of this class.
• final method %GetComputedMembers(ByRef pMemberList, pRollupKey As %String = "", ByRef pRange As %String = "") as %Status
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.

• private method %GetCurrentQuery() as %DeepSee.Query.query
Returns the %DeepSee.Query.query object for the current query context, if any
• classmethod %GetDimType() as %String
Return the type of this class (used by UI components).
• method %GetFactTable() as %String
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
Given a level name, pLevelName, return the corresponding level number. Return "" if there is no level with the name.
• classmethod %GetMemberSpec(pMemberId As %String, pCubeName As %String, pDimNo As %Integer, pHierNo As %Integer, pLevelNo As %Integer) as %String
Return the member specification for the given member.
Implement this so that %GetFiltersForCellRange will work!
• classmethod %GetPredefinedMembers(ByRef pMemberList, pCube As %String, pDimNo As %Integer, pHierNo As %Integer, pLevelNo As %Integer) as %Status
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
Return the (SQL) name of the source table for the current cube.
• method %MemberSearch(pSearchKey As %String, Output pList As %List) as %Status
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
Helper method; execute a member search using the contents of the fact index.
• method %MemberSearchByMembers(pSearchKey As %String, Output pList As %List) as %Status
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
Do the actual work of building the bitset. Implemented in subclasses.
• method %OnGetComputedMembers(ByRef pMemberList) as %Status
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
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
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
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
Resolve any special tokens or expression in a key value and return the result.


Copyright (c) 2019 by InterSystems Corporation. Cambridge, Massachusetts, U.S.A. All rights reserved. Confidential property of InterSystems Corporation.