Elaborare le code di lavoro
L'elaborazione delle code di lavoro si riferisce alla gestione di un elenco di elementi di lavoro che devono essere completati in un ordine particolare. Questo elenco contiene informazioni su ciascun elemento, come il nome, la priorità, la data di scadenza, lo stato e il valore effettivo da elaborare.
Modi per elaborare le code di lavoro:
Elaborazione basata sul flusso desktop in Power Automate desktop (PAD).
Elaborazione basata sul flusso nel cloud con supporto del flusso desktop.
Utilizzo delle funzionalità per sviluppatori Dataverse professionisti (solo per scenari di integrazione avanzati):
Altre informazioni sugli strumenti con uso intensivo di codice di Dataverse: Documentazione per sviluppatori di Dataverse.
Procedure dettagliate per l'elaborazione
Per presentare alcune delle opzioni di elaborazione disponibili, ecco tre diversi scenari di elaborazione.
Elaborazione della coda di lavoro basata sul flusso desktop in Power Automate desktop (PAD)
Elaborazione di elementi della coda di lavoro ed esempi di aggiornamento
Il primo passaggio per utilizzare le azioni della coda di lavoro in Power Automate desktop è creare una coda di lavoro nell'ambiente in cui stai lavorando e caricare alcuni elementi della coda con i dati da utilizzare a valle. Gli elementi della coda possono essere caricati in una coda di lavoro tramite un flusso desktop, un flusso cloud o in blocco come descritto qui per popolare gli elementi della coda. In questo esempio, alcuni elementi della coda sono stati aggiunti manualmente in una coda di lavoro per spiegare come possono essere utilizzate le azioni in Power Automate desktop.
Gli elementi della coda di lavoro sono stati creati e il campo del valore include testo in formato JSON che verrà utilizzato a valle nel flusso desktop.
Il flusso di esempio che useremo per dimostrare l'utilizzo dell'azione della coda di lavoro simula un processo che utilizza un elemento della coda di lavoro nel cloud, elabora i dati inclusi nel campo del valore e li converte in un oggetto personalizzato da elaborare a valle. Tieni presente che non è obbligatorio utilizzare JSON o oggetti personalizzati come valori per gli elementi della coda di lavoro, ma può essere un metodo utile per organizzare valori che hanno più proprietà e seguono uno schema specifico.
L'azione Elabora elementi della coda di lavoro viene utilizzata per designare la coda di lavoro da cui consumare gli elementi ed elaborarli nel flusso desktop. L'azione può essere configurata per selezionare una coda di lavoro in un elenco utilizzando la freccia a discesa e per passare una variabile che include il nome della coda. Quando eseguita, questa azione inserisce il primo elemento (meno recente) dalla coda di lavoro nel flusso che include lo stato In coda. Una volta che l'elemento della coda inizia l'elaborazione nel flusso, lo stato dello stesso cambia automaticamente in In elaborazione.
Un punto di interruzione (punto rosso) è stato impostato facendo clic accanto all'azione 3 nel flusso e quindi eseguito tramite la console di PAD. Quando l'elaborazione si interrompe nel punto di interruzione, è possibile aprire la variabile WorkQueueItem facendo doppio clic sul valore in Variabili flusso e ciò mostra tutte le proprietà associate all'elemento della coda di lavoro in fase di elaborazione.
Nell'azione 2 del flusso, ho convertito il valore JSON restituito, a cui, in questo caso, si accede tramite %WorkQueueItem.Value%, in un oggetto personalizzato. Questo perché ciò consente di analizzare il JSON e di utilizzare le proprietà JSON a valle nel flusso. In questo caso ipotetico, le informazioni verrebbero utilizzate per inserire voci nel portale finanziario di Farbrikam.
{ "InvoiceId": "I-1006", "InvoiceDate": "06/04/2023", "AccountName": "Fabrikam", "ContactEmail": "invoicing@fabrikam.com", "Amount": 1253.78, "Status": "Paid", "WorkQueueKey": "Vendor Invoices", "ComponentState": 0, "OverwriteTime": "1900-01-01T00:00:00" }
Ad esempio, supponiamo che sia necessario inserire l'ID fattura in un campo di un sistema finanziario come parte di un processo in cui stai automatizzando l'interfaccia utente di un'app Web o desktop. Puoi chiamare quel valore utilizzando %JsonAsCustomObject.InvoiceId% per popolare un campo di testo e premere un pulsante.
Questo esempio contiene alcune istruzioni condizionali una volta completata l'elaborazione dei passaggi e utilizzati i dati dell'oggetto personalizzato nel flusso secondario Fabrikam Data Entry. Se il processo viene eseguito end-to-end senza incontrare alcuna eccezione relativa al sistema di input, l'azione Aggiorna elemento della coda di lavoro viene utilizzata per modificare lo stato dell'elemento della coda di lavoro in Elaborato e il campo Risultato elaborazione può essere utilizzato per immettere alcune note facoltative. Se il campo Data di scadenza viene lasciato vuoto, il nuovo elemento della coda mantiene il valore Scadenza elementi dopo nelle proprietà della coda di lavoro.
Le opzioni di gestione delle eccezioni possono essere configurate facendo clic su In caso di errore nella finestra di configurazione dell'azione Aggiorna elemento della coda di lavoro. Sono disponibili tre opzioni per la personalizzazione nella scheda Avanzate. Elemento della coda di lavoro non trovato può verificarsi se l'elemento della coda di lavoro viene rimosso dalla coda, manualmente o tramite un altro processo sistematico, prima che termini l'elaborazione in PAD. Elemento della coda di lavoro in sospeso può verificarsi se un processo automatizzato o qualcuno modifica lo stato dell'elemento della coda di lavoro in fase di elaborazione in In sospeso nel portale dei flussi durante l'elaborazione dell'elemento della coda. Impossibile aggiornare l'elemento della coda di lavoro può verificarsi se l'elemento della coda non esiste più nella coda o se è passato allo stato In sospeso. Tutti i casi precedenti sono casi limite che possono verificarsi. Per ulteriori informazioni sulla gestione degli errori nei flussi fai clic qui.
Se durante l'elaborazione dei dati dell'elemento della coda di lavoro nel sistema di inserimento dati è stato rilevato un problema, all'elemento potrebbe essere assegnato in alternativa lo stato Eccezione generica, Eccezione IT o Eccezione aziendale. Questi stati di eccezione possono essere utilizzati quando, o se, il caso d'uso automatizzato soddisfa i criteri applicabili.
Supponiamo che durante l'elaborazione di un elemento della coda, si sia verificato lo scenario 2. In questo caso, l'elemento della coda viene contrassegnato come eccezione generica nella coda di origine. A seconda dello scenario, potresti decidere di modificare lo stato degli elementi della coda che non è stato possibile elaborare correttamente come una delle opzioni di stato alternative. Quindi, puoi decidere se è necessario l'intervento umano o creare un processo successivo con la logica necessaria per gestire ogni stato di eccezione.
Modello di ripetizione automatica
L'azione Elabora elementi della coda di lavoro in Power Automate desktop include un'opzione avanzata per configurare o ignorare un meccanismo di ripetizione automatica. Questa funzionalità consente di specificare il numero massimo di tentativi automatici per elemento della coda di lavoro, utile per gestire eccezioni IT come errori di rete temporanei o indisponibilità temporanea del sistema. Consente al computer di conservare l'elemento ed eseguire nuovi tentativi controllati senza rimetterlo in coda, garantendo un'elaborazione della coda di lavoro più efficiente e resiliente.
È possibile impostare e controllare centralmente il conteggio massimo dei tentativi sul record della coda di lavoro in Dataverse. Questo valore predefinito si applica a tutti i flussi desktop che elaborano questa coda di lavoro tramite l'azione Elabora elementi coda di lavoro.
Per sostituire l'impostazione predefinita a livello di coda nel flusso, vai alla sezione Avanzate dell'azione Elabora elementi della coda di lavoro e attiva l'opzione Sostituisci configurazione di ripetizione automatica coda di lavoro. Questa impostazione consente di regolare il numero massimo di nuovi tentativi su un valore più alto o più basso, o persino di disattivare il meccanismo di nuovi tentativi impostando il numero massimo di nuovi tentativi su 0.
Quando si utilizza l'azione Aggiorna elemento coda di lavoro con uno stato impostato a IT exception
e un conteggio massimo di tentativi automatici maggiore di 0, il sistema non invia immediatamente l'aggiornamento all'orchestratore della coda di lavoro. Invece, ripete l'operazione finché non raggiunge il numero massimo di tentativi specificato. L'unico valore aggiornato nell'elemento della coda di lavoro è retrycount
. Questo valore aumenta dal secondo tentativo di aggiornamento in poi, fino al raggiungimento del numero massimo di tentativi automatici. Inoltre, una variabile dell'elemento della coda di lavoro locale denominata CurrentRetryCount
aumenta a ogni tentativo. Questa variabile consente di implementare una logica personalizzata in base al suo valore, se necessario.
Il flusso non richiederà un nuovo elemento quando torna all'inizio dell'azione Elabora elementi della coda di lavoro se sono soddisfatte le seguenti condizioni:
- Non è stato raggiunto il numero massimo di tentativi.
- Non si verificano altri aggiornamenti, fatta eccezione per le eccezioni informatiche.
Una volta raggiunto il numero massimo di tentativi, l'azione di aggiornamento invia l'aggiornamento all'orchestratore, modificando lo stato dell'elemento in Eccezione informatica e includendo eventuali note di elaborazione fornite.
Esempi di aggiunta e rimessa in coda di elementi della coda di lavoro da PAD
L'azione Aggiungi elemento della coda di lavoro consente agli utenti del flusso desktop di popolare gli elementi della coda di lavoro in una coda di lavoro che è stata impostata nel portale dei flussi. La creazione di elementi in batch è supportata tramite l'azione Aggiungi elementi alla coda di lavoro.
In questo esempio un file Excel in formato .csv viene inserito in una directory su base giornaliera e ogni riga deve essere aggiunta a una coda di lavoro.
Le prime due azioni in questo processo di esempio eseguono il mapping di una cartella in cui viene inserito il file Contoso Invoices.csv giornaliero. Quando il processo viene eseguito, inizia leggendo la tabella di dati nel file CSV. La variabile CSVTable contiene i dati che sono stati importati e verranno elaborati in nuovi elementi della coda.
Le azioni 3 e 4 generano l'ora alla quale scegliamo di far scadere i nuovi elementi della coda dopo che sono stati aggiunti a una coda di lavoro. L'azione 3 acquisisce i dati e l'ora del sistema corrente, quindi per questo esempio vengono aggiunti 7 giorni utilizzando l'azione %Aggiungi a datatime%. L'output è memorizzato in una variabile denominata ExpiryDatetime che verrà utilizzata nell'azione Aggiungi elemento della coda di lavoro.
L'azione 5 introduce il ciclo Per ogni utilizzato per eseguire l'iterazione di ogni riga di dati nella variabile CSVTable importata. Questa azione esegue il rendering di una riga di dati per l'elemento corrente in fase di elaborazione.
Tutte le azioni precedenti in questo flusso desktop di esempio sono ora incorporate nell'impostazione dei valori per l'azione Aggiungi elemento della coda di lavoro.
Il parametro Coda di lavoro è impostato sulla coda in cui vogliamo aggiungere nuovi elementi della coda di lavoro. In questo caso, Coda Demo PAD è stato selezionato scegliendolo dal menu a discesa.
Per il parametro Priorità viene mantenuto il valore predefinito Normale, ma anche le opzioni per Basso e Alto sono facoltative. I primi elementi della coda di lavoro ad essere elaborati sono quelli con la priorità più alta, quindi quelli con priorità normale e infine quelli combinati nella stessa coda di lavoro.
Il parametro Nome è stato impostato con un prefisso statico insieme al valore della variabile CurrentItem['ID'] che contiene il valore della cella ID della riga di dati in fase di elaborazione. Questo è facoltativo ma può essere utile a seconda del caso d'uso.
Utilizzando i valori della riga di dati nella variabile CurrentItem, il parametro Input è stato immesso in formato JSON. Nota che ogni nome di intestazione è stato aggiunto alla variabile currentitem utilizzando la notazione ["nome dell'intestazione"]
Il campo Data di scadenza viene popolato con la variabile datetime a cui abbiamo aggiunto 7 giorni nei passaggi precedenti. Se lasciato vuoto, l'elemento della coda di lavoro aggiunto conterrà il set di valori Scadenza elementi dopo per la coda di lavoro.
Le note di elaborazione sono facoltative: utilizzale come necessario.
Quando si esegue il processo, ogni riga di dati nel file CSV importato creerà un elemento della coda di lavoro che include lo stato In coda, il che significa che è disponibile per l'elaborazione.
Questi sono solo alcuni dei molti modi in cui le azioni della coda di lavoro possono essere utilizzate in PAD. Prenditi il tempo di trovare modi creativi di incorporare le code di lavoro nei tuoi flussi di Power Automate.
Riaccodare l'elemento con un esempio di ritardo
L'azione Riaccoda elemento con ritardo consente agli utenti del flusso desktop di rimettere in coda gli elementi e impostare un periodo di ritardo al termine del quale l'elemento può essere nuovamente rilasciato per l'elaborazione.
In questo esempio, c'è una coda di lavoro carica di elementi, la cui scadenza è impostata tra 24 ore, ma che non possono essere elaborati in tempo poiché è in corso una manutenzione di routine del sistema eseguita dall'IT e gli elementi devono essere rimessi in coda. La manutenzione verrà completata durante la notte, quindi procederemo a ritardare ogni elemento in coda di 24 ore e poi a impostarne la scadenza 24 ore dopo il periodo di rilascio.
Le prime tre azioni di questo processo di esempio sono azioni di data e ora. L'azione "Ottieni data e ora correnti" acquisisce la data e l'ora del sistema nel momento in cui viene eseguita l'azione. Successivamente abbiamo utilizzato l'azione "Aggiungi a datetime" per soddisfare due requisiti: innanzitutto dobbiamo definire il tempo di ritardo aggiungendo 24 ore al datetime corrente, quindi dobbiamo aggiungere 48 ore al datetime corrente come scadenza.
Successivamente nell'esempio, l'azione "Elabora elementi coda di lavoro" è configurata per puntare alla coda di lavoro caricata e l'azione "Riaccoda elemento con ritardo" viene inserita nel ciclo.
I valori generati per il ritardo e la scadenza possono ora essere passati all'azione "Riaccoda elemento con ritardo". Il campo "Elemento della coda di lavoro" è popolato dalla variabile prodotta dal ciclo: indica quale elemento della coda rimettere in coda. Successivamente abbiamo inserito i valori creati utilizzando le azioni datetime per i campi "ritardo fino a" e "scadenza". Il "ritardo fino a" è obbligatorio, ma puoi utilizzare "scadenza" e "risultato dell'elaborazione" a tua discrezione.
Con questo semplice processo, puoi rimettere in coda tutti gli articoli disponibili in una coda, ritardarli per un certo tempo, con la possibilità di impostare anche una data di scadenza e il risultato dell'elaborazione.
Flusso cloud ed elaborazione basata su connettori
Il modo più semplice per rimuovere dalla coda un elemento della coda di lavoro ed elaborarlo è il seguente:
Vai a Power Automate ed esegui l'accesso con le tue credenziali.
Nel menu a sinistra seleziona Flussi personali.
Sulla barra degli strumenti, seleziona + Nuovo flusso e quinaid seleziona Flusso cloud istantaneo.
Fornisci un Nome flusso, ad esempio Il mio primo flusso della coda di lavoro, quindi seleziona Attiva manualmente un flusso.
Seleziona Crea.
Una volta aperto la finestra di progettazione del flusso, seleziona + Nuovo passaggio, e quindi seleziona il connettore Microsoft Dataverse.
Nell'elenco di azioni, seleziona Esegui un'azione associata.
Parametro | valore | Descrizione |
---|---|---|
Nome tabella | Code di lavoro | Il nome della tabella delle code di lavoro. |
Nome azione | Rimuovere dalla coda | L'azione che ottiene il successivo elemento disponibile dalla coda. |
ID riga | [ID coda di lavoro] | L'ID coda di lavoro (GUID) della coda da cui desideri rimuovere l'accodamento. Puoi ottenere questo valore accedendo alla pagina dei dettagli della coda di lavoro della tua coda e aprendo il pannello Dettagli avanzati. |
Nota
Un'azione associata è un'azione Dataverse definita su una tabella specifica (le code di lavoro nel nostro esempio) e può essere eseguita solo sui record di quella tabella. Le azioni associate vengono utilizzate dalla piattaforma per eseguire operazioni o regole business personalizzate su un record specifico.
- Il flusso dovrebbe avere ora il seguente aspetto.
Seleziona Salva, quindi testa il flusso.
Nel riquadro laterale del test seleziona Manualmente, Test, Esegui flusso, quindi Fatto.
Se il flusso è stato eseguito correttamente, dovresti ottenere un risultato simile (ma con ID diversi).
- Successivamente, copia l'intero contenuto JSON dal campo body e quindi seleziona Modifica nell'angolo in alto a destra del flusso.
Suggerimento
Dopo aver rimosso dalla coda un elemento della coda di lavoro, utilizza il contenuto JSON dell'elemento come esempio di schema per l'analisi delle proprietà JSON dell'elemento. Ciò consente di accedere facilmente a qualsiasi proprietà dell'elemento restituito dall'agente di orchestrazione della coda di lavoro nelle successive azioni del flusso.
- Aggiungi un nuovo passaggio selezionando + Nuovo passaggio e cerca un'azione chiamata Analizza JSON e selezionala.
- Posiziona il mouse nel campo Contenuto e seleziona la proprietà body dall'azione precedente.
Successivamente, seleziona Genera da esempio e incolla la stringa JSON precedentemente copiata nella finestra di dialogo e seleziona Fine.
Seleziona + Nuovo passaggio, quindi seleziona il connettore Microsoft Dataverse.
Nell'elenco delle azioni seleziona Aggiorna una riga.
Nel campo Nome tabella seleziona la tabella Elementi coda di lavoro e posiziona il cursore nel campo ID riga.
Nell'elenco Contenuto dinamico, avrai ora tutti i campi disponibili nella tabella degli elementi della coda di lavoro.
Seleziona Mostra opzioni avanzate e quindi imposta ID riga, Risultato elaborazione, Stato e Motivo stato sui seguenti valori.
Campo | valore | Details |
---|---|---|
ID riga | workqueueitemid | Questo valore può essere selezionato nella finestra di dialogo dell'elenco dei contenuti dinamici. |
Risultato elaborazione | L'elaborazione dell'elemento è stata completata. | |
Stato | Elaborato | |
Motivo stato | Elaborato |
Seleziona Salva e testa il flusso ancora una volta.
Se il flusso viene eseguito correttamente, dovresti ottenere un risultato simile al seguente.
Ora, accedi alla pagina dei dettagli della coda di lavoro e nella sezione dell'elenco di elementi della coda di lavoro, seleziona Visualizza tutto.
Filtra il campo Stato per mostrare solo gli elementi nello stato In elaborazione e Elaborati per confermare che le azioni di rimozione dalla coda e aggiornamento hanno funzionato come previsto.
Congratulazioni, hai appena completato il tuo primo scenario di elaborazione delle code di lavoro!
Elaborazione basata sul flusso nel cloud con supporto del flusso desktop
Per questo scenario, estendiamo il precedente aggiungendo anche un passaggio di elaborazione del flusso desktop.
Torna indietro e modifica Il mio primo flusso di coda di lavoro.
Aggiungi una nuova azione subito dopo l'azione Analizza JSON e cerca il connettore Flussi desktop ed Esegui un flusso creato con Power Automate per desktop.
Nell'elenco a discesa del flusso desktop, scegli e modifica un flusso desktop esistente oppure seleziona + Crea un nuovo flusso desktop e segui le istruzioni sulla schermata per creare il flusso desktop e avviare Power Automate per desktop. Se non conosci i flussi desktop, puoi saperne di più qui.
Una volta aperta la finestra di progettazione di Power Automate per desktop, crea due variabili di input denominate WorkQueueItemValue e WorkQueueItemName e poi aggiungi due variabili di output chiamate ProcessingNotes e ProcessingStatus rispettivamente, ognuna delle quali dovrebbe avere Testo come tipo di dati.
Specifica un valore predefinito per la variabile WorkQueueItem in modo da poter successivamente testare lo script in locale. Se hai seguito l'esercitazione sull'importazione in blocco dovresti avere gli elementi della coda di lavoro nella coda delle fatture fornitore che hanno i loro valori in formato JSON. Ecco un esempio di uno dei valori utilizzati.
{ "InvoiceId": "I-1006", "InvoiceDate": "06/04/2023", "AccountName": "Fabrikam", "ContactEmail": "invoicing@fabrikam.com", "Amount": 1253.78, "Status": "Paid", "WorkQueueKey": "Vendor Invoices", "ComponentState": 0, "OverwriteTime": "1900-01-01T00:00:00" }
Ora, fai clic su Salva per salvare il flusso.
Nel pannello delle azioni, apri il gruppo di azioni Variabili e fai doppio clic sull'azione Converti JSON in oggetto personalizzato per aggiungilo al canvas di progettazione, che apre la relativa finestra delle proprietà.
Seleziona l'icona della variabile nel campo JSON e scegli la variabile WorkQueueItemValue.
Rinomina la variabile di output prodotta da JsonAsCustomObject a VendorInvoice e seleziona Salva.
Successivamente, aggiungi un'azione If dal gruppo Condizionali e configura le sue proprietà come segue:
First operand Operator Second operand %VendorInvoice['Amount']% Meno di (<) 5000 Seleziona Salva.
Aggiungi un'altra azione dal gruppo Condizionali chiamata Altro e aggiungila tra le azioni Se e Termina.
Ora, aggiungi altre due azioni dal gruppo Variabili chiamate Imposta variabile e aggiungile all'interno di If e Else e imposta le vaiabili ProcessingNotes e ProcessingStatus sui seguenti valori:
Variabile valore %ProcessingNotes% La fattura è stata elaborato %ProcessingStatus% Elaborato Copia le due azioni Imposta variabile e incollale tra Else e End e modifica i loro valori in modo che corrispondano a questi:
Variabile valore %ProcessingNotes% Eccezione aziendale: l'importo della fattura è superiore a $5000, che richiede l'approvazione del responsabile. %ProcessingStatus% Eccezione Il flusso dovrebbe avere ora il seguente aspetto.
Salva il flusso e quindi eseguirlo per verificare che la logica del flusso venga eseguita nel modo previsto.
Torna indietro per modificare Il mio primo flusso di coda di lavoro.
Seleziona il flusso desktop appena creato (o modificato) dall'elenco, quindi seleziona Con intervento dell'utente come relativa Modalità di esecuzione.
Specifica i parametri Valore elemento coda di lavoro e Nome elemento coda di lavoro come mostrato di seguito:
Aggiungi un'azione Condizione prima dell'azione Aggiorna una riga.
Posiziona il mouse nel campo Scegli un valore e seleziona Stato di elaborazione dalla finestra di dialogo dell'elenco dei contenuti dinamici.
Posiziona il mouse nell'altro campo Scegli un valore e inserisci Elaborato come valore di testo.
Trascina e rilascia l'azione Aggiorna una riga nella sezione If yes dell'azione condizionale.
Apri i dettagli dell'azione Aggiorna una riga e sostituisci i valori in modo da corrispondere a quanto segue:
Nella casella rossa If no , aggiungi un'altra azione Aggiorna una riga e seleziona Elementi della coda di lavoro come Nome tabella.
Successivamente, seleziona workqueueitemid come ID riga e apri la sezione Mostra opzioni avanzate, seleziona Note di elaborazione come valore Risultati di elaborazione.
Seleziona Errore come Stato e GenericException per Motivo stato.
Seleziona Salva e Testa per testare l'automazione complessiva e osserva l'output dell'azione di flusso desktop.
Per verificare se l'elemento della coda di lavoro è stato elaborato puoi accedere alla pagina dei dettagli della coda di lavoro, selezionare Visualizza tutto nella selezione degli elementi della coda di lavoro e fitrare gli elementi per lo stato Elaborati.
Complimenti, hai appena completato uno scenario più avanzato che includeva l'elaborazione della coda di lavoro ibrida!