< Anterior | Siguiente >

Crear la implementación de proceso de negocio

Ahora creará la implementación del componente de proceso de negocio, que es más complejo que la implementación de la tarea de usuario.

Acerca de esta tarea

Cree la implementación de proceso de negocio:

Procedimiento

  1. En el editor de ensamblaje, efectúe una doble pulsación en el componente de proceso HelloWorldProcess para iniciar el trabajo en él. Pulse en la ventana Abrir y pulse Aceptar en la ventana Generar implementación. Se abre el editor de procesos de negocio, como se muestra a continuación:
    Imagen del componente HelloWorldProcess en el editor de procesos de negocio
  2. El proceso invocará una tarea de usuario, que puede tardar mucho tiempo en responder. Por ello necesita definir el proceso como proceso de ejecución larga. Pulse en un espacio libre cualquiera del editor, vaya a la vista Propiedades y seleccione la pestaña Detalles. Observe que el proceso se identifica como un Proceso de larga ejecución, como se muestra a continuación:
    Imagen de la pestaña Detalles en la vista Propiedades
    Si desea cambiar el proceso de un proceso de larga ejecución a un microflujo, pulse el enlace Refactorizar para microflujo. Esto garantiza que no se cambie únicamente la definición de proceso sino que también se cambie el componente de proceso en el editor de ensamblaje. Esto significa que el proceso cambia y que todos los artefactos en sentido descendente afectados por el cambio se actualizan.
  3. Un proceso de negocio está formado por actividades o pasos individuales. Cuando se crea inicialmente un proceso para una interfaz con una operación de solicitud-respuesta, tiene dos actividades proporcionadas previamente: la actividad Recibir para iniciar el proceso mediante la operación y una actividad Responder para devolver la respuesta al llamante. Sus propias actividades se insertarán entre estas dos actividades. En la paleta, expanda la categoría Estructuras y arrastre el Flujo generalizado y suéltelo entre Recibir y Responder, tal como se muestra a continuación:
    Imagen que muestra la actividad Flujo generalizado en el editor de proceso
    Observe que algunas actividades como el Flujo generalizado están estructuradas, lo que significa que están diseñadas para contener otras actividades. Para producir un flujo que se ramifique, debe utilizar Actividades paralelas, Flujo generalizado o Ámbito de colaboración.
  4. En la bandeja del lado derecho del lienzo, expanda la categoría Interlocutores de referencia y arrastre y suelte HelloWorldTaskPartner en la estructura GeneralizedFlow y luego defina el nombre como InvokeTask, tal como se muestra a continuación:
    Imagen del proceso donde se muestra InvokeTask
    Esto crea una actividad Invocar configurada que llama a esta referencia, que está conectada al componente de tarea de usuario en el editor de ensamblaje. Esto significa que durante la ejecución, la actividad da como resultado la creación de una instancia de la tarea de usuario; es decir, se crea una tarea pendiente que está a la espera de que la reclame uno de sus posibles propietarios. Pero todavía no está configurada totalmente. Es necesario definir dónde obtener los datos de parámetros de entrada de la tarea y almacenar sus resultados de salida.
  5. En el lienzo, seleccione la actividad InvokeTask y abra la vista Propiedades debajo del editor. Seleccione la pestaña Detalles. En las filas Entradas de la tabla, pulse none en la celda de la fila gender y de la última columna denominada Leer de variable. Aparecerá una lista desplegable con todas las variables definidas actualmente en este proceso que tengan un tipo coincidente, que en este punto sólo son los parámetros de entrada y salida de la interfaz de proceso. Seleccione la variable gender, que es el parámetro de entrada de este proceso. Esta selección implica que pasará los datos de texto de esta variable como entrada a la tarea de usuario.
  6. Similarmente, en las filas Salidas, pulse none en la celda de la fila firstName y de la última columna llamada Almacenar en variable, pero esta vez seleccione Nuevo y cree una nueva variable denominada firstname. Haga lo mismo para la fila lastName y cree una nueva variable denominada lastname. Observe que las variables se crean con el tipo adecuado para este parámetro de interlocutor de referencia. La tabla será parecida a la siguiente:
    Variables en la vista Propiedades
  7. Durante la ejecución, cuando InvokeTask concluya, tendrá variables que contienen el nombre y apellido del usuario. El servicio de ejemplo Hello World Part 1 que debe invocar también necesita una fórmula de tratamiento, tal como Mister, lo que significa que necesita definir una variable para contener el valor. Junto a la categoría Variables en la bandeja, pulse el icono de signo más (+) tal como se muestra en la figura siguiente:
    Variable en la bandeja
    Se abrirá la ventana Añadir una variable.
  8. En el campo Nombre, escriba el nombre de variable fullname y seleccione el tipo FullName, que es un objeto de negocio creado en el ejemplo Hello World Part 1. Pulse Aceptar. Este es el tipo de datos correspondiente de la variable que el servicio del primer ejemplo necesita como entrada. La lista de variables debe tener este aspecto:
    Lista de variables
    La variable fullname tiene tres campos definidos en ella, todos de tipo serie: title, firstName y lastName. Para invocar el servicio, debe definir un valor para los tres campos, tal como se describe en los pasos siguientes.
  9. En la paleta, expanda la categoría Acciones básicas y arrastre la actividad Assign al interior de la estructura GeneralizedFlow del lienzo. Cambie el nombre de la actividad a AssignM.
  10. Mientras AssignM está seleccionado, vaya a la vista Propiedades y a la pestaña Detalles. En la columna Asignar a de la tabla, pulse Seleccionar para. En la lista desplegable, expanda fullname y seleccione title.
  11. En la misma tabla, en la columna Asignar desde, pulse Seleccionar desde. Seleccione Serie (entrar un valor) en la lista desplegable y escriba Mr, como se muestra a continuación:
    Asignar en vista Propiedades
  12. En el lienzo, conecte la actividad InvokeTask con la actividad AssignM y seleccione Añadir un enlace.
  13. De nuevo, arrastre la actividad Assign desde la paleta al interior de la estructura GeneralizedFlow y asígnele el nombre AssignF. Configure la actividad para asignar Ms al campo de tratamiento, tal como se muestra a continuación:
    Propiedades de Asignar
  14. Conecte la actividad InvokeTask con la actividad AssignF y seleccione Añadir un enlace. El flujo tendrá ahora este aspecto:
    Imagen del proceso conectado
  15. Es el momento de asignar valores a los dos campos restantes de fullname: firstName y lastName. Defina estos campos a partir de los valores devueltos por la tarea de usuario. De nuevo, arrastre Assign desde la paleta al interior de la estructura GeneralizedFlow y cambie su nombre a AssignNames. Utilice el botón Añadir para añadir otra fila a la tabla Asignar y configúrela como se muestra en la siguiente figura:
    Vista de propiedades de asignar
  16. Conecte las actividades AssignF y AssignM con esta nueva actividad AssignNames y seleccione Añadir un enlace cuando se le solicite. GeneralizedFlow debe parecerse a lo siguiente:
    Proceso conectado
  17. Debe condicionar los dos enlaces que provienen de InvokeTask para que existan algunos criterios sobre cuándo seguir cada enlace. Seleccione el enlace azul que va a AssignF y vaya a la pestaña Detalles de la vista Propiedades. En el campo Lenguaje de expresión, seleccione XPath 1.0 y luego pulse el botón Editar. Se abre el Constructor de expresiones XPath.
  18. Establezca la condición de género en female utilizando uno de los siguientes enfoques:
    • Escriba la expresión $gender='female' directamente y pulse Aceptar.
    • Pulse Insertar XPath simple y seleccione $gender en la lista de tipos de datos, luego seleccione el signo igual (=) como el Operador en el área Añadir una condición opcional y escriba female en el campo Valor correspondiente. Pulse dos veces Aceptar.
  19. Seleccione el enlace que va a AssignM y como sus propiedades establezca el Lenguaje de expresión en XPath 1.0 y la Condición en $gender!='female' como se muestra a continuación:
    Propiedades de enlace
    Opcional: es posible dar una etiqueta a los enlaces estableciendo el Nombre de visualización en la pestaña Descripción de la vista Propiedades y luego mostrando la etiqueta pulsando el botón derecho del ratón en el enlace y seleccionando Mostrar etiquetas en enlaces.
  20. En la bandeja, arrastre HelloWorldPartner hasta una posición situada inmediatamente encima de la actividad Reply y asígnele el nombre InvokeHW1, tal como se muestra a continuación:
    Imagen del proceso de negocio en el editor de procesos de negocio
  21. En la pestaña Detalles de la vista Propiedades, para la actividad InvokeHW1, enlace los parámetros de entrada y salida con las variables fullname yresult, tal como se muestra a continuación:
    Propiedades de Detalles de InvokeHW1
  22. En la categoría Acciones básicas de la paleta, arrastre Fragmento de código justo encima de Respuesta. En la pestaña Detalles de la vista Propiedades, hay un editor de fragmentos de código Java visual. Efectúe una doble pulsación en la pestaña Propiedades para cambiar a la pantalla completa. Pulse Estándar en la paleta. Se abrirá la ventana Añadir fragmento de código visual estándar. Expanda utilidad y seleccione imprimir en archivo de registro y después pulse Aceptar. Pulse en el lienzo del editor de fragmentos de código visuales. Aparece un nodo imprimir en archivo de registro.
  23. Arrastre la variable result desde la bandeja de la derecha al lienzo del editor de fragmentos de código visuales. Realice una conexión desde el nodo resultado al nodo imprimir en archivo de registro, para que el fragmento de código sea parecido al siguiente:
    Imagen del fragmento de código visual
    Restaure la vista de propiedades al tamaño normal.
    Acaba de crear visualmente código Java para emitir el contenido de la variable result a SystemOut. Técnicamente, al conectar un nodo a otro, se proporciona un parámetro de entrada a un método.
  24. Ha terminado de crear el proceso. Guarde el proceso. El resultado será parecido al siguiente:
    Imagen del proceso completado en el editor de procesos de negocio
  25. Cambie al editor de ensamblaje y guarde los cambios y a continuación vaya de nuevo al editor de procesos de negocio.
  26. Opcional: en el proceso algunas veces desea saber qué actividades utilizan una variable determinada. Hay una forma de hacerlo. En la bandeja, seleccione la variable fullname. En el menú Ventana, seleccione Mostrar vista > Referencias. En la parte inferior derecha de la perspectiva se abrirá la vista Referencias, donde verá un gráfico que incluye como entrada de la variable todas las actividades que establecen la variable, tal como se muestra en la siguiente figura:
    Vista Referencias que muestra las actividades y sus variables

Resultados

Los pasos de creación se han completado. Ahora ya puede realizar pruebas.
< Anterior | Siguiente >