Réserver une Démo
Pré. Proc.

Sous-processus d'événement

Les sous-processus d'événement permettent à votre système de gérer un événement dans le contexte d'un sous-processus ou d'un processus donné. Un sous-processus d'événement commence toujours par un événement Début ; il n'est pas instancié par le flux de contrôle normal, mais uniquement lorsque l'événement Début associé est déclenché. Les sous-processus d'événement sont autonomes et ne DOIVENT pas être connectés au reste des Séquence de séquence dans les sous-processus.

  • Si l'attribut isInterrupting de son événement Début est défini, un sous-processus d'événement annule l'exécution du sous-processus englobant
  • Si l'attribut isInterrupting n'est pas défini, l'exécution du sous-processus englobant se poursuit parallèlement au sous-processus d'événement
Dans cet exemple, nous démontrons comment les sous-processus d'événement d'interruption et de non-interruption affectent la ligne de vie du sous-processus et du processus englobants.

Créer un Modèle BPMN

Event Subprocess for BPMN Process Simulation in Sparx Systems Enterprise Architect

Modèle le processus principal

  • Créer un StartEvent Start1
  • Ajouter une Flux séquence à une fourche d'éléments Passerelle parallèle cible
  • Ajouter une Flux séquence à
    - un sous-processus subProcess1 , et à partir de là, ajoutez un flux de séquence à un élément d'événement de fin cible
    Fin1
          - une tâche abstraite Task5 , et à partir de là, ajoutez une Flux séquence à un élément End Event cible End2

Conseils sur la modélisation d'un sous-processus événementiel

  • Faites glisser une activité de la boîte à outils 'BPMN2.0 - Processus Métier ' sur le diagramme
  • Double-cliquez sur l'Activité pour afficher la boîte de dialogue ' Propriétés ' et, dans le champ ' Type ', sélectionnez ' subProcess' ; définissez 'triggeredByEvent' sur 'true' et cliquez sur le bouton OK
  • Cliquez-droit sur l'élément et sélectionnez l'option 'Est développé' ; cela affichera le nom de l'élément dans le coin supérieur gauche

Modèle les sous-processus d'événement pour le processus principal

  • Créer un sous-processus d'événement subProcess4
    - Créez un Timer Début Event Start5(@60) , puis double-cliquez dessus pour afficher la boîte de dialogue ' Propriétés '
    et, dans le champ ' Type ', sélectionnez 'Event Sub-Process Non-Interrupting > Timer' ; cliquez sur le bouton OK
    - Ajouter une Flux séquence à une tâche abstraite cible Activity Task6(2000)
    - Ajouter une Flux séquence à un élément End Event cible End6
  • Créer un sous-processus d'événement subProcess5
          - Créez un Timer Début Event Start6(@80) , puis double-cliquez dessus pour afficher la boîte de dialogue ' Propriétés '
    et, dans le champ ' Type ', sélectionnez 'Event Sub-Process Interrupting > Timer' ; cliquez sur le bouton OK
    - Ajouter une Flux séquence à une tâche abstraite cible Activity Task7(2000)
    - Ajouter une Flux séquence à un élément End Event cible End7

Modèle le sous-processus subProcess1 et les sous-processus d'événement inclus

  • Créer un StartEvent Start2
    - Ajouter un flux de séquence à une tâche abstraite cible Activity Task1 (150)
    - Ajouter un Flux séquence de flux vers une cible End Event End3
  • Créer un sous-processus d'événement subProcess2
          - Créez un Timer Début Event Start3(@20) , puis double-cliquez dessus pour afficher la boîte de dialogue ' Propriétés '
    et, dans le champ ' Type ', sélectionnez 'Event Sub-Process Non-Interrupting > Timer'
    - Ajouter une Flux séquence à une tâche abstraite cible Activity Task2(100)
    - Ajouter une Flux séquence à un élément End Event cible End4
  • Créer un sous-processus d'événement subProcess3
          - Créez un Timer Début Event Start4(@30) , puis double-cliquez dessus pour afficher la boîte de dialogue ' Propriétés '
    et, dans le champ ' Type ', sélectionnez 'Event Sub-Process Interrupting > Timer'
    - Ajouter une Flux séquence à une tâche abstraite cible Activity Task3(40)
    - Ajouter une Flux séquence à une tâche abstraite cible Activity Task4(20)
    - Ajouter une Flux séquence à un élément End Event cible End5

