abstract class %DeepSee.KPIPlugIn
extends %DeepSee.KPI
Subclasses of this class are used to implement analytic "plug-ins" for DeepSee.
• parameter ASYNC = 1;
If true, then this KPI can be executed asychronously.
• parameter BASECUBE;
Cube that this plug-in is based on.
This determines which cubes (or subject areas based on this cube) can see this plug-in.
This can be a comma-delimited list. The cube name(s) should not be enclosed with [].
• parameter CACHEABLE = 1;
If true, then results for this KPI can be cached.
• parameter LISTINGFIELDS;
If defined, this the field list (RETURN clause) of the listing used to supply data for this
plug-in.
• parameter LISTINGSOURCE = "SourceTable";
Specifies the source of the listing data used by this plugin: "SourceTable" - the data source
supplies the listing values; "FactTable" - the fact table supplies the listing values.
• parameter PLUGINTYPE = "Pivot";
Specifies the type of this plug-in. This indicates the context in which this plug-in is used.
"Pivot" -- the plug-in is visible within the Analyzer dimension tree.
"Aggregate" -- the plug-in is not visible within the Analyzer dimension tree.
• parameter PUBLIC = 0;
By default, plug-ins are not visible to dashboards.
• property %factCount
as %Integer;
Number of facts in the "listing" that is driving this KPI.
• property %plugInListingKey
as %String;
• property %sqlResultSet
as %SQL.StatementResult;
Iterator for SQL results that will drive the computation of this plugin.
• classmethod %GetBaseCube()
as %String
Return the cube(s) this KPI is based on.
• classmethod %GetPlugInType()
as %String
Return the type of this plug in.
• method %GetPluginMDX(Output pStatus As %Status)
as %String
Plugins have a context-specific DRILLTHROUGH/DRILLFACTS MDX query that is executed
to ultimately produce the SQL resultset containing the target records for analysis. This
method decorates the base query with the MDX resultset cell context and directs the drill
to the proper source.
• classmethod %GetSourceType()
as %String
Return the sourceType for this KPI.
Always "custom" for plugins.
• method %OnCompute(pSQLRS As %SQL.StatementResult, Output pFactCount As %Integer)
as %Status
Compute value(s) for this plug-in.
pSQLRS is an SQL result set (%SQL.StatementResult) that
will iterate over a set of facts and provide
the base data for the calculations.
pFactCount Is the number of facts in the set.
Plug-in classes should implement this method to perform their calculations.
• method %OnComputeKPITimestamp(ByRef pTimestamp As %String, pSourceType As %String, pQueryText As %String = "")
as %Status
Compute and return the KPI cache timestamp for the current KPI result.
• method %OnGetAnalysisResultSet(Output pRS As %SQL.StatementResult, pSQL As %String)
as %Status
Return an %SQL.StatementResult object that will iterate over the facts used for analysis.
• classmethod %OnGetFilterMembers(pFilter As %String, Output pMembers As %List, pSearchKey As %String = "", pDataSourceName As %String = "", ByRef pFilterValues As %String)
as %Status
Callback to get additional members for a KPI filter.
This takes the form:
pMembers($I(pMembers))=$LB(text,value)
In this case, return members for certain "built-in" filters such as
"%cube" and "%measure".
• method %OnGetListingFields()
as %String
Returns the field list (RETURN clause) of the listing used to supply data for this plug-in.
• method %OnGetListingMaxRows()
as %String
Returns the MDX MAXROWS clause for the drillthrough query used to supply data for this plug-in.
• method %OnGetListingOrderBy()
as %String
Returns the MDX %ORDER BY clause for the drillthrough query used to supply data for this plug-in.
• method %OnGetListingSource()
as %String
Returns the source of the listing data used by this plugin: "SourceTable" - the data source
supplies the listing values; "FactTable" - the fact table supplies the listing values.
• method %OnGetMDX(ByRef pMDX As %String)
as %Status
This callback defines the default MDX query used for analysis. It also checks for the current values
in the filters.
By default, select all facts from the first base cube.
This may be overridden by subclasses.
• final method %OnLoadKPI()
as %Status
Notification that this KPI is being executed.
In this case, we compute the value of this plug-in by setting up the context
and invoking the %OnCompute method.
Plug-in classes should implement the %OnCompute method.
Copyright (c) 2025 by InterSystems Corporation. Cambridge, Massachusetts, U.S.A. All rights reserved. Confidential property of InterSystems Corporation.