Vous pouvez également accéder à ce tutoriel en anglais et en allemand.

 

Dans cette vidéo, nous parlons du XOR-Split et du XOR-Join correspondant. Le XOR-Split se décline en deux variantes : choix explicite et choix différé. L'exemple de spécification concerne un processus métier dans lequel une décision de faire ou d'acheter est prise. Le fichier zip ci-dessous contient une spécification YAWL complète.

 

Bienvenue à nouveau dans un autre tutoriel YAWL! Cette fois, nous allons parler de la scission XOR. Dans le dernier didacticiel, nous avons discuté du fractionnement OR et cette fois, le fractionnement XOR a exactement un chemin à suivre et, à certains égards, il est un peu plus simple que le fractionnement OR. Mais il y a une différence subtile entre le soi-disant choix explicite et le choix différé. Dans le choix explicite, c'est le système qui décide de la voie à suivre en fonction de certaines données en général et dans le choix différé c'est l' environnement ou l'utilisateur qui décide de la voie à suivre. Nous allons donc utiliser un exemple concret qui se trouve dans le matériel supplémentaire et nous allons creuser dedans tout de suite. Notre écran montre quatre fenêtres différentes: en haut à gauche, nous avons l'éditeur YAWL ouvert avec une spécification du matériel supplémentaire. En haut à droite, nous avons le didacticiel matériel supplémentaire 9. Yawl ainsi que le fichier avec les ressources que vous pouvez charger dans votre moteur avant de démarrer. Sur la gauche en bas, nous avons le panneau de contrôle YAWL avec un moteur en marche et sur la droite, nous avons un centre de contrôle avec la vue admin et nous sommes connectés avec l'utilisateur lom qui est à la fois administrateur et utilisateur ordinaire. Examinons maintenant le flux de travail. La spécification commence par une tâche appelée «Formuler l'exigence». Après cette tâche, nous avons une condition ici et la condition est un endroit comme dans les filets de Petri. Si la formulation des exigences est terminée, nous trouvons un jeton ici à cet endroit et l'une des tâches «Définir le projet de développement logiciel» ou «Préparer l' approvisionnement logiciel » peut prendre ce jeton et donc le choix ici est ce qu'on appelle un choix différé car c'est le environnement qui choisira entre les deux chemins et dépend de qui va commencer lequel de ces éléments de travail en premier, puis le reste du flux de travail suivra. Ensuite, après "Projet de développement logiciel défini", nous avons la division XOR ici et c'est le choix explicite. Et le choix explicite ici est pris sur une variable appelée "Coût" ou "Coût_estimé" et si le coût est inférieur à 100 000, on ira directement à "Démarrer le projet" et s'il est supérieur ou égal à 100 000, on va d'abord besoin d'obtenir l'approbation de notre projet. Et il en va de même pour la partie inférieure de ce workflow: «Préparer l'approvisionnement logiciel» et «Préparer la commande d'achat». L'approbation au milieu est une autre division XOR. Encore une fois choix explicite et selon si l'approbation a été donnée, nous irons soit sur «Démarrer le projet» ou «Préparer le bon de commande» selon d'où nous venons. Et si ce n'est pas approuvé, nous irons jusqu'au bout. Bien! Voici donc la spécification. Voyons maintenant comment cela fonctionne si nous exécutons ceci. Je l'ai déjà téléchargé dans le moteur YAWL afin que nous puissions aller maintenant sur le côté droit de ce panneau d'administration et nous cliquons sur les cas et nous avons le didacticiel 9 ici. Je vais donc sélectionner cette spécification et lancer un cas. Maintenant, si je vais dans les files d'attente d'administration, je peux voir qu'un élément de travail est le travail répertorié dans Lorenzo Monaco, qui est l'utilisateur lom. Et je suis connecté en tant que cet utilisateur. Je trouverai donc cet élément de travail dans mes files d'attente de travail ici. Dans les files d'attente de travail, j'ai un élément de travail lancé "Formuler l'exigence". J'ouvre ceci et donc je lui donne un titre. Donc je veux faire un projet CRM et je vais nous donner une sorte de description ici et un coût estimé à mille. C'est donc mon exigence et j'accomplis la tâche. Qu'est-ce-qu'on fait maintenant? Si je rafraîchis ceci ici, je peux voir que j'ai maintenant deux éléments de travail proposés: l'un est "Définir le projet de développement logiciel" et l'autre est "Préparer l'approvisionnement logiciel". Et c'est ici avec ce choix différé que l'on peut décider de fabriquer ou d'acheter ce logiciel. Je vais donc accepter et démarrer "Définir le projet de développement logiciel" et surveiller ce qui se passe maintenant. J'accepte et démarre ceci et je le rafraîchis ici et maintenant je n'ai qu'un seul élément de travail démarré et c'est "Projet de développement logiciel défini". Donc, l'autre élément de travail a disparu car son activation a disparu. Le jeton à la place a été pris par "Définir un projet de développement logiciel ". Je le visualise et le modifie et je peux maintenant modifier le coût estimé si je pense que c'est plus cher. Je peux choisir la technologie et la compléter ici et cette fois, si je rafraîchis, je vais sur "Démarrer le projet" car ce coût est inférieur au seuil ici. Et maintenant, je peux désigner un chef de projet et terminer le dossier. Juste pour faire un autre exemple, je vais à nouveau sur les cas, lance un autre cas et vais directement dans ma file d'attente de travail et je formule une autre exigence et maintenant je veux faire un système ERP et cette fois, le coût est un peu plus élevé et encore: j'ai ces deux travaux m'ont offert. Je vais donc aller le chemin d'approvisionnement maintenant, accepter et commencer à modifier et I il. Et maintenant, je choisis un fournisseur et je termine ce travail. Maintenant, c'est "Approuver la proposition". Donc, dans la vraie vie, ce serait bien sûr une autre personne qui ferait cette «proposition d'approbation». Je vais voir la modification et je ne peux pas voir le coût estimé et disons, je ne l'approuve pas. Je termine et l'affaire est terminée. C'est ça! C'était facile, n'est-ce pas? Dans la prochaine vidéo, nous parlerons donc des sous-workflows. À plus tard!