- La sentencia call proporciona el control a otro programa y, opcionalmente, pasa una serie de valores. El control se devuelve al llamador cuando finaliza el programa llamado. Si el programa llamado cambia los datos que se han pasado en forma de variable, el contenido de la variable se cambia en el llamador.
La llamada no compromete las bases de datos ni otros recursos recuperables, aunque puede producirse un compromiso automático del lado del servidor.
Puede especificar las características de la llamada estableciendo un elemento callLink del componente de opciones de enlace. Para obtener información detallada, consulte las secciones call y elemento callLink. Para obtener información detallada sobre el compromiso del lado del servidor, consulte la sección luwControl en elemento callLink.
- La sentencia transfer pasa el control de un programa principal a otro, finaliza el programa que realiza la transferencia y, opcionalmente, pasa un registro cuyos datos se aceptan en el registro de entrada del programa receptor. No se puede utilizar una sentencia transfer en un programa llamado.
El programa puede transferir el control mediante una sentencia del tipo
transferir a transacción o mediante una sentencia del tipo
transferir a programa:
- Una sentencia del tipo transferir a transacción actúa de la manera siguiente:
- En un programa principal que se ejecuta bajo CICS para z/OS, esta sentencia compromete los recursos recuperables, cierra los archivos, cierra los cursores e inicia una nueva transacción.
- En un programa que se ejecuta como un programa por lotes principal
z/OS o como un
programa por lotes principal o de texto principal
Java, el
comportamiento depende del valor establecido en la opción del descriptor de construcción
synchOnTrxTransfer--
- Si el valor de synchOnTrxTransfer es YES, la sentencia transfer compromete los recursos recuperables, cierra los archivos, cierra los cursores e inicia un programa en la misma unidad de ejecución.
- Si el valor de synchOnTrxTransfer es NO (el valor por omisión), la sentencia transfer también inicia un programa en la misma unidad de ejecución, pero no cierra ni compromete los recursos que están disponibles en el programa invocado.
- Una sentencia del tipo transferir a programa no compromete ni retrotrae los recursos recuperables, pero cierra los archivos, libera los bloqueos e inicia un programa en la misma unidad de ejecución.
El componente de opciones de enlace no afecta a las características de ninguno de estos tipos de transferencia.
Cuando se transfiere el control desde el código Java generado por EGL, el componente de opciones de enlace no afecta a las características de ninguno de estos tipos de transferencia. Sin embargo, cuando el programa que realiza la transferencia está en COBOL, se aplica lo siguiente:
- El componente de opciones de enlace no tiene ningún efecto sobre la sentencia transferir a transacción
- Puede establecer un componente de opciones de enlace, el elemento transferLink, para afectar a las características de transferir a programa
En un manejador de páginas, no es válida una transferencia.
Para obtener información detallada, consulte las secciones transfer y elemento transferLink.
- La función de sistema sysLib.startTransaction inicia una unidad de ejecución de forma asíncrona. La operación no finaliza el programa que realiza la transferencia y no afecta a las bases de datos, archivos y bloqueos del programa que realiza la transferencia.
Tiene la opción de pasar datos al registro de entrada, que es un área del programa receptor.
Si el programa invoca sysLib.startTransaction, debe generar el programa con un componente de opciones de enlace, el elemento asynchLink.
Para obtener información detallada, consulte las secciones sysLib.startTransaction y elemento asynchLink.
- La sentencia EGL show finaliza el programa principal actual
de una aplicación de texto y muestra los datos al usuario mediante un formulario.
Después de que el usuario haya enviado el formulario, la sentencia show opcionalmente reenvía el control a un segundo programa principal, el cual recibe los datos recibidos del usuario así como los datos que se han pasado sin ningún cambio desde el programa originador.
La sentencia show se ve afectada por los valores establecidos en el componente de opciones de enlace, el elemento transferLink
Para obtener información detallada, consulte la sección show.
- Finalmente, la sentencia forward se invoca
desde un manejador de páginas o desde un programa que se ejecuta en un entorno
Java.Finalmente,
la sentencia forward se invoca desde un manejador de páginas o un
programa. La sentencia actúa de la manera siguiente:
- Compromete los recursos recuperables, cierra los archivos y libera los bloqueos
- Reenvía el control
- Finaliza el código
El destino en este caso es otro programa o página Web. Para obtener información detallada, consulte la sección forward.