Ottimizzare i trigger di Power Automate

Un trigger è un evento che avvia un flusso cloud in Power Automate. Ad esempio, per ricevere una notifica in Microsoft Teams ogni volta che ricevi un messaggio e-mail, potresti configurare un trigger che avvii un flusso quando un messaggio e-mail arriva nella posta in arrivo. I trigger sono i punti di partenza di un flusso e possono essere basati su vari eventi.

Tipi di trigger

Sono disponibili due tipi principali di trigger in Power Automate. Dopo aver creato un flusso, il trigger si registra per eseguire il polling del servizio a cui si connette o per ascoltare gli eventi del servizio. Il trigger attiva quindi il flusso quando si verifica l'evento specificato.

  • Trigger di polling: controlla periodicamente (o esegue il polling) di un servizio per controllare se si è verificato un evento specifico.

    • Esempio: un trigger SQL potrebbe eseguire il polling di un server SQL a intervalli regolari per verificare la presenza di record nuovi o aggiornati o di altre modifiche che soddisfano le condizioni specificate.

    • Comportamento di disattivazione del flusso: quando il flusso viene attivato, tutti gli eventi non elaborati o in sospeso vengono elaborati. Se non desideri elaborare gli elementi in sospeso quando riattivi il flusso, elimina e quindi ricrea il flusso.

  • Trigger di webhook: ascolta eventi specifici in tempo reale. Quando si verifica l'evento, il servizio invia una notifica a Power Automate per avviare il flusso.

    • Esempio: un trigger di Outlook ascolta i messaggi e-mail in arrivo e attiva il flusso non appena arriva un nuovo messaggio e-mail. In questo caso, il trigger ascolta il servizio Outlook e attiva il flusso immediatamente dopo la ricezione di un messaggio e-mail.

    • Comportamento di disattivazione del flusso: quando il flusso viene riattivato, vengono elaborati gli eventuali nuovi eventi generati dopo l'attivazione del flusso.

Trigger di polling

Una volta che un trigger di polling è registrato, controlla periodicamente il servizio ogni X minuti per recuperare i dettagli di eventuali record/eventi nuovi o modificati in base ai filtri applicati al trigger. La frequenza di questi controlli dipende dalla licenza dell'utente e dal timestamp dell'ultimo polling. Ogni X minuti, esegue nuovamente il polling del servizio in base a questo timestamp.

