Rational Developer para System z, Versión 7.6

Paso 4.1: invocar el flujo registrado desde el flujo de nivel superior

En este paso: (a) modificará el nodo Invoke Step0 en el flujo de nivel superior para que Step0 invoque el flujo registrado CheckItemAvailability.seqflow; (b) copiará datos del mensaje de entrada del flujo de nivel superior en las variables de trabajo; y (c) añadirá un nuevo nodo Assign al flujo de nivel superior que recibe el resultado devuelto por el flujo registrado CheckItemAvailability.seqflow.

Modificar el nodo Invoke Step0 para que invoque el flujo registrado

En este subtema convertirá el nodo Invoke normal Step0 en un nodo de flujo Invoke que invoca el flujo registrado CheckItemAvailability.seqflow.

Recuerde que ha creado los nodos Invoke Step0 y Step1 como espacios reservados (consulte la sección Coloque los nodos, añada los nodos Assign y los nodos Invoke y conecte los nodos).

Un nodo Invoke normal como, por ejemplo, Step0 puede funcionar si se asocia a una operación o un flujo. En este subtema, asociará el flujo CheckItemAvailability.seqflow a Step0 para que Step0 se convierta en un nodo de flujo Invoke que invoque el flujo registrado CheckItemAvailability.seqflow.

Para convertir Step0 en un nodo de flujo Invoke que invoca el flujo registrado:

  1. Abra CatalogOrder.seqflow en el editor de flujo:
    1. En el Explorador de proyectos EST, pulse con el botón derecho del ratón sobre CatalogSample > Flujos > CatalogOrder.seqflow.
    2. Pulse Abrir con > Editor de flujo.

  2. En el menú principal del entorno de trabajo, pulse Ver > Reducir.

  3. Pulse con el botón derecho del ratón en Step0.

  4. Pulse Seleccionar subflujo. Se abrirá la ventana Seleccionar flujo.

  5. En la ventana Seleccionar flujo:

    1. Pulse CatalogSample > Flujos > CheckItemAvailability.seqflow.

    2. Pulse Aceptar.

    Step0 se convierte en un nodo de flujo Invoke y se nombra como el flujo que invoca, CheckItemAvailability.

  6. Guarde el trabajo (Control-S).

  7. No cierre todavía el editor de flujo. Lo necesitará para el siguiente subtema.

Copiar datos del mensaje de entrada i_CatalogOrder

Nota: Para obtener información de la sintaxis como, por ejemplo, i_CatalogOrder.itemNumber, consulte la Nota sobre "<Mensaje>.<elemento>".

En este subtema, añadirá tres correlaciones a la rutina de correlación para el nodo Assign VariableAssignInput. Las tres correlaciones copian datos de los parámetros de entrada almacenados en el mensaje de entrada i_CatalogOrder del flujo de nivel superior (consulte la Tabla 1). Los valores los establece la aplicación que invoca el flujo de servicio.

Tabla 1. Correlaciones de iCatalogOrder
Variable origen de la correlación: Variable destino de la correlación: Tipo de correlación:
Nombre: Tipo de datos: Nombre: Tipo de datos:
i_CatalogOrder.itemNumber xsd:short i_CheckItemAvailability.itemNumber xsd:string Convertir
i_CatalogOrder.itemNumber xsd:short v_CatalogOrder.itemNumber xsd:short Mover
i_CatalogOrder.itemQuantity xsd:short v_CatalogOrder.itemQuantity xsd:short Mover

La primera correlación copia el parámetro de entrada pasado a CatalogOrder.seqflow (el número de artículo que el programa de llamada busca) en el mensaje de entrada para el flujo invocado CheckItemAvailability.seqflow.

