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:
- 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 / Package
Export FlowUnzip
Per decomprimere il file
zip esportato, si può usare le funzioni di
windows oppure il seguente comando
PowerShellExpand-Archive -Path .\TestMoveFlowComunications_20211127223311.zip -DestinationPath .\TestMoveFlowComunications_Edit
questo crea una cartella
TestMoveFlowComunications_Edit con dentro altri file e cartelle.
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 stringPrendere il GUID senza le parentesi graffe.
Ad esempio:
},"parameters":{"dataset":"https://sgart.sharepoint.com/sites/modern-team","table":"d0bb4da5-d6d1-4a94-bea3-5a57c46c7f13","item/Title":"@utcNow()",
dove con
dataset ci si riferisce alla
url del sito
SharePoint Online e con
table al
GUID della
lista.
Zip
Al termine delle modifiche va ricreato lo zip con il comando
windows tartar -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.
Import errorRename Flow
Volendo è possibile cercare il nome del
Flow e cambiarlo, ad esempio:
"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.
Import
A questo punto è possibile importare il nuovo package nello stesso ambiente (enviroment) cambiandogli nome, oppure in un nuovo ambiente:
Import
ImportPer cambiare nome al package che si sta importando cliccare su
Create as new.
Turn on
Attenzione, la prima volta che si importa un Flow è disabilitato, premere
Turn on per abilitarlo