La sentencia EGL transfer transfiere el control de un programa principal a otro, finaliza el programa que realiza la transferencia y, opcionalmente, pasa un registro cuyos datos se aceptan al registro de entrada del programa receptor. No puede utilizarse una sentencia transfer en un programa llamado.
El programa puede transferir el control mediante una sentencia del formato
transferir a transacción :
- Una transferencia a transacción actúa del siguiente modo:
- En un programa ejecutado como un
como programa principal por lotes o de texto
Java, el
comportamiento depende del valor de la opción synchOnTrxTransfer del
descriptor de construcción:
- Si el valor de synchOnTrxTransfer es YES, la sentencia transfer compromete los recursos recuperables, cierra archivos, cierra cursores e inicia un programa en la misma unidad de ejecución.
- Si el valor de synchOnTrxTransfer es NO (valor por omisión), la sentencia transfer también inicia un programa en la misma unidad de ejecución, pero no cierra ni compromete recursos, que están disponibles para el programa invocado.
- En un PageHandler, no puede realizarse una transferencia a una transacción; en lugar de ello, utilice la sentencia forward.
El componente de opciones de enlace, elemento transferLink no
tiene ningún efecto cuando se transfiere el control desde código
Java a
código
Java; de
lo contrario, es significativo.
Si transfiere código de control a un código que
no se ha escrito con EGL o
VisualAge
Generator, es aconsejable establecer el elemento transferLink del
componente de opciones de enlace.
Establezca la propiedad linkType en externallyDefined.
Si la ejecución se realiza en modalidad de compatibilidad con
VisualAge
Generator, puede especificar la opción externallyDefined en la sentencia
transfer, como ocurre en los programas migrados desde
VisualAge
Generator; sin embargo, no es aconsejable establecer el valor equivalente en el componente de
opciones de enlace. Para obtener detalles acerca de la modalidad de compatibilidad de
VisualAge
Generator, consulte el apartado Compatibilidad con
VisualAge
Generator.
- program nombreDestino (valor por omisión)
- El programa que recibe el control. S
- transaction nombreDestino
- La programa que recibe el control, como se ha descrito anteriormente.
- sysVar.transferName
- Función de sistema que contiene un nombre destino que puede establecerse durante la ejecución.
Para obtener detalles, consulte la función sysVar.transferName.
- passing nombreRegistro
- Un registro que se recibe como registro de entrada en el programa destino. El
registro pasado puede ser de cualquier tipo, pero la longitud y los tipos primitivos
deben ser compatibles con el registro que recibe los datos. El registro de entrada en el
programa destino debe ser de tipo basicRecord.