Configurer BPSim

À l'aide de ce tableau , nous créons l'artefact dans la configuration Paquetage et configurons les valeurs des paramètres de chaque élément.

Tâche

Action

Créer un artefact

  • Ouvrez la fenêtre Configurer BPSim ('Simuler > Analyse de Processus > BPSim > Ouvrir BPSim Manager')
  • Créez un artefact nommé 'Event Sub Process Interrupting and Non-Interrupting' (dans le champ 'Select/Create Artifact', cliquez sur le bouton Browse. et sélectionnez son parent Paquetage et cliquez sur le bouton Add New, puis tapez le nom de l'élément et cliquez sur le bouton Enregistrer et le bouton OK )
Ensuite, tous les éléments BPMN seront chargés dans la fenêtre Configurer BPSim.

InterTriggerTimer for Début Événements in Event Sub-Process

Dans l'arborescence à gauche de la boîte de dialogue 'Configurer BPSim', développez 'StartEvent'.

Pour chacun des éléments listés ici, dans l'onglet 'Control', cliquez sur la flèche déroulante dans le champ 'New Parameter...' et sélectionnez le paramètre 'InterTriggerTimer'. Cliquez sur le bouton Browse. dans le champ 'Valeur' pour ouvrir la boîte de dialogue 'Paramètre' et sélectionnez 'Constante > Numérique', puis saisissez la valeur et sélectionnez 'secondes'.

  • Début3(@20) : 20 secondes
  • Début4(@30) : 30 secondes
  • Début5(@60) : 60 secondes
  • Début6(@80) : 80 secondes

ProcessingTime pour les tâches

Dans l'arborescence à gauche de la fenêtre Configurer BPSim, développez "Activité".

Pour chacun des éléments listés ici, dans l'onglet 'Time', cliquez sur la flèche déroulante dans le champ 'New Parameter...' et sélectionnez le paramètre 'ProcessingTime'. Cliquez sur le bouton Browse. dans le champ 'Valeur' pour ouvrir la boîte de dialogue 'Paramètre' et sélectionnez 'Constante > Numérique', puis saisissez la valeur et sélectionnez 'secondes'.

  • Tâche1 (150) : 150 secondes
  • Tâche2 (100) : 100 secondes
  • Tâche3 (40) : 40 secondes
  • Tâche4 (20) : 20 secondes
  • Tâche5 (1000) : 1000 secondes
  • Tâche6 (2000) : 2000 secondes
  • Tâche7 (2000) : 2000 secondes

Exécuter Simulation

  • Dans la barre d'outils de la boîte de dialogue 'Configurer BPSim', cliquez sur l'icône ' Exécuter ' pour ouvrir la boîte de dialogue 'BPSim Simulation Controller'
  • Cliquez sur la flèche déroulante de l'icône ' Exécuter ' et sélectionnez ' Simulation standard '

Une analyse

En lisant les résultats, il n'est peut-être pas tout à fait simple de voir ce qui s'est passé ; cependant, si nous dessinons la ligne de vie pour chaque tâche dans un diagramme de chronométrage, cela devient plus clair.

Example Timing Diagram Task Lifelines in Sparx Systems Enterprise Architect

  • L'événement Start3(@20) est sans interruption, il n'a pas arrêté la tâche1 à 20 secondes
  • L'événement Start4(@30) est Interrupting, il a arrêté Task1 et Task2 à 30 secondes ; cela n'a pas affecté Task5 car le niveau de processus englobant de Task5 (processus principal) est supérieur au sous-processus englobant de Start4 ( subProcess1 )
  • L'événement Start5(@60) est sans interruption, il a démarré la tâche6 à 60 secondes sans affecter la tâche3 ou la tâche5
  • L'événement Start6(@80) est Interrupting, il a démarré Task7 à 80 secondes et a interrompu les tâches en cours d'exécution ( Task4 , Task5 , Task6 ) qui se trouvaient au même niveau ou à un niveau inférieur de son processus englobant
  • Seul End7 est atteint comme prévu