xander_bakker

Usar Arcade para graficar el tiempo que una solicitud está abierta

Blog Post created by xander_bakker on May 15, 2017

Arcade (ArcGIS Arcade | ArcGIS for Developers ) es un nuevo lenguaje en la plataforma ArcGIS que nos permite graficar datos de una manera dinámica. Arcade está disponible en ArcGIS Online y en ArcGIS Pro.

 

Cuando estamos trabajando con solicitudes de clientes, el estado es muy importante, pero además es muy importante saber cuánto tiempo la solicitud está abierta. Mientras más tiempo no se atienda la solicitud, habrá más posibilidad de obtener un cliente descontento con el servicio.


¿Pero cómo graficamos este tiempo de estar abierta la solicitud, si solamente contamos con el momento en que fue registrado? Para este fin disponemos de Arcade.

 

Abajo un ejemplo de cómo resolver la visualización. En nuestro servicio alojado en ArcGIS Online contamos con dos campos de interés:

  • Estado – contiene los valores “abierto” y “cerrado”
  • FechaHora – contiene la fecha y hora del registro de la solicitud

 

Cargamos la capa a un mapa web y entramos a configurar la simbología. En el listado desplegable de los atributos, encontramos la opción “Nueva expresión”:

 

 

En la ventana de personalizar la expresión, se puede configurar la expresión:

1) editar el título (nombre del campo)
2) configurar la expresión (el script de Arcade)
3) los campos disponibles y ayuda de funciones de Arcade

 

 

Antes de todo editamos el título:

 

En este caso la lógica del script debe detectar si la solicitud está abierta o ya está cerrada. En caso que está cerrada debe devolver el texto “Cerrado”. En caso de estar abierta, debe determinar el tiempo en minutos trascurrido desde que se registró la solicitud y clasificar este tiempo en rangos personalizados.

 

Esto se puede lograr con el siguiente script:

var estado = Text($feature.Estado);
var fecha_registro = Date($feature.FechaHora);
var fecha_ahora = Now();
var clase = 'Cerrado';

if (estado == 'abierto') {
    var tiempo_minutos = DateDiff(fecha_ahora, fecha_registro, 'minutes');
    if (tiempo_minutos < 30) {
        clase = 'tiempo abierto: 0 - 30 minutos';
    } else if (tiempo_minutos < 60) {
        clase = 'tiempo abierto: 30 - 60 minutos';
    } else if (tiempo_minutos < 120) {
        clase = 'tiempo abierto: 1 - 2 horas';
    } else if (tiempo_minutos < 240) {
        clase = 'tiempo abierto: 2 - 4 horas';
    } else if (tiempo_minutos < 480) {
        clase = 'tiempo abierto: 4 - 8 horas';
    } else {
        clase = 'más de 8 horas abierto';
    }
}
return clase;

 

El resultado se ve así:

Para validar si el script es válido se puede oprimir el botón “Prueba”:

 

Una vez validado el script, se puede confirmar el script con oprimir “Aceptar”.

Luego se devuelvo a la parte de configurar la simbología:

 

Hacer clic en “OPCIONES” para configurar la simbología para la expresión:

 

El resultado se ve así:

 

Al esperar un tiempo se puede observar que los símbolos son dinámicos, puesto que el tiempo de estar abierta la solicitud cambie continuamente.

 

Arcade ofrece una manera sencilla para graficar los datos de una manera dinámico. 

Outcomes