Vamos a hacer uso de un servicio web público que informa del clima en algunas ciudades. Si, por ejemplo, consultas esta URL en tu navegador
https://www.el-tiempo.net/api/json/v2/provincias/03
Obtendrás un JSON con la predicción de elTiempo.net para Alicante. Si lo formateamos podemos examinar un extracto del documento completo
{
"origen": {
"productor": "Agencia Estatal de Meteorología - AEMET. Gobierno de España",
"web": "https://www.aemet.es",
"language": "es",
"copyright": "© AEMET. Autorizado el uso de la información y su reproducción citando a AEMET como autora de la misma.",
"nota_legal": "https://www.aemet.es/es/nota_legal",
"descripcion": "elTiempo.net muestra la información meteorológica creada por © AEMET"
},
"title": "El tiempo en la provincia de Alacant/Alicante",
"today": {
"p": "Cielo nuboso sin descartar precipitaciones dispersas y ocasionales a partir del mediodía. Temperaturas mínimas en ascenso en el interio y sin cambios en el litoral; máximas en ascenso. Viento del oeste y suroeste flojo con intervalos de moderado."
},
"tomorrow": {
...
Hemos marcado dos atributos que usaremos en la demostración. Esta consiste en definir un conector que nos permita consultar el tiempo actual en Alicante, obteniendo un simple formulario informándonos de este dato.
Para ello montaremos un diagrama como este.
Ten en cuenta que el icono del conector no aparecerá hasta que se defina más adelante.
tiempohace TEXTO
Sin contrato, sin formulario de instanciación.
Necesitaremos acceder a la variable de proceso. Para ello definiremos una variable
Nombre resultado
Tipo External API
API URL ../API/bpm/caseVariable/{{task.caseId}}/tiempohace
En cualquier parte del formulario, coloca un widget Text, que configuraremos con
<h3>En Alicante tenemos ahora mismo<br><br> <i>{{resultado.value}}</i>.</h3>
Por defecto, Bonita Studio no incluye la extensión necesaria para configurar el conector que nos permita acceder a las API REST. Hay dos formas de conseguirlo:
Directamente desde la tarea, al intentar añadir el conector. Bonita Studio nos pedirá que accedamos al Marketplace para obtener la extensión.
Desde la Vista Global
Desde la "Vista global" elegimos "extensiones".
A continuación, accedemos al Marketplace.
E instalamos la extensión REST.
Aquí es donde tenemos que definir el conector a utilizar. Con la tarea seleccionada, vete a "Ejecución/Conectores entrada" y pulsa "Agregar..."
Queremos hacer uso de un Web Service REST, y del método GET.
Con este tipo de servidores se interactúa con el servidor mediante las URLs con las que enviamos peticiones de consulta, actualización, borrado y similares. Con el método GET —para este caso en particular, solo necesitamos consultar—, los parámetros necesarios se explicitarán en la URL.
Damos nombre al conector, "Tiempo en Alicante"
Asignamos la URL que queremos consultar:
https://www.el-tiempo.net/api/json/v2/provincias/03
El último código, 03, corresponde con el municipio Alicante.
Para este servicio web la configuración es muy sencilla por lo que iremos pasando pantallas con el botón "Siguiente" hasta que lleguemos al mapeo de salidas. Aquí lo que pretendemos es procesar el JSON que nos van a enviar y guardarlo en la variable de proceso.
Nos encontraremos con unas cuantas operaciones preparadas, pero las borramos todas y añadimos una nueva.
Elegimos la variable tiempohace y editamos un script.
En el cuerpo del script introduce esto:
bodyAsObject.today.p
No hagas caso de los subrayados. Habitualmente informan de nuestros errores al teclear las órdenes, en este caso simplemente es que todavía no tiene acceso a lo que nos van enviar desde el servidor cuando lo consultemos.
BodyAsObject es una de las variables que se genera al definir el conector y que va a almacenar el resultado que nos llegue desde el servicio web. En nuestro caso será un objeto JSON que debemos interpretar, y lo haremos accediendo a sus documentos, subdocumentos y atributos. Así, con bodyAsObject.today.p conseguimos el valor correspondiente al atributo p del subdocumento today —mira el JSON de la introducción de este ejemplo—.
Como no hemos definido variables de negocio, con examinar el formulario que nos presente Bonita User Application es suficiente.
Ten en cuenta que estamos consultando a un servidor en Internet, es posible que tarde algo más la aplicación web en mostrarnos nuestras tareas y no veas nada pendiente. Refresca la lista de tareas para ver el resultado si ocurre así.