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
Method Inventory
- BuildIndex()
- GetExtentSuperclass()
- IndexDoc()
- IsASub()
- RemoveIndex()
- RemoveSearchTableEntries()
- SearchHeader()
Parameters
parameter DOCCLASS;
The class of Document object for which this SearchTable subclass is designed.
Properties
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
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.
Projected as the stored procedure: 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)")