<< Clic para mostrar Tabla de Contenidos >> Cómo configurar Virtualización para entidades relacionadas |
Introducción
Como un requerimiento de negocio frecuente, un proceso puede necesitar acceder a cierta información que reside en un repositorio existente. Esto es, con el objetivo de presentar y utilizar esta información en Bizagi (como parte de información del negocio en el proceso).
Para este tipo de integración de datos, Bizagi presenta una funcionalidad llamada Virtualización, la cual es un mecanismo de integración a nivel de datos que permite que más de una tabla externa desde el repositorio existente, sean incluida en el modelo de datos del proceso de Bizagi para su uso de manera transparente.
El acceso a datos a la fuente externa de información se realiza por demanda desde la ejecución del proceso, sea para leer o escribir datos en ella.
A través de la Virtualización, más de una tabla externa (múltiples tablas) se pueden mapear en el modelo de datos de Bizagi, de manera que esta información haga parte de la solución Bizagi sin importar su origen.
Cuando se desea trabajar e incluir más de una tabla externa (es decir, se quiera virtualizar múltiples tablas), es común que estas tablas contengan una relación entre ellas (típicamente mediante llaves foráneas). Por lo tanto, para configurar apropiadamente este escenario, en Bizagi utilizamos el asistente de virtualización y unos pasos adicionales para incluir explícitamente el mapeo de los atributos que representan la relación en dichas entidades.
La siguiente sección ilustra cómo configurar las entidades relacionadas en cuanto al mapeo de la virtualización, de manera que Bizagi utilice la relación de la llave foránea para obtener automáticamente la información de los registros asociados (un "JOIN" en SQL).
Ejemplo
En esta sección presentaremos como ejemplo, un proceso en Bizagi el cual virtualiza 2 entidades desde un repositorio existente (una base de datos de ejemplo de un CRM en SQL Server). Las entidades a virtualizar corresponden a las tablas: Customer (Cliente) y Customer_Account (Cuentas del cliente), donde hay una relación 1 a muchos entre ellas.
Nuestro proceso en Bizagi se llama Product Request (Solicitud de productos), y permitirá al usuario final buscar un cliente existente o el registro de uno nuevo (por medio de un Join search dialog, o "Buscador Ventana"). Esto se realiza en la primera actividad del proceso que llamamos Register Request (Registrar solicitud).
Cuando el usuario final seleccione un cliente existente, la información de las cuentas del mismo (y su información), será automáticamente presentada en Bizagi.
Para lograr lo anterior, describiremos el procedimiento que involucra: la configuración de la virtualización para las entidades, incluir sus atributos de relación, especificar el mapeo para estas relaciones, y definir la forma para nuestra actividad Register Request.
Procedimiento
Este procedimiento se realiza así:
1. Configurar la virtualización para el repositorio existente.
2. Incluir las relaciones de las entidades virtuales en el proceso.
3. Especificar el mapeo para las relaciones.
4. Definir la forma de mostrar la información de los registros múltiples.
La configuración que se muestra en este ejemplo implica dos pasos del Asistente para la virtualización y las opciones avanzadas de virtualización.
Configurar la virtualización para el repositorio existente
Primero utilizaremos el asistente de virtualización para crear las entidades virtuales en nuestro proyecto Bizagi a partir de las existentes en nuestra base de datos CRM.
Para realizarlo, vaya al paso 2 del asistente de Proceso Process llamado Modelo de datos (Data Model):
Seleccione virtualización para iniciar el asistente que permitirá configurar fácilmente la información relacionada a nuestra conexión al CRM:
Incluya la información para nombrar y definir nuestro CRM como un "sistema externo" (external system) en el proyecto Bizagi:
Especifique el detalle de la conexión para el proveedor de la conexión (Provider):
Bizagi presentará las tablas y vistas disponibles del CRM para su virtualización.
Seleccione (marque) las entidades a virtualizar y dé clic en Siguiente.
En el siguiente paso no se define un filtro, ya que no se necesita en nuestro ejemplo. Haga clic en Siguiente.
Bizagi creará las entidades correspondientes:
Cuando el asistente de Virtualización y Replicación crea entidades y las mapea de manera asistida, se crearán los atributos de relación de manera automática si se han incluido entidades relacionadas en este paso. El asistente crea un atributo de referencia pero queda a su consideración si necesita definir una colección para manejar esta relación como 1-n (o dejarla por defecto como 1-1). |
Cuando este proceso termine, haga clic en Finalizar (Finish).
Incluir los atributos para las relaciones de las entidades
Ahora procederemos a incluir la relación en nuestro modelo de datos Bizagi para representar y manejar la relación entre las tablas Customer y Customer_Account del CRM.
Habiendo completado el paso anterior, el modelo de datos del proceso Product Request mostrará las dos entidades creadas para la virtualización: Customer y Customer_Account.
Asegúrese que haya incluido un atributo de tipo referencia en la entidad de proceso (llamada "Product Request"), a la entidad Customer:
De esta manera, definiremos que en nuestra entidad Product Request podremos tener un cliente nuevo o existente asociado al caso (a la solicitud).
Edite la entidad Customer para incluir explícitamente una relación 1-n hacia la entidad Customer_Account.
De esta forma, un cliente tendrá una o más cuentas (registros en Customer_Account). Para esta definición, incluiremos un atributo de tipo colección:
Bizagi incluirá los atributos para representar esta relación:
En el ejemplo anterior, el atributo Customer es el que se creó automáticamente por Bizagi al definir la relación 1-n (este atributo mantiene la relación en Bizagi desde la entidad Customer_Account). |
Se recomienda entonces que se elimine el atributo idCustomer, dado que su información no haría parte de la relación en Bizagi (ya contemplada por el otro atributo).
Para eliminar este atributo cuya información ya estaría mapeada en Customer, puede hacerlo desde el diagrama de entidades o ir al módulo de entidades:
Especificar el mapeo para la relación
Una vez que nuestro modelo de datos en Bizagi contenga la información de la relación, necesitaremos incluir el mapeo para estos atributos.
Para realizarlo, vaya a la vista de Experto y seleccione el módulo de Sistemas (Systems).
Navegue en el nodo de Sistema (System) y Proveedor (Provider), nombrados en nuestra configuración de virtualización como: "MyCRM" y "MyProvider1", hasta encontrar el listado de las entidades virtuales (Customer y Customer_Account).
Haga clic derecho sobre Customer_Account y seleccione la opción de Adicionar atributo a la virtualización ("Add attribute to virtual"):
Incluya el atributo "Customer" de referencia que se creó para la relación en la entidad Customer_Account, y defina su mapeo de acuerdo a la fuente de este campo en el CRM (es decir, digitar el nombre del campo).
Nótese que esta parte es clave en la configuración, principalmente porque es importante que se defina explícitamente en Bizagi el mapeo para el atributo de la relación donde está la llave foránea (la entidad n de la relación 1-n). Este mapeo debe ser a la llave de la entidad Customer.
Nótese que el atributo Customer mantiene la referencia a la entidad relacionada en Bizagi, para propósitos internos, mientras que la columna de customerid contiene el mapeo exacto del id referente a la llave foránea en la fuente externa. Esto significa que sin importar si la Virtualización se configuró por medio del asistente o no (también manualmente desde el módulo de sistema), el mapeo al final debe contener: el atributo de la relación de Bizagi en la entidad virtual que esté mapeado al atributo de la fuente. |
Hemos ahora incluido el mapeo adicional para la relación en Bizagi, para definir qué columna determina la relación en la base de datos del CRM.
Definir la forma para mostrar información de registros múltiples
Por último vamos a incluir en nuestra Forma de Solicitud de Registro, los ámbitos de nuestras entidades para: permitir la selección de un cliente y mostrar las cuentas asociadas para ese cliente (que muestra la información de varios registros de la relación).
Para ello, vaya al Asistente de Procesos y seleccione el tercer paso (Definir formas):
Incluya el atributo Customer de su entidad de proceso en la forma de Solicitud de Registro.
De forma predeterminada, esto se representa como un control Search.
Para este control, establezca sus propiedades de búsqueda tales como: el atributo para mostrar, y la forma que se abre (defina una nueva seleccionando Nueva forma):
Para la nueva forma del control asegúrese de arrastrar y soltar algunos de los atributos de los clientes (como criterios de búsqueda), y también asegurarse de darle un nombre a la Forma.
Observe en este ejemplo, hemos incluido el nombre del cliente y los atributos de correo electrónico, y hemos llamado a nuestra forma MyCustomerSearchForm.
Guarde esta forma.
Incluya la colección Cuentas (Accounts) en la forma y edite las columnas que se muestran en la tabla:
Se incluyen los atributos Customer_Account: Número de cuenta, Fecha de creación y el Balance.
Guarde la forma.
De vuelta a la forma principal, asegúrese de que la tabla Cuentas se establece como de sólo lectura.
Esto significa, asegurando que la propiedad Edit esté en falso y no se permita añadir, editar o eliminar registros.
En este punto, hemos terminado de configurar la virtualización para las entidades relacionadas.
Nuestras tablas externas de bases de datos CRM se usan de manera transparente en nuestro proceso de Solicitud de productos!
Ejecución
Ahora ejecute su proceso.
En el Portal de Trabajo puede crear un caso nuevo del proceso Product Request. En la primera actividad (Register Request) realice una búsqueda de un cliente existente:
Al seleccionarlo, sus cuentas asociadas se presentarán automáticamente en la tabla:
Consideraciones adicionales
Cuando se utiliza la virtualización para las entidades relacionadas, hay escenarios más sofisticados que son soportados por Bizagi.
Por ejemplo: tener llaves primarias compuestas en el origen, tener Entidades Paramétricas replicadas relacionadas con Entidades maestras virtualizadas, etc
Llaves primarias compuestas
Bizagi soporta la virtualización de entidades que tengan llaves primarias compuestas (es decir que en el repositorio existente, la tabla tenga más de una columna componiendo su llave primaria).
Para configurar este tipo de escenarios, en Bizagi solamente se requiere asegurar que los atributos mapeados en la virtualización de la llave primaria, estén incluidos en su totalidad como llave de negocio de la entidad virtual (business key).
Para revisar o modificar (incluir atributos) la definición de los atributos que hacen parte de la llave primaria de la fuente, haga clic derecho sobre la entidad virtual y seleccione sus propiedades (en el Módulo de Sistemas).
En nuestro ejemplo, únicamente el atributo número de cuenta (accountnumber) se definió como llave de negocio para la entidad Customer_Account (sin llave compuesta). Usted puede editar o examinar este ajuste ubicando de la entidad específica en el módulo de Sistemas, y haciendo clic en sus Propiedades:
Para incluir más de un atributo como llave principal, seleccione los atributos adicionales que conforman la definición businessKey.
De forma predeterminada, Bizagi leerá la definición de llave principal de la fuente (cuando se utiliza el Asistente de virtualización) e incluirá los atributos que componen la llave primaria compuesta. |
Usando como ejemplo una tabla Customer_Products (productos de un cliente) de una fuente de datos externa, podríamos encontrar que su llave primaria es definida por tanto el atributo ProductId y el CustomerId:
Esto significa que en Bizagi, necesitaremos asegurar que para esa entidad, la llave de negocio (businessKey) incluya estos 2 atributos:
Last Updated 2/1/2023 9:58:58 AM