<< Clic para mostrar Tabla de Contenidos >> Ejemplo para métodos de obtención de información |
Introducción
El siguiente ejemplo da una breve descripción de cómo usar los métodos GET y DELETE a través de la invocación de un servicio REST del API de Google Maps directamente en nuestros procesos de Bizagi. El consumo de los servicios será explicado con datos XML y JSON.
Como se describió previamente en Invocar servicios REST, es necesario entender previamente la estructura de la invocación del servicio REST de Google Maps.
Esta información se encuentra en el sitio web de la fuente: developers.google.com/maps/documentation/geocoding/.
En este ejemplo específico, vamos a usar el Geocoding API, expuesto a través de Web Services para enviar una dirección y obtener las coordenadas correspondientes en latitud y longitud.
También, vamos a usar un servicio REST disponible que retorna la información de la respuesta en una estructura XML (tenga en cuenta que estos servicios se proveen comúnmente en formato XML y JSON).
Ilustraremos como invocar un servicio de REST, usando el Proceso Crear Vendedor en Bizagi:
En este ejemplo, nuestro modelo de datos es:
Note que este ejemplo usa la invocación de servicio de REST de Google Maps (un servicio externo de Web). Se pueden requerir configuraciones adicionales para permitir que el navegador muestre el mapa (incluir a Google maps como un sitio seguro).
Creando una interfaz de invocación
Nuestro primer paso es crear una invocación de interfaz en nuestra Tarea de Servicio Consultar posición de geocódigo.
Esto se hace desde el paso 6 del asistente de Proceso (Integración) en la opción Definir interfaces de integración:
En esta vista, demos clic en la Tarea de Servicio Consultar posición de geocódigo 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:
Desde la información presentada en la página de API de Google Maps, especificamos su ubicación URL separada en: la URL Base y la URL de Servicio.
La URL Base y la URL de servicio también se especifican en la documentación del servicio REST. Note que la URL Base es el prefijo en el cual no se especifica invocación de parámetros aun. La URL de servicio usualmente contiene parámetros de consulta, cuyos valores varían por invocación. Se recomienda que ésta no contenga espacios en blanco de sobra. |
•La URL Base de este ejemplo para contenido XML es: http://maps.googleapis.com/maps/api/geocode/xml?
•La URL Base de este ejemplo para contenido JSON es: http://maps.googleapis.com/maps/api/geocode/json?
•La URL de servicio de este ejemplo es: address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true
Note que la URL de servicio anterior, incluye un ejemplo estático de una dirección ("1600+Amphitheatre+Parkway,+Mountain+View,+CA").
En nuestro proceso, vamos a enviar dinámicamente esta información desde el atributo "Street Address" en el modelo de datos.
Por lo tanto y con el fin de definir que el parámetro de la dirección es mapeado dinámicamente, definimos tantas variables como sea necesario dentro de la URL de servicio, usando los caracteres "{", "}".
Nuestra URL de Servicio final es: address={Value1}&sensor=true
Observe que el método que estamos invocando es GET (solo para consultar información) y que también retorna la información en una estructura XML o JSON.
Nombramos nuestra interfaz y damos clic en Siguiente.
Mapear toda la información de entrada para el servicio
A continuación, mapearemos la información a ser enviada a través de las variables definidas previamente.
Para hacerlo, localizamos nuestro atributo StreetAddress 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 Value1 en la tabla QueryParams de la derecha. De esta manera, mapeamos y especificamos la información que será enviada a esta invocación:
Cuando sea necesario, es importante recalcar que la información de las entidades Runtime están disponibles para el mapeo de entrada. Éstas se presentan en el mapeo simple (no se soportan en el mapeo avanzado.
Tenga en cuenta que si alguno de los parámetros enviados tiene un backslash (\), este caracter se escapa y es reemplazado por "%5C". Por ejemplo, si el parámetro StreetAddress enviado es "Calle 12-34 \\ casa 77\ ", el valor recibido por QueryParams es "Calle 12-34 %5C%5C casa 77%5C". |
Damos clic en Siguiente.
Mapear la información de respuesta retornada por el servicio
Ahora especificaremos cómo almacenar la información de respuesta en los atributos de nuestro modelo de datos de Proceso de Bizagi.
Para esto, necesitaremos incluir la estructura de la respuesta del servicio REST en los Datos de Respuesta.
Este ejemplo está orientado a respuestas con formatos XML y JSON.
La estructura de respuesta seleccionada se consulta en el API del servicio REST. Basados en esto, si la invocación espera un formato XML, vamos a developers.google.com/maps/documentation/geocoding/?hl=en#XML, de lo contrario, vamos a developers.google.com/maps/documentation/geocoding/?hl=en#JSON,
Copie el ejemplo de texto en un archivo con la respectiva extensión (.xml o .json).
Formato XML
Formato JSON
Para el formato JSON, el tipo de contenido debe ser configurado en las propiedades de la interfaz localizadas en Experto > Sistemas > Default (u otro nombre), Interfaces > Nombre de su interfaz.
|
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.
Para el archivo JSON, seleccionamos Cargar desde un Json de ejemplo.
Si usted sube un ejemplo JSON, no puede agregar nuevos nodos o exportar el mapping:
Si necesita agregar nuevos nodos vea Agregando más nodos con un ejemplo JSON. |
Una vez tenemos la estructura XML/JSON en nuestra Tabla de Respuesta de Google Maps, procedemos a mapear los valores entrantes la latitud ("lat") y la longitud ("lng") a nuestros atributos en Bizagi.
Para mapear estos valores, recuerde que puede dar clic sobre el primer atributo fuente (Datos de Respuesta) y luego en el atributo destino (Datos de Bizagi) o también, arrastrar una conexión desde la fuente y soltarla en el destino.
Al final, la información mapeada de la respuesta para nuestro ejemplo se mostrará de la siguiente manera:
Dé clic en Siguiente.
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:
Para mayor información sobre su uso, consulte el Mapeo Avanzado. |
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.
Dé clic en Finalizar.
Ejecución
Ejecute el Proceso de Creación de Vendedores y pruebe el resultado de la invocación en el Portal de Trabajo.
Para hacerlo. dé clic en el botón Work Portal en la pestaña Inicio:
En el portal de trabajo, creamos un nuevo caso del proceso Crear Vendedor e ingresamos la dirección del vendedor en el campo de la tarea "Register Vendor information".
Para este ejemplo de servicio REST, todo el texto que compone la dirección está separado por el caracter "+":
Después de la invocación del servicio REST de Google Maps, obtendremos las coordenadas de latitud y longitud para la dirección del Vendedor:
Agregar más nodos con un ejemplo JSON
Si carga una muestra JSON y necesita agregar más nodos, siga estos pasos:
Maximice la ventana para ver más opciones de mapeo, luego:
1. Exportar el mapeo actual:
2. Exportar los parámetros:
3. Agregar nuevos nodos editando el XSD.
4. Importar el XSD.
5. Importar el XML de mapeo obtenido en el punto 1.
Ahora tiene el mapeo previo y el nuevo nodo:
Last Updated 3/11/2024 8:59:38 AM