Flujos de Power Automate en plantillas de listas – ¡Una combinación ganadora!

Flujos de Power Automate en plantillas de listas – ¡Una combinación ganadora!

Microsoft ha anunciado recientemente la disponibilidad de una nueva función para SharePoint Online y Microsoft Lists: la capacidad de guardar flujos de Power Automate en plantillas de listas personalizadas.

Esta nueva capacidad es la primera actualización decente que hemos visto de Microsoft para SharePoint Online en mucho tiempo y tiene el potencial de llevar la automatización no trivial de las tareas basadas en listas al usuario normal.

Es un buen cambio tener algunas funciones realmente nuevas en Microsoft 365 en lugar de la locura de su departamento de marketing para el cambio de nombres. En serio, Yammer ahora es ‘Viva Engage’ y Azure AD se llamará ‘Microsoft Entra Id’. ¡Quizás Microsoft debería haber hecho más recortes en Marketing en lugar de en desarrollo de productos!

¡¡¿Cuando, donde, y COMO?!!

El ‘cuándo’ es cualquier día ahora, con una fecha de finalización de implementación prevista para mediados de julio de 2023 si tiene la versión dirigida (Targeted release).

Si está en la versión ‘nunca funcionará la primera vez, esperemos un poco hasta que solucionen los errores’ estándar , tampoco tendrá que esperar mucho, ya que se espera que la implementación comience a mediados del 23 de julio y finalice el final de mes.

¿Dónde existirán estas excelentes nuevas plantillas? Junto con las otras plantillas de listas personalizadas que ha publicado en su inquilino. Un usuario normal con permisos de ‘crear lista’ podrá encontrar cualquier plantilla de lista publicada con sus flujos de Power Automate en la pestaña ‘De la organización’ en el cuadro de diálogo que aparece en la experiencia moderna cuando selecciona Nueva – Lista

Elegir plantilla de lista

Cuando se selecciona una plantilla con flujos de Power Automate incluidos, después de que se haya creado la lista, se mostrará al usuario un cuadro de diálogo modal que le pedirá que instale los flujos. Suena fácil, ¡espero que sea tan bueno como prometí!

Entonces, ¿cómo se crea una plantilla de lista personalizada con flujos de Power Automate adjuntos? Por desgracia, los días de ir a la página de configuración de la lista y hacer clic en ‘Guardar lista como plantilla’ se están convirtiendo en cosa del pasado. Echo de menos esa elegante sencillez 😕

Las instrucciones de Microsoft sobre cómo publicar una plantilla de lista personalizada con flujos de Power Automate se pueden encontrar aquí.

Algunos puntos importantes a tener en cuenta:

  • Debe ser administrador global o de SharePoint para poder publicar plantillas de listas personalizadas.
  • Los flujos normales creados en Power Automate no funcionarán en plantillas de listas personalizadas – debe usar un flujo en la nube creado en una solución de Dataverse, por lo que si ya tiene flujos creados normalmente en la lista que desea convertir en una plantilla, va a tener que rehacerlos.
  • Hay una lista de «limitaciones conocidas» para las soluciones de Dataverse; consúltelas aquí.

Bueno, las instrucciones de Microsoft no son exactamente las más fáciles de seguir, carecen de algunos detalles y podrían haber tenido mejores ilustraciones para ayudar en el camino. Quiero decir, ¿alguien NO sabe cómo hacer un archivo zip en el explorador? Entonces, para llenar los vacíos y recordar cómo se hace, aquí hay una guía paso a paso para publicar una plantilla de lista personalizada con flujos de Power Automate incluidos.

Cómo publicar una plantilla de lista personalizada con flujos de Power Automate

Cree una nueva solución de Dataverse en Power Automate

La primera parada es Power Automate. Vaya a ‘Soluciones’ en el menú principal, luego haga clic en ‘Nueva solución’. Aparecerá el panel de la imagen.

Complete un nombre para mostrar y el campo Nombre se completará automáticamente.

A continuación, elija un editor. Para evitar confusiones, es recomendable crear su propio registro de editor, lo que puede hacer haciendo clic en el botón ‘Nuevo editor’.

El panel será reemplazado por el formulario para registrar un nuevo editor. Tiene dos pestañas: Propiedades y Contacto.

En la pestaña de propiedades, elija un Nombre para mostrar y luego un Nombre (esto no puede tener espacios, pero puede tener ‘_’). La descripción es opcional, luego proporcione un texto de prefijo. El campo ‘Prefijo de valor de elección’ se actualizará automáticamente a medida que escriba el prefijo.

La pestaña Contacto se explica por sí misma. Una vez guardado, volverá al panel de ‘nueva solución’. El número de versión se puede cambiar si es necesario y haga clic en ‘Crear’ para finalizar… paso 1.

