This is documentation for Caché & Ensemble.

For information on converting to InterSystems IRIS, see the InterSystems IRIS Adoption Guide and the InterSystems IRIS In-Place Conversion Guide, both available on the WRC Distributions page (login required).

Home > Class Reference > ENSLIB namespace > Ens.SearchTableBase


abstract class Ens.SearchTableBase

Base class for all Ensemble SearchTable classes. Users wishing to create their own SearchTable classes should NOT extend this class. User SearchTable classes must extend one of two kinds of base classes. In most cases, users intending to index Ensemble Virtual Documents should extend one of the document-specific subclasses of Ens.VDoc.SearchTable, such as EnsLib.HL7.SearchTable or EnsLib.EDI.X12.SearchTable. These VDoc SearchTables provide a simple and easy to use way of specifying properties to index in virtual documents moving through Ensemble. In more complex situations where alternative indexing strategies are needed and users are willing to perform more custom development work, users can extend Ens.CustomSearchTable.

Property Inventory (Including Private)

Method Inventory (Including Private)


parameter DOCCLASS;
The class of Document object for which this SearchTable subclass is designed.

Properties (Including Private)

property DocId as %String (COLLATION = "EXACT");
The ID of the document / message body object this row is associated with. Depending on the class specified in DOCCLASS, this value may not be numeric, so it is defined as a string with EXACT collation to ensure that any matches on this property are based on the original value.
Property methods: DocIdDisplayToLogical(), DocIdGet(), DocIdIsValid(), DocIdLogicalToDisplay(), DocIdLogicalToOdbc(), DocIdNormalize(), DocIdSet()

Methods (Including Private)

classmethod BuildIndex(pStartId As %Integer = 0, pEndId As %Integer = -1) as %Status
Code generated method to index documents of the type specified in DOCCLASS with IDs between pStartId and pEndId. The default value of -1 for pEndId indicates that all IDs after pStartId should be indexed.
classmethod GetExtentSuperclass() as %String
Generated method to return the name of the class which forms the base extent for the current SearchTable class.
classmethod IndexDoc(pDocObj As %Persistent) as %Status
Method which actually performs indexing of the message / document supplied in the pDocObj argument. This method should be overridden in subclasses.
classmethod IsASub(pClass As %String, pSuper As %String) as %Boolean [ SQLProc = IsASub ]
Utility method used in the Message Viewer UI to check whether the class specified in pClass extends the base class supplied in pSuper. The method returns true if pClass = pSuper.
classmethod RemoveIndex(pStartId As %Integer = 0, pEndId As %Integer = -1, pNoLock As %Boolean = 0) as %Status
Code generated method to remove index values for all documents of the type specified in DOCCLASS with IDs between pStartId and pEndId. The default value of -1 for pEndId indicates that all IDs after pStartId should be indexed. The pNoLock argument controls whether the delete operation should use the %NOLOCK SQL keyword which controls whether locks should be taken out during the delete operation. By default locks are used but there are situations, especially when handling OnDelete triggers, where the extra locks could have a serious impact on performance.
final classmethod RemoveSearchTableEntries(pClass As %String, pId As %String, pNoLock As %Boolean = 0) as %Status
Method to remove all SearchTable entries which appear for a given document class. The method relies on Ens.DocClassMap to maintain a list of SearchTables which have indexed instances of the document class.
classmethod SearchHeader(pOutput, pDocId)
Build output array of all headers that refer to the given doc ID for this class Output array is subscripted as pOutput(tSessionId,tHeaderId,pDocId)=$LB(tTimeCreated,tSourceConfigName,tTargetConfigName)")