Creazione di loop per un'attività
Quando si desidera che l'attività di runtime che risulta da un'attività del processo venga eseguita più di una volta, è possibile creare un loop. È possibile creare loop semplici e loop a più istanze nel designer.
Tipi di loop
È possibile creare e implementare loop in diversi modi. Ad esempio, è possibile includere un componente script in un servizio che elabora iterativamente i record richiamati da un database fino a quando non vengono elaborati tutti i record. Poiché è possibile includere JavaScript in tutte le implementazioni, è possibile sviluppare facilmente la logica per ripetere un'azione fino a quando non si verifica una determinata condizione.
Oltre a implementare i loop con script, è possibile configurare le attività del processo per i loop semplici e a più istanze, come descritto nella seguente tabella. Quando si desidera che l'attività di runtime che risulta da un'attività venga eseguita più di una volta, è possibile configurare il funzionamento del ciclo per tale attività. È possibile configurare il funzionamento del loop solo per le attività che hanno flussi di sequenza in entrata o in uscita.
| Tipo di loop | Descrizione |
|---|---|
| Loop semplice | Quando si modella un'attività con loop semplici, il numero richiesto di istanze viene creato in modo dinamico, fino al valore massimo del loop specificato. Un'attività di loop semplice viene eseguita in modo sequenziale fino all'esecuzione dell'ultima istanza dell'attività. Quando si esegue un'attività configurata per loop semplici, viene generato e utilizzato un singolo token per ogni istanza dell'attività, che, in effetti, ricicla l'attività di runtime. |
| Loop a più istanze | Un loop a più istanze esegue dinamicamente più istanze univoche della stessa attività in modo sequenziale o in parallelo. Quando si esegue un'attività configurata per loop a più istanze, viene creato un token univoco per ciascuna istanza dell'attività. |
Prestazioni
I loop semplici e a più istanze creano le attività dal numero di fasi in un'attività, fino al numero massimo specificato nella configurazione. I loop non sono progettati per gestire centinaia di attività o grandi serie di variabili da inviare e rivedere. Piuttosto, sono progettati per un piccolo numero di compiti, in genere meno di dieci. Un numero più elevato potrebbe influire in modo significativo sulle prestazioni. Pertanto, impostare preferibilmente il numero massimo di loop su un valore inferiore a 10. Ad esempio, se per un'attività di approvazione di un assunto, tre intervistatori su cinque devono approvare il candidato, impostare l'attività di approvazione su un loop cinque volte e il sistema crea cinque attività. Dopo l'approvazione di tre degli intervistatori, le restanti due fasi vengono chiuse e viene avviato il passo successivo dell'attività.
Per i casi in cui è necessario eseguire il loop su più di 10 attività, creare uno scenario di test del carico e verificare se il loop funziona per la progettazione dell'applicazione. Se il loop viene eseguito più lentamente del previsto, potrebbe essere necessario modificare di conseguenza l'applicazione. Ad esempio, se il loop di attività è un processo con molti passi e più coach (piuttosto che uno solo), considerare il seguente approccio: utilizzare un Undercover Agent (UCA) per richiamare un evento di messaggio di avvio (SME) per creare più istanze correlate da quel punto, che vengono utilizzate in parallelo all'istanza parent su thread differenti. In questo modo, il collo di bottiglia viene spostato da un thread su un server a molti thread (M) su molti nodi (N).