The SCA Callable Interface allows you to use SCA within independent application programs. This allows you to integrate SCA into alternative user-interfaces and lets you generate specialized reports based on SCA information. The SCA Callable Interface contains two components. The first is a set of routines termed Callable Command Routines, which comprise a high-level interface which must always be used, regardless of the type of application. This provides a very simple callable interface to SCA, which will be sufficient for most applications. Callable Command Interface Routines o SCA$ASYNCH_TERMINATE o SCA$CLEANUP o SCA$DO_COMMAND o SCA$GET_INPUT o SCA$INITIALIZE o SCA$LOCK_LIBRARY o SCA$PUT_OUTPUT o SCA$UNLOCK_LIBRARY The second component is a set of routines termed Callable Query Routines. The Callable Query Routines comprise a lower- level interface to the FIND command. Using this interface, an application has control over the specification of queries and the manipulation of query results. Callable Query Initialization/Cleanup Routines o SCA$QUERY_CLEANUP o SCA$QUERY_INITIALIZE Callable Query Question Building Routines o SCA$QUERY_PARSE o SCA$QUERY_SELECT_OCCURRENCE o SCA$SELECT_OCCURRENCE Callable Query Result Manipulation Routines o SCA$GET_ATTRIBUTE o SCA$GET_ATTRI_KIND_T o SCA$GET_ATTRI_VALUE_T o SCA$GET_OCCURRENCE o SCA$QUERY_GET_ATTRIBUTE o SCA$QUERY_GET_ATTRI_KIND_T o SCA$QUERY_GET_ATTRI_VALUE_T o SCA$QUERY_GET_OCCURRENCE Callable Query Miscellaneous Routines o SCA$GET_CURRENT_QUERY o SCA$QUERY_COPY o SCA$QUERY_FIND o SCA$QUERY_GET_NAME Message Handling The SCA callable interface handles all messages the same way: it signals them. If you want control over the display of such messages, you must establish a condition handler. Establishing a condition handler is optional. Rules for Calling SCA Routines o Most SCA routines are not AST-reentrant; therefore, you should not call an SCA routine (except SCA$ASYNCH_TERMINATE) from an AST routine that may currently be interrupting an SCA routine. o Your program must not disable ASTs. o If your program uses event flags, you must use the VMS RTL routines (LIB$RESERVE_EF, LIB$GET_EF, and LIB$FREE_EF) in order to coordinate the use of event flags between your program and SCA. o Except for SCA$ASYNCH_TERMINATE, do not call SCA from within an SCA callback routine or from within a routine that is handling a condition signaled by SCA. o Your program must not unwind when handling a condition signaled by SCA.