Automatizar Connected Field Service

Completado

Cuando se genere una alerta de IoT en CFS, tiene que identificar qué es lo que debe hacer. El registro de alerta de IoT contiene varios fragmentos de información, como el tipo de alerta, la hora, el id. del dispositivo y los datos de la alerta. El campo Alert Data consta de los datos JSON que contienen los detalles específicos del evento. Los datos incluidos pueden variar en función del dispositivo. Normalmente, la información del campo de Alert Data indicará qué paso específico debe realizarse a continuación. Al empezar a generar automatizaciones para los pasos siguientes, es importante que comprenda qué herramientas e información están disponibles, y cómo puede usar esas herramientas para alcanzar su objetivo.

Una forma de simplificar el trabajo con las alertas es definiendo cómo se agrupan juntas conforme se desencadenan las alertas. De manera predeterminada, las alertas similares se agrupan en función del dispositivo que desencadenó la alerta. Sin embargo, puede haber ocasiones en que tenga sentido agregar una capa de agrupación adicional. Por ejemplo, una organización puede optar por agrupar alertas por datos relacionados, como Categoría de dispositivo, Cuenta o Activo de cliente.

Esta configuración está disponible en Configuración - Configuración de IoT -Reglas de agregación de alertas. Las agregaciones de alertas se pueden definir en función de la alerta de IoT, el dispositivo relacionado o el activo del cliente relacionado.

Trabajar con datos de alertas

La solución Connected Field Service incluye varias acciones y varios flujos de trabajo listos para usar que pueden ayudar a automatizar elementos, como la creación y el registro de dispositivos o la introducción de los datos correspondientes en los registros.

Algunas de las acciones principales relacionadas con las alertas de IoT son:

Nombre para mostrar Descripción
JSON-Based Field Value - Get Number Lee una propiedad numérica en el objeto JSON especificado.
JSON-Based Field Value - Get String Lee una propiedad de cadena en el objeto JSON especificado.
JSON-Based Field Value - Get Boolean Lee una propiedad booleana en el objeto JSON especificado.

Los datos del campo Alert Data tienen formato JSON. El texto siguiente representa un ejemplo de lo que se pasaría al campo Alert Data cuando se desencadena una alerta de IoT.

{"deviceid":"smt-1298","readingtype":"Temperature","reading":113,"eventtoken":"c802338d-60f2-4a79-b45c-e164e2191ce0","threshold":70,"ruleoutput":"AlarmTemp","time":"2018-09-06T15:58:08.964Z"}

Normalmente no puede usar directamente el contenido del campo Alerta de datos, ya que le interesará consultar según una de las propiedades, no según todas ellas. Primero, debe analizar los parámetros relevantes con los que desea trabajar, a fin de poder usarlos para consultar y gestionar los pasos siguientes.

Si analizamos la cadena JSON, vemos que comunica los siguientes parámetros y valores:

Parámetro Valor
deviceid Smt-1298
readingtype Temperature
reading 113
eventtoken c802338d-60f2-4a79-b45c-e164e2191ce0
threshold 70
ruleoutput AlarmTemp
time 06/09/2018 06:58:08 a. m.

Como ayuda para analizar el parámetro específico que necesita de la cadena JSON, puede utilizar una de las acciones JSON-Based Field Value.

Las acciones JSON-Based Field Value contienen los siguientes parámetros:

Parámetro Tipo Descripción
JSON Entrada El objeto JSON que se va a examinar. (En este caso el campo Datos de alerta).
PropertyPath Entrada Nombre de la propiedad o ruta del valor para leer. (distingue mayúsculas de minúsculas)
DefaultReturnValue Entrada Valor predeterminado que se debe devolver si se especifica que no se encuentra la propiedad.
Respuesta Salida El valor de respuesta para la propiedad especificada.

En función de la acción JSON - Based Field Value especificada, el parámetro de salida puede ser una cadena de texto (Cadena), un valor numérico (Número) o un valor booleano (Booleano).

Por ejemplo, si solía usar la acción JSON - Based Field Value - Get Number para extraer el valor de lectura de la siguiente cadena JSON de Alert Data,

{"deviceid":"smt-1298","readingtype":"Temperature","reading":113,"eventtoken":"c802338d-60f2-4a79-b45c-e164e2191ce0","threshold":70,"ruleoutput":"AlarmTemp","time":"2018-09-06T15:58:08.964Z"}

sería similar a lo que aparece en esta tabla:

