Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si progettano flussi di lavoro, è possibile includere logica da eseguire in fasi e passaggi.
- Fasi. Le fasi del flusso di lavoro in tempo reale facilitano la lettura della logica e la illustrano, Tuttavia, le fasi non influiscono sulla logica o sul comportamento dei flussi di lavoro. Se in un processo sono presenti fasi, tutti i passaggi del processo devono essere contenuti in una fase.
- Passi. I passaggi sono un'unità di regole business in un flusso di lavoro. I passaggi possono includere condizioni, azioni, altri passaggi o una combinazione di questi elementi.
Azioni che i processi di flusso di lavoro in tempo reale possono eseguire
I processi di flusso di lavoro tempo reale possono eseguire azioni elencate nella tabella seguente.
| Azione | Descrizione |
|---|---|
| Crea riga | Crea una nuova riga per una tabella e assegna agli attributi i valori che scegli. |
| Aggiorna riga | Puoi aggiornare la riga nella quale il flusso di lavoro in tempo reale è in esecuzione, qualsiasi riga collegata a tale riga in una relazione N:1 o qualsiasi riga creata in passaggi precedenti. |
| Assegna riga | Puoi assegnare la riga in relazione alla quale il flusso di lavoro in tempo reale è in esecuzione, qualsiasi riga collegata a tale riga in una relazione N:1 o qualsiasi riga creata in passaggi precedenti. |
| Invia messaggio di posta elettronica | Invia un messaggio e-mail. Puoi scegliere di creare un nuovo messaggio e-mail o di utilizzare un modello di messaggio e-mail configurato per la tabella della riga in relazione alla quale il flusso di lavoro in tempo reale è in esecuzione, per tutte le tabelle che hanno una relazione N:1 con la tabella o per la tabella relativa a qualsiasi riga creata da passaggi precedenti. |
| Avvia flusso di lavoro figlio | Avvia un processo del flusso di lavoro in tempo reale configurato come flusso di lavoro figlio. |
| Cambia stato | Modifica lo stato della riga in relazione al quale il processo è in esecuzione, qualsiasi riga collegato a tale riga in una relazione N:1 o qualsiasi riga creata da passaggi precedenti. |
| Arresta flusso di lavoro | Interrompe il flusso di lavoro corrente. È possibile impostare uno stato Completato o Annullato e specificare un messaggio di stato. Se i flussi di lavoro in tempo reale sono configurati per un evento, l'arresto di un flusso di lavoro in tempo reale con stato annullato impedirà il completamento dell'azione legata all'evento. Vai a Utilizzare flussi di lavoro in tempo reale per ulteriori informazioni. |
| Passaggio personalizzato | Gli sviluppatori possono creare passaggi di flusso di lavoro in tempo reale personalizzati che definiscono le azioni. Non sono disponibili passaggi personalizzati per impostazione predefinita. |
Impostare valori di riga
Quando crei una riga puoi impostare valori per la riga. Quando aggiorni una riga puoi impostare, aggiungere, incrementare, decrementare, moltiplicare o cancellare valori.
Quando selezioni Imposta proprietà, viene visualizzata una finestra di dialogo che mostra il modulo predefinito per la tabella.
Nella parte inferiore della finestra di dialogo viene visualizzato un elenco di colonne aggiuntive non presenti nel modulo.
Per qualsiasi colonna, è possibile impostare un valore statico impostato dal flusso di lavoro.
Sul lato destro della finestra l'opzione Informazioni e selezione rapida consente di impostare o aggiungere valori dinamici dal contesto della riga corrente. Sono inclusi valori delle righe correlate che sono accessibili tramite le relazioni N:1 (molti-a-uno) della tabella.
Le opzioni disponibili in Informazioni e selezione rapida dipendono dalla colonna selezionata nel modulo. Quando si imposta un valore dinamico, viene visualizzato un segnaposto giallo noto come "slug" che mostra dove sono inclusi i dati dinamici. Se vuoi rimuovere il valore, seleziona lo slug ed eliminalo. Per le colonne di testo, è possibile utilizzare una combinazione di dati statici e dinamici.
Se si utilizzano valori dinamici, non è possibile essere certi che una colonna o una tabella correlata abbia il valore che si desidera impostare. È quindi possibile impostare una serie di colonne per provare a impostare il valore e ordinarli utilizzando le frecce verdi. Se la prima colonna non contiene dati, provare nella seconda colonna e così via. Se in nessuna colonna sono presenti dati, è possibile specificare un valore predefinito da utilizzare.
Impostazioni di condizioni per azioni del flusso di lavoro in tempo reale
Le azioni applicate spesso dipendono dalle condizioni. I processi di flusso di lavoro in tempo reale consentono di impostare le condizioni in modo diversi e di creare la logica di creazione di rami per ottenere i risultati desiderati. È possibile verificare i valori della riga in relazione al quale il processo di flusso di lavoro in tempo reale è in esecuzione, tutte le righe collegate a tale riga con una relazione N:1 o i valori nel processo stesso.
| Tipo di condizione | Descrizione |
|---|---|
| Verifica condizione | Istruzione logica "se <condizione> allora". È possibile controllare i valori correnti per la riga in relazione al quale il flusso di lavoro in tempo reale è in esecuzione, qualsiasi riga collegata a tale riga in una relazione N:1 o qualsiasi riga creata in passaggi precedenti. In base a questi valori è possibile definire passaggi aggiuntivi quando la condizione è true. Nell'istruzione "if <condition>then" puoi utilizzare gli operatori seguenti: Uguale a, Diverso da, Contiene dati, Non contiene dati, Inferiore a e Non inferiore a. Nota: gli operatori Inferiore e Non inferiore a sono gerarchici. Possono essere utilizzati solo per le tabelle con una relazione gerarchica definita. Se si sta provando a usare questi operatori nelle tabelle che non hanno la relazione gerarchica definita, vedere il messaggio di errore: "Si sta usando un operatore gerarchico in una tabella che non dispone di una relazione gerarchica definita. Converti la tabella gerarchica (contrassegnando una relazione come gerarchica) o utilizza un operatore diverso". Per altre informazioni sulle relazioni gerarchiche, vai a Definire ed eseguire query sui dati correlati gerarchicamente. La schermata che segue la tabella è un esempio di definizione di processo del flusso di lavoro in tempo reale che utilizza gli operatori gerarchici Inferiore e Non inferiore a. |
| Diramazione Condizionale | Un'istruzione logica "else-if-then", l'editor utilizza il testo "Altrimenti, se <condizione> allora:" Selezionare una condizione di controllo definita in precedenza ed è possibile aggiungere un ramo condizionale per definire passaggi aggiuntivi quando la condizione di controllo restituisce false. |
| Azione predefinita | Istruzione logica di tipo "else". L'editor utilizza il testo "Otherwise:" Selezionare una condizione di controllo, un ramo condizionale, una condizione di attesa o un ramo di attesa parallelo definito in precedenza ed è possibile usare un'azione predefinita per definire i passaggi per tutti i casi che non corrispondono ai criteri definiti in elementi di condizione o ramo. |
| Condizione di attesa | I flussi di lavoro in tempo reale non possono usare le condizioni di attesa. Tuttavia, le condizioni di attesa possono essere utilizzate con i flussi di lavoro in background. Altre informazioni: Impostazioni di condizioni per azioni del flusso di lavoro in background |
| Ramo di attesa parallela | Definisce una condizione di attesa alternativa per un flusso di lavoro in tempo reale, con un insieme corrispondente di passaggi aggiuntivi eseguiti solo se viene soddisfatto il criterio iniziale. È possibile utilizzare rami di attesa paralleli per creare limiti di tempo nella logica del flusso di lavoro in tempo reale. Consentono di evitare che il flusso di lavoro in tempo reale sia in attesa illimitato fino a quando non vengono soddisfatti i criteri definiti in una condizione di attesa. |
| Passaggio personalizzato | Gli sviluppatori possono creare passaggi di flusso di lavoro in tempo reale personalizzati che definiscono le condizioni. Non sono disponibili passaggi personalizzati per impostazione predefinita. |
La schermata seguente contiene un esempio di definizione di processo del flusso di lavoro con gli operatori gerarchici Inferiore e Non inferiore a. In questo esempio, si applicano due sconti diversi a due gruppi di account. In Aggiungi passaggio, è stata selezionata l'opzione Verifica condizione per specificare una condizione if-then contenente gli operatori Sotto o Non sotto. La prima condizione if-then viene applicata a tutti gli account che sono Inferiori all'account Alpine Ski House. Questi account ricevono uno sconto del 10% sui servizi e sui prodotti acquistati. La seconda condizione if-then viene applicata a tutti gli account che sono Non inferiori all'account Alpine Ski House e ricevono uno sconto del 5%. Quindi, abbiamo selezionato Aggiorna riga per definire l'azione da eseguire in base alla condizione.
Avviare i flussi di lavoro in tempo reale prima o dopo la modifica dello stato
Quando si configura Opzioni per processi automatici per i flussi di lavoro in tempo reale, le opzioni Avvia in caso di per l'evento di modifica dello stato consente di selezionare Dopo o Prima per indicare il momento in cui lo stato deve cambiare. L'opzione predefinita è Dopo.
Quando si seleziona Prima, si indica che si desidera applicare la logica nel flusso di lavoro in tempo reale prima che vengano salvati i dati che modificano lo stato. In questo modo è possibile controllare i valori prima che altra logica venga applicata dopo l'operazione ed evitare l'esecuzione di logica ulteriore. Ad esempio, si potrebbe avere una logica aggiuntiva in un'azione del flusso di lavoro in tempo reale personalizzata o plug-in che potrebbe avviare azioni in un altro sistema. Arrestando un'ulteriore elaborazione, è possibile evitare casi in cui sono interessati i sistemi esterni. L'applicazione di flussi di lavoro in tempo reale prima di questo evento significa anche che non è necessario eseguire il rollback di altre azioni di flusso di lavoro o plug-in in tempo reale che potrebbero salvare i dati quando l'operazione viene annullata.
| Azione | Avvia quando | Spiegazione |
|---|---|---|
| La riga è stata creata | Dopo | Solo Dopo è disponibile. La riga non avrà un identificatore univoco fino a dopo la fase interna di MainOperation, quindi non può essere presente prima che la riga sia creata. |
| Stato della riga modificato | Prima Dopo |
Corrisponde a un'operazione di aggiornamento che offre la possibilità di applicare la logica del flusso di lavoro in tempo reale dopo o prima che lo stato cambi. Prima corrisponde alla fase preoperatoria. Dopo corrisponde alla fase post-operazione.. |
| La riga è assegnata | Prima Dopo |
Corrisponde a un'operazione di aggiornamento che offre la possibilità di applicare la logica del flusso di lavoro in tempo reale dopo o prima che lo stato cambi. Prima corrisponde alla fase preoperatoria. Dopo corrisponde alla fase post-operazione.. |
| Modifica delle colonne della riga | Prima Dopo |
Corrisponde a un'operazione di aggiornamento che offre la possibilità di applicare la logica del flusso di lavoro in tempo reale dopo o prima che lo stato cambi. Prima corrisponde alla fase di pre-operazione. Dopo corrisponde alla fase post-operazione.. |
| La riga è stata eliminata | Prima | Solo Prima è disponibile. L'eliminazione di righe corrisponde alla fase di preoperazione. Dopo l'esecuzione dell'operazione MainOperation, la riga viene eliminata e non viene apportata alcuna modifica dello stato. |
Per ulteriori informazioni sulle fasi pre-intervento, intervento principale e postoperatorio, vedi Pipeline di esecuzione degli eventi.
Utilizzare flussi di lavoro in tempo reale
È possibile configurare i flussi di lavoro in tempo reale, ma è necessario utilizzarli con attenzione. I flussi di lavoro in background sono in genere consigliati perché consentono al sistema di applicarli quando sono disponibili risorse nel server. In questo modo viene semplificato il lavoro che il server deve eseguire e qualsiasi utente del sistema può mantenere le prestazioni migliori. Lo svantaggio è che le azioni definite dai flussi di lavoro in background non sono immediate. Non è possibile prevedere quando vengono applicati, ma in genere sono necessari alcuni minuti. Per una maggiore automazione dei processi aziendali questa situazione è ideale perché agli utenti che eseguono il sistema non è necessario sapere che il processo è in esecuzione.
Utilizzare flussi di lavoro in tempo reale quando un processo aziendale richiede che un utente visualizzi immediatamente i risultati del processo o se si desidera avere la possibilità di annullare un'operazione. Ad esempio, è possibile impostare determinati valori predefiniti per una riga la prima volta che viene salvata oppure assicurarsi che alcune righe non vengano eliminate.
Conversione tra flussi di lavoro in tempo reale e in background
È possibile modificare un flusso di lavoro in tempo reale in un flusso di lavoro in background scegliendo Converti in un flusso di lavoro in background sulla barra degli strumenti.
È possibile modificare un flusso di lavoro in background in uno in tempo reale scegliendo Converti in un flusso di lavoro in tempo reale sulla barra degli strumenti. Se il flusso di lavoro in background usa una condizione di attesa, diventa non valido e non sarà possibile attivarlo fino a quando non si rimuove la condizione di attesa.
Avviare i flussi di lavoro in tempo reale prima o dopo la modifica dello stato
Quando si configura Opzioni per processi automatici per i flussi di lavoro in tempo reale, le opzioni Avvia in caso di per l'evento di modifica dello stato consente di selezionare Dopo o Prima per indicare il momento in cui lo stato deve cambiare. L'opzione predefinita è Dopo.
Quando si seleziona Prima, si sta dicendo che si vuole che la logica nel flusso di lavoro in tempo reale venga applicata prima che i dati che modificano lo stato vengano salvati. In questo modo è possibile controllare i valori prima dell'applicazione di altre logiche dopo l'operazione e impedire l'esecuzione di un'ulteriore logica. Ad esempio, è possibile includere una logica aggiuntiva in un plug-in o in un'azione di flusso di lavoro in tempo reale personalizzata che potrebbe avviare azioni in un altro sistema. Arrestando un'ulteriore elaborazione, è possibile evitare casi in cui sono interessati i sistemi esterni. Applicare flussi di lavoro in tempo reale prima di questo evento significa anche che altre azioni di plug-in o di flusso di lavoro in tempo reale che potrebbero aver salvato i dati non devono essere ripristinate allo stato precedente quando l'operazione è annullata.
Utilizzo dell'azione Interrompi flusso di lavoro con flussi di lavoro in tempo reale
Quando si applica un'azione Interrompi flusso di lavoro a un flusso di lavoro in tempo reale è possibile specificare uno stato Completato o Annullato. Quando si imposta lo stato come annullato, si impedisce l'operazione. Un messaggio di errore che contiene testo del messaggio relativo all'interruzione verrà visualizzato all'utente con l'intestazione Errore processo aziendale.
Configurazione di chi esegue il flusso di lavoro in tempo reale
Nella finestra di progettazione del flusso di lavoro è possibile impostare chi deve eseguire il flusso di lavoro su "Il proprietario del flusso di lavoro" o "L'utente che ha apportato modifiche al record". Per modificare il proprietario del record in un altro utente, aprire la scheda Amministrazione nell'editor del flusso di lavoro e usare la ricerca per selezionare un nuovo proprietario per il flusso di lavoro. Per modificare il proprietario del flusso di lavoro, è necessario il ruolo di sicurezza Amministratore di sistema o Personalizzatore di sistema o un ruolo contenente il prvChangeOwnerIdOfWorkflow privilegio.
Passaggi successivi
Monitorare e gestire i processi del flusso di lavoro in tempo reale
Procedure consigliate per i processi del flusso di lavoro in tempo reale