Rational Developer para System z, Versión 7.6

Dónde utilizar rutinas de correlación

Se puede hacer referencia a una rutina de correlación desde: (a) un nodo Assign o (b) el terminal de entrada o un terminal de salida de la mayoría de tipos de nodo Invoke.

Ejecución de una rutina de correlación

Una rutina de correlación se lleva a cabo cuando se procesa el artefacto que hace referencia a la rutina de correlación en el entorno de ejecución.

El entorno de ejecución lleva a cabo una rutina de correlación ejecutando las correlaciones de la rutina por orden, empezando por la primera (consulte la sección Rutinas de correlación).

Artefactos desde los cuales puede hacerse referencia a rutinas de correlación

La Tabla 1 muestra los artefactos (nodo Assign, terminal de entrada o terminal de salida) desde los que se puede hacer referencia a una rutina de correlación. Para ver los detalles, consulte los párrafos que siguen a la tabla.
Tabla 1. Artefactos que pueden hacer referencia a rutinas de correlación
Tipo de nodo: Artefacto para el cual está disponible la capacidad de correlación:
Nodo Assign
Nodo Assign
El nodo en sí.
Nodo no de terminal Invoke
Nodo no de terminal Invoke
El terminal de entrada.
El terminal de salida.
Uno o varios terminales de salida adicionales utilizados para manejar un retorno de falta o error. Está disponible cualquier número de terminales de salida adicionales.
Nodo de servicio Web de salida Invoke
Nodo no de terminal Invoke
El terminal de entrada.
El terminal de salida.
Un terminal de salida adicional utilizado para manejar un retorno de falta o error (si se especifica). Está disponible un máximo de un terminal adicional.
Nodo de operación de pantalla Invoke
Nodo de operación de pantalla Invoke
El terminal de entrada.
Cada terminal de salida. Un terminal de salida se utiliza para crear una rama a otro nodo de operación de pantalla Invoke para procesar una posible siguiente pantalla.
Un terminal de salida adicional utilizado para crear la ramificación que se toma si ninguna de las posibles pantallas siguientes coincide con la pantalla visualizada actualmente.
Nodo de flujo Invoke
Nodo de flujo Invoke
Atención: Los terminales de entrada y salida de un nodo de flujo Invoke no tienen rutinas de correlación asociadas a ellos. Debe utilizar un nodo a cada lado del nodo de flujo Invoke.

Nodo Assign: La finalidad de un nodo Assign es servir de contenedor para las correlaciones que desea llevar a cabo en algún punto de un flujo. Cuando se añade un nodo Assign a un flujo en el editor de flujo, éste crea automáticamente una rutina de correlación vacía y la asocia al nodo Assign (consulte la sección Referencias a rutinas de correlación). Después puede añadir correlaciones a la rutina de correlación. Cuando se procesa el nodo Assign en el entorno de ejecución, se llevan a cabo las correlaciones de la rutina de correlación.

Nodo no de terminal Invoke, nodo de servicio Web de salida Invoke: Para un nodo no de terminal Invoke o un nodo de servicio Web de salida Invoke, una rutina de correlación asociada a un terminal de entrada normalmente contiene correlaciones que preparan los datos que se van a pasar a la aplicación invocada o al servicio Web de salida (consulte la sección Referencias a rutinas de correlación). Una rutina de correlación asociada a un terminal de salida normalmente contiene correlaciones que recuperan y procesan los datos devueltos por la aplicación invocada o el servicio Web de salida.

Nodo de flujo Invoke: Observe en la última fila de la tabla anterior que un nodo de flujo invoke (utilizado para invocar otro flujo) no tiene una rutina de correlación asociada a él, ni con el propio nodo ni con el terminal de entrada o un terminal de salida del nodo. Para establecer parámetros de entrada para un nodo de flujo Invoke, o para leer parámetros de salida o parámetros de falta de un nodo de flujo Invoke, debe utilizar el nodo Assign, el terminal de entrada o un terminal de salida de algún otro tipo de nodo Invoke de cualquier lado del nodo de flujo Invoke.

