Sincronizar bibliotecas SharePoint distintos sitios

InicioPower PlatformSincronizar bibliotecas SharePoint distintos sitios

En esta publicación de blog, analizare como sincronizar bibliotecas de SharePoint con ayuda de Power Automate.

Muchas veces tenemos 2 bibliotecas en distintos sitios y queremos que funcionen síncronamente, te cuento a continuación como puedes hacerlo.

Portada Sincronizar bibliotecas SHarePoint

Requisitos

Lo primero que debes saber que este método lo haremos con Power Automate y 2 bibliotecas de SharePoint.

  • Las 2 bibliotecas de SharePoint deben llamarse igual
  • Las 2 bibliotecas de SharePoint deben estar en distintos sitios de SP.

Flujo Primero – Copiar y reemplazar archivos

Para este primer flujo lo construiremos para que me copie, reemplace archivos y me cree carpetas si es necesario.

El Trigger es el siguiente

Luego nos vamos a configuración del Trigger y abajo del todo añades lo siguiente

@equals(triggerOutputs()?['body/{IsFolder}'], false)

Esto hace que solo se lance cuando haya movimiento de ficheros y no carpetas, pero tranquilo mas abajo trato las carpetas para que tengo la misma estructura que la biblioteca original.

Copiar archivo a la otra biblioteca

Ahora nos toca copiar el archivo de la biblioteca a otra con la acción (Copy file), en el destino de carpeta copias la siguiente expresión:

take(triggerOutputs()?['body/{Path}'],sub(length(triggerOutputs()?['body/{Path}']),1))

Crear Carpeta si no existe

Si la acción copy file nos da algún error es muy probable a que se deba a que no existe la carpeta en la biblioteca que queremos copiar los ficheros y estructura. Entonces vamos a añadir la acción para crear una carpeta nueva si ha fallado la acción anterior.

join(skip(split(triggerOutputs()?['body/{Path}'],'/'),1),'/')

Mas abajo volvemos a copiar la acción de copy file, porque si ha creado a carpeta bien, significa que la acción de copiar archivo fallo y tiene que volver a intentarlo, la configuración es la misma que el paso de copiar archivo.

Video Tutorial Sincronizar bibliotecas de SharePoint con Power Platform

Si quieres el tutorial paso a paso aquí lo tienes.

Personaliza los permisos de tus carpetas.

Flujo Segundo – Sincronizar eliminar ficheros bibliotecas

Ahora si quieres una sincronización completa entre tus bibliotecas de SharePoint hay que añadir un segundo flujo que hará que nos elimine el fichero al eliminarlo de la biblioteca original.

Caso 1 (Básico) – Archivos con nombres únicos

Este caso puede ser o no ser valido para ti porque busca por el nombre del archivo y elimina el primero que encuentre por lo tanto no puede haber nombres de ficheros iguales en toda la biblioteca si no es una falla el proceso.

Flujo sincronizar eliminar archivos basico

Caso 2 – Ruta del fichero

Ante el problema que nos daba el caso 1, vamos a obtener la ruta de donde se eliminó el fichero, es decir carpetas si hubiese para que no tengamos el problema que mencionamos en el caso 1.

Consultar Papelera reciclaje SharePoint de archivo eliminado

Una vez eliminado el archivo no podemos consultar a la biblioteca porque ya esta borrado, entonces tenemos que consultar a la papelera de reciclaje de SharePoint con la siguiente petición.

_api/web/recycleBin?$filter=DeletedDate eq datetime'triggerOutputs()?['body/TimeDeleted']' and DeletedByName eq 'triggerOutputs()?['body/DeletedByUserName']' and Title eq 'triggerOutputs()?['body/FileNameWithExtension']'
Consultar papelera reciclaje

Obtener ruta y procesar

Ahora tenemos que procesarlo obtener el esquema que no da y pasarlo a JSON para tener mas facil que obtener la ruta. (Si no sabes hacerlo lo explico en el video mas abajo).

Parse JSON de papelera reciclaje sharepoint.

Ahora vamos a procesarlo es decir obtener el nombre de la biblioteca y posibles carpetas si hubiese con la siguiente expresión:

split(body('Parse_JSON')?['d']?['results'][0]['dirName'],'sites/DevPowerApps')

Recuerda: Lo coloreado en amarillo tienes que cambiarlo por tu sitio de SharePoint, y lo azul indicia el nombre de la acción anterior.

outputs('Procesado')[1]
Obtener carpeta de fichero eliminado sharepoint

Ahora toca consultar al archivo mediante la ruta y el nombre de fichero y pasarle el Id de la ultima consulta para eliminarlo.

Eliminar fichero sharepoint

Video Tutorial paso a paso

Si lo quieres por video aquí lo tienes:

Mas sobre Power Automate

Si estás dispuesto a dar un paso más haya con Power Automate & SharePoint, tener el contenido organizado por módulos y un foro de dudas te invito a suscribirte a la Escuela Digital:

  1. Sin permanencia.
  2. Disponible las 24 h del dia.
  3. Foro privado para dudas.
  4. Bonus PowerTutoriales.

Contenido relacionado.