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
Créer un Modèle BPMN
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 |
|
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 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'.
|
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 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'.
|
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.
- 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