%iKnow.DeepSee.GenericKPIabstract class %iKnow.DeepSee.GenericKPI
Implements a DeepSee KPI that executes an iKnow query. To use this class, create a subclass and override the class parameters prefixed with "IK", which you use to specify the iKnow domain (IKDOMAINID), query class (IKQUERYCLASS), query (IKQUERYNAME), and default page size (IKPAGESIZE, optional).
This generic iKnow-DeepSee KPI implementation offers the following services:
- Displays all query result columns as properties (columns in the KPI tab form), which can be configured at widget level. A "resultNumber" column is added as well, indicating the "rank" of the result.
- Offers all query parameters as filters so they can then be added to the widget (and controlled by the user) or fixed to a specific value. Through the GetParameterValues method in %iKnow.Queries.Utils, a list of allowed parameter values is also made available for most common parameters.
- Adds a default Listing to this KPI, showing the iKnow sources containing the entities, CRCs or paths selected in the KPI result. (not available for every query)
- Exposes all the domains public metadata fields as filters (through %iKnow.DeepSee.BaseKPI)
- Adds previous and next buttons to browse through the query results (through %iKnow.DeepSee.BaseKPI)
Override this parameter to specify the iKnow ObjectScript API class that contains the query to use (primary API class, no *QAPI or *WSAPI class) parameter IKQUERYNAME = "GetTop";
Override this parameter to specify the iKnow query to use in the class identified by IKQUERYCLASS.
classmethod %OnGetFilterList(Output pFilters As %List, pDataSourceName As %String = "") as %Status
Configures and fires the query registered for this GenericKPI instance, given the active filter criteria.
classmethod %OnGetFilterMembers(pFilter As %String, Output pMembers As %List, pSearchKey As %String = "", pDataSourceName As %String = "") as %Status
classmethod %OnGetKPIPropertyInfo(ByRef pList As %String, pPropNo As %Integer, pModelId As %String = "") as %Status
Adds the values for the IK: system filters (series name column, metadata-based filters and query parameters)
classmethod %OnGetListingResultSet(ByRef pFilters As %String, ByRef pSelection As %String, pListingName As %String = "", Output pRS As %SQL.StatementResult) as %Status
Adds the returned columns for this KPIs query as properties if there aren't any configured explicitly already, as well as a 'resultNumber' column
Triggers the applicable GetBy*** query from %iKnow.Queries.SourceAPI, taking into account the selected values in the KPI and any active filters.