Mapeo avanzado

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Asistente de Procesos > Integrar > Integración con aplicaciones > Conector de servicios Web > Características del mapeo >

Mapeo avanzado

Información General

La invocación de servicios externos desde Bizagi se configura fácilmente utilizando el conector de servicios Web.

Este conector brinda opciones amigables para definir gráficamente el mapeo involucrado en los puntos de integración de los procesos.

 

note_pin

Los puntos de integración en los procesos se configuran usualmente mediante Actividades Asíncronas, para invocar servicios externos Web o de tipo REST.

Para ver más información acerca de configurar estos puntos de integración de manera que sean ejecutados asíncronamente, consulte Actividades Asíncronas.

 

En escenarios más sofisticados, el conector de servicios Web también permitirá incluir y personalizar un archivo de transformación (XLST) para el mapeo de los parámetros.

Esto es útil en escenarios donde hay necesidad de usar funciones de transformación avanzadas (por ejemplo, XSLT if, o namespace-alias, etc).

 

 

Para hacer uso de esta opción, se utiliza el conector de servicios Web pero se especifica el uso del modo Avanzado al hacer clic sobre este ícono:

 

SOAPWebService03_InputAdvanced

 

Ilustraremos como utilizar esta opción adicional en Bizagi para incluir transformaciones y funciones avanzadas.

 

Nótese que esta funcionalidad requiere de conocimiento avanzado en archivos XML (y XSD, XSLT).

 

 

 

Qué se necesita hacer

Para utilizar opciones avanzadas del mapeo en la invocación de servicios externos, configuramos la invocación a través del conector de servicios Web como cualquier otra configuración.

 

Para este mapeo, que aplica tanto para los parámetros de entrada como los de salida, se lleva a cabo los siguientes pasos:

 

1. Configure la URL del servicio y el método Web.

Para el primer paso de configuración no se requieren consideraciones especiales.

En este paso se especifica la URL del servicio (sea un servicio REST o servicio Web).

 

2. Al especificar el mapeo, cambie al modo avanzado.

Dé clic en el ícono para cambiar al modo de mapeo avanzado.

 

3. Obtenga las definiciones de los esquemas y genere su propio archivo de transformación.

En esta vista, podrá obtener el XSD esquema que representa la información manejada tanto por Bizagi como por el servicio externo.

Podrá seleccionar estos esquemas y usarlos como insumo de información para generar su archivo de transformación personalizado (por ejemplo, podrá hacer uso de Altova o del programa especializado de su elección, que manipule y genere estas transformaciones).

 

4. Adjunte la transformación de vuelta en la configuración de la invocación del servicio.

Una vez que tenga la transformación, cárguela en la configuración. De esta manera, en ejecución Bizagi utilizará esa transformación para preparar o manipular la información que se intercambia con el servicio (sea una transformación para el envío de datos y otra para actualizar la respuesta a Bizagi).

 

5. Complete la configuración.

Repita el uso de mapeo avanzado para los parámetros de salida de su servicio, si éste lo amerita.

Finalmente, defina de manera opcional si hay algún manejo específico de errores.

 

 

Ejemplo de mapeo avanzado

Para este ejemplo, vamos a utilizar un proceso sencillo de Bizagi en donde se consulta información del cliente desde un servicio Web.

Este proceso en Bizagi maneja información de clientes que pueden ser tanto personas naturales como personas jurídicas.

Por lo tanto, al realizar la búsqueda del cliente, vamos a enviar la información que lo identifica únicamente de manera diferente, con respecto a qué tipo de persona lo representa.

 

 

1. Configure la URL del servicio y el método Web.

En este ejemplo se configura la invocación a un servicio Web de tipo SOAP.

Seleccionamos el método Web getCustomerPhoto:

 

01_ConfigService

 

Nótese que este método de ejemplo recibe una cadena que contiene la identificación del cliente, y envía de vuelta la imagen que tiene para el registro del cliente en el sistema externo (asumiendo que el cliente existe).

Dé clic en Siguiente (next).

 

2. Al especificar el mapeo, cambie al modo avanzado.

Para los parámetros de entrada seleccionamos las opciones avanzadas (Advanced options)  haciendo clic sobre el ícono ubicado en la parte superior derecha:

 

02_SwitchTo

 

Una vez sobre el modo de mapeo avanzado, asegúrese de seleccionar todos los atributos y campos que se involucran en los parámetros de entrada del servicio Web.

