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émarrer ; il n'est pas instancié par le flux de contrôle normal, mais uniquement lorsque l'événement Démarrer associé est déclenché. Les sous-processus d'événement sont autonomes et NE DOIVENT PAS être connectés au reste des flux Séquence dans les sous-processus.

  • Si l'attribut isInterrupting de son événement Démarrer 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 en parallèle avec le sous-processus d'événement
Dans cet exemple, nous démontrons comment les sous-processus d'événement interrompant et non interrompant affectent la ligne de vie du sous-processus et du processus englobants.

Créer 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 fourchette d'élément Parallel Passerelle cible
  • Ajoutez une Flux séquence à
    - un sous-processus subProcess1 , et à partir de celui-ci ajouter un flux de séquence à un élément d'événement de fin cible
    Fin1
          - une tâche abstraite Task5 , et à partir de là ajouter une Flux séquence à un élément d'événement de fin cible End2

Conseils sur la façon de modéliser 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 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 événementiels pour le processus principal

  • Créer un sous-processus d'événement subProcess4
    - Créez un Timer Démarrer Event Start5(@60) , puis double-cliquez dessus pour afficher la dialogue ' Propriétés '
    et, dans le champ « Type », sélectionnez « Sous-processus d'événement non interrompu > Minuterie » ; cliquez sur le bouton OK
    - Ajouter une Flux séquence à une tâche abstraite cible Activité Tâche 6 (2000)
    - Ajouter une Flux séquence à un élément d'événement de fin cible End6
  • Créer un sous-processus d'événement subProcess5
          - Créez un Timer Démarrer Event Start6(@80) , puis double-cliquez dessus pour afficher la dialogue ' Propriétés '
    et, dans le champ « Type », sélectionnez « Interruption du sous-processus d'événement > Minuterie » ; cliquez sur le bouton OK
    - Ajouter une Flux séquence à une tâche abstraite cible Activité Tâche 7 (2000)
    - Ajouter une Flux séquence à un élément d'événement de fin cible End7

Modèle le sous-processus subProcess1 et les sous-processus événementiels inclus

  • Créer un StartEvent Start2
    - Ajouter un flux de séquence à une tâche abstraite cible Activité Tâche1(150)
    - Ajouter un Flux séquence vers une cible Fin de l'événement Fin3
  • Créer un sous-processus d'événement subProcess2
          - Créez un Timer Démarrer Event Start3(@20) , puis double-cliquez dessus pour afficher la dialogue ' Propriétés '
    et, dans le champ « Type », sélectionnez « Sous-processus d'événement non interrompu > Minuterie »
    - Ajouter une Flux séquence à une tâche abstraite cible Activité Tâche2(100)
    - Ajouter une Flux séquence à un élément d'événement de fin cible End4
  • Créer un sous-processus d'événement subProcess3
          - Créez un Timer Démarrer Event Start4(@30) , puis double-cliquez dessus pour afficher la dialogue ' Propriétés '
    et, dans le champ « Type », sélectionnez « Interruption du sous-processus d'événement > Minuterie »
    - Ajouter une Flux séquence à une tâche abstraite cible Activité Tâche 3(40)
    - Ajouter une Flux séquence à une tâche abstraite cible Activité Tâche 4(20)
    - Ajouter une Flux séquence à un élément d'événement de fin cible End5

Configurer BPSim

À l’aide de ce tableau , nous créons l’artefact dans le Paquetage de configuration 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é « Sous-processus d'événement interrompant et non interrompant » (dans le champ « Sélectionner/Créer un artefact », cliquez sur le bouton Browse. et sélectionnez son Paquetage parent et cliquez sur le bouton Ajouter un nouveau, puis saisissez le nom de l'élément et cliquez sur le bouton Enregistrer et sur le bouton OK )
Ensuite, tous les éléments BPMN seront chargés dans la fenêtre Configurer BPSim.

InterTriggerTimer pour Démarrer Événements dans le sous-processus d'événement

Dans l'arborescence à gauche de la dialogue « Configurer BPSim », développez « StartEvent ».

Pour chacun des éléments répertoriés ici, dans l'onglet « Contrôle », cliquez sur la flèche déroulante dans le champ « Nouveau paramètre... » et sélectionnez le paramètre « InterTriggerTimer ». Cliquez sur le bouton Browse. dans le champ « Valeur » pour ouvrir la dialogue « Paramètre » et sélectionnez « Constante > Numérique », puis saisissez la valeur et sélectionnez « secondes ».

  • Start3(@20) : 20 secondes
  • Start4(@30) : 30 secondes
  • Start5(@60) : 60 secondes
  • Start6(@80) : 80 secondes

Temps de traitement des tâches

Dans l’arborescence à gauche de la fenêtre Configurer BPSim, développez « Activité ».

Pour chacun des éléments répertoriés ici, dans l'onglet « Heure », cliquez sur la flèche déroulante dans le champ « Nouveau paramètre... » et sélectionnez le paramètre « ProcessingTime ». Cliquez sur le bouton Browse. dans le champ « Valeur » pour ouvrir la dialogue « Paramètre » et sélectionnez « Constante > Numérique », puis saisissez la valeur et sélectionnez « secondes ».

  • Tâche 1 (150) : 150 secondes
  • Tâche 2 (100) : 100 secondes
  • Tâche 3 (40) : 40 secondes
  • Tâche 4 (20) : 20 secondes
  • Tâche 5 (1000) : 1000 secondes
  • Tâche 6 (2000) : 2000 secondes
  • Tâche 7 (2000) : 2000 secondes

Exécuter Simulation

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

Analyse

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

Example Timing Diagram Task Lifelines in Sparx Systems Enterprise Architect

  • L'événement Start3 (@20) n'est pas interrompu, il n'a pas arrêté la tâche 1 à 20 secondes
  • L'événement Start4 (@30) est en cours d'interruption, il a arrêté Task1 et Task2 au bout de 30 secondes ; il n'a pas affecté Task5 car le niveau du processus englobant Task5 (processus principal) est supérieur à celui du sous-processus englobant Start4 ( subProcess1 )
  • L'événement Start5 (@60) n'est pas interrompu, il a démarré la tâche 6 à 60 secondes sans affecter la tâche 3 ou la tâche 5
  • L'événement Start6 (@80) est interrompu. Il a démarré la tâche 7 à 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