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 OpenVMS 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.