Connecting Objects

Introduzione

In BPMN 2.0, gli connecting objects sono utilizzati per definire le relazioni e il flusso di informazioni tra diversi elementi in un modello di processo. Connettono attività, eventi e gateway, guidando il flusso del processo o trasmettendo data e messaggi. I principali connecting objects sono sequence flow, message flow e association.

Flusso di SequenzaSequence Flow
Flusso di MessaggioMessage Flow
AssociazioneAssociation

Sequence Flow

Un sequence flow definisce l’ordine in cui attività, eventi e gateway vengono eseguiti in un processo. Mostra la progressione logica dei task da un passo al successivo.

Flusso di Sequenza BPMN

Rappresenta l’ordine in cui i task devono essere eseguiti, raffigurato come una linea retta che termina con una freccia. Può indicare un percorso condizionale o predefinito.

  • Esempio: Un sequence flow collega un task “Invia Domanda” a un task “Rivedi Domanda”, indicando che la revisione avviene dopo l’invio.
  • Tipi di Sequence Flow:
    • Normal Sequence Flow: Il flusso predefinito tra attività.
    • Conditional Sequence Flow: Un sequence flow che procede solo se una condizione specifica è soddisfatta (indicato da un piccolo rombo).
    • Default Sequence Flow: Il flusso di riserva se nessuna condizione è soddisfatta (indicato da una barra diagonale al punto di partenza).
  • Caso d’Uso: Usa i sequence flow per guidare la progressione passo-passo del processo, garantendo che le attività vengano eseguite in un ordine specifico.

Message Flow

Un message flow rappresenta la comunicazione tra diversi partecipanti o processi, tipicamente quando fanno parte di pool diversi. È utilizzato per mostrare lo scambio di informazioni tra processi, che potrebbero operare indipendentemente.

Flusso di Messaggio BPMN

Il connettore message flow illustra la comunicazione tra diversi pool o attraverso confini organizzativi, come dipartimenti. Non è destinato a collegare eventi o attività all’interno dello stesso pool. Questo connettore è rappresentato da una linea tratteggiata, che inizia con un cerchio e termina con una freccia aperta.

  • Esempio: Un message flow collega un task “Invia Fattura” in un pool (che rappresenta il fornitore) a un task “Ricevi Fattura” in un altro pool (che rappresenta il cliente), indicando che la fattura è inviata tra di loro.
  • Caso d’Uso: Usa i message flow per rappresentare la comunicazione tra diverse entità o partecipanti business (rappresentati come pool separati), come quando un’azienda invia una richiesta d’ordine a un’altra.

Association

Un’association collega artefatti (come data object, annotazioni di testo o gruppi) con flow object (attività, eventi, gateway) per fornire contesto o chiarire la relazione tra gli elementi. Le Association non influenzano la sequenza del processo ma sono utilizzate per documentazione e dettagli aggiuntivi.

Associazione BPMN

Questo elemento è raffigurato come una linea tratteggiata, senza freccia né cerchio. Serve a collegare un evento, un’attività o un gateway con un artefatto.

  • Esempio: Un’association collega un task “Genera Report” a un “Documento Report” (un data object), indicando che questo task produce il documento.
  • Tipi di Association:
    • Normal Association: Collega elementi come task a data object o annotazioni.
    • Directional Association: Mostra il flusso di data da o verso un task (indicato con una freccia).
    • Bi-Directional Association: Indica relazioni bidirezionali tra elementi (indicato con due frecce).
  • Caso d’Uso: Usa le association quando desideri collegare informazioni aggiuntive (ad es., data object, annotazioni di testo) a task o eventi senza influenzare il flusso del processo.

Punti Chiave sugli Connecting Objects

  • Sequence Flow: Definisce l’ordine dei task o eventi all’interno di un singolo processo (all’interno di un pool). Usato per specificare il flusso di attività, condizioni e decisioni.
  • Message Flow: Rappresenta la comunicazione tra diversi partecipanti o processi (attraverso diversi pool). Usato quando i processi scambiano informazioni o attivano azioni in un altro processo.
  • Association: Collega informazioni aggiuntive come data, documenti o annotazioni alle attività, fornendo contesto o spiegazione ma non controllando il flusso del processo.

Esempio

Immagina un processo per gestire gli ordini dei clienti:

  • Sequence Flow: Dopo aver ricevuto un ordine, il sistema gestisce l’ordine e poi lo invia per la consegna. Ogni fase (ricezione, elaborazione, consegna) è collegata da sequence flow.
  • Message Flow: Una volta elaborato l’ordine, un messaggio viene inviato a una società di spedizioni esterna per gestire la consegna. Questa comunicazione è rappresentata da un message flow tra le due entità.
  • Association: Un data object “Ordine Cliente” è associato al task “Ricevi Ordine” per indicare che questo task gestisce i data dell’ordine.
  • Sequence Flow: Gestisce l’ordine delle attività all’interno di un singolo processo.
  • Message Flow: Facilita la comunicazione tra diverse entità o pool.
  • Association: Collega artefatti come data o annotazioni agli elementi del flusso, fornendo contesto aggiuntivo.

Questi connecting objects sono fondamentali per definire come i task e gli eventi sono collegati, come i data si muovono nei processi e come i processi interagiscono tra loro in un modello BPMN.