Ejemplo en JEE

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Asistente de Procesos > Integrar > Integración con aplicaciones > Integrar APIs o código personalizado en Bizagi > Componentes personalizados >

Ejemplo en JEE

En el siguiente ejemplo, utilizaremos la funcionalidad de Librería de Componentes para incluir un componente desarrollado que utiliza un API externo.

Para más información sobre esta opción en Bizagi, consulte el artículo principal.

 

¿Qué se necesita en Bizagi?

Para utilizar una funcionalidad de Librería de Componentes, se llevan a cabo los siguientes pasos:

 

1. Construir su componente (una salida compilada).

2. Registrar el componente en Bizagi.

3. Crear las reglas de negocio que invocan el componente.

 

 

Importante

Cuando se desarrolla un componente para usarlo directamente en Bizagi JEE, debe asegurarse de que el componente se compile con el framework soportado por la aplicación Bizagi (la misma versión de framework o uno anterior).

En versiones de Bizagi 11.x, el framework soportado de la aplicación es el JDK 7.

 

Además de lo anterior, si su componente invoca un servicio Web SOAP, debe asegurarse de que el Servidor de Aplicaciones JEE soporte el estándar bajo el cual el servicio Web fue construido.

De lo contrario y el servidor utiliza una librería o framework especial para ejecutar ciertos componentes, se requerirá de configuración adicional directamente en el servidor (por ejemplo, en el proxy generado para un servicio Web dado que puede haber una compatibilidad diferente de SOAP).

 

 

Ejemplo

Ilustraremos esto a través de un Proceso de Solicitud de Crédito.

 

ComponentLibrary01_Process

 

 

Observe que este es un ejemplo simplificado, en el cual validaremos que el solicitante no este reportado en la central de riesgo, desde la tarea de servicio "Verificar Lista Negra".

 

En esta tarea de servicio, crearemos un regla de negocio que acceda a nuestro componente desarrollado para hacer usos de ese API. A través de este API, invocaremos un método que devuelva si el solicitante está reportado en la lista negra (verdadero o falso).

 

En esta sección ilustraremos como usar la funcionalidad de Librería de Componentes para un proyecto Enterprise JEE.

 

 

Construir su componente (compilarlo como librería)

Nuestro primer paso es desarrollar el componente como un proyecto de librería de clase Java.

 

En nuestro componente de muestra denominado “MyCreditBureauComponent”, hacemos uso de “CreditBureau.jar”, que representa un API de ejemplo.

 

ComponentLibraryJEE00

 

 

Incluimos el .jar dentro de la librería de nuestro proyecto.

 

Para la edición Enterprise JEE, construimos el proyecto de librería de clase como un archivo .jar.

 

ComponentLibraryJEE01

 

 

Nótese que el nombre de nuestro paquete es com.creditbcomponent, y observe que nuestra Clase es pública (denominada "Class1"). El método que utilizaremos en este ejemplo se denomina “IsCustomerInBlackList”.

 

note_pin

Tenga en cuenta que es muy importante que el ensamblado del componente desarrollado no incluya el API como tal.

Aunque este componente haga referencia al API, no se debe incluirlo en el archivo de salida.

 

 

Registrar el componente en Bizagi

Habiendo construido el montaje del componente en el paso anterior, se utilizará la salida (“MyCreditBureauComponent.dll”) para registrar el componente en la Librería de Componentes de Bizagi.

 

Para hacerlo, vamos a las Herramientas de Bizagi Studio y agregamos un nuevo componente:

 

ComponentLibrary02_CL

 

 

Encuentre el archivo .jar file y luego, dé clic en abrir, se descargará el ensamblado MyCreditBureauComponent.jar

 

 

ComponentLibrary03_MyCreditBureau

 

Una vez el componente es añadido, se debe indicar el nombre y la descripción del mismo.

 

Dado que este componente referencia y utiliza otra librería de clase jar (el API), necesitamos registrar e incluir este API en nuestra librería de componentes también.

 

Por lo tanto, repetimos los pasos para agregar un componente, pero esta vez para la referencia CreditBureau.jar

Para nuestro API de CreditBureau, ingresamos la información requerida y descargamos el archivo jar correspondiente.

 

