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):
- La transacción original utiliza un mandato RETURN TRANSID para volver de su
invocación y especificar la nueva transacción que se va a iniciar.
- En el flujo de servicios, el ID de transacción de la nueva transacción se almacena en
una estructura SNA_FIELDS.
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:
- Abra el flujo en el editor de flujo.
- 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.
- 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.
- En el editor de correlaciones:
- Pulse Añadir un mensaje destino
. Se abrirá la ventana Seleccionar
mensaje.
- En la ventana Seleccionar mensaje, pulse
y, a continuación, pulse Aceptar.
- En el lado del destino del editor, en la estructura SNA_FIELDS:
- Pulse con el botón derecho del ratón sobre el campo
SNA_NEXT_TRANSID.
- Pulse Crear transformación. El editor crea una transformación
Asignar y la enlaza con el campo.
- Pulse la transformación Asignar. Las propiedades de la transformación se visualizan en la vista Propiedades.
- En la vista Propiedades:
- Pulse General.
- 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.)
- Cierre el editor de correlaciones.
- Cierre el editor de flujo.
- 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.