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
Créer Modèle BPMN
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 |
|
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 dans le champ « Valeur » pour ouvrir la dialogue « Paramètre » et sélectionnez « Constante > Numérique », puis saisissez la valeur et sélectionnez « 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 dans le champ « Valeur » pour ouvrir la dialogue « Paramètre » et sélectionnez « Constante > Numérique », puis saisissez la valeur et sélectionnez « 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.
- 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