22
www.chakray.com Integrar “Business Services” publicados en WSO2 ESB con Bonita BPM Luis Peñarrubia Peñalba En este documento detallaremos como integrar una serie de funcionalidades de OpenBravo ERP expuestos como “Business Services” usando un Service Proxy publicado en WSO2 ESB (WSO2 Enterprise Service Bus) con Bonita BPM.

Chakray integración-service-wso2 esb-bonitabpm-20140504

  • Upload
    chakray

  • View
    599

  • Download
    9

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Chakray integración-service-wso2 esb-bonitabpm-20140504

w w w . c h a k r a y . c o m

Integrar “Business Services”

publicados en WSO2 ESB con

Bonita BPM

Luis Peñarrubia Peñalba

En este documento detallaremos como integrar una serie de funcionalidades de OpenBravo

ERP expuestos como “Business Services” usando un Service Proxy publicado en WSO2

ESB (WSO2 Enterprise Service Bus) con Bonita BPM.

Page 2: Chakray integración-service-wso2 esb-bonitabpm-20140504

2

Por Luis Peñarrubia IT Consultant

Integrar “Business Services” publicados en WSO2 ESB con

Bonita BPM

En este documento detallaremos como integrar una serie de funcionalidades de

OpenBravo ERP1 expuestos como “Business Services” usando un Service Proxy

publicado en WSO2 ESB2 (WSO2 Enterprise Service Bus) con Bonita BPM3.

Para ello vamos a diseñar un simple diagrama BPM con la ayuda de Bonita Studio en

el que deberemos crear un conector para acceder al Service Proxy publicado en

WSO2 ESB con los “Business Services” de OpenBravo ERP. Hemos divido el artículo

en los siguientes puntos:

1. Instalación WSO2 ESB y Bonita BPM

2. Diagrama BPM con Bonita Studio

3. Ejecutar diagrama BPM

1 http://www.openbravo.com/ 2 http://wso2.com/products/enterprise-service-bus/ 3 http://www.bonitasoft.com/

Page 3: Chakray integración-service-wso2 esb-bonitabpm-20140504

3

Por Luis Peñarrubia IT Consultant

1. Instalación WSO2 ESB y Bonita BPM

Debemos tener instalados los productos WSO2 ESB y Bonita BPM. En este caso

hemos utilizado las versiones ESB 4.8.0 y Bonita BPM Community Edition 6.0.4 sobre

un entorno Windows.

1.1. Instalación WSO2 ESB

La instalación WSO2 ESB es muy sencilla, a continuación se detallan los pasos:

1) Descargar WSO2 ESB. Se descargará un zip con todo el contenido.

2) Descomprimir zip descargado, se creará una carpeta wso2esb-4.8.0.

3) Para arrancar el servidor simplemente debemos ejecutar el fichero

wso2server.bat que se encuentra en la carpeta bin.

4) Una vez arrancado el server podemos comprobar que la instalación ha sido

correcta accediendo a la consola de WSO2 ESB desde nuestro navegador:

http://localhost:9443

El puerto por defecto es el 9443 (en el log que aparece al arrancar el server se

puede comprobar) y el usuario administrador por defecto es admin/admin.

Page 4: Chakray integración-service-wso2 esb-bonitabpm-20140504

4

Por Luis Peñarrubia IT Consultant

1.2. Instalación Bonita BPM

La instalación de Bonita BPM es muy sencilla, simplemente debemos seguir los pasos

indicados en el wizard de instalación:

1) Descargar Bonita BPM. Se descargará un exe con todo el contenido.

2) Ejecutar exe descargado, aparecerá el típico wizard de instalación.

3) Seguir los pasos que aparecen en el wizard. No destacamos ningún paso ya

que son los típicos de cualquier instalación.

4) Una vez finalizada la instalación en el escritorio aparecerá un acceso directo al

aplicativo.

Page 5: Chakray integración-service-wso2 esb-bonitabpm-20140504

5

Por Luis Peñarrubia IT Consultant

2. Diseñar diagrama BPM con Bonita Studio

2.1. Introducción

Vamos a diseñar un diagrama BPM que simplemente realizará consultas contra las

funcionalidades de OpenBravo ERP expuestos como “Business Services” usando un

Service Proxy publicado en WSO2 ESB. Para ello, nuestro diagrama tendrá dos

formularios:

Un formulario para indicar que consulta vamos a realizar.

Un formulario que nos mostrará el resultado de la consulta.

Para acceder a los “Business Services” de OpenBravo ERP deberemos crear un

conector que acceda al Service Proxy de WSO2 ESB en el que se encuentran

publicados.

2.2. Crear diagrama

Para crear el diagrama BPM simplemente debemos pulsar sobre el icono New. Nos

aparecerá la página principal con todas las opciones que podemos realizar sobre el

diagrama.

Page 6: Chakray integración-service-wso2 esb-bonitabpm-20140504

6

Por Luis Peñarrubia IT Consultant

El objetivo de este documento no es explicar todas las opciones que ofrece el

mundo BPM, simplemente nos centraremos en las que nos interesan para la

creación de nuestro diagrama.

