transferencias hacia y desde MPP
IMS generados por
EGL En IMS/VS, un programa de proceso de mensajes (MPP) puede invocar a otro de dos formas:
- Conmutación de mensajes inmediata
- En una conmutación de mensajes inmediata, un programa pasa el control directamente a
otra transacción sin responder primero al terminal originador. Aunque el programa que realiza la
transferencia sea conversacional, el área de anotación temporal de trabajo (SPA) de
IMS no se utiliza
durante la transferencia; en lugar de ello, el programa somete datos a un PSB alternativo cuyo
destino se establece en la transacción receptora.
Si el programa de transferencia se genera
mediante EGL, la transferencia se lleva a cabo mediante uno de los elementos de lenguaje siguientes:
- La sentencia transfer del tipo transfer to transaction o
- La función del sistema SysLib.startTransaction que solo puede iniciar un programa no
conversacional.
- Conmutación de mensajes diferida
- En una conmutación de mensajes diferida, un programa visualiza un formulario de texto en el
terminal de forma que, cuando el usuario lo someta,
IMS inicie otra
transacción. El
mecanismo de transferencia depende de si el programa que realiza la transferencia es
conversacional o no conversacional:
- Un programa transfiriente conversacional modifica el SPA para incluir el nombre de
transacción del programa receptor.
- Un programa transfiriente no conversacional incluye el nuevo nombre de transacción en el
formulario de texto a fin de que el nombre esté en los primeros ocho bytes del mensaje recibido por
IMS cuando el usuario
somete el formulario.
En cualquier caso, el código de datos modificados del formulario de texto debe
establecerse para todos los campos de entrada del formulario. En caso contrario, se aplican las
consecuencias siguientes:
- Si el usuario somete el formulario sin cambiar el valor de un campo determinado, el
programa receptor no procesa los
datos de dicho campo
- Si el usuario que visualiza el formulario solicita la presentación de un
formulario
de ayuda y luego vuelve a visualizar el formulario original, los valores de campo del
formulario visualizados en el formulario original proceden de los valores por omisión de
ese formulario, en lugar de proceder del programa emisor
Si el programa de transferencia se genera mediante EGL, la transferencia se lleva a
cabo mediante la sentencia show que incluye una cláusula returning.
La utilización de la propiedad
inputForm en un MPP receptor generado por EGL
determina qué tipo de conmutación de mensajes es válida:
- Si no se especifica inputForm, es necesaria una conmutación de mensajes
inmediata.
- Si se especifica inputForm, es posible cualquiera de los tipos de conmutación
de mensajes, pero la utilización de una conmutación diferida es más eficaz. Si se utiliza la
conmutación inmediata, el programa al que se ha realizado la transferencia visualiza
automáticamente el formulario identificado en inputForm, pero el programa receptor se
proceso dos veces: una para visualizar el formulario y otra para leer los datos de usuario.
Cuando transfiere el control de un programa IMS/VS generado por EGL a un programa IMS/VS
generado por EGL, el estado conversacional de ambos programas debe ser el mismo: conversacional o
no conversacional.
Para especificar que
un programa generado por EGL ha reservado un SPA, asigne un valor positivo en la opción
del descriptor de construcción spaSize.