transfer

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 o mediante una sentencia en el formato transferir a programa:
  • Una transferencia a transacción actúa del siguiente modo:
    • En un programa principal ejecutado en CICS para z/OS, esta sentencia compromete los recursos recuperables, cierra los archivos, cierra los cursores e inicia una transacción nueva.
    • En un programa ejecutado como un programa principal por lotes z/OS o 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 programa Web o manejador de páginas, no puede realizarse una transferencia a transacción; en lugar de ello, utilice la sentencia forward.
  • Una sentencia de tipo transferir a programa no compromete ni retrotrae los recursos recuperables, pero cierra archivos, cierra cursores e inicia un programa en la misma unidad de ejecución.

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 del siguiente modo:
  • Si transfiere a un programa, establezca la propiedad linkType en externallyDefined
  • Si transfiere a una transacción, establezca la propiedad externallyDefined en yes

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.


Diagrama de sintaxis para la sentencia transfer

Diagrama de sintaxis para la sentencia transfer
program nombreDestino (valor por omisión)
El programa que recibe el control. Si está generando para COBOL y especifica un nombre de programa con más de 8 caracteres, el nombre de programa se trunca al llegar a los 8 caracteres con caracteres de sustitución (si es necesario), como se describe en el apartado Alias de nombres.
transaction nombreDestino
La transacción o el 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.
externallyDefined
No recomendado para nuevos desarrollos, como se ha descrito anteriormente.

Consulta relacionada
sysVar.transferName

Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.