Crear una solución nueva en Power Automate
Crear una solución nueva en Power Automate

Abra la solución y cree un nuevo flujo de nube

Solución vacía en Power Automate
Solución vacía en Power Automate

La nueva solución aparecerá en la pestaña Soluciones, que luego puede hacer clic para abrir.

Inicialmente, estará vacío y ahora podemos agregar un flujo de Power Automate yendo al nuevo menú y navegando hasta el tipo de flujo de nube requerido.

También es posible agregar un flujo de nube existente a la solución, pero los flujos creados fuera de Dataverse pueden requerir modificaciones para crear manualmente referencias de conexión (más sobre ellos más adelante) y algunos tipos de flujo actualmente no están disponibles para importar.

También tenga en cuenta que los flujos instantáneos (activados manualmente) no se pueden importar y deben crearse dentro de la solución.

Añadir un flujo de nube a la solución
Añadir un flujo de nube a la solución

Cree su flujo y verifique que las referencias de conexión se hayan creado en la solución

Flujo de nube y referencias de conexión en solución de dataverse
Flujo de nube y referencias de conexión en solución de Dataverse

El proceso de creación de flujo es el mismo que para un flujo estándar en Power Automate: elige un nombre para su flujo y el desencadenador, luego configura el disparador si es necesario y agrega las acciones para completar su flujo.

Para esta prueba, hice un flujo simple que me envía por correo electrónico el enlace a un nuevo elemento cuando se crea en la lista.

Una vez guardado, puede volver a la solución y ahora debería ver el flujo de la nube y cualquier referencia de conexión que se haya creado automáticamente cuando guardó el flujo dentro de la solución de Dataverse. Esta también es una buena oportunidad para probar el flujo y realizar cualquier depuración hasta que esté seguro de que funciona correctamente.

¿Qué son las referencias de conexión?

Los desencadenadores y las acciones que se conectan a cualquier otro sistema lo hacen a través de API’s, que casi siempre requieren un usuario autenticado para ejecutarse. En los flujos normales, las conexiones están «codificadas» en el propio flujo. Los flujos en las soluciones de Dataverse están hechos para ser distribuidos y utilizados por otros, por lo que estas conexiones a SharePoint, Outlook, etc. deben configurarse cada vez que se implementan y las referencias de conexión son la forma en que la solución de Dataverse sabe qué conexiones deben configurarse cuando se configura.

Exportar la solución de Dataverse

Publicar cambios antes de exportar
Publicar cambios antes de exportar
Cambios publicados
Cambios pubicados
Número de versión y exportar como solución administrada
Número de versión y exportar como solución administrada

El siguiente paso es exportar la solución de Dataverse. Volviendo un nivel a ‘Soluciones’, podemos seleccionar nuestra solución y hacer clic en el botón de menú ‘Exportar solución’.

El panel que se abre primero le pedirá que publique los cambios en su solución, necesarios para que pueda exportarse.

Esto no lleva mucho tiempo y, una vez publicado, puede hacer clic en Siguiente para ir al panel de exportación final, donde se establecerá automáticamente el número de versión que puede cambiar, luego presione Exportar para iniciar el proceso de exportación.

Hay dos opciones para la exportación: administrada y no administrada… y aquí es donde cometí un error. La primera vez, lo dejé configurado en ‘administrado’ y continué mi camino feliz, ya que esta es la configuración recomendada. Más adelante, verá por qué esto estaba mal.

Exportando
Exportando

Si bien hasta ahora todo había sido relativamente rápido, la exportación real de la solución de Dataverse tarda un tiempo en finalizar, incluso para este simple flujo de una acción y su desencadenador.

Eventualmente terminará y aparecerá un banner con un botón para descargar el archivo zip.

Modificar manualmente el archivo JSON del flujo de trabajo

Exportada
Exportado

¿Recuerdas que dije que esto no era tan fácil como hacer clic en el enlace ‘Guardar lista como plantilla’? Bueno, aquí es donde las cosas comienzan a volverse muy manuales y definitivamente fuera del alcance de un usuario normal o incluso avanzado de SharePoint.

Descomprima el archivo descargado y dentro de la carpeta ‘Workflows’ encontrará un archivo JSON para cada flujo en su solución.

Abra los archivos JSON con su editor de código favorito (estoy usando VSCode) y busque cualquier instancia de su URL de SharePoint. En este ejemplo, tengo uno en la desencadenador cuando se conecta a la lista de SharePoint.

Reemplace la URL de SharePoint con

{ContextSharePointSiteUrl}

y el valor de ‘table’ es en realidad el GUID de la lista, y se reemplaza por

{ContextSharePointListId}

Guarde los archivos JSON modificados y vuelva a crear el archivo zip, incluidos todos los demás archivos y carpetas del original.