Parámetro Valor
JSON Alert Data (nombre de campo)
PropertyPath reading
DefaultReturnValue 70 (representa el umbral de temperatura actual)
Valor 113

El valor representa el valor devuelto por la acción, que en este caso sería 113, ya que es el valor asociado a la propiedad "reading". Usamos la acción Get Number para poder pasar el valor a un campo numérico; después, utilizamos las opciones de consulta numérica en el valor para determinar lo que vamos a hacer con el elemento.

Aplicación práctica

Veamos ahora una aplicación práctica de este concepto.

Supongamos que tenemos un termóstato inteligente registrado como un dispositivo de IoT. Si la lectura de la alerta supera los 70 grados, se genera una alerta de IoT en CFS.

  • Si la lectura del dispositivo está entre 70 y 85 grados, haga que Connected Field Service envíe automáticamente un comando al dispositivo para reiniciarlo.

  • Si la lectura del dispositivo es mayor que 85 grados, es necesario que un técnico solucione el problema manualmente.

Para ello, puede crear un flujo de trabajo que haga lo siguiente:

  • Primero, ejecuta la acción JSON - Based Field Value - Get Number para capturar el valor de la propiedad "reading".

  • A continuación, escribe el valor de salida devuelto en un campo personalizado en el registro de alerta de IoT, por ejemplo, Lectura del dispositivo.

  • Se puede desencadenar otro flujo de trabajo al actualizar el campo Lectura del dispositivo que haga lo siguiente:

    • Si el valor del campo Lectura del dispositivo está entre 70 y 85 grados, creará un comando relacionado con la alerta de IoT que enviará un comando para restablecer al dispositivo.

    • Si el valor del campo Lectura del dispositivo es mayor que 85 grados, el flujo de trabajo finalizará con el estado "correcto".

Importante

Aunque la solución Connected Field Service incluye las acciones y los flujos de trabajo mencionados anteriormente, muchas organizaciones no usan la funcionalidad de flujo de trabajo de Dynamics 365. Dado que proporciona flexibilidad y una mayor selección de servicios con los que puede trabajar, muchas organizaciones utilizarán Power Automate para analizar el JSON.

Usar Power Automate

Este mismo concepto se puede utilizar con Power Automate. En lugar de usar las acciones personalizadas JSON-Based Field Value, podemos usar la acción Analizar JSON en el flujo. Cuando desencadene la acción Analizar JSON, el formato JSON del campo Alert Data se analizará en Propiedades individuales. El esquema debe definirse para que el comando sepa cómo analizar los datos. Las cargas de ejemplo de muestra de la alerta de IoT se pueden usar para generar el esquema.

En la imagen, hemos usando la misma cadena JSON que se incluyó en una alerta de IoT para crear el esquema:

{"deviceid":"nest1234","readingtype":"Temperature","reading":80,"eventtoken":"cfd5e690-ee88-4ca8-a75d-3b86ac61295c","threshold":70,"ruleoutput":"AlarmTemp","time":"2019-10-19T16:42:26.457Z"}

Puede ver que creó varias propiedades que representan cada elemento pasado en el JSON, como el id. de dispositivo, el tipo de lectura, la lectura, etc.

Captura de pantalla de varias propiedades que representan cada artículo pasado en el JSON.

Una vez que se han analizado los datos, se pueden usar para rellenar otros campos de la alerta de IoT tal y como lo hicimos con el flujo de trabajo. Cada propiedad se puede usar ahora como contenido dinámico en cualquier paso futuro del flujo.

Captura de pantalla de los campos de datos cumplimentados en la alerta de IoT

Si volvemos al ejemplo de termostato inteligente anterior, podemos lograr el mismo resultado creando un flujo en Power Automate que haga lo siguiente:

  • En primer lugar, el flujo se ejecuta cuando se crea un nuevo registro de alerta de IoT.

  • La acción Analizar JSON se ejecuta para analizar el JSON en propiedades individuales.

  • A continuación, el flujo actualiza el registro de alerta de IoT con el valor de salida de una de las propiedades devueltas. Por ejemplo, la propiedad Lectura se usa para actualizar el campo Lectura del dispositivo.

  • Se puede desencadenar otro flujo al actualizar el campo Lectura del dispositivo que haga lo siguiente:

    • Si el valor del campo Lectura del dispositivo está entre 70 y 85 grados, creará un comando relacionado con la alerta de IoT que enviará un comando para restablecer al dispositivo.

    • Si el valor del campo Lectura del dispositivo es mayor que 85 grados, el flujo de trabajo finalizará con el estado de correcto.