Power Automate: Agrupar valores únicos y objetos en una lista de SharePoint

El día de hoy vamos a aprender un poco sobre las Operaciones de Datos en Power Automate para obtener valores únicos y agrupar objetos por columnas específicas.

Veamos el siguiente caso de uso: Tenemos una lista de SharePoint «Información de Visitantes», la cual tiene el registro de los usuarios, departamentos, hora de entrada y hora de salida. Nos gustaría poder enviar un reporte semanal con el número de usuarios que visitaron cada departamento.

El esquema de SharePoint

Este es el esquema de la lista de SharePoint:

Esta lista contiene lo siguiente:

  • Nombre del visitante: Una sola línea de texto
  • Departamento que visita: Una sola línea de texto
  • Hora de llegada: Fecha y hora
  • Hora de salida: Fecha y hora

Ahora vayamos a Power Automate. Empezaremos por crear un flujo de Calendario que se ejecute cada Sábado.

Get Items se encargará de recuperar la información del visitante desde la lista «VisitorInfo» de quienes visitaron durante los últimos siete días.

En el Filter Query podemos ver esta expresión:

hora_entrada ge '@{addDays(utcNow(),-7)}' and hora_entrada le '@{utcNow()}'

Valores únicos de lista de SharePoint.

Lo siguiente será obtener los nombres únicos de los departamentos.

Power Automate agrupar únicos 2

«Select» será nuestra operación para seleccionar datos. «From» será el valor de propiedad de Get Items, «Map» mapeará el valor «departamento_que_visita» a «departamento».

Compose se encargará de obtener nombres únicos de departamentos.

Power Automate agrupar únicos 1

Para lo cual vamos a usar la siguiente expresión:

union(body('Elegir_columna_unicos'),body('Elegir_columna_unicos'))

Nuestro siguiente paso será crear una variable de texto. En este caso, «htmlTable» es una variable de texto que almacena todos los nombres de departamentos y el número de visitantes en etiquetas HTML.

Ahora deberemos crear un bucle a través de cada departamento para obtener el número de visitantes.

Bucle For-Each para crear la tabla HTML

Para esto, puedes notar que no estamos leyendo la lista de SharePoint por cada nombre de departamento. De hacer esto, veremos un golpe en el rendimiento; en su lugar, ya tenemos toda la información de visitante de la acción Get Items de hace unos pasos.

Power Automate agrupar únicos 3

Vamos a ver cada uno de ellos.

Primero, para asegurarnos de tomar el valor de departamento, crearemos un Compose que pase por cada uno de los departamentos.

Para esto, usaremos la siguiente expresión.

item()?['departamento']

Para usar el Filter array, necesitamos los siguientes valores:

  • From: serán los values de SharePoint
  • El filtro comparara el valor de los departamentos del SP vs la salida del paso anterior.

Append to string variable contiene la siguiente función que construye una fila de la tabla HTML:

<tr><td>@{outputs('loop_depto')}</td><td align='center'>@{length(body('Filter_array'))}</td></tr>

Con esto, hemos tomado todos los valores de la lista de SharePoint, los colocamos en filas html y guardamos todo en una sola variable. Ahora solo falta la parte visual.

Una tabla con «estilo»

Saliendo del loop, vamos a definir dos Compose adicionales.

Power Automate agrupar únicos 4

El primero contendrá la tabla completa de HTML con el siguiente código.

<table><tr><th>Departamentos</th><th>No. visitantes</th></tr>@{variables('htmlTable')}</table>

Un segundo Compose le dara estilo prresentable a la tabla usando CSS.

<style>
table {
  border-collapse: collapse;
  width: 100%;
}
th, td {
  text-align: left;
  padding: 8px;
}
tr:nth-child(even){background-color: #f2f2f2}
th {
  background-color: #4CAF50;
  color: white;
}
</style>

Por último, enviemos por correo todo esto para ver el resultado.

Power Automate agrupar únicos

En el campo de cuerpo, el primer «Outputs» es de la acción compuesta llamada «styles» mientras que el segundo «Outputs» es de la acción compuesta llamada «tabla completa html».

Este es el correo de salida:

Power Automate agrupar únicos 5

Y con esto creamos un flujo que es capaz de agrupar valores únicos de una lista de SharePoint por cada uno de los valores únicos de la tabla con Power Automate.

Cualquier duda, nos leemos abajo.

Power Automate: Agrupar valores únicos y objetos en una lista de SharePoint

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll hacia arriba