Può capitare, in Power Automate, di dover generare il nome di un file o di una folder partendo da un testo inserito dall'utente.
Per fare in modo che il nome folder sia valido è necessario evitare di usare alcuni caratteri speciali:
Text: Caratteri speciali da non usare per i nome folder
~  #  %  &  *  {  }  \  :  <  >  ?  /  |  "
In Power Automate si possono creare degli step come questi per sostituire i caratteri speciali con, ad esempio, un "-" meno
Flow replaceFlow replace

e queste sono le formule usate
Power Automate: Replace special characters
Initialize variable: VarInputWithSpechialChars=Test Alberto 13/12/2021 ? & ???

Initialize variable: VarSpecialCharsToReplace=["~",  "#",  "%",  "&",  "*",  "{",  "}",  "\\",  ":",  "<",  ">",  "?",  "/",  "|",  "\""]

Initialize variable: VarOutput=VarInputWithSpechialChars 

Initialize variable: VarOutputTmp=

Apply to each: VarSpecialCharsToReplace=VarSpecialCharsToReplace

Set variable: VarOutTmp Replace=replace(variables('VarOutput'), item(), '-')

Set variable: VarOutput=VarOutTmp

Initialize variable: NewVarOutput=VarOutput
Da notare che non posso fare il replace sulla VarOutput e assegnare il valore a se stessa, devo passare da un altra variabile VarOutTmp e poi riassegnarlo a VarOutput .

Risultato

Passando in VarInputWithSpechialChars un testo come questo
Text: VarInputWithSpechialChars
Test Alberto 13/12/2021 ? & ???
in output ottengo
Text: VarOutput
Test Alberto 13-12-2021 - - ---

Concurrency control

Quando nello step Apply to each uso Set variable compare questo warning
Enable concurrency control for the apply to each loop and set its degree of parallelization to 1 when using Set Variable action inside an apply to each loop.
devo andare nei Settings, abilitare il Concurrency control e impostare Degree of parallelism a 1
Degree of parallelismDegree of parallelism

Vedi anche Restrictions and limitations in OneDrive and SharePoint
Potrebbe interessarti anche: