En este paso se explica cómo crear una operación de interfaz, cómo asociar la
operación de interfaz con el flujo de nivel superior, cómo añadir dos nodos Assign
y dos nodos Invoke al flujo de nivel superior, y cómo conectar
los nodos del flujo en el orden en que se desea que se ejecuten.
Crear una operación de interfaz para el flujo
Una operación es un artefacto
que especifica la información necesaria para invocar un flujo, una aplicación no de terminal o un servicio Web
de salida. Un archivo de operaciones es un contenedor de almacenamiento con nombre para
operaciones (consulte la sección Cómo una operación utiliza los mensajes).
Un archivo de operaciones
contiene tipos de puerto, que a su vez contienen operaciones.
Una operación contiene referencias a un mensaje de entrada, un mensaje de salida y un mensaje de falta
(opcional) (consulte la sección Información accesible a través de una operación).
Una operación asociada a un flujo se denomina una operación de interfaz porque define la
interfaz de programación del flujo (consulte la sección Información básica acerca de operaciones).
Para
crear una operación de interfaz para CatalogOrder.seqflow:
- Cree un archivo de operaciones que contenga la operación:
- En el Explorador de proyectos EST, pulse el subproyecto CatalogSample.Interface con el botón derecho del ratón.
- Pulse . Se abrirá el asistente Nuevo archivo de operaciones.
- En el asistente Nuevo archivo de operaciones:
- En el campo Nombre de archivo, especifique CatalogOrder.
- En la lista Proyecto de destino,
asegúrese de que el elemento CatalogSample.Interface esté seleccionado.
- En el campo Nombre de operación, especifique CatalogOrder.
- Pulse Finalizar. El asistente realiza las acciones
siguientes:
- Crea el nuevo archivo de operaciones CatalogOrder.wsdl.
- Inicializa el nuevo archivo de operaciones para que contenga los componentes siguientes:
Tabla 1. Componentes del archivo de operaciones nuevo| Tipo de componente: |
Nombre de componente: |
| Tipo de puerto |
CatalogOrder |
| Operación |
CatalogOrder |
| Sección de entrada (vacía) |
Entrada |
| Sección de salida (vacía) |
Salida |
| Sección de errores (vacía) |
Errores |
- Abre el archivo de operaciones nuevo en el editor de operaciones.
Dentro de la nueva operación CatalogOrder,
añada una referencia a un mensaje de entrada y una referencia a un mensaje de salida.- Añada a la nueva operación una referencia al mensaje de entrada:
- En Operación: CatalogOrder, pulse Entrada con el botón derecho del ratón.
- Pulse Añadir entrada. Se abrirá la ventana Seleccionar
mensaje.
- En la ventana Seleccionar mensaje:
- Pulse .
- Pulse Aceptar.
- En el editor de operaciones, se añade una referencia a i_CatalogOrder
bajo Entrada.
Nota: Aunque solamente se muestra
el nombre del mensaje, el editor de operaciones también guarda el nombre del archivo de mensaje
en que se encuentra el mensaje.
- Añada a la nueva operación una referencia al mensaje de salida. Este subpaso
es similar al subpaso que acaba de realizar con el mensaje de entrada, excepto que
ahora va a crear una referencia al mensaje de salida
- En el editor de operaciones, bajo Operación: CatalogOrder,
pulse Salida con el botón derecho del ratón.
- Pulse Añadir salida. Se abrirá la ventana Seleccionar
mensaje.
- En la ventana Seleccionar mensaje:
- Pulse
.
- Pulse Aceptar.
- En el editor de operaciones, se añade una referencia a o_CatalogOrder
bajo Salida.
Nota: Aunque solamente se muestra
el nombre del mensaje, el editor de operaciones también guarda el nombre del archivo de mensaje
en que se encuentra el mensaje.
Cierre el editor de operaciones.
Asociar la operación con
el flujo
Asociar una operación con un flujo consiste
simplemente en indicar a las herramientas de proyecto de flujo de servicios que se desea que determinada
operación se utilice con un flujo concreto. En este subtema asociará
la operación CatalogOrder al flujo CatalogOrder.seqflow.
Para asociar la
operación nueva con el flujo:
- Abra el flujo:
- En el Explorador de proyectos EST, bajo CatalogSample,
expanda la carpeta Flujos.
- Pulse CatalogOrder.seqflow con el botón derecho del ratón.
- Pulse . Se abrirá el editor de flujo.
Asocie la operación con el flujo:
- Pulse sobre cualquier espacio en blanco del editor de flujo con el botón derecho del ratón.
- Pulse Seleccionar operación de interfaz. Se abrirá la ventana Seleccionar
operación.
- En la ventana Seleccionar operación:
- Pulse
. Ésta es la operación que ha creado
en el subtema anterior.
- Pulse Aceptar.
- El editor de flujo realiza las acciones
siguientes:
- Asocia la operación seleccionada con el flujo.
- Cambia el nombre del nodo Receive por
i_CatalogOrder, que es el nombre del mensaje de entrada de la
operación de interfaz seleccionada.
- Cambia el nombre del nodo Reply por
o_CatalogOrder, que es el nombre del mensaje de salida de la
operación de interfaz seleccionada.
Deje el editor de flujo abierto para el paso siguiente.
Coloque los nodos, añada los nodos Assign y los nodos Invoke y
conecte los nodos
En este subtema, colocará los nodos Receive y Reply, añadirá
dos nodos Assign
y dos nodos Invoke y conectará los nodos en el
orden en que desea ejecutarlos. Al final de este subtema, el lienzo del editor de flujo debe ser parecido a la
Figura 1.
Figura 1. Nodos conectados
Un nodo de recepción
es el punto de entrada de un flujo, es decir, el primer nodo que
se ejecuta cuando se invoca un flujo.
Igualmente, un nodo de
respuesta
es un punto de retorno normal de un flujo, un punto
desde el que un flujo retorna al programa de llamada, tras haberse ejecutado
correctamente.
Un nodo
Assign
está
asociado con una rutina de correlación que contiene correlaciones. Las correlaciones permiten recuperar, manipular
y almacenar datos en un flujo (consulte la sección Conceptos de correlación).
En este
momento, deberían aparecer en el editor de flujo los nodos siguientes:
- Un nodo de recepción denominado i_CatalogOrder.
- Un nodo Reply denominado o_CatalogOrder.
En este subtema
creará nodos Invoke y nodos Assign, y colocará los
nodos en el siguiente orden, de izquierda a derecha:
- Nodo de recepción i_CatalogOrder
- Nodo Assign
- Nodo Invoke Step0
- Nodo Invoke Step1
- Nodo Assign
- Nodo Reply o_CatalogOrder
Realice las acciones
siguientes:
Suprima la conexión entre el nodo Receive y el nodo
Reply:
- Pulse con el botón derecho del ratón el cable que conecta el nodo Receive con el nodo Reply.
- Pulse
Suprimir. Se suprimirá el cable.
- Coloque el nodo de respuesta y el nodo de recepción:
- Utilice el ratón para arrastrar el nodo Reply y colocarlo a la derecha del nodo
Receive.
- Deje suficiente espacio entre el nodo Receive y el nodo Reply para añadir
varios nodos.
Cree los nodos Assign:
- Cree el primer nodo Assign:
- Expanda el cajón de la paleta pasando el puntero del ratón sobre la barra vertical
Paleta de la izquierda del editor.
- Expanda la entrada Flujo si todavía no se ha expandido.
- Pulse Asignar. El puntero del ratón cambia de forma.
- Mueva el puntero del ratón a un área vacía del lienzo del editor de flujo.
- Pulse una vez. En el lugar en que pulse, el editor de flujo creará un
nodo Assign
denominado Assign.
- Cambie el nombre del nodo Assign por variableAssignInput:
- Pulse el nodo Assign con el botón derecho del ratón.
- Pulse Redenominar. Aparecerá la ventana Redenominar nodo.
- En la ventana Redenominar nodo:
- En el campo Escriba un nombre nuevo, escriba variableAssignInput.
- Pulse Aceptar.
- Cree el segundo nodo Assign:
- Repita las acciones del paso anterior para crear otro nodo Assign.
- Cambie el nombre de este nodo Assign por variableAssignOutput.
- Cree los nodos Invoke:
- Cree el primer nodo Invoke:
- Expanda la paleta y arrastre Invoke a un área vacía
del lienzo del editor de flujo.
- Cambie el nodo Invoke por Step0.
- Cree el segundo nodo Invoke:
- Expanda la paleta y arrastre Invoke a un área vacía
del lienzo del editor de flujo.
- Cambie el nodo Invoke por Step1.
Nota: Step0 y
Step1 son
nodos Invoke normales que en este punto de la guía de aprendizaje no tienen ningún efecto en el flujo
porque no invocan nada. Más adelante en la guía de aprendizaje:
- Step0 se convierte en nodo de flujo Invoke que invoca el flujo
de terminal CheckItemAvailability.seqflow.
- Step1 se convierte en un nodo no de terminal Invoke que
invoca una aplicación no de terminal.
Conecte los nodos:
- Cambie el editor de flujo a la modalidad de conexión:
El editor de flujo tiene dos modalidades,
la modalidad de selección y la de conexión. Al abrir el editor de flujo, la modalidad predeterminada
es la modalidad de selección. Para cambiar a la modalidad de conexión:
- Expanda el cajón de la paleta.
- Pulse Conexión.
- El puntero del ratón cambiar para mostrar que el editor está en la modalidad de conexión.
- Conecte el nodo de recepción i_CatalogOrder al
primer nodo Assign variableAssignInput:
- Pulse el nodo Receive. El editor de flujo muestra una flecha de conexión
fijada en el terminal de salida.
- Pulse el primer nodo Assign. El editor de flujo fija el
extremo que señala la flecha de conexión al terminal de entrada.
Nota: El editor de flujo permanece en la modalidad de conexión.
- Repita las acciones del paso anterior para conectar cada nodo al
nodo que le sigue.
- Devuelva el editor de flujo a la modalidad de selección:
- Expanda el cajón de la paleta.
- Pulse Selección.
- El puntero del ratón cambiar para mostrar que el editor está en la modalidad de selección.
- Organice los nodos en una fila horizontal.
Nota: Cuando haya conectado todos los nodos,
el lienzo del editor de flujo debe parecerse a la
Figura 2.
Figura 2. Nodos conectados
Cierre el editor de flujo.