En las últimas semanas he recibido algunas preguntas sobre cómo pueden generarse dashboards para identificar work ítems que están a punto de vencerse (Tareas, User Stories, features, o algunos otros dependiendo de la platilla usada en el proyecto), asociar el estado a un campo y notificar vía correo electrónico. Para esto es importante tener en consideración lo siguiente:
- Requerimos tener asociado un process template modificado, en el WIT (en el tengamos configurado un campo que nos ayude a definir una fecha límite y un campo que nos permita usarlo para mostrarlo en los dashboards [Tipo Picklist con valores de: “On track”, “to expire”, “expired”])
- Uso de logic apps o flujos de power automate para la automatización del cambio de estatus de un work item y el envío de correo electrónico.
Podemos ver cómo crear un process template con el requerimiento anterior en el siguiente articulo: Como crear work items personalizados con process template en proyectos de Azure DevOps – Erick Daniel en la nube
Creación de los queries en Azure DevOps Boards
Lo que vamos a realizar como primer paso es crear un par de consultas que nos permitirán obtener la información de las tareas que están expiradas, para esto ya tenemos un proyecto creado. Tenemos que ir a “Boards” -> “Queries” -> “New Query”
Necesitamos que el query obtenga todas las tareas, que tengan una fecha de due date menor a la fecha de hoy y un estado distinto a “expired”; esto con el objetivo de que el logic app obtenga todas las tareas expiradas y las marque con campo de “due date state” como “expired”. Una vez dicho esto especificamos las siguientes cláusulas:
Indicamos el nombre del query “WITExpired”, lo guardaremos en el folder de shared queries y por último damos clic en “ok”.
Si solo queremos crear un indicador, que lo podamos usar para reportarlo en un dashboard con el primer query es más que suficiente, pero para el escenario donde modificamos el estatus del work item necesitamos crear el segundo query con los siguientes parámetros; para reportar en el dashboards las tareas que ya están expiradas con base en el campo de “due date state”.
Creación del Logic App
Ahora procedemos a ir al portal de Azure, es importante mencionar que podemos usar también power automate para realizar la siguiente automatización.
Vamos grupos de recursos, le damos clic en crear grupo de recursos.
Especificamos la región y el nombre del grupo de recursos “duedatedemo”.
Una vez que esta validado, procedemos a dar clic en “create”.
Ahora ya tenemos creado nuestro grupo de recursos donde veremos nuestro logic app, damo clic en el botón “Create” para proceder a crearlo.
Procedemos a buscar Logic App y le damos clic en “Create”.
Asignamos un nombre, para nuestro caso escogimos “duedateexpireddemo”, seleccionamos la región “South Central US”, tipo plan “Consumption”, damos clic en “Review+Create”
Procedemos a crearlo dando clic en el botón de “Create”.
Ahora que ya está creado procedemos a crear un Logic App en blanco.
Buscamos los triggers de Schedule, damos clic
Y seleccionamos el trigger de recurrence.
Especificamos que se ejecutara 1 vez al día a las 12 de la noche.
Agregamos el siguiente paso, buscamos los pasos de Azure DevOps y seleccionamos “Get query results”
Damos clic en Sign in para que se pueda crear una conexión a Azure DevOps con nuestra cuenta.
Ahora especificamos la organización, el nombre del proyecto y seleccionamos el Query que creamos anteriormente, es importante especificar el número de resultado ya que si el proyecto (también puede ser un query cross Project) donde se ejecuta el query puede arrojar muchos WIT es recomendable especificar un numero adecuado.
Ahora procedemos a buscar dentro de los pasos de control, el de For each.
Especificamos que vamos a interactuar sobre el resultado que arroje el query, por lo tanto, pasamos el campo de value del action anterior.
Agregamos una nueva action “Update a work item”, de Azure DevOps para actualizar el estado del work item.
Ahora procedemos a especificar el id del work item, el título, la descripción, proyecto (si es cross Project, podemos usar el campo que esta especificado en el WIT) y en la sección de other fields especificamos el campo de duedate state el valor de Expired.
Por último, agregamos el action de send email de Outlook para enviar el correo, definimos el destinatario, el título del correo con el work item que está siendo identificado como expirado, y una descripción en el cuerpo del correo, este puede ser personalizado.
Con esto guardamos el logic app y una vez que se ejecuta vemos una correcta ejecución de este.
Validamos en el proyecto de Azure DevOps, que se realizó el campo en el campo de duedate state a Expired.
Podemos ver en la sección de auditoría que toma como ejecutor de la actualización el usuario con el cual creamos la conexión en el Logic App
Creación del dashboard
Podemos usar un dashboard existente o uno nuevo.
Agregamos el widget que regresa el número total de resultados para una consulta.
Especificamos el título del widget, el nombre del segundo query que creamos anteriormente, le color y alguna regla custom para cambiar el correo cuando el resultado este en 0. Damos clic en “save”
Y eso es todo por hoy, puedes ver más contenido que estaré generando en este medio.
¡Saludos y disfruta estar en la nube!