2.2.1. Variables a nivel de Pool

Definiremos una serie de variables que serán comunes a todas las tareas de nuestro

diagrama. Para ello definiremos las variables a nivel de Pool, de forma que serán

visibles en todo nuestro diagrama y evitaremos tener que crear las mismas variables

en cada tarea.

En concreto definiremos las siguientes variables:

endpoint: donde está publicado el Service Proxy de WSO2 ESB.

entity: listado de entidades de OpenBravo ERP que podremos consultar en

nuestro Service Proxy.

id: identificador de la entidad de OpenBravo ERP que queremos consultar.

usuario: usuario de OpenBravo ERP con el que realizaremos las consultas.

password: password del usuario de OpenBravo ERP con el que realizaremos

las consultas.

template_request_message: template del mensaje de request que se enviará

al Service Proxy publicado en WSO2 ESB.

request_message: mensaje de request que se enviará al Service Proxy

publicado en WSO2 ESB.

response_message: mensaje de response que nos devolverá el Service

Proxy publicado en WSO2 ESB.

next_step: indica cual es la siguiente tarea que debe ejecutarse de nuestro

diagrama.

Para definir estas variables, deberemos seleccionar el Pool de nuestro diagrama y en

la pestaña General, seleccionar el apartado Data.

Page 7: Chakray integración-service-wso2 esb-bonitabpm-20140504

7

Por Luis Peñarrubia IT Consultant

Definiremos todas las variables de tipo Text a excepción de la variable entity, que será

una lista con todas las entidades de OpenBravo ERP que podremos consultar.

El siguiente paso será diseñar el flujo de nuestro diagrama.

2.2.2. Flujo del diagrama

Como hemos mencionado, necesitaremos dos formularios en nuestro diagrama:

Datos búsqueda: para especificar los datos concretos de la consulta.

Mostrar resultados: para mostrar los resultados de la consulta.

Necesitaremos por tanto que un usuario rellene los datos de la consulta y visualice los

resultados. Esto significa que en nuestro diagrama BPM deberemos crear dos tareas

de tipo humanas: Datos búsqueda y Mostrar resultados. Además daremos la opción

al usuario de una vez visualizados los resultados, volver a realizar una consulta o

finalizar el proceso. Por tanto nuestro diagrama implementará el siguiente flujo:

Page 8: Chakray integración-service-wso2 esb-bonitabpm-20140504

8

Por Luis Peñarrubia IT Consultant

Como se puede ver en la imagen, desde la tarea Mostrar resultados podremos:

Finalizar el diagrama (opción por defecto).

Volver a la tarea Datos búsqueda. Para ello comprobaremos mediante un

simple script Groovy4 si en el formulario de Mostrar resultados se ha informado

la variable a nivel de Pool next_step con el valor Paso1 (hemos clicado sobre el

botón de realizar nueva consulta).

4 http://groovy.codehaus.org/

Page 9: Chakray integración-service-wso2 esb-bonitabpm-20140504

9

Por Luis Peñarrubia IT Consultant

En este punto ya tenemos todo listo para poder entrar en el detalle de cada tarea de

nuestro diagrama.

2.2.3. Datos búsqueda

La tarea Datos búsqueda será de tipo humana (en la tarea se puede observar un icono

de persona) e implementará el formulario donde introduciremos los datos de la

consulta.

Para crear el formulario deberemos seleccionar la tarea Datos búsqueda y en la

pestaña Application, seleccionar el apartado Pageflow.

Page 10: Chakray integración-service-wso2 esb-bonitabpm-20140504

10

Por Luis Peñarrubia IT Consultant

En este caso seleccionaremos las variables endpoint, entity, id, usuario y password

definidas a nivel de Pool y nos aparecerá un formulario con el siguiente aspecto.

Para definir el detalle de cada campo del formulario, simplemente deberemos

seleccionar el campo y nos aparecerán todas las opciones posibles. En este caso

Page 11: Chakray integración-service-wso2 esb-bonitabpm-20140504

11

Por Luis Peñarrubia IT Consultant

definiremos que todos los campos excepto id sean obligatorios, también indicaremos

que el campo endpoint sea sólo de lectura.

Por último, necesitaremos que en el botón Buscar del formulario se construya el

mensaje de request con la información introducida por el usuario en el formulario. Este

mensaje será el que se enviará al Service Proxy publicado en WSO2 ESB. Para ello

seleccionaremos el campo Buscar y en el apartado Actions definiremos una acción

que simplemente obtenga la variable de Pool template_request_message y sustituya

los valores del template por los seleccionados por el usuario.

Page 12: Chakray integración-service-wso2 esb-bonitabpm-20140504

12

Por Luis Peñarrubia IT Consultant

Para hacer esto como se puede observar en la imagen hemos utilizado un simple

script Groovy.

2.2.4. Mostrar resultados

La tarea Mostrar resultados será de tipo humana (en la tarea se puede observar un

icono de persona) e implementará el formulario donde podremos consultar los

resultados de la consulta.

Para crear el formulario deberemos seleccionar la tarea Mostrar resultados y en la

pestaña Application, seleccionar el apartado Pageflow.