ComponentLibrary09_CreditBureau

 

Dé clic en Ok.

 

 

note_pin

En este ejemplo no se requiere información adicional principalmente porque nuestra API llamada CreditBureau.jar no utiliza otros archivos .jar adicionales y porque esta API en particular no viene incluida en JBoss.

Existen algunas consideraciones especiales en la configuración de componentes (especialmente en JBoss), cuando cualquiera de los anteriores escenarios están presentes, como se describe en Consideraciones especiales con componentes.

 

 

Al final, necesitamos tener nuestros 2 jars como 2 componentes separados:

 

ComponentLibrary07_CL

 

 

Crear la regla de negocio que invoca el componente

Ahora que hemos registrado nuestra Librería de Componentes, procedemos a crear una regla de negocio que invoque el método del componente.

 

note_pin

Por cuestiones de simplicidad en el ejemplo, se enseña cómo invocar el componente desde una regla de negocio directamente.

 

Sin embargo, como buena práctica en términos de mantenibilidad de la solución, se recomienda crear una regla global (regla de librería) que reciba los parámetros de entrada, invoque el componente, y retorne parámetros de salida.

De esta manera, las reglas de negocio llaman a su vez a esta regla global y usted mantiene en Bizagi un único punto acoplado al componente.

Los miembros de su equipo que trabajen en el mismo proyecto, únicamente necesitarán conocer qué regla global utilizar.

Para mayor información sobre reglas globales, consulte la Reutilización de reglas de negocio.

 

Para hacerlo, vamos a la vista de Acciones de la Actividad desde el Asistente de Procesos, y seleccionamos la tarea de servicio "Verificar Lista Negra". Se incluye una regla de negocio en este punto del Proceso:

 

ComponentLibrary08_CL

 

En la expresión, invocamos nuestro método de MyCreditBureauComponent con la siguiente sintaxis:

 

Class.Method

 

Note que nuestra clase no se define como una clase estática, y por lo tanto podemos crear previamente una instancia de este, para invocar sus métodos. En nuestro ejemplo, la expresión completa invoca el metodo IsCustomerInBlackList por:

 

Enviar el id del Solicitante.

Almacenar el resultado del método en el atributo de tipo booleano CreditRequest.InBlackList.

 

ComponentLibrary22_CL

 

 

Este es el contenido de la expresión:

 

var temp = new Class1();

Me.setXPath("CreditRequest.InBlackList", temp.IsCustomerInBlackList(Me.getXPath("CreditRequest.ApplicantId")));

 

 

note_pin

Cuando se guarde la regla de negocio invocando un método de Componente (como en este ejemplo), la regla se guardará con advertencias y errores en la compilación de Bizagi. Para este caso, estos mensajes se pueden ignorar (trabajará correctamente en ejecución).

 

En este punto, hemos configurado un componente desarrollado con la funcionalidad de Librería de Componentes en Bizagi!.

 

 

Ejecución

Para ver este ejemplo funcionando, ejecutaremos nuestro Proceso en el Portal de Trabajo de Bizagi, dando clic en la opción Ejecutar Proceso:

 

ComponentLibrary_Run

 

 

Podemos ver que después de la tarea de servicio "Verificar Lista Negra", nuestra próxima Actividad será mostrar el resultado de la invocación de los métodos de nuestro componente:

 

ComponentLibrary10_Execution

 

 

 

note_pin

Si desea habilitar el modo debug para el ambiente de desarrollo, deberá editar el archivo de propiedades console-configuration.properties de la Consola administrativa JEE (el archivo se ubica por defecto en C:\BizagiJEE\BizagiConsoleManagerJEE\config\console-configuration.properties).

 

Asegúrese de incluir la siguiente linea:

jboss_debug=-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n

Tenga en cuenta:

1. Que el modo debug se habilita con la anterior linea en el puerto 8787 predefinido, el cual es usado por defecto en la depuración de errores por JBoss.

2. Que el servicio de JBoss lo inicia Bizagi como un proceso javax.exe cuyo comando refleja las variables de entorno usadas por Bizagi:

 

JEE_javax_process