Tipi di funzione

Completato

Le funzioni sono raggruppate in 10 diverse categorie, tra cui stringa, logica e matematica. Le categorie sono organizzate in modo da agevolare 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. Accertarsi soltanto che i dati dinamici siano nel formato corretto per la funzione.

In questo screenshot si può notare come l'editor delle espressioni mostra alcune delle funzioni Stringa disponibili. È possibile scorrere questo elenco e, man mano che si raggiunge la fine delle funzioni Stringa, vengono visualizzate le funzioni Raccolta e così via. Notare che è presente anche un input Cerca. Se si sa a quale funzione si vuole fare riferimento nella formula, è possibile inserirla direttamente qui senza scorrere tutto l'elenco. Le formule selezionate vengono aggiunte al campo di input della formula, in cui è possibile aggiungere input per completare la formula in modo da poterla salvare.

Tuttavia, non è strettamente necessario selezionare una funzione. Se si conosce la funzione, è sufficiente iniziare a digitarla. Notare poi che è possibile richiedere aiuto a Copilot per creare un'espressione fornendo input in linguaggio naturale, se non si sa quale espressione usare o se si desidera semplicemente ottenere assistenza per aggiornare un'espressione esistente.

Funzioni Stringa

Le funzioni Stringa (testo) consentono 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 permette di convertire un numero in una stringa in un formato selezionato. 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 restituisce ¥ 13.

Funzioni di raccolta

Queste funzioni vengono usate per matrici e stringhe. Le si può usare 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. Notare che uno spazio viene conteggiato come un carattere. È possibile usare questo tipo di funzione per la convalida o assieme alle funzioni stringa per manipolare le stringhe.

Funzioni logiche

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

Nell'esempio di seguito, un'espressione verifica se 12 è maggiore di 10 e quindi restituisce la stringa appropriata. Questa è anche la prima espressione che usa più di una funzione. Vengono 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. In questo caso, la formula restituisce true (ovvero, 12 è maggiore di 10).

Il primo valore dopo l'espressione Greater ('Yes') è il valore che viene restituito se l'espressione restituisce true, mentre il valore successivo ('No') è il valore restituito se l'espressione restituisce false. Poiché Greater(12, 10) restituisce true, viene restituito il primo valore dopo l'espressione o Yes.

Importante

Sebbene sia possibile scrivere espressioni logiche come mostrato sopra, esiste anche un'azione denominata Condizione che permette di scrivere istruzioni If senza un'espressione. È possibile inserire un nuovo passaggio nel flusso chiedendo a Copilot di inserire una condizione oppure selezionando l'icona più e cercando l'azione denominata Condizione.

È possibile cercare una Condizione oppure richiedere l'aiuto di Copilot per aggiungerne una al flusso.

Di seguito è riportata la stessa logica scritta usando un'azione Condizione anziché un'espressione.

Suggerimento

Quando si usa Copilot, verificare sempre la pertinenza e la correttezza dell'output. Se si usa Copilot nella fase iniziale dell'operazione, è possibile modificare la richiesta oppure aggiungere degli elementi fino a ottenere esattamente ciò di cui si ha bisogno.

Col tempo, si finirà per usare una combinazione di entrambe le espressioni e le condizioni, a seconda delle esigenze.

Funzioni di conversione

Queste funzioni consentono 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 aiuta 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')

L'operazione restituisce il numero intero 12. Se la stringa fosse stata "12,4", sarebbe stato necessario convertirla in un float a causa della cifra decimale. In tal caso si sarebbe usato

Float('12.4')

Ora si possono usare i numeri in formato testo appena creati per ricreare l'esempio di funzione logica 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 criterio utile da apprendere.

Funzioni matematiche

Le funzioni matematiche funzionano esattamente come ci si aspetterebbe. Permettono di aggiungere, sottrarre, moltiplicare ed eseguire altri calcoli simili. Inoltre, le funzioni matematiche permettono, 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 questa espressione:

rand(1,10)

È bene però 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 questa 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 visto in precedenza, spesso potrebbe risultare necessario nidificare le funzioni per ottenere i risultati desiderati.

Funzioni di data e ora

Queste funzioni permettono 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, si farà 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(), viene 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, è necessario usare la seguente formula per convertire il fuso orario:

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

L'output restituito sarà 09-02-2024 11:28 AM. Per un elenco completo delle opzioni di formato della data e dell'ora, consultare 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 scrive 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 la funzione di riferimento sottostante.

In questo screenshot, è possibile vedere la funzionalità in azione nell'azione Componi aggiungendo il contenuto dinamico User name dal trigger personale in Input per la composizione.

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 fa riferimento a queste proprietà tramite il contenuto dinamico. È comunque possibile scrivere le proprie espressioni per ricreare l'esempio, se necessario. I trigger e le azioni hanno 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 qui di seguito.

workflow().run.id

Restituisce 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. È possibile usarle 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 di nodi JSON o XML.

Una funzione particolarmente utile è coalesce. Questa funzione consente 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. Ciò è particolarmente utile quando si passano più valori e si desidera trovare il primo valore non null.