Skip to main content


class Ens.Enterprise.Portal.MsgFilter.Assistant extends EnsPortal.MsgFilter.Assistant

Property Inventory

Method Inventory


The Message Bank Header table must be sorted by time and not ID, but we we can convert time ranges to ID ranges for each NodeId.
parameter FilterClass = Ens.Enterprise.Portal.MsgFilter.Filter;
Name of Filter to use for searches.
parameter SESSIONSUBSCRIPT = MsgBankViewer;
Inherited description: Subscript under temporary session data to use for storing the search history for the viewer. The storage is activated by setting the ^Ens.Debug("UtilEnsMessages","sql") debug node to a positive number.


property TimeOnly as %Integer;
Flag to indicate whether the only restrictions on the query are time-related
Property methods: TimeOnlyDisplayToLogical(), TimeOnlyGet(), TimeOnlyIsValid(), TimeOnlyLogicalToDisplay(), TimeOnlyNormalize(), TimeOnlySet()


classmethod BasicEnumerateClose(ByRef qHandle As %Binary) as %Status
Method to release the references held by the query.
classmethod BasicEnumerateExecute(ByRef qHandle As %Binary, Filter As Ens.Enterprise.Portal.MsgFilter.Filter) as %Status
Method to initialise the retrieval of the data and create the query to retrieve information for a specific Message Header.
classmethod BasicEnumerateFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status
Method which implements the custom fetch code which iterates over the TimeCreated index of the Message Header to retrieve candidate headers before checking the SessionStart condition on the message.
classmethod BasicEnumeratePrepare(ByRef qHandle As %Binary, Filter As %String, p2 As %Integer, p3 As %String) as %Status
classmethod CreateFilter(pSearchCriteria As %ZEN.proxyObject, Output pFilter As Ens.Enterprise.Portal.MsgFilter.Filter, pExcludeSequenceManager As %Library.Boolean = 1, pVirtualKey As %Library.Integer = 0) as %Status
Callback to create the Filter class for this Assistant. The paging logic is implemented in this method based on the nextPageStartTime and nextPageEndTime properties of the supplied proxyObject, as the ID values are not sequential.
classmethod CreateProxy(pFilter As Ens.Enterprise.Portal.MsgFilter.Filter, Output pSearchCriteria As %ZEN.proxyObject, pExcludeSequenceManager As %Boolean = 1) as %Status
Callback to create a Zen proxyObject from a supplied Filter. Sequence manager searches are always excluded.
classmethod EnumerateExecute(ByRef qHandle As %Binary, Filter As EnsPortal.MsgFilter.Filter) as %Status
Initial method which parses the Filter into SQL terms and post-SQL terms. In the specific case where no terms have actually been specified, the custom BasicEnumerate query is used to create a result set. If the user does specify any terms, then this method constructs an inner result set based on the SQL terms and calls the execute method of this inner result set.
classmethod GetResultSet(pFilter As Ens.Enterprise.Portal.MsgFilter.Filter, Output pResultSet As %ResultSet, pExecute As %Boolean = 1) as %Status
Helper method to return a valid ResultSet for the supplied Filter object. The result set construction itself is wrapped by the Enumerate query.
method OnFinalizeSQL(pFilter As EnsPortal.MsgFilter.Filter, ByRef pSelect As %String, ByRef pFrom As %String, ByRef pWhere As %String, ByRef pOrder As %String, ByRef pSelectTerms, ByRef pFromTerms) as %Status
Method to finalize the generated SQL query. Any modifications to JOIN order or the FROM clause should be implemented in this callback. The pSelect, pFrom, pWhere and pOrder arguments represent the SELECT, FROM, WHERE and ORDER BY clauses of the query thus far. The pSelectTerms and pFromTerms arguments are arrays that contain further values and tables which have yet to be added to the respective clauses. The contents of these arrays in combination with the state of the current Assistant can be used to determine what (if any) modifications should be made to the query as constructed by the parser. In the specific case of a single SearchTable condition, the Message Bank code makes use of the %STARTTABLE keyword to ensure that we use the SearchTable condition first.


query BasicEnumerate(Filter As Ens.Enterprise.Portal.MsgFilter.Filter)
Selects TimeCreated, ID, Client, Session, SessionId, Status, Error, Source, Target
Custom query to retrieve data from the Message Bank Message Header table when no query criteria have been specified. The code implementing the query is in the BasicEnumerateExecute(), BasicEnumerateFetch() and BasicEnumerateClose() methods.
query Enumerate(Filter As Ens.Enterprise.Portal.MsgFilter.Filter)
Selects TimeCreated, ID, Client, Session, SessionId, Status, Error, Source, Target
List the messages matching the conditions in the supplied Filter. The actual logic for this query is implemented in the EnumerateExecute(), EnumerateFetch(), EnumerateClose() and EnumerateGetInfo() methods.

Inherited Members

Inherited Properties

Inherited Methods

FeedbackOpens in a new tab