Ejemplo para métodos de colocación de información

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > Asistente de Procesos > Integrar > Integración con aplicaciones > Conector de servicios Web > Invocar servicios REST >

Ejemplo para métodos de colocación de información

El siguiente ejemplo da una breve descripción de cómo usar los métodos POST y PUT a través de la invocación de un servicio REST directamente en nuestros Procesos de Bizagi. El consumo del servicio (entradas y salidas) será explicado con datos XML, pero Bizagi es capaz de usar datos JSON.

 

Como se describió previamente en Invocar servicios REST, es necesario entender previamente la estructura de la invocación del servicio REST de sqlREST.

 

Esta información se encuentra en el sitio web de la fuente: http://sqlrest.sourceforge.net/5-minutes-guide.htm.

 

 

InvokingREST01b_sqlREST

 

En este ejemplo específico, vamos a usar el servicio PRODUCT expuesto a través de un Web Service para enviar un identificados, un nombre y un precio y almacenar este producto en la base de datos destino.

 

Ilustraremos como invocar un servicio de REST, usando el Proceso Registro de Productos en Bizagi:

InvokingREST02b_productregistration

 

En este ejemplo, nuestro modelo de datos es:

 

InvokingREST03b_datamodel

 

 

Tenga en cuenta que este ejemplo usa la invocación al servicio sqlREST, este servicio puede ser instalado localmente en su máquina o usando el servicio web externo localizado en http://www.thomas-bayer.com/, en este caso, su computador debe tener acceso a Internet.

 

Creando una interfaz de invocación

Nuestro primer paso es crear una invocación de interfaz en nuestra Tarea de Servicio Persistir Producto.

Esto se hace desde el paso 6 del asistente de Proceso (Integración) en la opción Definir interfaces de integración:

 

InvokingREST04_Step6

 

 

En esta vista, demos clic en la Tarea de Servicio Persistir Producto para crear la invocación de la interfaz.

 

Especificar el tipo de servicio, la URL y el método

Ahora debemos especificar que esta configuración invoca un tipo de servicio REST, así como su URL, método y parámetros.

 

En la ventana de interfaz que aparece, seleccionamos REST como el tipo de servicio:

 

REST00

 

Tanto para URL como para URL de servicio, agregue la siguiente información

La URL Base de este ejemplo para acceso local: http://host:puerto/sqlrest/

La URL Base de este ejemplo para acceso remoto: http://www.thomas-bayer.com/sqlrest/

La URL de servicio de este ejemplo es: PRODUCT/{ProductCode}

 

REST02_PUT

 

Observe que el método que estamos invocando es PUT (para agregar/actualizar información) y que también envía la información en una estructura JSON o XML.

 

Nombramos nuestra interfaz y damos clic en Siguiente.

 

Mapeando toda la información de entrada para el servicio

A continuación, vamos a mapear la información que será enviada a través de la variable previamente definida.

 

Para hacer esto, localizamos nuestro atributo idProductGen en el modelo de datos del proceso de Bizagi (la tabla de la izquierda) y damos clic en él.

 

Una vez seleccionado, damos clic en la variable ProductCode en la tabla QueryParams de la derecha. De esta manera, mapeamos y especificamos la información que será enviada a esta invocación:

 

REST03_PUT

 

Damos clic en Siguiente.

 

Mapeamos la información de la petición del servicio

Ahora, especificaremos cómo enviar la información de la petición desde los atributos del modelo de datos de nuestro proceso de Bizagi.

 

Para esto, necesitamos incluir la estructura de la petición del servicio REST en Request Data.

 

Este ejemplo está orientado a contenido XML.

Copie el ejemplo de texto en un archivo con extensión .xml.

 
<resource>
  <NAME>Milk</NAME>
  <PRICE>1.23</PRICE>
</resource>

 

Damos clic derecho en la tabla de la izquierda e ingresamos la estructura de la respuesta.

Esto puede hacerse manualmente (agregando nodos) o de manera automática cargando la estructura de un archivo físico XSD, XML o JSON.

Dé clic aquí para más información acerca de opciones de configuración de servicios REST.

 

En este ejemplo, seleccionamos las opciones de importación, para cargar la estructura del archivo (localizando la estructura que guardamos previamente):

 

Para el archivo XML, seleccionamos Cargar desde un XML de ejemplo.

 

REST_PUT

 

Una vez tenemos la estructura XML en nuestra Tabla Destino, procedemos a mapear los atributos Name y Price a los atributos correspondientes del servicio REST.

 

Para mapear estos valores, recuerde que puede dar clic en el atributo de origen (Datos de Bizagi) y después en el atributo destino (Tabla Destino) o también, arrastrar una conexión desde el origen y soltarla en el destino.

 

Al final, la información de la petición de nuestro ejemplo estará mapeada así:

 

REST05_PUT

 

Dé clic en Siguiente.

 

note_pin

Cuando se mapean los parámetros de un servicio REST, usted cuenta con la posibilidad de incluir archivos de transformación personalizados (XSLTs). Para hacerlo, dé clic sobre el ícono de Mapeo avanzado:

 

REST03_output_Advanced_PUT

 

Para mayor información sobre su uso, consulte el Mapeo Avanzado.

 

Si usted requiere enviar esta información con un tipo de contenido diferente a "text/xml", usted puede especificar esta configuración editando las propiedades de interfaz desde la vista de Experto.

 

El usuario puede escoger tanto para entradas como salidas, el tipo de contenido de cómo el servicio recibe/envía la información de acuerdo al concepto de integración: las dos opciones disponibles son XML y JSON. Este ejemplo mostrará como recibir y enviar la información usando ambos tipos de contenido.

La configuración de Bizagi establece el tipo de contenido como XML de manera predeterminada y por lo tanto, no se requiere configuración adicional. Cuando se usa JSON, establezca el tipo de contenido a "application/json". Para ver más información sobre establecer un tipo de contenido, consulte Consideraciones sobre servicios REST.

 

 

Mapear la información de respuesta retornada por el servicio

La configuración de este paso se realiza de manera similar a como fue descrito en la sección anterior (Mapeamos la información de la petición del servicio).

 

Este paso es requerido el método cuando el método PUT o POST retorna una respuesta con formato JSON o XML. En nuestro ejemplo, el servicio, sqlREST no tiene ninguna respuesta formateada, así que podemos evitar este paso.

 

REST_PUT_output

 

Configurar manejo de errores

Finalmente, para este ejemplo no necesitamos validación de manejo de errores.

Para ver más información acerca de las opciones de manejo de errores, consulte Manejo de Errores de Interfaz.

 

REST08

 

 

Dé clic en Finalizar.

 

Ejecución

Ejecute el Proceso Registro de Productos y pruebe el resultado de la invocación en el Portal de Trabajo.

 

Para hacerlo. dé clic en el botón Ejecutar en la pestaña Inicio:

 

ComponentLibrary_Run

 

En el portal de trabajo, creamos un nuevo caso del proceso Crear Vendedor e ingrese la información para Código de Producto, Nombre y Precio.

 

REST06_PUT

 

Después de la invocación del servicio sqlREST, pruebe si el producto que registró se encuentra almacenado en la base de datos usando el link correspondiente de su implementación:

 

Para acceso local: http://host:port/sqlrest/PRODUCT/{idProduct}

Para acceso remoto: http://www.thomas-bayer.com/sqlrest/PRODUCT/{idProduct}

 

REST07_PUT