Nodo de operación de pantalla Invoke: En general no se debe crear ni modificar manualmente una rutina de correlación para un nodo de operación de pantalla Invoke. Normalmente los nodos de operación de pantalla Invoke y sus rutinas asociadas se crean automáticamente durante el registro de flujos. Estas rutinas de correlación contienen correlaciones que permiten que el nodo Insert genere la entrada de teclado para las pantallas de aplicación, para realizar acciones Insertar y para guardar los resultados de las acciones Extraer (consulte la sección Rutinas de correlación en flujos no de terminal).

Cómo se crean las rutinas de correlación

Para un nodo Assign, las herramientas de proyecto de flujo de servicios crean la rutina de correlación y la referencia a la misma la primera vez que se intenta acceder a la rutina de correlación para el nodo (consulte la sección Crear una rutina de correlación para un nodo Assign o Invoke).

Del mismo modo, para el terminal de entrada o un terminal de salida de un nodo Invoke, las herramientas de proyecto de flujo de servicios crean la rutina de correlación y la referencia a la misma la primera vez que se intenta acceder a la rutina de correlación asociada al terminal (consulte la sección Crear una rutina de correlación para un nodo Assign o Invoke).

Además, para todos los tipos de artefactos que pueden hacer referencia a una rutina de correlación (es decir, los nodos Assign y los terminales de la mayoría de tipos de nodos Invoke) puede sustituir una referencia existente a una rutina de correlación por una referencia a cualquier otra rutina de correlación del mismo proyecto de flujo de servicio. Esto permite que puedan reutilizarse las rutinas de correlación: la misma rutina de correlación puede se referenciada por varios terminales o nodos Assign (consulte la sección Seleccionar una rutina de correlación para un nodo Invoke o Assign).

Flexibilidad al elegir una rutina de correlación

Las herramientas de flujo de servicio permiten una gran flexibilidad a la hora de elegir una rutina determinada a utilizar para una operación de correlación en particular. Dos factores contribuyen a esta flexibilidad:
  • Hay muchos tipos de artefactos desde los que se puede hacer referencia a una rutina de correlación: desde nodos Assign (que se pueden insertar en casi cualquier parte de un flujo) y desde terminales de entrada o terminales de salida de la mayoría de nodos Invoke (todos ellos se describen en la subsección Artefactos desde los cuales puede hacerse referencia a rutinas de correlación más arriba).
  • Todos los elementos de mensajes en un proyecto de flujo de servicio están disponibles globalmente y existe durante toda la duración del flujo primario (o su equivalente en el código de tiempo de ejecución).

Por ejemplo, supongamos que tiene un flujo llamado MyFlow01 que contiene un nodo de operación no de terminal Invoke llamado getUserData, y que desea crear una correlación para inicializar el elemento en el mensaje de entrada asociado con el nodo getUserData. En esta situación, puede crear la correlación en una rutina de correlación asociada con cualquiera de los siguientes artefactos:
  • El terminal de entrada del nodo no de terminal Invoke getUserdata; o
  • Un nodo Assign que inserte justo antes del nodo getUserData; o
  • Un nodo no de terminal Invoke, nodo de operación de pantalla Invoke o nodo de servicio Web de salida Invoke inmediatamente anterior al nodo getUserData;
  • etc.
En definitiva, en el ejemplo anterior, se crea la correlación en una rutina de correlación asociada a cualquier artefacto que preceda a getUserData en el flujo (y que se encuentre en una secuencia real de ejecución dentro del flujo, para que se garantice la ejecución de la rutina de correlación).

