CSL OM directives
An OM directive is a function that OM defines that can be sent as a message to OM clients to inform the OM clients of work to be processed. Any command processing client that has registered commands to OM can be selected to perform an OM directive.
OM directives are always issued in message protocol (PROTOCOL=MSG), that is, asynchronously; OM therefore expects no response from the OM client, and it continues processing without waiting for a response. The OM client is responsible for determining whether or not to take any action in response to the directive.
When a client issues PROTOCOL=MSG, SCI sends the XML output from OM to the client's SCI Input exit. The SCI Input exit routine's INXP_MBRPLPTR field points to the CSLOMDIR parameter list.
When a client issues CSLOMI PROTOCOL=RQST, the XML output stream from OM is sent directly to the client in the OUTPUT= parameter.
The SCI Input exit routine is responsible for notifying the client of the directive. The client should code their SCI Input exit routine to support OM directives. The client is responsible for determining where the function and function code are to be defined. After the client is finished using the CSLOMDIR parameter list, it must release the storage by issuing CSLSCBFR.
OM directives are defined in the CSLOMDIR macro, which includes:
- Command directive (ODIR_CMDD)
- CSLOMI response directive (ODIR_OMIRESPD)
- Command response directive (ODIR_CMDRESPD)
- Query response directive (ODIR_QRYRESPD)
The directives and their parameters are described in this topic.
CSL OM command directive
The OM command directive, ODIR_CMDD, is sent to a command processing client when a command is available for processing.
The parameters for the OM command directive follow. They are passed to the SCI Input Exit:
- ODIR_COMMAND
- Identifies the start of the command directive.
- ODIR_CMDTKLEN=length
- Contains the length of the OM command token. It is used only by OM to identify the command instance.
- ODIR_CMDTKPTR=address
- Contains the address of the OM command token.
- ODIR_INPUTLEN=length
- Contains the length of the command input string that you enter.
- ODIR_INPUTPTR=address
- Contains the address of the command input string.
- ODIR_VERBLEN=length
- Contains the length of the command verb in normalized form.
- ODIR_VERBPTR=address
- Contains the address of the command verb.
- ODIR_KWDLEN=length
- Contains the length of the command keyword.
- ODIR_KWDPTR=address
- Contains the address of the command keyword.
- ODIR_PARSELEN=length
- Contains the length of the parsed command block.
- ODIR_PARSEPTR=address
- Contains the address of the parsed command block.
- ODIR_CUIDLEN=length
- Contains the length of the user ID that originated the command.
- ODIR_CUIDPTR=address
- Contains the address of the user ID that originated the command.
- ODIR_CNAMELEN=length
- Contains the length of the name of the client that originated the command (that is, the name that was registered to SCI).
- ODIR_CNAMEPTR=address
- Contains the address of the name of the client that originated the command (that is, the name that was registered to SCI).
- ODIR_CTYPE=client type
- Contains the type of client that originated the command. This is the value from the TYPE= parameter as defined to SCI. This parameter is passed by value; the length field is always zero.
- ODIR_CSTYPLEN=length
- Contains the subtype of the client that originated the command. This is the value from the SUBTYPE= parameter as defined to SCI.
- ODIR_CSTYPPTR=length
- Contains the address of the subtype of the client that originated the command.
- ODIR_CFLAGS=flags
- Contains the OM command processing flags. These parameters are passed by value; the length field is always zero.
- ODIR_CRQTKLEN=length
- Contains the length of the user request token; this parameter is used only by the program that originated the command to identify the command instance.
- ODIR_CRQTKPTR=address
- Contains the address of the user request token; this parameter is used only by the program that originated the command to identify the command instance.
- ODIR_TIMEOUT=timeoutvalue
- Contains the command timeout value as specified on the command. This parameter is passed by value; the length field is always zero.
- ODIR_CMDLN
- The command directive length EQU.
CSL OM response directives
There are three response directives in CSLOMDIR:
- CSLOMI response (ODIR_OMIRESPD)
The CSLOMI response directive returns a response to a client regarding a CSLOMI call. The response is sent when an error occurs and it is unclear if the response is for a CSLOMI CMD or CSLOMI QUERY call.
- Command response (ODIR_CMDRESPD)
The command response directive returns a command response to a client that results from a CSLOMI CMD or CSLOMCMD call.
- Query response (ODIR_QRYRESPD)
The query response directive returns a query response to a client that results from a CSLOMI QUERY or CSLOMQRY call.
The parameters for the OM response directives are identical.
- ODIR_CQRESP
- Identifies the start of the command or query response.
- ODIR_CQRSPRC=returncode
- Contains the return code of the command or query response.
- ODIR_CQRSPRSN=reasoncode
- Contains the reason code of the command or query response.
- ODIR_CQXMLLEN=length
- Contains the length of the XML output being returned.
- ODIR_CQXMLPTR=address
- Contains the address of the XML output being returned.
- ODIR_CQRT1LEN=length
- Contains the length of request token 1 (RQSTTKN1).
- ODIR_CQRT1PTR=address
- Contains the address of request token 1 (RQSTTKN1).
- ODIR_CQRT2LEN=length
- Contains the length of request token 2 (RQSTTKN2).
- ODIR_CQRT2PTR=address
- Contains the address of request token 2 (RQSTTKN2).
- ODIR_CQRSPLN
- The response directive length EQU.
CSL UOM directive
The OM unsolicited output message (UOM) directive, ODIR_UOM, is sent to any OM client that subscribes to OM. You define this directive in CSLOMDIR.
The parameters for the UOM directive are passed to the OM client's SCI Input exit routine.
- ODIR_UOM
- Identifies the start of the UOM directive parameters.
- ODIR_UOMXMLLEN=length
- Contains the length of the XML output that is sent.
- ODIR_UOMXMLPTR=address
- Contains the address of the unsolicited output message, wrapped in XML tags.
- ODIR_UOMLN
- The UOM directive length equate (EQU) value.
- ODIR_UOMCR
- Identifies the start of the command response UOM directive parameters,
which inform the subscribing client that this is a command response
sent as an unsolicited message.
- ODIR_UOMXMLLEN=length
- Contains the length of the XML output that is sent.
- ODIR_UOMXMLPTR=address
- Contains the address of the unsolicited output message, wrapped in XML tags.
- ODIR_UOMLN
- The UOM directive length equate (EQU) value.