Cambiar manualmente las referencias a SharePoint
Cambiar manualmente las referencias a SharePoint
Referencias a SharePoint modificadas
Referencias a SharePoint modificadas

Obtenga el archivo Site Script manifest.json para la lista

¿Crees que las cosas de administrador/desarrollador ya terminaron? ¡Ninguna posibilidad! No sería un procedimiento moderno de Microsoft 365 si no tuviéramos que abrir PowerShell.

Asegúrese de tener instalada una versión actualizada de Microsoft Online Management Shell. Si aún no lo tienes, puedes descargarlo aquí.

Abra PowerShell y conéctese a su sitio de administración de SharePoint y exporte el script del sitio de la lista y déjelo abierto, lo necesitaremos más tarde.

				
					Connect-SPOService -Url https://tu_inquilino-admin.sharepoint.com -credential tu_login
Get-SPOSiteScriptFromList -ListUrl https://tu_inquilino.sharepoint.com/.../_nombre_lista_ | Out-File manifest.json
				
			

Modifique manualmente el archivo manifest.json y cree el archivo zip final

Espero que tengas ese editor de código a mano, ¡porque nos vamos de nuevo!

Abra el archivo manifest.json que acaba de crear desde PowerShell y busque el punto justo después de la acción ‘createSPList’.

En mi ejemplo, esa es la línea 49.

Ahora agrega lo siguiente:

				
					{
    "verb": "importBusinessApps",
    "listName": "--nombre de lista de arriba--",
    "solutionFileRelativePath": "--nombre-de-fichero--.zip"
}
				
			

Tenga cuidado con el texto – las propiedades distinguen entre mayúsculas y minúsculas y, si no las escribas perfectamente, obtendrá un error cuando intente agregar el diseño de la lista, como hice yo.

Reemplace el valor de listName con exactamente el mismo valor en la propiedad listName de la acción ‘createSPList’ que se encuentra arriba.

Finalmente, reemplace el valor de solutionFileRelativePath con el nombre del archivo zip que creó anteriormente con los archivos JSON de flujo de trabajo modificados.

Guarde el archivo manifest.json y coloque el archivo zip que creó anteriormente en la misma carpeta, y comprima los dos archivos juntos.

Ahora, finalmente, tenemos el archivo zip que podemos cargar en SharePoint para publicar nuestra plantilla de lista personalizada con los flujos de Power Automate incluidos.

manifest.json before manual edit
manifest.json antes de edición maual
manifest.json después de edición manual
manifest.json después de edición manual

Publicar la plantilla como un diseño de lista

Ya casi llegamos, ¡sigue así!

Volviendo a PowerShell vamos:

				
					$pkg = Add-SPOSiteScriptPackage -Title "título de site script" -Description "descripción" -ContentPath .\ListaConSolucionDeFlujo.zip
Add-SPOListDesign -Title "Lista de prueba con flujo" -Description "probando nueva funcionalidad" -SiteScripts $pkg.Id 
				
			

Si has hecho todo bien, deberías obtener algo como esto:

Resultado de añadir el diseño de lista
Resultado de añadir el diseño de lista

Si hay un problema con la sección que agregó a manifest.json, recibirá un mensaje de error aquí y podrá regresar y solucionarlo.

Prueba tu nueva plantilla

Suponiendo que no tenga mensajes de error, ahora puede probar su nueva plantilla de lista.

En el cuadro de diálogo ‘Crear una lista’, ahora debería aparecer su nueva plantilla de lista. Esto se ve un poco aburrido sin una imagen en miniatura.

Podemos arreglar esto si agregamos el parámetro Thumbnail cuando agregamos el diseño de la lista con PowerShell. También podemos elegir un color y un icono para la plantilla de lista:

				
					Add-SPOListDesign 
  -Title "Lista de prueba con flujo" 
  -Description "probando nueva funcionalidad" 
  -SiteScripts $pkg.Id 
  -ListColor Orange 
  -ListIcon BullseyeTarget 
  -Thumbnail "https://tu_inquilino.sharepoint.com/SiteAssets/thumbnail.png"
				
			

Cuando hacemos clic en la plantilla de la lista, vemos una vista previa de la lista y luego podemos hacer clic en ‘Usar plantilla’ para crear nuestra lista.

Asigne a su nueva lista un nombre y una descripción como de costumbre y haga clic en ‘Crear’.

En breve, aparecerá la nueva lista y, al igual que otras plantillas de lista creadas por Microsoft con flujos, como la plantilla de seguimiento del progreso del trabajo, aparecerá un cuadro de diálogo que le solicitará que instale el flujo.

