Open Exchange
Global Masters
Home > Class Reference > ENSLIB namespace > %iKnow.DeepSee.MDXFilter
Private  Storage   


class %iKnow.DeepSee.MDXFilter extends

This %iKnow.Filters.Filter filters sources according to an MDX set expression. This should be a DeepSee-managed domain, created automatically through the use of an iKnow measure in a DeepSee cube. The MDX will be run against this cube and hence should be a valid MDX statement using dimensions and/or measures defined for this cube.

Filter parameters:

  1. pDomainId As %Integer
  2. pMDXWhereClause As %String - The MDX set expression to filter cube facts through. This should be a valid expression for the MDX WHERE clause.
  3. pCubeName As %String - If this is an iKnow-managed domain, use this parameter to specify the DeepSee cube the MDX should be run against. (this parameter is ignored for DeepSee-managed domains)
  4. pMeasureName As %String - If this is an iKnow-managed domain, use this parameter to specify the iKnow measure in pCubeName for which the values are represented by this iKnow domain. (this parameter is ignored for DeepSee-managed domains)


USER>zn "samples"

SAMPLES>set domId = ##class(%iKnow.DeepSee.CubeUtils).GetDomainId("AviationEvents","Report")

SAMPLES>set filter = ##class(%iKnow.DeepSee.MDXFilter).%New(domId, "{[AircraftDim].[H1].[AircraftCategory].&[Balloon],[AircraftDim].[H1].[AircraftCategory].&[Glider]}")

SAMPLES>write ##class(%iKnow.Queries.SourceAPI).GetCountByDomain(domId)
SAMPLES>write ##class(%iKnow.Queries.SourceAPI).GetCountByDomain(domId,filter)


Parameters Properties Methods Queries Indices ForeignKeys Triggers
3 4


CubeName DomainId FilterId FilteredSourceCount
IsCached MDXWhereClause MeasureName Selectivity

%%OIDGet %AddToSaveSet %BindExport
%BuildObjectGraph %ClassIsLatestVersion %ClassName
%Close %ConstructClone %DispatchClassMethod
%DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty
%Extends %GetParameter %IncrementCount
%IsA %IsModified %New
%NormalizeObject %ObjectModified %OriginalNamespace
%PackageName %RemoveFromSaveSet %SerializeObject
%SetModified %ValidateObject BuildOccurrenceFilter
BuildTypedEntOccFilter BuildUniqueFilter CheckResultCache
CheckResultCacheSingle ClearCachedFilter ClearCachedFilters
CreateAsString CreateFromBitstring CreateGroupAsString
DomainIdSet FilteredSourceCountGet FromString
GetCRCOccurrenceFilter GetCRCUniqueFilter GetCcUniqueFilter
GetEntityOccurrenceFilter GetEntityUniqueFilter GetFilteredCcFrequency
GetFilteredCcSpread GetFilteredCrcFrequency GetFilteredCrcSpread
GetFilteredCrcUniqueCount GetFilteredEntityFrequency GetFilteredEntitySpread
GetFilteredEntityUniqueCount GetFilteredStemFrequency GetFilteredStemSpread
GetFirstFilteredSource GetLabel GetNextCRCOccurrenceFilterOffset
GetNextCRCUniqueFilterOffset GetNextCcUniqueFilterOffset GetNextEntityOccurrenceFilterOffset
GetNextEntityUniqueFilterOffset GetNextFilterOffset GetNextPathFilterOffset
GetNextSourceFilterOffset GetNextSrcId GetPathFilter
GetSecondaryFilter GetSourceFilter Initialize
Invalidate IsFiltered IsValid
MergeBits RestoreFilterFromId RestoreFilterFromString
SaveFilteredFrequency SaveFilteredSpread SelectivityGet
StoreResultCache StoreResultCacheSingle ToArray
ToBitstring ToString


• property CubeName as %String [ ReadOnly ];
• property MDXWhereClause as %String [ ReadOnly ];
• property MeasureName as %String [ ReadOnly ];


• private method %OnNew(pDomainId As %Integer, pMDXWhereClause As %String, pCubeName As %String = "", pMeasureName As %String = "") as %Status
This callback method is invoked by the %New method to provide notification that a new instance of an object is being created.

If this method returns an error then the object will not be created.

It is passed the arguments provided in the %New call. When customizing this method, override the arguments with whatever variables and types you expect to receive from %New(). For example, if you're going to call %New, passing 2 arguments, %OnNew's signature could be:

Method %OnNew(dob as %Date = "", name as %Name = "") as %Status If instead of returning a %Status code this returns an oref and this oref is a subclass of the current class then this oref will be the one returned to the caller of %New method.

• private method BuildSourceFilter(maxOffset As %Integer) as %Status

This is the primary method that needs to be implemented by an actual %iKnow.Filters.Filter subclass to translate the abstract filter criteria the subclass addresses into a bitstring based on Source IDs. The subclass' implementation of this method should use SetSourceBits for this purpose, setting the requested bitstrings for each offset up to maxOffset.

• private classmethod RestoreFilterFromStringInternal(filterParams As %String) as %iKnow.Filters.Filter

Default implementation, with the filterParams corresponding to all %New arguments. See also RestoreFilterFromString.

• method ToString() as %String

Subclasses should implement this method to build a string representation of the filter instance. It should start with the filter class name, followed by a pipe (|) character and then a string representation that can be interpreted by its RestoreFilterFromStringInternal implementation.