Para crear la primera correlación:

  1. Abra CatalogOrder.seqflow en el editor de flujo, si todavía no se ha abierto.

  2. Abra la rutina de correlación del nodo Assign variableAssignInput en el editor de correlaciones.

    1. Pulse con el botón derecho del ratón el nodo Assign variableAssignInput.

    2. Pulse Abrir rutina de correlación. El editor de correlaciones abre el archivo de correlaciones para el flujo y muestra la rutina de correlación vacía para el nodo Assign.

  3. Añada i_CatalogOrder a la rutina de correlación como mensaje origen:

    1. En la barra de herramientas de la rutina de correlación, pulse el icono Añadir un mensaje origen Añadir un mensaje origen. Se abrirá la ventana Seleccionar mensaje.

    2. En la ventana Seleccionar mensaje:
      1. Pulse CatalogSample > CatalogSample.Interface > Mensajes > i_CatalogOrder.sfmxsd > i_CatalogOrder.

      2. Pulse Aceptar.

      El mensaje origen se añade a la parte izquierda del área de rutinas de correlación.

  4. Añada i_CheckItemAvailability a la rutina de correlación como mensaje destino:

    1. En la barra de herramientas de la rutina de correlación, pulse el icono Añadir un mensaje destino Añadir un mensaje destino. Se abrirá la ventana Seleccionar mensaje.

    2. En la ventana Seleccionar mensaje:
      1. Pulse CatalogSample > Catalog.Interface > Mensajes > i_CheckItemAvailability.sfmxsd > i_CheckItemAvailability.

      2. Pulse Aceptar.

      El mensaje destino se añade a la parte derecha del área de rutinas de correlación.

  5. Cree una correlación que copie el contenido de i_CatalogOrder.itemNumber en i_CheckItemAvailability.itemNumber:

    1. Arrastre i_CatalogOrder.itemNumber de la parte izquierda del área de rutinas de correlación a i_CheckItemAvailability.itemNumber en la parte derecha.

    El editor de correlaciones visualiza una nueva transformación Convertir temporalmente en la columna el centro del área de rutinas de correlación entre los dos elementos de mensaje con una conexión que va desde un elemento origen hasta la transformación y otra conexión que va desde la transformación hasta el elemento destino.
    Nota: La transformación Convertir temporalmente lee el valor entero de la variable origen, convierte temporalmente el valor entero en un valor de serie y almacena el valor de serie en el campo destino.
  6. Guarde el trabajo (Control-S).

La segunda y tercera correlación que se deben añadir a esta rutina de correlación copian los dos parámetros de entrada (itemNumber e itemQuantity) desde el mensaje de entrada i_CatalogOrder al mensaje de variables v_CatalogOrder. Para crear la segunda y tercera correlación:

  1. Añada el mensaje origen a la rutina de correlación.
    Nota: No se requiere ninguna acción aquí porque el mensaje i_CatalogOrder ya se ha añadido a la rutina de correlación como mensaje origen.
  2. Añada v_CatalogOrder a la rutina de correlación como mensaje destino:

    1. En la barra de herramientas de la rutina de correlación, pulse el icono Añadir un mensaje destino Añadir un mensaje destino. Se abrirá la ventana Seleccionar mensaje.

    2. En la ventana Seleccionar mensaje:
      1. Pulse CatalogSample > CatalogSample.Interface > Mensajes > v_CatalogOrder.sfmxsd > v_CatalogOrder.

      2. Pulse Aceptar.

      El mensaje destino se añade a la parte derecha del área de rutinas de correlación.

  3. Cree una correlación que copie el contenido de i_CatalogOrder.itemNumber en v_CatalogOrder.itemNumber:

    1. Arrastre i_CatalogOrder.itemNumber de la parte izquierda de la rutina de correlación a v_CatalogOrder.itemNumber en la parte derecha.

    El editor de correlaciones visualiza una nueva transformación Mover en el centro del área de rutinas de correlación entre los dos elementos de mensaje, con una conexión para cada elemento de mensaje.

  4. Cree una correlación que copie el contenido de i_CatalogOrder.itemQuantity en v_CatalogOrder.itemQuantity:

    1. Arrastre i_CatalogOrder.itemQuantity de la parte izquierda de la rutina de correlación a v_CatalogOrder.itemQuantity en la parte derecha.

    El editor de correlaciones visualiza una nueva transformación Mover en el centro del área de rutinas de correlación entre los dos elementos de mensaje, con una conexión para cada elemento de mensaje.

  5. Cierre el editor de correlaciones.

Añadir un nodo Assign al flujo de nivel superior

En este subtema añadirá un nuevo nodo Assign denominado Assign al flujo v_CatalogOrder.seqflow inmediatamente después del nodo de flujo Invoke CheckItemAvailability y añadirá una correlación a la rutina de correlación de este nuevo nodo Assign.

