Configurazione di un'attività per i loop a più istanze

Utilizzando i loop a più istanze, è possibile eseguire dinamicamente più istanze univoche della stessa attività in modo sequenziale o parallelo. Quando si esegue un'attività configurata per loop a più istanze, viene creato un token univoco per ciascuna istanza dell'attività.

Prima di iniziare

Per informazioni sui tipi di loop e le relative restrizioni, consultare Creazione di loop per un'attività.

Procedura

Per configurare un'attività per un loop a più istanze, effettuare le operazioni riportate di seguito.

  1. Aprire un processo e selezionare l'attività che si desidera configurare.
  2. Nelle proprietà, selezionare Generale.
  3. Espandere Loop e selezionare Loop a più istanze dall'elenco Tipo di loop .
  4. Impostare un valore per Quantità iniziale.
    Questo valore imposta il numero di istanze create in fase di runtime. Per specificare una variabile che può essere utilizzata per questa impostazione, fare clic sull'icona della variabile per selezionarla o immettere il nome della variabile nella casella Quantità iniziale .
    Nota: Per informazioni su come associare ogni istanza di attività loop a un elemento specifico in un elenco, consultare Associazione di istanze di attività loop a voci differenti
    .
  5. Dall'elenco di Ordinazione , selezionare una delle opzioni riportate di seguito:
    Opzione Descrizione
    Esegui in sequenza Le istanze risultanti vengono eseguite in modo sequenziale fino al termine dell'ultima istanza dell'attività.
    Esegui parallelo Le istanze risultanti vengono eseguite contemporaneamente fino al termine di tutte le istanze o fino a quando non viene soddisfatta la condizione specificata.
  6. Per l'ordinamento parallelo, selezionare una delle seguenti opzioni dall'elenco Condizione flusso :
    Opzione Descrizione
    Attendi la fine di tutti (Tutto) Il loop continua fino al termine di tutte le istanze risultanti dell'attività.
    Attesa condizionale (Complessa) Il loop continua fino a quando non viene soddisfatta la condizione specificata nel passo seguente.
  7. Per le condizioni di flusso complesse, immettere JavaScript per implementare tale condizione nella casella Condizione di flusso complesso .

    In fase di runtime, se un loop a più istanze con condizioni complesse viene valutato come false, chiude l'istanza attiva e non passa all'attività successiva. Questo è il comportamento predefinito poiché le specifiche BPMN 2.0 (sezione 13.2.7 Multiple Instances Activity) non forniscono indicazioni per una valutazione falsa. Per avanzare il token all'attività successiva, utilizzare un'espressione booleana OR .

  8. Se si desidera che le istanze attive dell'attività vengano annullate quando viene soddisfatta la condizione precedente, selezionare Annulla istanze rimanenti.
    Il comportamento di runtime di un loop a più istanze dipende dal modo in cui è implementata la relativa attività. Il comportamento è diverso quando il contenuto dell'attività contiene solo script del server e quando include anche i servizi. Ad esempio, un loop con Ordine selezionato per Esegui parallelo, con una condizione di flusso complesso valida e Annulla istanza rimanente impostata su true, viene eseguito come segue:
    • Il contenuto del loop contiene solo script del server: se si specifica solo script del server nel contenuto dell'attività loop a più istanze, le varie istanze del loop vengono eseguite in maniera sequenziale. Pertanto, tutte le istanze vengono eseguite in sequenza fino alla loro fine e alla fine di tutte le istanze di attività le condizioni di uscita vengono verificate in modo sequenziale.
    • Il contenuto del loop contiene servizi umani, di decisione o di sistema: se il contenuto dell'attività del loop contiene un servizio umano, di decisione o di sistema, le attività creano un'istanza in parallelo all'interno del proprio thread. Nell'esempio del servizio di sistema, se è impostata una condizione di uscita, al completamento dell'attività del servizio di sistema, il risultato viene restituito al loop a più istanze. Quindi, la condizione viene valutata e l'attività di loop a più istanze viene completata, che termina tutte le altre istanze di loop ancora in esecuzione.
  9. Fare clic su Salva o Termina modifica.