sysLib.startTransaction

La función de sistema sysLib.startTransaction invoca de forma asíncrona un programa principal, asocia ese programa con un dispositivo de impresora o un terminal y pasa un registro. Si EGL genera el programa receptor, el registro se utiliza para inicializar el registro de entrada; si VisualAge Generator produce el receptor, el registro se utiliza para inicializar el almacenamiento de trabajo.

Esta función no está soportada en programas generados como programas de proceso por lotes de z/OS.

Esta función no está soportada en programas generados como programas COBOL iSeries.

El comportamiento por omisión de esta función consiste en iniciar un programa que reside en el mismo paquete de Java o que está en el mismo sistema CICS. Para cambiar ese comportamiento, especifique un elemento asynchLink en el componente de opciones de enlace utilizado para generar el programa de invocación.

Un programa Java sólo puede efectuar la transferencia a otro programa Java de la misma máquina.


Diagrama de sintaxis sysLib.startTransaction
petición
El nombre de un registro básico, que debe tener el siguiente formato:
  • Los 2 primeros bytes (de tipo SMALLINT o de tipo BIN sin decimales) contienen la longitud de los datos que deben pasarse a la transacción iniciada, más 10 para los dos campos (incluido este) que no se pasan. El valor no puede sobrepasar los 32767 bytes.Si el destino es un programa Java, el valor no puede sobrepasar los 32767 bytes; pero si el destino es un programa COBOL en iSeries, el valor no puede sobrepasar los 4095 bytes.
  • Los 8 bytes siguientes (de tipo CHAR) tampoco se pasan, pero contienen el nombre del programa que debe iniciarse.
  • Los 8 bytes siguientes (de tipo CHAR) tampoco se pasan y el contenido depende del destino:
    • En el caso de un destino Java generado por EGL, esos bytes contienen el nombre del programa que debe iniciarse
    • En el caso de un destino en CICS, esos bytes contienen un ID de transacción, y los 4 últimos bytes deben ser blancos
  • El resto del registro de petición se pasa.
IDimpr
Si se especifica este elemento de 4 bytes, se ignorará.
IDimpr
Este elemento opcional de 4 bytes de tipo BIN, CHAR o SMALLINT está destinado sólo a CICS; pero se pasa por alto si se invoca un programa de una región CICS remota.

Si la opción printDestination del descriptor de construcción se establece en TERMINALID, si la transacción se inicia mediante invocación de sysLib.startTransaction, y si el parámetro IDterm de esa función se establece en ceros binarios, el valor inicial de ConverseVar.printerAssociation es el valor especificado para el parámetro IDimpr. En este caso, el mandato CICS START se emite sin terminal asociado.

Por omisión, la transacción iniciada se asocia con el terminal actual, y el valor de IDimpr se pasa por alto. De forma similar, si el valor de IDterm no son ceros binarios, el valor de IDimpr se pasa por alto.

IDimpr
Este elemento opcional de 4 bytes de tipo CHAR se utiliza solamente para transferir a un programa COBOL en iSeries. El elemento contiene el valor de la cola de salida utilizada para el trabajo asíncrono y el valor por omisión es VGEN. La cola de salida debe definirse antes de que el programa ejecute ConverseVar.printerAssociation.
IDterm
Si se especifica este elemento de 4 bytes de tipo CHAR, se ignorará. Debe especificar IDterm si especifica IDimpr.
IDterm
Este elemento opcional de 4 bytes de tipo CHAR se utiliza solamente para transferir a un programa COBOL en CICS; en cualquier otro caso se ignorará el elemento. El elemento especifica el ID de terminal o ID de impresora que debe asociarse con la transacción CICS que se inicia.

Para iniciar una transacción nueva que se asocie con el terminal actual, utilice una sentencia transfer en lugar de establecer IDterm en el ID de ese terminal.

Debe especificar IDterm si especifica IDimpr.

IDterm
Si se especifica este elemento opcional de 4 bytes de tipo CHAR, se ignorará.
En relación a CICS, se aplican las siguientes normas:
  • La transacción iniciada debe tener entradas PCT y PPT para el programa. Si la transacción iniciada no se ha generado mediante EGL o VisualAge Generator, el programa debe emitir una sentencia CICS RETRIEVE para obtener el área de trabajo pasada.
  • La variable de sistema sysVar.errorCode puede contener cualquiera de los valores de retorno que se muestran en la tabla siguiente.

    Valor de sysVar.errorCode Significado
    00000000 Satisfactorio
    00000203 ID de transacción no válido
    00000205 ID de terminal no válido
    00000206 Parámetros no válidos
    00000207 ID de sistema no válido
    00000208 Enlace fuera de servicio
    ffrrrrrr Otro error CICS, donde ff es la representación hexadecimal del byte 0 de EIBFN y rrrrrr es la representación hexadecimal de los bytes 0-2 de EIBRCODE
Para programas COBOL, Servidor EGL para iSeries proporciona soporte para sysLib.startTransaction mediante dos programas de lenguaje de mandatos (CL):
CREATX
Actúa como se indica a continuación:
  • Obtiene el número de trabajo actual
  • Envía los datos de usuario a la cola de datos VGCREATX
  • Inicia el trabajo CREATXJOB para iniciar el programa CL CREATXPP
CREATXPP
Actúa como se indica a continuación:
  • Utiliza el número de trabajo como clave para recuperar datos de la cola de datos VGCREATX
  • Llama al programa CL asíncrono especificado en los bytes 3 a 11 del registro de usuario
Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.