Nueva plantilla de lista disponible
Nueva plantilla de lista disponible
Elegir nueva plantilla de lista
Elegir nueva plantilla de lista
Diálogo para añadir flujo
Diálogo para añadir flujo
Comprobando conexiones
Comprobando conexiones

Hacer clic en Siguiente lo lleva al cuadro de diálogo ‘Comprobando conexiones’ donde, si aún no tiene las conexiones adecuadas creadas en Power Automate, puede agregarlas aquí; aquí es donde las referencias de conexión están haciendo su parte.

Como este proceso puede llevar un tiempo, obtiene un cuadro de diálogo final que luego puede cerrar.

Configurando las características
Configurando las características

Que no funciono….

Añadiendo el flujo a la lista
Añadiendo el flujo a la lista
Fallo
Fallo

¡¡Excelente!! Incluso recibe un correo electrónico cordial para decirle que falló, pero no hay más pistas de por qué.

Afortunadamente para nosotros, los desarrolladores detrás de las soluciones de Dataverse están haciendo un trabajo mucho mejor que el departamento de marketing de Microsoft, y podemos averiguar por qué no funcionó la implementación de nuestra solución.

Ubicación del mensaje de error
Ubicación del mensaje de error

Volviendo a la sección Soluciones de Power Automate, hay una pestaña «Historial» que muestra los resultados de las operaciones de la solución Dataverse y listo, ahí está mi error.

Al hacer clic en él nos da los detalles y, por una vez, en un lenguaje simple podemos ver el problema: ¡la solución debe ser no administrada!

¡Quien lo hubiera pensado!

Volviendo y exportando la solución de Dataverse, pero esta vez seleccionando ‘Exportar como no administrado’ y siguiendo el resto de los pasos nuevamente, obtuve una solución que se instaló y funcionó correctamente.

Para cargar el nuevo paquete de site script, primero eliminé la versión anterior obteniendo la lista de diseños de lista y eliminando el diseño de lista anterior y el site script asociada.

				
					Get-SPOListDesign
Remove-SPOListDesign --ID de List design--
Remove-SPOSiteScript --ID de Site script--
				
			
Mensaje de error
Mensaje de error

Y finalmente,...

Las buenas noticias no se detienen aquí. También ocultas en las actualizaciones de esta semana hay noticias de que las listas tienen más amor del equipo de desarrollo de Microsoft con un rendimiento mejorado, la capacidad de agregar calificaciones a cualquier lista, arrastrar y soltar o pegar imágenes directamente en una columna de imagen, ver en tiempo-real quién más está trabajando en la misma lista y cambiando entre vistas usando pestañas.

Puede consultar los detalles de estas mejoras en este blog de Microsoft.

Si bien estas mejoras son excelentes en mi opinión, y la publicación del blog incluso promete que veremos flujos de Power Automate en plantillas para bibliotecas de documentos en un futuro cercano, hay un par de cambios de los que no soy muy fanático.

El primero es la nueva configuración predeterminada de abrir listas en la aplicación de listas en lugar de SharePoint. Perder la navegación global en SharePoint porque ha accedido a una lista causará problemas a los usuarios.

Hay un botón ‘Abrir en el sitio’, pero los usuarios no lo notarán al principio y es solo otro clic y carga de otra página más lejos de donde el usuario esperaba estar.

También hay un truco de PowerShell para obligar a que se muestre el encabezado y la navegación de SharePoint, pero solo funciona en el nivel de la colección de sitios y con la nueva «arquitectura moderna» que nos aleja de los subsitios y hace que cada sitio sea una colección de sitios, eso son demasiados colecciones de sitios para actualizar para ser de utilidad.

Luego está el nuevo tratamiento para las fechas. Se supone que deben mostrarse ahora en su configuración de fecha y zona horaria preferidas, lo que suena bien… hasta que lo probé.

Vivo en España pero prefiero navegar en inglés y cuando fui a actualizar una lista en mi móvil se abre en la aplicación Lista ahora y cuando fui a seleccionar una fecha para una columna de fecha, en lugar de que se establezca el día actual como el 12 de julio, ¡se me mostró el calendario de este año con el 7 de diciembre seleccionado!

¡Equivocado! Y es fácil ver lo que sucedió: la fecha y el mes se intercambiaron. Sin embargo, no hay problema. Voy a julio y selecciono la fecha de hoy, pero lo que se salvó fue el 7 de diciembre!!!

Abrir la lista en la aplicación de SharePoint resultó ser imposible, y en mi navegador móvil me llevó varios intentos abrir la lista en SharePoint para poder establecer la fecha correcta. No es ideal.

Todo programador ha luchado con las fechas. Son cosas difíciles de hacer bien, y los chicos y chicas de Microsoft van a tener que mirar esto de nuevo.

¡Disfruta de los nuevos juguetes para SharePoint!