Tipi di funzione

Completato

Le funzioni sono raggruppate in 10 diverse categorie, quali matematica e logica. Le categorie sono organizzate in modo da facilitare la ricerca di una particolare funzione. Di seguito è riportata una panoramica di ciascuna categoria con alcuni esempi.

Tenere presente che nei vari esempi sono stati usati testo e valori statici, per consentire di testare e ricreare gli esempi il più facilmente possibile. Nei propri flussi è possibile usare il contenuto dinamico in sostituzione di questi dati statici. Assicurarsi solo che i dati dinamici siano nel formato corretto per la funzione.

Nello screenshot di seguito si può notare come accanto all'intestazione di ciascuna categoria (ad esempio, Funzioni stringa o Funzioni di raccolta) compaia la frase Vedi altre. Selezionando Vedi altre verrà mostrato l'elenco completo delle funzioni per la specifica categoria.

Screenshot della scheda Espressione con l'opzione Vedi altre per un elenco completo di funzioni.

Selezionare Vedi altre accanto alle funzioni stringa.

Screenshot delle funzioni stringa in seguito alla selezione di Vedi altre con la funzione replace(text, oldText, newText) selezionata.

Funzioni stringa

Le funzioni stringa (testo) permettono di modificare stringhe, trovare caratteri in una stringa, formattare stringhe e altro ancora. La manipolazione del testo è una competenza fondamentale, spesso utilizzata quando si cerca di modificare o migliorare la formattazione dei dati ricevuti da altre fonti.

Un esempio di una funzione stringa è la funzione formatNumber. Questa funzione consente di convertire un numero in una stringa in un determinato formato. Una richiesta comune è quella di assegnare a un numero l'aspetto di una valuta. Per modificare il numero 12,5 in $ 12,50, usare la seguente formula:

formatNumber(12.5,'C')

La C rappresenta la stringa del formato numerico della valuta (Currency). Un elenco delle altre opzioni è disponibile in Stringhe di formato numerico standard. Se invece si volesse mostrare il numero come valuta ma con il simbolo dello Yen, è disponibile un parametro facoltativo per passare l'impostazione internazionale.

formatNumber(12.5,'C','ja-JP')

Questa formula restituirà ¥ 13.

Funzioni di raccolta

Queste funzioni vengono usate per matrici e stringhe. Possono essere usate per controllare se una matrice è vuota, per acquisire il primo o l'ultimo elemento o anche per operazioni di join, unione e intersezione.

Un esempio di un'utile funzione Collection è length. È possibile usare length per restituire il numero di elementi in una stringa o in una matrice. L'esempio seguente verrà usato per contare il numero di caratteri nella stringa "I love Power Automate".

length('I love Power Automate.')

L'output sarà 22. Si noti che uno spazio viene conteggiato come un carattere. È possibile usare questo tipo di funzione per la convalida o insieme alle funzioni stringa per manipolare le stringhe.

Funzioni logiche

Queste funzioni permettono di lavorare con le condizioni, confrontare i valori ed eseguire altre valutazioni basate sulla logica. Sono spesso considerate come istruzioni If in cui si desidera confrontare se un numero è maggiore di un altro numero. Power Automate supporta tutti i possibili confronti logici.

Nell'esempio seguente, un'espressione confronterà se 12 è maggiore di 10 e quindi restituirà la stringa appropriata. Questa sarà anche la prima espressione che usa più di una funzione. Verranno usate assieme le funzioni logiche if e greater.

If(greater(12,10),'Yes','No')

Il risultato di questa espressione sarà la stringa Yes. Per comprendere l'espressione, interpretarla dall'interno verso l'esterno. Greater(12,10) restituisce true o false a seconda che 12 sia o meno maggiore di 10. Poiché lo è, il valore restituito è true.

Sapendo che la risposta è true, si può notare che la funzione If restituisce i dati dopo la prima virgola. In questo caso è la stringa Yes. Se la risposta fosse stata false, sarebbe stata restituita la stringa No.

Importante

Sebbene sia possibile scrivere espressioni logiche come mostrato sopra, esiste anche un'azione chiamata Condizione che permette di scrivere istruzioni If senza un'espressione. Inserire un nuovo passaggio nel flusso e cercare un connettore denominato Condizione.

Screenshot di Scegliere un'azione con il controllo Condizione selezionato.

Ecco la stessa condizione scritta usando l'azione.

Screenshot di una condizione scritta usando l'azione.

Col tempo, si finirà per usare una combinazione di entrambi i metodi a seconda delle esigenze.

Funzioni di conversione

Queste funzioni permettono di modificare il tipo di dati. Può trattarsi di operazioni semplici come la conversione di un numero scritto in formato testo in un tipo Integer o di funzioni più complesse come la modifica della codifica di un file da base64 a binario. Sapere che queste funzioni sono disponibili aiuterà a superare le difficoltà legate alla corretta forma dei dati.

Uno scenario comune è la necessità di utilizzare int o float per modificare un numero in formato testo in un numero effettivo. Si tratta di una situazione comune quando si importano dati nel flusso da un'origine dati. Il numero 12 o 12,4 può essere archiviato come testo. Per usare questo numero in una funzione logica o scriverlo in una posizione che prevede un numero, è necessario convertirlo. L'esempio seguente modifica la stringa "12" nel numero intero 12.

Int('12')

Verrà restituito il numero intero 12. Qualora la stringa fosse stata "12,4", sarebbe stato necessario convertirla in un float a causa delle cifre decimali. In tal caso si sarebbe usato

Float('12.4')

Ora è possibile usare il numero in formato testo per riscrivere l'esempio precedente.

If(greater(Int('12'), Float('12.4')),'Yes','No')

