Utilización de CICSPlex SM con REXX

Puede invocar comandos de la API CICSPlex® SM desde un programa REXX.

Formato de los mandatos

Un comando API puede pasarse de REXX a CICSPlex SM bien utilizando el comando REXX ADDRESS o bien utilizando la función EYUAPI().

Comando REXX ADDRESS
El formato del comando REXX ADDRESS es el siguiente:
   ADDRESS CPSM 'command option(arg)...'

Este método de llamada a la API invoca un entorno de subcomandos del host CCICSPlex SM.

Función EYUAPI()
Alternativamente, puede utilizar la función EYUAPI() suministrada por CICSPlex SM:
   var = EYUAPI('command option(arg)...')

Este método invoca el paquete de funciones CICSPlex SM REXX.

Tenga en cuenta que con ambos métodos puede introducir texto en mayúsculas o minúsculas.

Ejemplo:
A continuación se muestra un ejemplo de un comando API tal y como se emitiría desde un programa REXX:
   var = EYUAPI('CONNECT'              ,
                'CONTEXT('WCONTEXT')' ,
                'SCOPE('WSCOPE')'     ,
                'VERSION(0640)'      ,
                'THREAD(THRDTKN)'     ,
                'RESPONSE(RESPVAR)' ,
                'REASON(REASVAR)')
      .
      .

Valores de los argumentos

La API CICSPlex SM hace pleno uso de la interfaz de variables REXX estándar.

Un argumento valor-datos se considera entrada de caracteres. Los datos binarios (incluidos los valores EYUDA y CVDA) se traducen al formato interno adecuado. Los tokens de usuario no se traducen.
referencia de datos

Un argumento de recepción (o envío y recepción) utilizado principalmente para pasar datos de CICSPlex SM a su programa.

Un argumento data-ref debe ser una variable con nombre que pueda utilizarse para recibir la salida resultante. Los datos de salida se traducen según convenga:
  • Los datos de carácter no se traducen; los datos se colocan en la variable tal cual.
  • Los datos binarios se traducen al formato de visualización (decimal) y se colocan en la variable.
  • Los tokens de usuario no se traducen; el valor del token se coloca en la variable tal cual.
  • Los valores de dirección no se traducen; el búfer de almacenamiento especificado se coloca directamente en una o más variables.

En algunos casos, puede utilizar un argumento data-ref para proporcionar entrada a CICSPlex SM antes de que CICSPlex SM le devuelva su salida (la opción COUNT del comando FETCH es un ejemplo de ello). Si un argumento data-ref puede ser suministrado como entrada, debe especificar una variable para ese argumento. Si no desea especificar un valor de entrada, debe inicializar la variable.

área de datos

Argumento de envío o recepción utilizado para identificar un búfer que contiene datos. Un argumento área de datos debe ser una variable con nombre.

Para las memorias intermedias de salida que podrían recibir varios registros de tablas de recursos, CICSPlex SM crea (o rellena) variables madre para contener los datos. La entrada cero de la matriz de tallos indica el número de entradas de la matriz.

Por ejemplo, en la variable stem llamada W_INTO_EVALDEF, la entrada W_INTO_EVALDEF.0 contiene el número de registros de la tabla de recursos EVALDEF devueltos. Las entradas W_INTO_EVALDEF.1 a W_INTO_EVALDEF.n contienen los registros reales de la tabla de recursos.

Se crea una variable de tallo independientemente de si la salida real es un registro único o múltiples registros.

ptr-ref

Un argumento receptor utilizado para pasar valores de puntero desde CICSPlex SM a su programa.

Un argumento ptr-ref debe ser una variable con nombre que pueda utilizarse para recibir la salida resultante. Los datos que se pasan son una representación en caracteres de una dirección hexadecimal.

cpsm-token

Un argumento de envío o recepción utilizado para pasar tokens de identificación que son generados por CICSPlex SM.

Un argumento cpsm-token debe ser una variable con nombre. Los tokens no se traducen; el valor del token se coloca en la variable tal cual.

Nota: Cada variable (o variable madre) devuelta por CICSPlex SM contiene un registro de tabla de recursos completo. Puede utilizar el comando TPARSE para dividir un registro en campos individuales. Para obtener una descripción de este comando, consulte Funciones y comandos REXX.