Per questo scenario:

  • Un trigger viene impostato per attivarsi quando viene creato un nuovo record SQL ed esegue il polling del servizio SQL ogni minuto (o all'intervallo specificato). Il flusso ha lo scopo di recuperare informazioni su tutti i record creati dall'ultimo polling.
  • Se vengono trovati nuovi record, il flusso viene attivato. Se non vengono trovati nuovi record, l'esecuzione viene ignorata.
  • Quando un flusso viene arrestato (ad esempio, il 13 settembre alle 12:30), il trigger annota questo timestamp.
  • Quando il flusso viene riavviato (ad esempio, il 14 settembre alle 13:30 PT), il trigger esegue il polling del servizio per tutti gli eventi creati tra l'ora dell'ultimo polling (13 settembre alle 12:30) e l'ora corrente (14 settembre alle 13:30).

Questo comportamento garantisce che nessun dato venga perso, anche se il flusso viene interrotto temporaneamente a causa di errori o limitazione della larghezza di banda.

Tieni presente:

  • La disattivazione del flusso non cancella la registrazione del trigger. Mette solo in pausa il polling. Questa progettazione garantisce che i dati non vadano persi al riavvio del flusso.
  • Per reimpostare completamente il comportamento di polling, devi creare una nuova copia del flusso. In questo modo, il trigger viene registrato nuovamente quando il flusso viene attivato per la prima volta ed è necessario eliminare il flusso esistente per evitare conflitti.

Trigger di webhook

I trigger di webhook funzionano in modo diverso dai trigger di polling. Invece di controllare periodicamente un servizio, i trigger di webhook si registrano con il servizio per ricevere notifiche quando si verificano eventi specifici. Ecco come funzionano i trigger di webhook:

  • Registrazione: quando viene creato, un trigger di webhook viene registrato con il servizio per indicare che desidera ricevere notifiche per determinati eventi.
  • I Notifiche di eventi: i webhook sono semplici callback HTTP usati per fornire notifiche di eventi. Quando si verifica l'evento specificato, il servizio invia una notifica dell'evento al trigger del webhook con tutti i dettagli dell'evento.
  • Attivazione del flusso: Power Automate consente di utilizzare i webhook come trigger. Quando il trigger webhook riceve la notifica dell'evento, attiva il flusso, che quindi esegue le azioni specificate.

Altre informazioni: Il mio trigger si attiva per eventi datati

Impostare condizioni di trigger

Molti utenti Power Automate riscontrano il problema dell'esecuzione dei flussi ogni volta che viene aggiunta una nuova riga o viene modificata una riga esistente nell'origine dati. Tuttavia, spesso esistono scenari in cui si desidera che il flusso venga eseguito solo quando viene soddisfatta una condizione specifica. Per ottenere questo comportamento, è necessario configurare correttamente i trigger. Impostando le condizioni appropriate per i trigger, ti assicuri che il flusso venga eseguito solo quando necessario, migliorando l'efficienza e riducendo le esecuzioni non necessarie.

Prendi in considerazione uno scenario in cui un utente che invia una spesa superiore a $100 deve ottenere l'approvazione del responsabile. Se le condizioni di trigger non sono specificate, il flusso viene eseguito per ogni spesa inviata e l'autore del flusso deve specificare condizioni aggiuntive per filtrare le spese maggiori di $100. Implementando le condizioni di trigger, ti assicuri che il flusso venga attivato solo quando la spesa è superiore a $100.

Nell'esempio, un flusso viene attivato quando una riga viene aggiunta, modificata o eliminata. Una condizione controlla se l'importo è maggiore di 100 e avvia l'approvazione se la condizione è soddisfatta. Questo flusso viene avviato ogni volta che i dati nella tabella vengono aggiunti, modificati o eliminati.

Screenshot di un flusso che usa una condizione anziché una condizione di trigger.

In questo esempio, il flusso include una condizione di trigger nell'azione Quando una riga viene aggiunta, modificata o eliminata che controlla se la quantità è maggiore di 100 e quindi avvia l'approvazione. Questo flusso viene avviato solo quando il valore nel campo Importo è maggiore di 100.

Screenshot di un flusso che usa una condizione di trigger.

Suggerimento

La proprietà del filtro OData in Power Automate è una potente funzionalità che consente di definire condizioni precise per l'attivazione di un flusso in base alle modifiche apportate ai dati Dataverse. Puoi specificare una condizione e i nomi delle colonne su cui può essere attivato il flusso. Questo approccio consente di ottimizzare le prestazioni del flusso e di garantire che i flussi vengano eseguiti solo quando necessario.

Configurare il controllo della concorrenza

In alcuni scenari, il flusso potrebbe interagire con origini dati con velocità effettiva limitata. In questi casi, la configurazione del controllo della concorrenza del trigger può aiutare a gestire l'esecuzione del flusso in modo più efficace.

Per impostazione predefinita, un trigger di flusso cloud esegue il maggior numero possibile di esecuzioni contemporaneamente quando vengono soddisfatte le relative condizioni. Tuttavia, è possibile modificare questo comportamento modificando le impostazioni del Controllo della concorrenza, che consente di limitare il numero di esecuzioni simultanee da un minimo di 1 a un massimo di 100. Tutte le altre esecuzioni vengono accodate automaticamente.

Per usare il controllo della concorrenza:

  • Risorse con velocità effettiva limitata: se l'automazione dipende da una risorsa locale che non supporta le esecuzioni parallele, la configurazione del controllo della concorrenza può impedire l'overload della risorsa.

  • Prevenzione race condition: la limitazione della concorrenza garantisce l'esecuzione di una sola istanza del flusso alla volta ed evita race condition in cui potrebbe verificarsi una lettura dirty a causa di esecuzioni parallele.

Per configurare il controllo della concorrenza:

  1. Nel portale di Power Automate, apri il flusso che vuoi configurare.
  2. Seleziona il trigger.
  3. In Impostazioni, abilita l'opzione Controllo della concorrenza.
  4. Specificare il numero massimo di esecuzioni simultanee che si desidera consentire. È possibile impostare un numero compreso tra 1 e 100.
  5. Salva le modifiche per applicare le impostazioni del controllo della concorrenza al flusso.

Screenshot delle impostazione dell'attivazione del Controllo della concorrenza.

Considerazioni importanti

  • Azione irreversibile: una volta applicate, le impostazioni di controllo della concorrenza non possono essere annullate. Per rimuovere il controllo della concorrenza, devi creare un nuovo flusso. Pertanto, procedi con cautela.
  • Procedure consigliate: è consigliabile lasciare il controllo della concorrenza sulle impostazioni predefinite. Se devi applicare il controllo della concorrenza, valuta la possibilità di eseguire questa operazione su un flusso con il minor numero di azioni. Ad esempio, puoi organizzare le azioni che richiedono tale controllo in un flusso figlio dedicato, applicando il controllo solo al flusso figlio.