Scrittura di espressioni complesse

Completato

Un'espressione complessa è la combinazione di più funzioni per ottenere il risultato desiderato. Nelle sezioni relative alle funzioni matematiche e alle funzioni di Data e Ora sono già stati illustrati alcuni esempi di queste espressioni ed è stato spiegato che per aggiungere tre numeri, è necessario combinare due funzioni add come di seguito:

add(add(12,13),15)

L'operazione ha restituito l'output 40.

È stato quindi illustrato come si usa la funzione utcNow per ottenere la data e l'ora correnti e la funzione convertFromUtc per impostare l'ora solare fuso orientale come mostrato qui:

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

La formula ha restituito l'output 09-02-2024 11:28 AM.

Il concetto di espressione complessa è questo: più funzioni nidificate in un'espressione in cui l'output di una funzione viene usato come input di un'altra. Non ci sono sintassi, operatori o considerazioni speciali.

Per un ultimo esempio di espressione complessa, si consideri uno scenario con un paio di input come parte del trigger Attiva un flusso manualmente che vengono usati in una formula per calcolare una nuova data e ora. È possibile usare il flusso di esempio già impiegato per testare le espressioni o per creare un nuovo flusso simile a quello riportato di seguito.

Selezionare ora Aggiungi un input in Attiva un flusso manualmente e aggiungere un numero. Selezionare quindi di nuovo Aggiungi un input e aggiungere una data. Il trigger avrà il seguente aspetto:

Nel passaggio Componi creare un'espressione per specificare il numero di giorni dal trigger alla data.

addDays(triggerBody()?['date'], triggerBody()?['number'])

Questa espressione usa funzione di data e ora addDays e la funzione di riferimento triggerBody.

Nota

A questo punto ci si potrebbe domandare cosa si deve specificare per il corpo del trigger. Il segreto sta nel combinare i contenuti dinamici nelle espressioni. A tale scopo, iniziare l'espressione digitando addDays() e quindi con il cursore tra le parentesi (), selezionare Contenuto dinamico. A questo punto è possibile scegliere i campi. Si tratta di un ottimo modo per fare riferimento al contenuto lasciando a Power Automate il compito di scrivere l'espressione.

Se si testa il flusso e si immette la data 2024-02-09 e il numero 2, l'output è 2024-02-11T00:00:00.0000000. Questo è il formato UTC per l'11 febbraio 2024.

Ora è possibile individuare il giorno della settimana usando un'altra azione Componi con la seguente espressione:

dayOfWeek(outputs('Compose'))

L'output della prima azione Componi è 2024-02-11T00:00:00.000000. L'output della seconda azione Componi è 0, che rappresenta la domenica. Domenica è 0 e ogni giorno successivo aumenta di 1. Di seguito è riportato uno screenshot del flusso con le due azioni Componi e la formula dayOfWeek nella seconda azione Componi.

Ora si aggiunge un altro passaggio Componi per verificare se la data selezionata è un giovedì. Immettere l'espressione seguente:

if(equals(outputs('Compose_1'),4), 'You chose a Thursday', 'You didn't choose a Thursday')

Per il 9 febbraio 2024 viene restituita la stringa "You didn't choose a Thursday".

Questo esempio è un tipico modello di creazione di espressione complessa che viene composta pezzo dopo pezzo in passaggi separati. Ora che sono state elaborate tutte le funzioni necessarie, aggiungere un altro passaggio Componi. Nel nuovo passaggio Componi scrivere una lunga espressione che esegue tutte le operazioni in un unico passaggio. L'espressione sarà simile alla seguente:

if(equals(dayOfWeek(addDays(triggerBody()['date'], triggerBody()['number'])),4), 'You chose a Thursday', 'You did not choose a Thursday' )

L'output per il 9 febbraio 2024 sarà la stringa "Non hai scelto un giovedì". Se questo è il risultato previsto, è possibile rimuovere tutte le azioni Componi preliminari dal flusso per ripulirlo.

L'esercizio è terminato. È stata così scritta un'espressione complessa tramite la creazione di piccoli passaggi iniziali che successivamente vengono uniti insieme.