In questo caso verrebbe restituita la stringa "No" perché 12 non è maggiore di 12,4. La combinazione di funzioni come questa è comune ed è un modello utile da imparare.

Funzioni matematiche

Le funzioni matematiche funzionano esattamente come ci si aspetterebbe. Consentono di aggiungere, sottrarre, moltiplicare ed eseguire altre funzioni simili. Inoltre, le funzioni matematiche consentono, tra l'altro, di trovare il numero più piccolo e quello più grande in un set di dati o di ottenere un numero casuale in un intervallo specifico. Per ottenere un numero casuale compreso tra 1 e 10, usare la seguente espressione:

rand(1,10)

È bene tenere a mente che esistono due funzioni diverse per l'aggiunta di numeri (add) e per sottrarre numeri (sub). A differenza di Power Automate, molti linguaggi delle formule aggiungono numeri negativi per produrre una sottrazione. Per ottenere la somma di due numeri, usare la seguente espressione:

Add(12, 13)

Il risultato restituito sarà 25. Se si volesse ottenere la somma di tre numeri, sarebbe necessario aggiungere una seconda funzione in questo modo:

add(add(12,13),15)

Il risultato restituito sarà 40. Come precedentemente indicato, sarà spesso necessario nidificare le funzioni per ottenere i risultati desiderati.

Funzioni di data e ora

Queste funzioni consentono di restituire la data e l'ora correnti, modificare i fusi orari, trovare informazioni specifiche su una data e un'ora o eseguire altre manipolazioni di data/ora. Se i dati includono valori di data e ora, sarà necessario fare ricorso a queste funzioni.

È importante ricordare che in Power Automate le funzioni di data e ora sono spesso basate sull'ora UTC. La maggior parte delle origini dati scambia dati con Power Automate in formato UTC. Inoltre, se si usa la funzione UTCNow(), verrà restituita l'ora corrente in formato UTC. Se si desidera usare questa funzione per confrontare dati utente che si trovano attualmente nel fuso orario orientale, sarà necessario utilizzare la seguente formula per convertirli:

convertFromUtc(utcNow(), 'Eastern Standard Time', 'dd-MM-yyyy hh:mm tt' )

L'output restituito sarà 06-07-2021 05:39 PM. Per un elenco completo delle opzioni di formato della data e dell'ora, vedere Stringhe di formato di data e ora personalizzato.

Funzioni di riferimento

Le funzioni di riferimento consentono di lavorare con gli output delle azioni e dei trigger. È interessante notare che nella maggior parte dei casi Power Automate scriverà automaticamente queste funzioni. Quando si aggiunge del contenuto dinamico al flusso, si stanno usando le funzioni di riferimento senza che ciò sia evidente. Se si aggiunge del contenuto dinamico e si passa il mouse su tale contenuto, è possibile vedere questa funzionalità in azione.

Nello screenshot di seguito, è possibile vedere la funzionalità in azione aggiungendo il contenuto dinamico Nome utente dal trigger personale in Input per la composizione.

Screenshot dell'aggiunta del contenuto dinamico Nome utente dal trigger.

Passando il puntatore del mouse su Nome utente, verrà visualizzato

triggerOutputs()['headers']['x-ms-user-name-encoded']

Power Automate ha creato automaticamente l'espressione utilizzando triggerOutputs, estraendo la proprietà x-ms-user-name-encoded dalla proprietà Headers. Nella maggior parte dei casi, in Power Automate si farà riferimento a queste proprietà tramite il contenuto dinamico. È comunque possibile scrivere le proprie espressioni per ricreare l'esempio, se necessario. Ogni trigger e azione avranno formati diversi a seconda della modalità di recupero dei dati.

Esplorare queste funzioni aggiungendo diversi trigger, azioni, origini dati e cicli Applica a ogni nel flusso. Quindi, usare le relative proprietà come dati dinamici per vedere altri esempi. L'aspetto positivo è che la scrittura di questo tipo di espressioni è poco frequente.

Funzioni del flusso di lavoro

Le funzioni del flusso di lavoro permettono di recuperare informazioni sul flusso e sono strettamente correlate alle funzioni di riferimento. Una delle funzioni è denominata flusso di lavoro. Può essere usata come mostrato di seguito.

Workflow().run.id

Restituirà l'ID dell'esecuzione corrente del flusso. Può essere usata per la segnalazione o la registrazione degli errori, se necessario. Queste funzioni non sono usate frequentemente.

Funzioni di analisi dell'URI

Queste funzioni permettono di analizzare un URI passato come stringa. Possono essere usate per trovare l'host, il percorso, la stringa di query o altre parti dell'URI. L'esempio seguente mostra come usare uriQuery per ottenere la parte della stringa di query dell'URI specificato.

uriQuery('https://flow.microsoft.com/fakeurl?Test=Yes')

Verrà restituita la stringa "?Test=Yes", che potrà successivamente essere analizzata con le funzioni stringa per ottenere il valore passato dall'URI.

Funzioni di manipolazione

Le funzioni di manipolazione consentono di lavorare con oggetti specifici nel flusso. È possibile eseguire operazioni quali trovare il primo valore non vuoto, lavorare con le proprietà o trovare corrispondenze XPath. Queste funzioni vengono usate in genere nelle valutazioni dei nodi JSON o XML.

Una funzione particolarmente utile qui è coalesce. Questa funzione consentirà di trovare il primo valore non null in un insieme di valori specificato. L'uso della funzione è mostrato nella seguente formula:

Coalesce(null, 'Power Automate', 'Power Apps')

Questa formula restituirà la stringa Power Automate. È particolarmente utile quando si passano più valori e si desidera trovare il primo valore non null.