Un elemento transferToProgram de un componente de opciones de enlace especifica la forma en que un programa COBOL generado transfiere el control y finaliza el proceso.
El elemento incluye estas propiedades:
- fromPgm
- toPgm
- linkType
- alias (que es necesaria si el código efectúa la transferencia a un programa cuyo nombre de tiempo de ejecución es diferente del nombre del componente de programa relacionado)
Puede evitar la necesidad de especificar un elemento
transferToProgram
si el programa destino se genera con
VisualAge
Generator o (en ausencia de un alias) con EGL.
El comportamiento por omisión es el siguiente:- Si el programa se ejecuta en CICS para z/OS, la transferencia se implementa con un mandato XCTL.
- Si el programa se ejecuta en z/OS pero no en CICS, EGL simula el comportamiento en CICS a fin de que finalice el programa que realiza la transferencia sin que finalice la unidad de ejecución, sin compromisos ni liberaciones de bloqueos. En este caso, la transferencia se implementa con una llamada COBOL dinámica, que es más eficiente que XCTL pero utiliza más memoria.
Un caso especial se produce al desarrollar código COBOL que se ejecuta fuera de
CICS. La simulación de tiempo de ejecución del comportamiento de CICS significa que el usuario debe especificar el programa inicial de la unidad de ejecución como aquél desde el que se realizarán las transferencias.
Considere el caso de Program01 que transfiere a Program02, que a su vez transfiere a
Program03, suponiendo que cada una de las transferencias sea de tipo
transferir a programa. Al generar Program01 (a menos que acepte el comportamiento por omisión), el componente de opciones de enlace debe incluir un par de elementos transferLink para indicar que se producen las transferencias siguientes:
- De Program01 a Program02
- De Program01 a Program03
Si Program02 es un programa generado por EGL y Program03 no lo es, los valores por omisión serán inadecuados y deberá especificar el elemento transferLink que está implicado en la transferencia del control de Program01 a Program03.
En la situación anterior, si Program02 también puede utilizarse como primer programa de
otra unidad de ejecución, el componente de opciones de enlace debe incluir un elemento
transferLink diferente al generar Program02. En este caso, el objetivo consiste en transferir directamente el control de Program02 a Program03.