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.