Come spostare un Flow con connessioni SharePoint
Capita spesso di dover sviluppare un Flow (Power Automate) in un ambiente di DEV, che punta ad uno specifico sito di SharePoint Online e, al termine dello sviluppo, doverlo spostare e/o far puntare ad un sito di Produzione.
Nativamente Power Automate non mette a disposizione nessuna funzionalità per eseguire questa attività con le connessioni a SharePoint Online.
L'unico modo che ho trovato per superare l'ostacolo è quello di:
questo crea una cartella TestMoveFlowComunications_Edit con dentro altri file e cartelle.
La stessa sostituzione deve essere fatta per ogni GUID delle liste usate nel Flow. Questo perché le liste non vengono salvate con il nome ma con il loro GUID.
Per ricavare il GUID di una lista basta andare nei settings delle lista e guardare la query string
dove con dataset ci si riferisce alla url del sito SharePoint Online e con table al GUID della lista.
Nativamente Power Automate non mette a disposizione nessuna funzionalità per eseguire questa attività con le connessioni a SharePoint Online.
L'unico modo che ho trovato per superare l'ostacolo è quello di:
- esportare il Power Automate
- fare l'unzip
- sostituire tutte le url di SharePoint Online con quelle del nuovo sito (replace)
- sostituire tutti i GUID di tutte le liste con i GUID del nuovo sito (replace)
- ricreare lo zip con il comando PowerShell Compress-Archive
- importare il package nel nuovo ambiente
Export
Per esportare un Flow basta selezionarlo, usare i tre puntini, e scegliere Export / PackageUnzip
Per decomprimere il file zip esportato, si può usare le funzioni di windows oppure il seguente comando PowerShellPowerShell
Expand-Archive -Path .\TestMoveFlowComunications_20211127223311.zip -DestinationPath .\TestMoveFlowComunications_Edit
Replace
Usando un editor come Visual Studio Code cercare tutte le occorrenze, in tutti i file, della url del sito SharePoint Online e sostituirle con la nuova url di produzione.La stessa sostituzione deve essere fatta per ogni GUID delle liste usate nel Flow. Questo perché le liste non vengono salvate con il nome ma con il loro GUID.
Per ricavare il GUID di una lista basta andare nei settings delle lista e guardare la query string
Prendere il GUID senza le parentesi graffe.
Ad esempio:JSON
},"parameters":{"dataset":"https://sgart.sharepoint.com/sites/modern-team","table":"d0bb4da5-d6d1-4a94-bea3-5a57c46c7f13","item/Title":"@utcNow()",
Zip
Al termine delle modifiche va ricreato lo zip con il comando windows tarPowerShell
tar -a -c -f "TestMoveFlowModern_New.zip" -C "\TestMoveFlowComunications_Edit" *
# Compress-Archive -Path .\TestMoveFlowComunications_Edit\*.* -DestinationPath TestMoveFlowModern_New.zip
Attenzione non usare il comando windows invia a / cartella compressa per creare lo zip, da errore in fase di import: Something went wrong. Please try again later.
Attenzione il comando Compress-Archive non sembra funzionare sempre, usare tar.
Attenzione il comando Compress-Archive non sembra funzionare sempre, usare tar.
Rename Flow
Volendo è possibile cercare il nome del Flow e cambiarlo, ad esempio:JSON: manifest.json
"details":{"displayName":"TestMoveFlowModern"},"configurableBy":
Il nome può comparire in più punti.
Questa operazione può essere utile in caso di import nello stesso ambiente.Attenzione se si esporta una solution con più Flow e alcuni Flow ne richiamano altri l'operazione di rename potrebbe non funzionare.