Skip to main content

%DeepSee.Query.memberSpec

Class %DeepSee.Query.memberSpec Extends group [ System = 3 ]

This class defines a member specification within a DeepSee query.
A member specification defines a specific member from a dimension such as "[Product]", "[Product].[Name]", or "[Location}.[Boston]".
A set of members may be grouped within a single tuple or a single member may exist stand-alone.
Every memberSpec has a corresponding member object that implements any operations needed to be run against the member, such as getting a list of dimension members for a given member.

Properties

spec

Property spec As %DeepSee.Datatype.string(MAXLEN = 32000, XMLPROJECTION = "attribute");

Specification string for this member. This is text from the query.

%member

Property %member As %DeepSee.Query.member(XMLPROJECTION = "none");

Member object that provides the member API for this member. This is created during the pre-processing phase.

%resolvedSpec

Property %resolvedSpec As %String(XMLPROJECTION = "none") [ Internal, MultiDimensional ];

This array holds our member spec *after* it has been resolved.

%resolvedQuoted

Property %resolvedQuoted As %String(XMLPROJECTION = "none") [ Internal, MultiDimensional ];

This array holds a list of which items in the resolved list are quoted.

%memberKeys

Property %memberKeys As %String(XMLPROJECTION = "none") [ Internal, MultiDimensional ];

Resolved member keys, if any.

Methods

%ResolveValue

Method %ResolveValue() As %Status [ Internal ]

Break our spec into it constituent parts.
If the spec contains named parameters, resolve them.
We do this as soon as we are first asked for our value and then we hold onto the resolved value.

%ToString

Method %ToString(Output pSC As %Status) As %String

Convert this node to its text representation.

%GetType

Method %GetType() As %String

Return type of this node.

%GetMemberProvider

Method %GetMemberProvider() As %DeepSee.Query.member

Return the member provider object associated with this node.

%PreProcess

Method %PreProcess(pIsSlicer As %Boolean = 0) As %Status

Execute the pre-processing logic for this node.

%ProcessAxes

Method %ProcessAxes(pCube As %String, pKey As %String, ByRef pNodeNo As %Integer, Output pNewNodeNo As %Integer, pParent As %Integer, pVisible As %Boolean = 1) As %Status [ Internal ]

Execute and build the axes output for this tuple.

%ProcessFilter

Method %ProcessFilter(ByRef pFilterTree As %List, pCube As %String, ByRef pNodeNo As %Integer, Output pNewNodeNo As %Integer, pParent As %Integer) As %Status [ Internal ]

Process the filter output for this tuple

%SpecToMember

Method %SpecToMember(ByRef pSpec, ByRef pQuoted, ByRef pMemberKey, Output pMember As %DeepSee.Query.member) As %Status [ Internal ]

Parse the given member spec and create a member API object from it.
A member spec is of the form "A.B.C"; it is passed via the array pSpec: pSpec(1)=A, etc.
The array pQuoted indicates whether a part of the spec is a quoted identifier (and thus cannot be a function).
The array pMemberKey indicates whether a part of the spec is member key (e.g., &2007).
On return pMember contains the member provider object that can be used to process the member.
We assume that if the spec contained a function it was already removed before this point.

%ConstructMemberSpec

ClassMethod %ConstructMemberSpec(pSpec As %String, Output pMemberSpec As %DeepSee.Query.memberSpec) As %Status [ Internal ]

Given a member spec, create a memberSpec object that can be used to access members.

%GetMemberDisplayValues

Method %GetMemberDisplayValues(pCubeName As %String = "", Output pLevelName = "", Output pMemberName = "") As %Status [ Internal ]

Retrieve the display names for the level and member of a memberSpec object. This is used for converting a logical node in a query object to values suitable for use in the user interface.

%IsEnabled

Method %IsEnabled(pCube As %String = "", Output pStatus As %Status = {$$$OK}, Output pReason As %String = "") As %Boolean

Test this node to make sure all data referenced by the spec is enabled in this cube.