En este punto significa exactamente seleccionar del panel izquierdo, la información que necesita extraer de Bizagi.

 

En los parámetros de entrada, todos los campos definidos como parámetros de entrada del servicio deben quedar marcados (del panel derecho).

 

03_AdvancedMapping0

 

note_pin

Usted podrá utilizar el mapeo gráfico como punto de partida para su transformación.

Sin embargo, los cambios que realice en el mapeo avanzado serán descartados si se devuelve al mapeo gráfico.

 

3. Obtenga las definiciones de los esquemas y genere su propio archivo de transformación.

Habiendo seleccionado la información relevante, utilice el ícono en la parte inferior de los páneles para visualizar y obtener el esquema generado (el XSD).

De esta manera, se obtiene la definición estructural de la información que se intercambiará entre el servicio Web y Bizagi (en este caso, para los parámetros de entrada del servicio).

 

03_AdvancedMapping1b

 

En la ventana emergente, copie el contenido del XSD y utilícelo para construir su archivo de transformación personalizado (un XSLT).

La siguiente imagen muestra el esquema que representa la información de Bizagi seleccionada:

 

03_AdvancedMapping2

 

note_pin

Si se necesita enviar información en una cadena, que tenga dentro una estructura y contenido XML, o para escapar caracteres reservados en XML (cuando se identifica que la información contenida podrá tener caracteres especiales como: las comillas dobles, el Ampersand, apóstrofes, o los signos de menor y mayor que), podrá utilizar el elemento CDATA.

En los archivos de transformación utilice el CDATA así:

<xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>

<xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>      

para encapsular dentro la información que no haga parte del XML de afuera.

 

4. Adjunte la transformación de vuelta en la configuración de la invocación del servicio.

Una vez que cuente con el archivo de transformación, adjúntelo a la configuración de Bizagi.

En ejecución, Bizagi utilizará esta definición para preparar o manipular la información intercambiada con el servicio (sea para el envío o recepción de la misma).

 

En nuestro ejemplo, la transformación que se contruyó utiliza la función <xsl-if> para enviarle al servicio Web la información apropiada (la identificación del cliente):

Se envía lo contenido por el atributo llamado Legal name, (nombre legal) si el cliente registrado es una persona jurídica.

Se envía lo contenido por el atributo llamado Identification, (identificación) si el cliente registrado es una persona natural.

 

 

04_Transformation

 

Para adjuntar la transformación, use el ícono ubicado en la parte baja del panel intermedio, y cárguela desde un archivo:

 

04_Load

 

Ubique su archivo .xslt y dé clic en Abrir (Open).

 

09LoadXSLT

 

Nótese que verá la transformación en el panel intermedio.

Clic en Siguiente (next).

 

note_pin

Cuando se ingresan transformaciones personalizadas para parámetros de salida, donde se manejen colecciones de Bizagi (relaciones 1-n), deberá considerar que NO se debe incluir el nombre de la entidad de la colección (con incluir el nombre de la relación bastará).

Por ejemplo, si se tiene este modelo de un proceso de Solicitud de compras (Purchase Request):

 

03_AdvancedMapping3

 

Entonces, la transformación para manejar los registros de la colección resaltada, debe quedar sin el nombre de la entidad ProductsRequestedforPurchase. Para este ejemplo la transformación tendría:

 

<PurchaseRequest>

 <ProductsRequested>

         <Product>P01</Product>

 </ProductsRequested>

 <ProductsRequested>

         <Product>P07</Product>

 </ProductsRequested>

 <ProductsRequested>

         <Product>P09</Product>

 </ProductsRequested>

 <DeliveryAddress>Baker Street</DeliveryAddress>

</PurchaseRequest>

 

5. Complete la configuración.

Repita el manejo de transformaciones personalizadas para los parámetros de salida de ser necesario.

En nuestro ejemplo, no utilizamos una transformación personalizada para la respuesta del servicio Web.

Configuramos el mapeo de los parámetros de salida por medio del mapeo gráfico, de manera que la respuesta se almacene directamente en el modelo de datos de Bizagi como se ilustra:

 

05_Outputmapping

 

Clic en Siguiente (next).

 

No definimos manejo especial para el error en este ejemplo, y por lo tanto, damos clic en Finalizar (Finish).

 

En este punto hemos configurado la invocación a un servicio Web utilizando una transformación personalizada.