abstract class Ens.SearchTableBaseBase class for all 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 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 InterSystems IRIS. 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.
The class of Document object for which this SearchTable subclass is designed.
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()
classmethod BuildIndex(pStartId As %Integer = 0, pEndId As %Integer = -1) as %Status [ Language = objectscript ]
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 [ Language = objectscript ]
Generated method to return the name of the class which forms the base extent for the current SearchTable class.
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 [ Language = objectscript, 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 [ Language = objectscript ]
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 [ Language = objectscript ]
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) [ Language = objectscript ]
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)")