Sie können dieses Tutorial auch auf Englisch und Französisch aufrufen.

 

In diesem Video sprechen wir über den XOR-Split und den dazugehörigen XOR-Join. Den XOR-Split gibt es in zwei Varianten: explizite Wahl und verzögerte Wahl. Die Beispielspezifikation handelt von einem Geschäftsprozess, bei dem eine Make-or-Buy-Entscheidung getroffen wird. Die ZIP-Datei unten enthält eine vollständige YAWL-Spezifikation.

 

Willkommen zurück zu einem weiteren YAWL-Tutorial! Dieses Mal werden wir über die XOR-Aufteilung sprechen. Im letzten Tutorial haben wir die OR-Aufteilung besprochen. Dieses Mal hat die XOR-Aufteilung genau einen Pfad und ist in gewisser Weise etwas einfacher als die OR-Aufteilung. Es gibt jedoch einen subtilen Unterschied zwischen der sogenannten expliziten Wahl und der verzögerten Wahl. Bei der expliziten Auswahl entscheidet das System anhand einiger Daten im Allgemeinen über den Weg und bei der verzögerten Auswahl entscheidet die Umgebung oder der Benutzer über den Weg. Wir werden also ein konkretes Beispiel verwenden, das im ergänzenden Material zu finden ist, und wir werden uns jetzt damit befassen. Unser Bildschirm zeigt vier verschiedene Fenster: Oben links haben wir den YAWL-Editor mit einer Spezifikation aus dem Zusatzmaterial geöffnet. Oben rechts haben wir das ergänzende Material-Tutorial 9 YAWL und auch die Datei mit den Ressourcen, die Sie vor dem Start in Ihre Engine laden können. Links unten haben wir das YAWL-Bedienfeld mit laufender Engine und rechts haben wir ein Kontrollzentrum mit der Administratoransicht und sind mit dem Benutzer lom angemeldet, der gleichzeitig Administrator und normaler Benutzer ist. Schauen wir uns jetzt den Workflow an. Die Spezifikation beginnt mit einer Aufgabe namens "Anforderung formulieren". Nach dieser Aufgabe haben wir hier eine Bedingung und die Bedingung ist ein Ort wie in Petri-Netzen. Wenn die Formulierung der Anforderungen abgeschlossen ist, finden wir hier an dieser Stelle ein Token, und eine der Aufgaben "Softwareentwicklungsprojekt definieren" oder "Softwarebeschaffung vorbereiten" kann dieses Token übernehmen. Daher wird hier eine verzögerte Auswahl getroffen, da es sich um die handelt Umgebung, die zwischen den beiden Pfaden wählt und davon abhängt, wer zuerst welche dieser Arbeitselemente startet, und dann folgt der Rest des Workflows. Dann haben wir nach "Defined Software Development Project" das XOR hier aufgeteilt und dies ist die explizite Wahl. Die explizite Auswahl wird hier für eine Variable namens "Kosten" oder "Geschätzte_Kosten" getroffen. Wenn die Kosten kleiner als 100.000 sind, fahren wir direkt mit "Projekt starten" fort. Wenn sie größer oder gleich 100.000 sind, werden wir zuerst fortfahren müssen Genehmigung für unser Projekt erhalten. Gleiches gilt für den unteren Teil dieses Workflows: "Softwarebeschaffung vorbereiten" und "Bestellung vorbereiten". Die Genehmigung in der Mitte ist eine weitere XOR-Aufteilung. Wieder eine explizite Auswahl und je nachdem, ob die Genehmigung erteilt wurde, gehen wir entweder zu "Projekt starten" oder "Bestellung vorbereiten", je nachdem, woher wir kamen. Und wenn es nicht genehmigt wird, werden wir einfach bis zum Ende gehen. Gut! Das ist also die Spezifikation. Nun wollen wir sehen, wie das funktioniert, wenn wir das ausführen. Ich habe es bereits in die YAWL-Engine hochgeladen, sodass wir jetzt auf der rechten Seite zu diesem Admin-Bereich gehen können. Wir klicken auf Fälle und haben hier Tutorial 9. Also werde ich diese Spezifikation auswählen und einen Fall starten. Wenn ich jetzt zu den Administratorwarteschlangen gehe, kann ich sehen, dass ein Arbeitselement die Arbeit ist, die Lorenzo Monaco, dem Benutzer lom, aufgelistet ist. Und ich bin als dieser Benutzer angemeldet. Daher finde ich dieses Arbeitselement hier in meinen Arbeitswarteschlangen. In den Arbeitswarteschlangen habe ich ein gestartetes Arbeitselement "Anforderung formulieren". Ich öffne das und gebe dem einen Titel. Ich möchte also ein CRM-Projekt durchführen und werde uns hier eine Beschreibung und geschätzte Kosten von tausend geben. Das ist meine Anforderung und ich erledige die Aufgabe. Also was passiert jetzt? Wenn ich dies hier aktualisiere, kann ich sehen, dass mir jetzt zwei Arbeitselemente angeboten werden: eines ist "Softwareentwicklungsprojekt definieren" und das andere ist "Softwarebeschaffung vorbereiten". Und hier können wir mit dieser verzögerten Entscheidung entscheiden, diese Software zu machen oder zu kaufen. Also werde ich "Softwareentwicklungsprojekt definieren" akzeptieren und starten und darauf achten, was jetzt passiert. Ich akzeptiere und starte dies und aktualisiere es hier und jetzt habe ich nur ein gestartetes Arbeitselement und dies ist "Definiertes Softwareentwicklungsprojekt". Das andere Arbeitselement ist also verschwunden, weil seine Aktivierung verschwunden ist. Das Token an der Stelle wurde von "Softwareentwicklungsprojekt definieren " übernommen. Ich sehe und bearbeite es und kann jetzt die geschätzten Kosten ändern, wenn ich denke, dass es teurer ist. Ich kann die Technologie auswählen und hier vervollständigen. Wenn ich diesmal aktualisiere, gehe ich zu "Projekt starten", da diese Kosten hier unter dem Schwellenwert liegen. Und jetzt kann ich einen Projektmanager zuweisen und den Fall abschließen. Um ein weiteres Beispiel zu nennen: Ich gehe erneut zu Fällen, starte einen anderen Fall und gehe direkt zu meiner Arbeitswarteschlange. Ich formuliere eine weitere Anforderung. Jetzt möchte ich ein ERP- System erstellen, und diesmal sind die Kosten immer wieder etwas höher: Ich habe Diese beiden Arbeitselemente wurden mir angeboten. Also gehe ich jetzt den Beschaffungspfad, akzeptiere und starte und bearbeite ihn. Und jetzt wähle ich einen Lieferanten und vervollständige dieses Arbeitselement. Jetzt heißt es "Vorschlag genehmigen". Im wirklichen Leben wäre dies natürlich eine andere Person, die diesen "Genehmigungsvorschlag" macht. Ich gehe zum Bearbeiten und kann die geschätzten Kosten nicht sehen. Sagen wir, ich genehmige sie nicht. Ich vervollständige und der Fall ist erledigt. Das ist das! Das war einfach, nicht wahr? Im nächsten Video werden wir uns also mit Unter-Workflows befassen. Bis dann!