El propósito de la correlación es copiar el contenido de o_CheckItemAvailability.available en v_CatalogOrder.available.
Nota: El flujo invocado CheckItemAvailability.seqflow devuelve su valor de salida en o_CheckItemAvailability.available. Esta variable de serie contiene la serie YES si se ha encontrado el número de artículo solicitado o una serie vacía si no se ha encontrado el número de artículo solicitado.

Para crear el nodo Assign y la correlación:

  1. Abra el flujo CatalogOrder.seqflow en el editor de flujo si aún no está abierto.

  2. En el menú principal del entorno de trabajo, pulse Ver > Zoom para alejar.

  3. Organice los nodos para dejar espacio para el trabajo que queda por realizar en la parte 4:

    1. En el menú principal del entorno de trabajo, pulse Vista > Diseño Manhattan.

    2. Organice los nodos en un diseño como el de Figura 1.

      Figura 1. Organizar los nodos
      CatalogOrder.seqflow con el diseño Manhattan

  4. Añada un nuevo nodo Assign denominado Assign al flujo, inmediatamente después del nodo de flujo Invoke CheckItemAvailability:

    1. Suprima la conexión entre el nodo CheckItemAvailability y el nodo Step1.

    2. Añada un nodo Assign nuevo al lienzo del editor de flujo y colóquelo justo a la derecha del nodo CheckItemAvailability. El nombre del nuevo nodo Assign es el nombre predeterminado Assign.

    3. Cree una conexión desde el terminal de salida de CheckItemAvailability hasta el terminal de entrada de Assign (consulte Figura 2).

    Figura 2. Crear una conexión
    Nodos CheckItemAvailability y Assign

  5. Cree una correlación en la rutina de correlación del nuevo nodo Assign que copie el valor de resultado devuelto por el flujo invocado en la variable o_CheckItemAvailability.available en la variable v_CatalogOrder.available que utiliza el flujo de nivel superior:
    Tabla 2. Correlación de oCheckItemAvailability
    Variable origen de la correlación: Variable destino de la correlación: Tipo de correlación:
    Nombre: Tipo de datos: Nombre: Tipo de datos:
    o_CheckItemAvailability.available xsd:string v_CatalogOrder.available xsd:string Mover
    1. Abra la rutina de correlación para el nuevo nodo Assign:
      1. Pulse el nodo Assign con el botón derecho del ratón.
      2. Pulse Abrir rutina de correlación. El editor de correlaciones abre el archivo de correlaciones para el flujo y visualiza la rutina de correlaciones para el nuevo nodo Assign.

    2. Añada o_CheckItemAvailability a la rutina de correlación como mensaje origen:
      1. En la barra de herramientas de la rutina de correlación, pulse el icono Añadir un mensaje origen Añadir un mensaje origen. Se abrirá la ventana Seleccionar mensaje.

      2. En la ventana Seleccionar mensaje:
        1. Pulse CatalogSample > CatalogSample.Interface > Mensajes > o_CheckItemAvailability.sfmxsd > o_CheckItemAvailability.

        2. Pulse Aceptar.

        El mensaje origen se añade a la parte izquierda del área de rutinas de correlación.

    3. Añada v_CatalogOrder a la rutina de correlación como mensaje destino:
      1. En la barra de herramientas de la rutina de correlación, pulse el icono Añadir un mensaje destino Añadir un mensaje destino. Se abrirá la ventana Seleccionar mensaje.

      2. En la ventana Seleccionar mensaje:
        1. Pulse CatalogSample > CatalogSample.Interface > Mensajes > v_CatalogOrder.sfmxsd > v_CatalogOrder.
        2. Pulse Aceptar.

        El mensaje destino se añade a la parte derecha del área de rutinas de correlación.

    4. Cree una correlación que copie el contenido de o_CheckItemAvailability.available en v_CatalogOrder.available:
      1. Arrastre o_CheckItemAvailability.available en la parte izquierda del área de rutinas de correlación a v_CatalogOrder.available en la parte derecha del área de rutinas de correlación.

      El editor de correlaciones visualiza una nueva transformación Mover en el centro del área de rutinas de correlación entre los dos elementos de mensaje, con una conexión para cada elemento de mensaje.

    5. Cierre el editor de correlaciones.

  6. Cierre el editor de flujo.


Términos de uso | Comentarios

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