De manera similar, en el ejemplo anterior, si desea leer los valores devueltos en el mensaje de salida asociado al nodo no de terminal Invoke getUserdata, puede crear la correlación en una rutina de correlación asociada a cualquier artefacto que siga a getUserData en el flujo (siempre que el artefacto se encuentre en una secuencia de ejecución del flujo cuya ejecución esté garantizada).

Directrices para elegir una rutina de correlación

Las siguientes son directrices para seleccionar qué rutina de correlación utilizar para una correlación determinada:
  • Utilice prácticas de programación adecuadas que utilicen calidades como el orden, fiabilidad, facilidad de compresión, facilidad de mantenimiento, etc.
  • Utilice los nodos Assign libremente:
    • El único propósito de un nodo Assign es proporcionar una oportunidad para la correlación.
    • Puede asignar un nodo Assign en cualquier parte de un flujo, sin casi ningún tipo de penalización sobre el rendimiento.
  • A no ser que sepa lo que está haciendo, no modifique o añada las rutinas de correlación asociadas con los nodos de operación de pantalla Invoke, que (normalmente) suelen crearse automáticamente al registrar un flujo (consulte la sección Rutinas de correlación en flujos no de terminal).

La siguiente tabla responde a situaciones determinadas:
Tabla 2. Añadir una correlación
Situación: Manera recomendada de añadir una correlación:
Desea transferir los datos a los parámetros de entrada de un nodo de flujo Invoke.
  • La mejor opción es añadir un nodo Assign delante del nodo de flujo Invoke y, a continuación, transferir los datos en el nodo Assign.
  • Si el nodo de flujo Invoke está precedido de otro nodo, podrá realizar la transferencia de datos en la rutina de correlación referenciada por el terminal de salida del nodo Invoke.
Desea transferir datos al mensaje de salida del flujo actual. Añada un nodo Assign delante del mensaje de respuesta del flujo y efectúe la transferencia de datos en Assign.

Ayudas de correlación

La tabla siguiente muestra las ayudas y comodidades disponibles para trabajar con correlaciones:
Tabla 3. Ayudas de correlación
Artefacto: Ayuda:
  • Nodo Assign
  • Terminal de entrada o terminal de salida de un nodo no de terminal Invoke, un nodo des servicio Web de salida Invoke o un nodo de operación de pantalla Invoke
En el editor de flujo, el nodo Assign o terminal se resalta si se ha creado una rutina de correlación para el artefacto.
Terminal de entrada de:
  • Nodo no de terminal Invoke
  • Nodo de servicio Web de salida Invoke
Cuando se crea la rutina de correlación asociada, las herramientas de proyecto de flujo de servicios almacenan automáticamente en el lado de destino una referencia al mensaje de entrada del nodo Invoke.
Terminal de salida de:
  • Nodo no de terminal Invoke
  • Nodo de servicio Web de salida Invoke
Cuando se crea la rutina de correlación asociada, las herramientas de proyecto de flujo de servicios almacenan automáticamente en el lado de origen una referencia al mensaje de salida del nodo Invoke.
Dos nodos Invoke conectados y adyacentes (o un nodo Invoke conectado y adyacente a un nodo Receive, Reply o Throw) donde los terminales conectados de los nodos Invoke hacen referencia a correlaciones. La entrada de menú Inicializar correlación crea un nuevo nodo Assign, lo conecta entre los dos nodos Invoke (o entre el nodo Invoke y el nodo Receive, Reply o Throw) crea una rutina de correlación para el nodo Assign e inicializa los lados origen y destino de la rutina de correlación (consulte la sección Inicializar correlación: una forma adecuada de correlacionar datos entre dos nodos).
Rutina de correlación En el editor de correlaciones, la ventana Seleccionar un mensaje incluye mensajes que describen estructuras del sistema: SNA_FIELDS, SNA_TEXT_AREA, SYS_FEPI_OVERRIDES, SYS_LU_LOGON, WS_SOAPs_AREA.

Términos de uso | Comentarios

Este Information Center está basado en tecnología Eclipse. (http://www.eclipse.org)