Rational Developer for System z, Versión 7.6.1

Mandato RETURN sin el parámetro TRANSID

En este tema se describe cómo manejar el escenario en el que un flujo de servicios se comunica con una transacción utilizando Link3270 Bridge, y la transacción contiene una pantalla de aplicación donde la transacción vuelve y otra transacción se inicia en su lugar. Si la transacción original vuelve utilizando un mandato RETURN sin un parámetro TRANSID, el Tiempo de ejecución de flujo de servicios CICS termina el flujo de servicios con un error de tiempo de ejecución CIA07014E (DFHMA07014E). Puede solucionar este problema añadiendo una pequeña cantidad de manejo especial al flujo de servicios.

Un ejemplo del escenario que se describe en este tema está en la aplicación de ejemplo IVP en la pantalla de aplicación Instrucciones del operador (consulte Menú Instrucciones del operador). En ella, cuando el usuario escribe un ID de transacción y un número de artículo válidos y pulsa la tecla Intro, la aplicación de ejemplo IVP vuelve e indica que debe iniciarse la transacción identificada por el ID de transacción que el usuario acaba de escribir.
Nota: Este escenario no está limitado a las situaciones en las que el usuario escribe el ID de transacción. La transacción original puede utilizar un método cualquiera para seleccionar la nueva transacción que se va a iniciar.
Para que el inicio de la nueva transacción se realice correctamente, debe cumplirse una de las siguientes condiciones (o ambas):
Nota: Si no se cumple ninguna de estas condiciones, el Tiempo de ejecución de flujo de servicios CICS emite un error de tiempo de ejecución CIA07014E (DFHMA07014E).

Cada una de estas dos condiciones se describe más detalladamente en los siguientes subtemas de este tema.

Utilización de un mandato RETURN con el parámetro TRANSID para terminar la transacción

La primera forma de evitar el error de tiempo de ejecución CIA07014E (DFHMA07014E) es que la transacción original vuelva de su invocación utilizando el mandato RETURN TRANSID(<ID_transacción>), donde <ID_transacción> es el ID de transacción de la nueva transacción que se va a iniciar.

Por ejemplo, en la aplicación de ejemplo IVP, si el usuario escribe el ID de transacción ainq, la aplicación puede utilizar el mandato RETURN TRANSID("ainq") para volver de su invocación.

Almacenamiento del ID de transacción en SNA_FIELDS.SNA_NEXT_TRANSID

Si la transacción original vuelve de su invocación utilizando sólo un mandato RETURN en lugar de RETURN TRANSID, todavía puede evitar el error de tiempo de ejecución CIA07014E (DFHMA07014E) si correlaciona el ID de transacción de la nueva transacción con SNA_FIELDS.SNA_NEXT_TRANSID.

Siga estos pasos:
  1. Abra el flujo en el editor de flujo.
  2. Localice el nodo de operación de pantalla Invoke que interactúa con la pantalla de aplicación donde vuelve la transacción original para que se pueda iniciar la nueva transacción.
  3. Pulse el nodo con el botón derecho del ratón, pulse Abrir rutina de correlación y pulse la rutina de correlación del terminal de entrada del nodo. Se abrirá el editor de correlaciones.
  4. En el editor de correlaciones:
    1. Pulse Añadir un mensaje destino Añadir un mensaje destino. Se abrirá la ventana Seleccionar mensaje.
    2. En la ventana Seleccionar mensaje, pulse IBMCICS > IBMCICS.sfmxsd > SNA_FIELDS y, a continuación, pulse Aceptar.
  5. En el lado del destino del editor, en la estructura SNA_FIELDS:
    1. Pulse con el botón derecho del ratón sobre el campo SNA_NEXT_TRANSID.
    2. Pulse Crear transformación. El editor crea una transformación Asignar y la enlaza con el campo.
  6. Pulse la transformación Asignar. Las propiedades de la transformación se visualizan en la vista Propiedades.
  7. En la vista Propiedades:
    1. Pulse General.
    2. En el campo de entrada Valor, escriba el ID de transacción que desea que se escriba en el campo de entrada. (Por ejemplo, para la pantalla de aplicación Instrucciones del operador de la aplicación de ejemplo IVP, puede escribir ainq; consulte Menú Instrucciones del operador.)
  8. Cierre el editor de correlaciones.
  9. Cierre el editor de flujo.
  10. Utilice el asistente Generar código de tiempo de ejecución para volver a generar el flujo de servicios.
Nota: La estructura SNA_FIELDS en la rutina de correlación es una referencia al área de datos real que utiliza el flujo de servicios. En el tiempo de ejecución, cuando el flujo de servicios ejecuta la transformación Asignar, el valor que especifica en la transformación se copia en el área de datos SNA_FIELDS.


Términos de uso | Comentarios

Este Information Center está basado en tecnología Eclipse. (http://www.eclipse.org)