Page 13: Chakray integración-service-wso2 esb-bonitabpm-20140504

13

Por Luis Peñarrubia IT Consultant

En este caso seleccionaremos las variables endpoint, entity, usuario, password,

request_message, response_message definidas a nivel de Pool y nos aparecerá un

formulario con el siguiente aspecto.

Page 14: Chakray integración-service-wso2 esb-bonitabpm-20140504

14

Por Luis Peñarrubia IT Consultant

Como en esta tarea simplemente mostraremos los resultados de la consulta,

definiremos que todos los campos sean sólo de lectura.

Por último, necesitaremos que el botón Nueva Búsqueda del formulario nos retorne a

la tarea Datos búsqueda. Para ello seleccionaremos el campo Nueva Búsqueda y en

el apartado Actions definiremos una acción que simplemente asigne a la variable de

Pool next_step el valor Paso1.

Page 15: Chakray integración-service-wso2 esb-bonitabpm-20140504

15

Por Luis Peñarrubia IT Consultant

2.2.5. Crear conector

Para acabar de diseñar el diagrama nos falta crear el conector que acceda al Service

Proxy de WSO2 ESB en el que se encuentran publicados los “Business Services” de

OpenBravo ERP.

En este diagrama el mensaje de request se construye en el submit de la tarea Datos

búsqueda, por lo que vamos a invocar el conector al inicio de la tarea Mostrar

resultados. Para ello debemos seleccionar la tarea Mostrar resultado y en la pestaña

General, apartado Connectors, añadiremos un conector de tipo WebService SOAP

1.2.

Page 16: Chakray integración-service-wso2 esb-bonitabpm-20140504

16

Por Luis Peñarrubia IT Consultant

Una vez creado el conector, aparecerá en la tarea un icono de identificativo.

Nos aparecerá el wizard para la creación del conector. En este punto necesitaremos

consultar la información del Service Proxy publicado en WSO2 ESB con los “Business

Services” de OpenBravo ERP. Dicha información la podemos obtener desde el

apartado Services List de la consola de WSO2 ESB.

En el primer paso del wizard definiremos los datos generales:

Name: nombre del conector.

Page 17: Chakray integración-service-wso2 esb-bonitabpm-20140504

17

Por Luis Peñarrubia IT Consultant

Select event: cuando queremos que el conector se ejecute (inicio o fin de la

tarea).

If connector fails: qué hacer si ocurre un error en el conector.

En el segundo paso definiremos los datos de conexión al WebService:

Service NS: nombre del namespace.

Service name: nombre del servicio.

En el tercer paso definiremos los datos de request del WebService:

Port name: nombre del puerto usado por el servicio.

Page 18: Chakray integración-service-wso2 esb-bonitabpm-20140504

18

Por Luis Peñarrubia IT Consultant

End point address: donde se encuentra publicado el servicio. En este caso le

asignamos la variable de Pool endpoint.

Binding: binding SOAP, en la mayoría de casos

http://www.w3.org/2003/05/soap/bindings/HTTP/

Envelope: envelope del mensaje SOAP. En este caso le asignaremos la

variable de Pool request_message.

En el cuarto paso definiremos datos adicionales del request del WebService:

HTTP headers: Cabeceras HTTP, en este caso no son necesarias.

En el quinto paso definiremos el response. En este caso nos interesa obtener el

envelope y body.

Page 19: Chakray integración-service-wso2 esb-bonitabpm-20140504

19

Por Luis Peñarrubia IT Consultant

En el sexto y último paso definiremos las operaciones del Output. Es decir que hacer

con la respuesta que obtiene el conector. En este caso asignaremos la respuesta

obtenida a la variable de Pool response_message. Para ello crearemos un simple

script Groovy.

Page 20: Chakray integración-service-wso2 esb-bonitabpm-20140504

20

Por Luis Peñarrubia IT Consultant

3. Ejecutar diagrama BPM

Una vez finalizado el diseño del diagrama, vamos a comprobar su correcto

funcionamiento. Para ello simplemente desde el Visual Studio de Bonita debemos

clicar sobre el icono Run.

Automáticamente se desplegará el diagrama sobre el engine de Bonita BPM y nos

abrirá un navegador con nuestro diagrama. En este caso como habíamos diseñado

aparecerá el formulario de la tarea Datos búsqueda, donde deberemos introducir los

datos de la consulta y clicar sobre el botón Buscar.

A continuación aparecerá el formulario de la tarea Mostrar resultados, donde

podremos consultar los resultados de la consulta y en caso de querer realizar otra

consulta, podremos volver a la tarea Datos búsqueda clicando sobre el botón Nueva

búsqueda.

Page 21: Chakray integración-service-wso2 esb-bonitabpm-20140504

21

Por Luis Peñarrubia IT Consultant

Page 22: Chakray integración-service-wso2 esb-bonitabpm-20140504

22

Por Luis Peñarrubia IT Consultant

Autor:

Luis Peñarrubia

IT Consultant

Chakray Consulting

www.chakray.com

LinkedIn: http://www.linkedin.com/in/luispenarrubia

Twitter: @LuisPenarrubia