Construir procesos y automatizaciones en Connected Field Service
La solución Connected Field Service de Dynamics 365 le permite supervisar de forma remota los dispositivos habilitados para IoT y realizar un seguimiento del tiempo de actividad, las estadísticas de los dispositivos, las anomalías, etc. Cuando un dispositivo de IoT comunica una anomalía o excepción, dicha información se envía a Connected Field Service como alerta. Una vez que se ha capturado la alerta, podemos emplear la capacidad de Dynamics 365 para crear procesos de automatización y de negocio, así como para desarrollar procesos automatizados que gestionen los problemas, los enruten y los solucionen.
Este ejercicio práctico se ha diseñado con el objetivo de presentar la creación y automatización de procesos de Connected Field Service, así como para demostrar que estos elementos se pueden usar como parte de una solución IoT global.
Escenario
Trabaja para una empresa de fontanería y calefacción que vende y mantiene dispositivos inteligentes para el hogar. Puesto que muchos de los dispositivos a los que realiza el servicio son dispositivos inteligentes, la información de estos dispositivos se puede capturar de forma remota para ayudar al mantenimiento de dicho equipamiento. Su organización tiene varios escenarios y procesos definidos que utiliza al realizar el mantenimiento del equipamiento. Estos procesos pueden variar en función de diversos factores, como por ejemplo:
El tipo de dispositivo que necesita mantenimiento.
La gravedad del problema detectado.
La antigüedad del dispositivo.
La ubicación del dispositivo.
La disponibilidad de los recursos para trabajar en un dispositivo específico.
Los elementos anteriores son solo una pequeña parte de los factores que su organización tiene en cuenta para determinar el proceso de mantenimiento del equipamiento.
Últimamente, ha estado instalando muchos dispositivos de termostato inteligentes. Estos dispositivos han demostrado ser prácticos para realizar el seguimiento de las lecturas de temperatura y humedad en áreas en las que es importante mantener una temperatura y una humedad homogéneas. Ahora, como dispone de más información, en cierto modo se ha visto obligado a crear nuevos procesos para gestionar y solucionar los problemas que afectan a estos dispositivos. Primero querrá centrarse en la automatización es el proceso que se sigue para solucionar los problemas relacionados con la temperatura.
Su organización desea implementar el siguiente proceso:
Si un dispositivo detecta una lectura de temperatura superior a 70 grados, debería visualizarse una alerta en el entorno de Connected Field Service.
Si la lectura de la temperatura está entre 70 y 85 grados, debe enviarse un comando para restablecer remotamente el dispositivo y así ver si el problema se soluciona sin hacer nada más.
Si la lectura de la temperatura se encuentra entre 86 y 100 grados, un representante de servicio debería poder crear un caso para intentar solucionar el problema.
- Si el representante de servicio no puede resolver el problema, debería crearse una orden de trabajo y programar un técnico en la ubicación para el elemento.
Cuando la lectura de temperatura supera los 100 grados, estamos ante un evento potencialmente catastrófico. Hay que crear una orden de trabajo y programar un técnico en la ubicación para el elemento.
Ejercicio: automatizar y personalizar
Antes de comenzar: en este ejercicio se presupone que ya dispone de una implementación de Connected Field Service en funcionamiento que está conectada a un Azure IoT Hub o a una instancia de IoT Central. Si no dispone de un entorno de Connected Field Service, le recomendamos que analice el módulo de introducción a Connect Field Service. Dicho módulo le ayudará a preparar y configurar un entorno de Connected Field Service.
Tarea: Crear una nueva solución del proceso de alertas de IoT
En esta primera tarea, vamos a crear una solución de Dynamics 365 que podemos utilizar para almacenar todas las personalizaciones y los procesos que crearemos en este módulo. Esto facilitará el posible transporte de estas personalizaciones en el futuro, pero también nos ayudará a limpiar los entornos tras completar el curso.
Vaya a Power Apps y asegúrese de que está en el entorno correcto.
Seleccione Soluciones y Nueva solución.
Llame a la solución Procesos de alerta de IoT.
Seleccione la lista desplegable Publicador y seleccione Publicador.
Configure el Publicador como sigue.
Nombre para mostrar: curso de Connected Field Service
Nombre: curso de Connected Field Service
Prefijo: cfs
Seleccione Guardar.
Seleccione la lista desplegable Publicador y seleccione el publicador que ha creado.
En el campo Versión, introduzca 1.0.0.0. Seleccione Crear.
Seleccione la solución Proceso de alerta de IoT que ha creado para abrirla.
Seleccione Agregar existente y Tabla.
Seleccione Caso, IoT Alert y Orden de trabajo y, después, seleccione Siguiente.
Seleccione Incluir todos los objetos para las tres tablas y seleccione Agregar.
Tarea: Personalizar la tabla de alertas de IoT
A fin de automatizar los elementos y las acciones en función de las alertas de IoT, debemos poder extraer información específica para las alertas de IoT generadas. Podemos consultarla y desencadenar elementos en función de dichos datos. Dado que los datos de alerta contienen solo una cadena JSON que contiene todos los datos, debemos crear otros campos en la tabla de alertas de IoT. Podemos usar esto para enviar datos específicos y generar consultas a partir de esos campos.
Compruebe que todavía está en la solución Procesos de alerta de IoT.
Seleccione la tabla IoT Alert para abrirla.
Seleccione la pestaña Columnas y Nueva columna.
Introduzca Reading para Nombre para mostrar, seleccione Número entero para tipo de datos y seleccione Opciones avanzadas.
Introduzca 0 para Valor mínimo, 250 para Valor máximo y seleccione Guardar.
Repita el proceso para agregar las siguientes columnas.
Umbral
Nombre para mostrar: Umbral
Tipo de datos: Número entero
Valor mínimo: 0
Valor máximo: 250
TipoLectura
Nombre para mostrar: Tipo Lectura
Tipo de datos: Sí/No
Cambie el valor No por Temperatura
Cambie el valor Sí por Humedad
Opción predeterminada: Temperatura
Salida de regla
Nombre para mostrar: Salida de regla
Tipo de datos: Línea de texto única
Cliente
Nombre para mostrar: Cliente
Tipo de datos: Búsqueda
Tipo de registro de destino: Cuenta
Seleccione IoT Alert usando las rutas de navegación.
En Esquema, seleccione Relaciones.
Seleccione Nueva relación y seleccione Uno a varios.
Seleccione Caso para la Entidad relacionada, introduzca IoT Alert para Nombre para mostrar en columna de búsqueda y seleccione Listo.
Seleccione el nombre de la solución.
Seleccione Publicar todas las personalizaciones y espere a que se complete la publicación.
Seleccione el botón ... y Cambiar a clásico.
Expanda Entidades, expanda la entidad Alerta de IoT y seleccione Relaciones de 1: N.
Seleccione Asignaciones y Nueva.
Configure la asignación de la lista tal y como se muestra a continuación y seleccione Aceptar.
Campo de entidad de origen: cfs_customer
Campo de entidad de destino: customerid
Seleccione Guardar y cerrar.
Seleccione Publicar todas las personalizaciones y espere a que se complete la publicación.
Cierre el explorador de soluciones.
Tarea: Crear un flujo para rellenar valores
Ahora que tenemos el campo disponible para almacenar en él los datos que necesitamos, debemos rellenar estos campos con los datos correctos. Para ello, vamos a usar algunas de las acciones JSON-Based Field Value incluidas en la solución Connected Field Service. Creamos un flujo que ejecuta una acción JSON-Based Field Value para extraer datos específicos del campo de datos de la alerta. Después, pondremos esos datos en uno de los campos que hemos creado en la tarea anterior.
Vaya a Power Apps y asegúrese de que está en el entorno correcto.
Seleccione Soluciones y seleccione la solución Procesos de alerta de IoT para abrirla.
Seleccione Nueva y seleccione Automatización>Flujo de nube>Automatizado.
Ponga el Nombre del flujo como Rellenar campos de alerta.
Busque Microsoft Dataverse y seleccione Dataverse. Asegúrese de haber seleccionado el conector de Dataverse verde.
Seleccione Cuando se cree, actualice o elimine un registro y seleccione el botón Crear.
Seleccione Agregado para Condición de desencadenador, IoT Alert para Nombre de tabla y Organización para Ámbito; seleccione Nuevo paso.
Busque Analizar y seleccione Analizar JSON.
Seleccione el campo Contenido y seleccione Alert Data en el panel Contenido dinámico.
Pegue este esquema de JSON en el campo Esquema y seleccione + Nuevo paso.
{ "type": "object", "properties": { "deviceid": { "type": "string" }, "readingtype": { "type": "string" }, "reading": { "type": "integer" }, "eventtoken": { "type": "string" }, "threshold": { "type": "integer" }, "ruleoutput": { "type": "string" }, "time": { "type": "string" } } }
Busque Actualizar una fila y seleccione Actualizar una fila. Asegúrese de haber seleccionado el conector de Dataverse verde.
Cambie el nombre del paso a Actualizar alerta.
Seleccione Alertas de IoT para Nombre de entidad, seleccione el campo Id. de fila y seleccione IoT Alert en el panel Contenido dinámico.
Seleccione Mostrar opciones avanzadas.
Seleccione el campo Reading y seleccione Reading del paso Analizar JSON en el contenido dinámico.
Seleccione el campo Tipo de lectura y Especificar valores personalizados.
Seleccione la pestaña Expresión, pegue esta expresión y seleccione Aceptar. Asegúrese de que Parse_JSON coincida con el nombre del paso Analizar JSON.
if(equals(body('Parse_JSON')?['readingtype'], 'Temperature'), false, true)
Seleccione el campo Salida de regla y seleccione ruleoutput en la acción Analizar JSON, en el panel de contenido dinámico.
Seleccione el campo Umbral y seleccione threshold en la acción Analizar JSON, en el panel de contenido dinámico.
Al finalizar el flujo, este debería tener un aspecto similar al de la siguiente imagen:
Seleccione Guardar.
NO cierre esta página.
Tarea: Agregar los pasos del flujo de restablecimiento remoto
Ahora que hemos extraído los datos correctos y los hemos colocado en los campos correspondientes, debemos agregar nuevos pasos al flujo. Estos pasos determinan el valor de temperatura en el campo Reading. Si se encuentra entre 71 y 85 grados, debería crear automáticamente un comando de dispositivo de IoT (que lleve a cabo una acción de restablecimiento) y enviárselo al dispositivo.
Vuelva al flujo y seleccione Nuevo paso.
Seleccione Condición.
Seleccione el campo Elegir un valor y seleccione Reading en el paso Alerta de actualización del contenido dinámico.
Seleccione es mayor o igual que.
Introduzca 71 para Valor y seleccione Agregar y Agregar fila.
Seleccione el campo Elegir un valor y seleccione Reading en el paso Alerta de actualización del contenido dinámico.
Seleccione Es menor o igual que.
Introduzca 85 para Valor.
Ahora, la condición debería tener el siguiente aspecto.
Vaya a la rama Sí y seleccione Agregar una acción.
Busque Agregar una nueva fila y seleccione Agregar una nueva fila.
Cambie el nombre del paso a Crear orden de restablecimiento.
Seleccione Comandos de dispositivos de IoT para Nombre de tabla, seleccione el campo Nombre y seleccione Description en la acción Cuando se crea, actualiza o elimina un registro, en el contenido dinámico.
Agregue Restablecer dispositivo al Nombre y seleccione Mostrar opciones avanzadas.
Seleccione el campo Activo del cliente y escriba msdyn_customerassets().
Coloque el cursor entre ( y ) y seleccione Customer Assets (Value) en la acción Cuando se crea, actualiza o elimina un registro del contenido dinámico.
Seleccione el campo Dispositivo y escriba msdyn_iotdevices().
Coloque el cursor entre ( y ) y seleccione IoT Device (Value) en la acción Cuando se crea, actualiza o elimina un registro del contenido dinámico.
Seleccione el campo Alerta principal y escriba msdyn_iotalerts().
Coloque el cursor entre ( y ) y seleccione IoT Alert en la acción Alerta de actualización del contenido dinámico.
Pegue este archivo JSON en el campo Mensaje.
{"CommandName":"Reset Thermostat","Parameters":{}}
Seleccione Ocultar opciones avanzadas.
Seleccione Agregar una acción.
Busque Actualizar una fila y seleccione Actualizar una fila.
Cambie el nombre del paso a Desactivar alerta.
Seleccione Alertas de IoT para Nombre de tabla, seleccione el campo Id. de registro y seleccione IoT Alert en la acción Alerta de actualización del contenido dinámico.
Seleccione Mostrar opciones avanzadas.
Localice el campo Estado y configúrelo como Inactivo.
Seleccione Ocultar opciones avanzadas.
La nueva parte del flujo debería tener el mismo aspecto que en la imagen.
Seleccione Guardar.
Tarea: Modificar el Flujo de proceso de alertas IoT en CFS
Actualmente, usamos un flujo de proceso de negocio denominado Flujo de proceso de alertas IoT en CFS para guiar a los usuarios en la resolución de una alerta cuando esta se desencadena. Cuando una lectura de temperatura está entre 86 y 100 grados, deberíamos crear un registro de casos en el proceso de negocio. Después, debemos crear una orden de trabajo si no podemos resolver el caso. Si la lectura de temperatura supera los 100 grados, el proceso de negocio debe omitir la etapa del caso e ir directamente a una orden de trabajo. En esta tarea, modificaremos el Flujo de proceso de alertas IoT en CFS para reflejar estas necesidades específicas.
Vaya a Power Apps y asegúrese de que está en el entorno correcto.
Seleccione Soluciones y seleccione la solución Procesos de alerta de IoT para abrirla.
Seleccione Agregar existente y, luego, Automatización>Proceso.
Busque CFS, seleccione Flujo de proceso de alertas IoT en CFS y Agregar.
Abra Flujo de proceso de alertas IoT en CFS.
Seleccione el botón Desactivar para desactivar el proceso.
Confirme la desactivación.
Expanda Detalles en la fase de Alerta de IoT creada.
En Componentes, arrastre Paso de datos por debajo del paso Hora de alerta.
Configure el Paso de datos del modo siguiente:
Nombre del paso: Lectura
Campo de datos: Lectura
Seleccione Aplicar para guardar los cambios.
Repita los pasos 9 a 11 para agregar los Pasos de datos siguientes a la fase Alerta de IoT creada:
Umbral
Tipo Lectura
Salida de regla
Seleccione la pestaña Componentes y arrastre el componente Condición a la derecha de la fase Alerta de IoT creada.
En el Nombre de la condición, especifique Condición de temperatura.
Configure la regla 1 como sigue:
Campo: Lectura
Operador: Es mayor o igual que
Tipo:: Valor
Valor: 86
Seleccione el botón Nueva para agregar otra regla.
Configure la regla 2 como sigue:
Campo: Lectura
Operador: Es menor o igual que
Tipo:: Valor
Valor: 100
Compruebe que la opción Lógica de la regla esté establecida en And.
Seleccione Aplicar
Seleccione la fase Condición de temperatura, seleccione el icono Conector y, después, en el menú que aparece, seleccione Volver a conectar.
Seleccione la fase Crear orden de trabajo como Segundo punto.
Su flujo de proceso de negocio ahora debe parecerse a esta imagen:
Seleccione Guardar y active el Flujo de proceso de alertas IoT en CFS.
Cierre la ventana o pestaña del navegador del editor de procesos.
Seleccione Listo en la ventana anterior para la solución.
Seleccione Soluciones y Publicar todas las personalizaciones.
Tarea: Probar la automatización recién creada
Ahora que podemos crear las personalizaciones, los flujos y los flujos de proceso de negocio necesarios, vamos a utilizar un simulador para probarlo todo y asegurarnos de que el funcionamiento sea el deseado.
Vaya a Power Apps y asegúrese de que está en el entorno correcto.
Seleccione Activos del cliente y el botón Nuevo.
Introduzca Iniciar termostato para Nombre, seleccione Adventure Works para Cuenta y seleccione Guardar.
Localice el campo Id. de dispositivo, introduzca smt-9876 y haga clic en Guardar.
Seleccione Registrar dispositivos.
Seleccione Aceptar.
En su navegador web, seleccione una pestaña nueva y vaya a Azure Portal (Inicie sesión en Azure si se le solicita. Necesita una suscripción de Azure asociada con la cuenta que está utilizando).
Seleccione Grupos de recursos y abra el grupo de recursos.
Abra el IoT Hub que está usando con Connected Field Service y seleccione el Simulador.
Seleccione la URL del simulador para abrir el simulador de termostato (debería abrirse en una nueva pestaña).
En el simulador, seleccione Conexión.
Vuelva a su suscripción a Azure y cierre la pantalla App Service del simulador.
Abra el IoT Hub.
Resalte el nombre del IoT Hub y cópielo.
Vuelva a la pantalla de su simulador y copie el nombre del IoT Hub en el campo Host.
Vuelva a su suscripción a Azure, seleccione Directivas de acceso compartido.
Abra la directiva iothubowner y copie la Clave principal.
Vuelva a la pantalla de su simulador y copie la Clave principal en el campo Clave.
Seleccione el botón Conectar.
Seleccione el botón Actualizar para asegurarse de que todos los dispositivos registrados están disponibles.
En el desplegable Seleccionar un dispositivo, seleccione el dispositivo smt-9876. (Deberá verse un punto verde al lado del botón Actualizar y, tras unos segundos, debería empezar a transmitir información).
En el control deslizante de temperatura, establezca el valor a 75 grados y espere a que el estado de la temperatura se registre en la ventana Mensajes enviados.
Como la temperatura estaba entre 71 y 85 grados, se enviará un comando al dispositivo para reiniciarlo. (Pueden pasar varios minutos hasta que se envíe el comando de reinicio al dispositivo, depende de la velocidad de internet).
Vuelva a la pestaña del explorador que tiene Connected Field Service cargado.
Seleccione Alertas de IoT.
Cambie la vista a Alertas de IoT inactivas.
Abra la alerta de temperatura de 75 superó un umbral de 70.
Seleccione la pestaña Comandos (Debería ver un comando que se envió al dispositivo).
Vuelva a la pestaña del explorador web que contiene su Simulador.
Establezca la temperatura en 90 grados y espere a que se registre en la ventana Mensajes enviados.
Vuelva a la pestaña del explorador que tiene Connected Field Service cargado.
Seleccione Alertas de IoT.
Abra la alerta La lectura de temperatura de 90 superó un umbral de 70.
Seleccione la fase Creada. (Observe que se ve la información que hemos extraído antes. Como la lectura está entre 86 y 100 grados, crear caso es la siguiente fase).
En el Menú, seleccione Enviar comando.
Seleccione Cambiar a JSON.
Introduzca el siguiente código para el comando y seleccione Enviar.
{"CommandName":"Reset Thermostat","Parameters":{}}
Vuelva al Simulador y espere a que se reinicie el dispositivo.
En el control deslizante de temperatura, establezca el valor a 106 grados y espere a que el estado de la temperatura se registre en la ventana Mensajes enviados.
Vuelva a la pestaña del explorador que tiene Connected Field Service cargado.
Seleccione Alertas de IoT.
Abra la alerta la lectura de temperatura de 106 superó un umbral de 70.
Observe que como la alerta superaba los 100 grados, se omitió por completo la fase de creación de caso.