Sei sulla pagina 1di 17

Node.

Js como Motor de Ejecución para


Procesos de Negocio BPM

Modelados con

BPMN BizagiModeler

(06-02-2018)

Escrito por: José Alfredo Trujillo Hidalgo

Mail: jtrujillo@2tec.cl

GitHub: https://github.com/jtrujilloh
 Índice de Contenidos:
o Contexto del Desarrollo e Introducción.
o Tiempo de Implementación / Despliegue.
o Tecnologías Utilizadas.
o Paquetes npm utilizados.
o Requisitos de Software.
o Composición del Proyecto.
o Estructura de Directorios y Descripción de Componentes.
o Ejecución de Procesos y Resultados de Ejecución.

 Contexto del Desarrollo e Introducción:


Pequeño desarrollo que expone algunos ejemplos con diversos conceptos
básicos sobre la implementación de diseños modelados para distintos
procesos de negocio, implementando el estándar BPMN 2.0.

Con la implementación de BPMN en tus proyectos, no necesitas codificar


flujos directamente en el código, basta con modelar tu proceso o lógica de
negocio de forma gráfica utilizando cualquier modelador BPM que soporte
el estándar actual BPMN 2.0, solamente nos enfocamos a escribir el código
de cada actividad o condición de forma independiente, de esa forma,
modelas los distintos procesos de negocio, los cuales, serán entendibles
tanto para el usuario como para los desarrolladores.

La herramienta de modelado que se utilizó, en este caso Bizagi Modeler v3,


permite exportar cada diseño a archivos con formato *.bpmn, los cuales son
importados por la aplicación al momento de arrancar.

Actualmente existen muchas aplicaciones capaces de modelar procesos


utilizando el estándar BPMN 2.0, gratuitas y Open-Source, pues todas ellas
sirven para el mismo fin, modelar nuestra lógica de negocio en diagramas
entendibles por humanos y máquinas.

Básicamente podemos implementar en NodeJS el motor de ejecución de


procesos de negocio, donde sus diagramas son diseñados por cualquier
herramienta que soporte el estándar BPMN 2.0.

A cada proceso único o colaborativo se le pueden enviar y entregar datos en


en objetos de formato JSON, una vez arrancado el proceso, la información
viajará por cada proceso, secuencia, actividad o condición según la
definición de tu flujo de negocio a resolver, además de poder realizar todo
lo que necesites por cada actividad como invocar servicios web, realizar
operaciones de bases de datos o transformaciones de datos, hasta obtener
el resultado con los datos deseados.

El resultado entregado por un proceso puede ser el que estimes


conveniente (todo viaja en formato de objeto), y puede ser interpretado ya
sea en una salida web, o bien, una respuesta de una api rest, todo
dependerá de lo que requiera tu implementación y desarrollo...

Si!, también es posible desarrollar soluciones de transformación de datos e


integraciones de sistemas al estilo de los ETL (ETL son las siglas en inglés de
Extraer, Transformar y Cargar (Extract, Transform and Load)) de las
soluciones de BI (business intelligence), con posibilidades de ejecución
recurrente mediante Trabajos o Jobs Schedules en segundo plano
programables!

Al mismo tiempo que documentas tu desarrollo en los diferentes procesos


de negocio que tienes en mente, construyes el proyecto... Sin hacer nada
más que comenzar a trabajar con lo que nos aporta este tipo de
implementaciones gracias a su construcción visual e intuitiva.

En un próximo repositorio, se desarrollará y entregará públicamente una


aplicación CRUD mediante API REST y MongoDB, donde cada operación de
servicio se exprese y construya mediante el Modelado de un Proceso de
Negocio, además de integrar trabajos o jobs programables para tareas en
segundo plano.
 Tiempo de Implementación / Despliegue:
o 5 minutos aproximadamente, según instalación de la librería npm.

 Tecnologías Utilizadas:
o NodeJS
o Estándar BPMN 2.0
 Paquetes npm utilizados:
o bpmn v0.2.2
 Requisitos de Software:
o Sistema Operativo:

 Desarrollado sobre: Windows 7 Ultimate SP1

o NodeJS v6.9.1 x86 (o Superior)

o npm v5.4.1 x86 (o Superior)

o Bizagi Modeler v3.1.0.011

 Composición del Proyecto:


 El proyecto está compuesto por los siguientes elementos:

o Ejecutables independientes para cada ejemplo.


o Procesos de Negocio.
o Modelo diseñado con Bizagi Modeler.
 Estructura de Directorios y Descripción de Componentes:
lo siguiente, explica cómo se compone la estructura de directorios del
proyecto, y para qué sirve cada componente.

 ./Bizagi Models/:

Contiene el archivo creado con el modelador de procesos Bizagi.

 Procesos de Negocio - Ejemplos - v1.0.0.bpm: Archivo creado con Bizagi


Modeler.
 ./BPM.Test/:

Contiene el proyecto, ejecutables, modelos de procesos y controladores de cada


modelo.

 Start.ExampleBPM1.js: Ejecutable para el proceso del ejemplo 1.


 Start.ExampleBPM2.js: Ejecutable para el proceso del ejemplo 2.
 Start.ExampleBPM3.js: Ejecutable para el proceso del ejemplo 3.

 /BPM.Test/Test.Bpm.Process/:

Contiene los modelos de los distintos procesos de negocio y su controlador


correspondiente a cada modelo.
 exampleBPM1.bpmn: Corresponde al Modelo del Proceso de Negocio del
Ejemplo 1
 exampleBPM1.js: Corresponde al Controlador del Modelo, el cual contiene
cada método relacionado a cada Actividad o Condición definida en el
modelo para el ejemplo 1.
 exampleBPM2.bpmn: Corresponde al Modelo del Proceso de Negocio del
Ejemplo 2
 exampleBPM2.js: Corresponde al Controlador del Modelo, el cual contiene
cada método relacionado a cada Actividad o Condición definida en el
modelo para el ejemplo 2.

 exampleBPM3.bpmn: Corresponde al Modelo del Proceso de Negocio del


Ejemplo 3
 exampleBPM3.js: Corresponde al Controlador del Modelo, el cual contiene
cada método relacionado a cada Actividad o Condición definida en el
modelo para el ejemplo 3.
 ./Imagenes/:

o Almacena los archivos de imágenes del proyecto, los cuales se


visualizan a lo largo de esta documentación.
 Ejecución de Procesos y Resultados de Ejecución:
Para ejecutar cada ejemplo se hace de la siguiente manera:

o Ejecución de Ejemplo 1:

 Comando:

node Start.ExampleBPM1.js
 Resultado de la Ejecución Proceso 1:
 Ejecución de Ejemplo 2:

 Comando:

node Start.ExampleBPM2.js
 Resultado de la Ejecución Proceso 2 - Flujo 1 [NO]:

 Ejecución de Ejemplo 3:

 Comando:

node Start.ExampleBPM3.js
 Resultado de la Ejecución Proceso 3 - Flujo 1 [SI]:

 Resultado de la Ejecución Proceso 3 - Flujo 2 [NO]:

Potrebbero piacerti anche