Skip to main content


persistent class %Library.RoutineIndex extends %Library.Persistent

SQL Table Name: %Library.RoutineIndex

Index for all the routines in this namespace. Using this index avoids the overhead of loading all the information from ^ROUTINE, ^rMAC, ^rINC which makes the routine editing tool substantially faster. In case you have tools that enter routines directly into the global and you wish to add this routine to the index then after you have edited the global you should call:
  Do RebuildItemIndex^%R(Name,Type)
The global structure is:



Property Inventory

Method Inventory


property Length as %Integer;
The size in bytes of this routine.
Property methods: LengthDisplayToLogical(), LengthGet(), LengthGetStored(), LengthIsValid(), LengthLogicalToDisplay(), LengthNormalize(), LengthSet()
property Modified as %TimeStamp;
The date/time that this routine was last saved.
Property methods: ModifiedDisplayToLogical(), ModifiedGet(), ModifiedGetStored(), ModifiedIsValid(), ModifiedLogicalToDisplay(), ModifiedNormalize(), ModifiedOdbcToLogical(), ModifiedSet()
property Name as %String (MAXLEN = 128) [ Required ];
The name of the routine.
Property methods: NameDisplayToLogical(), NameGet(), NameGetStored(), NameIsValid(), NameLogicalToDisplay(), NameLogicalToOdbc(), NameNormalize(), NameSet()
property Type as %String [ Required ];
The type of routine, this will be one of:
  • MAC - Macro routine, content is stored in ^rMAC global
  • INT - ObjectScript routine, content is stored in ^ROUTINE global
  • INC - Include file, these may be included from a MAC routine, content is stored in ^rINC
  • BAS - Cache Basic routine, content is stored in the ^ROUTINE global
  • MVB - MultiValue Basic routine, content is stored in the ^ROUTINE global
  • OBJ - Object code, content is stored in ^rOBJ global
Property methods: TypeDisplayToLogical(), TypeGet(), TypeGetStored(), TypeIsValid(), TypeLogicalToDisplay(), TypeLogicalToOdbc(), TypeNormalize(), TypeSet()


classmethod RebuildIndex(namespace As %String, ByRef num As %Integer) as %Status
In case this index gets out of sync with the routines in the current namespace you can call this method to rebuild the index from the various ^ROUTINE, ^rINC, ^rMAC globals. This only rebuilds the index for entries that really live in this namespace, if you have routine mappings so that some routines are in a separate namespace you will need to rebuilt these seperately.
classmethod RebuildItemIndex(rtn As %String, ext As %String, namespace As %String) as %Status
Rebuild the index information for this single item. You pass this the rtn name, its ext (one of "INT", "INC", "MAC", "BAS", "MVB", "OBJ") and optionally the namespace as namespace. You can call this after modifying the routine global directly to update the index correct with the new information.


index (Index on Name,Type) [IdKey, Type = key];
Index methods: IndexCheck(), IndexDelete(), IndexExists(), IndexOpen(), IndexSQLCheckUnique(), IndexSQLExists(), IndexSQLFindPKeyByConstraint(), IndexSQLFindRowIDByConstraint()

Inherited Members

Inherited Methods


Storage Model: Storage (%Library.RoutineIndex)

FeedbackOpens in a new tab