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

 

In diesem Video betrachten wir Aufgaben mit mehreren Instanzen, bei denen eine beliebige Anzahl von Arbeitselementen für jede Aktivierung erstellt werden kann. Das Tutorial beginnt mit dem Beispiel der Auswahl von Kandidaten für eine Position. Das ergänzende Material enthält zunächst eine YAWL-Spezifikation und ist in der unten stehenden ZIP-Datei zu finden.

Das Begleitmaterial finden Sie hier.

Hallo und willkommen zurück zu einem weiteren YAWL-Tutorial! In den ersten zehn Tutorials haben wir einige grundlegende Themen zum Business Process Management System YAWL behandelt. In dem folgenden Tutorial werden wir ab heute einige erweiterte Funktionen behandeln. Die Funktionen, die wir heute diskutieren werden, sind Aufgaben mit mehreren Instanzen. Sie müssen also wissen, dass wir, wenn wir eine Workflow-Spezifikation haben, jeden kleinen Schritt als Aufgabe bezeichnen und jede Workflow-Spezifikation in Fälle instanziiert werden kann. Wir haben also Fall eins, Fall zwei und so weiter und so fort. Und im Allgemeinen haben wir für eine gewöhnliche Aufgabe, die als atomare Aufgabe bezeichnet wird, für jede Aktivierung der Aufgabe im Workflow, falls wir ein Arbeitselement haben. Normalerweise gibt es nur ein Arbeitselement für jede Aktivierung oder eine Instanz, wie wir es nennen, aber bei Aufgaben mit mehreren Instanzen können wir für jede Aktivierung der Aufgabe mit mehreren Instanzen eine beliebige Anzahl von Instanzen haben. Wir werden also mehrere Instanzaufgaben anhand eines Beispiels für einen Einstellungsprozess zeigen, bei dem wir zuerst eine Liste geeigneter Kandidaten sammeln und dann mehrere Instanzaufgaben für die Durchführung der Interviews haben. Wir haben also eine Instanz oder ein Arbeitselement pro Kandidat, um das Interview zu führen, und können diese Arbeitselemente an unsere persönlichen Spezialisten verteilen . Und nachdem alle Interviews durchgeführt wurden, können wir die Ergebnisse überprüfen. Wie üblich finden Sie das ergänzende Material unter dem folgenden Link und wir beginnen sofort. Okay! Wir beginnen hier mit dem bereits geöffneten YAWL-Bedienfeld und dem laufenden YAWL-Motor. Und wir werden hier auf das YAWL-Editor-Symbol klicken und es öffnet sich mit einer Spezifikation Tutorial11.yawl, die Sie im ergänzenden Material finden. Diese Spezifikation hat vorerst zwei Aufgaben: "Kandidatenlisten bearbeiten" und "Kandidatenliste prüfen". Und wir werden die Mehrfachinstanzaufgabe zwischen die beiden einfügen. Wir löschen hier und hier den Bogen zwischen den beiden Aufgaben. Jetzt fügen wir eine Aufgabe mit mehreren Instanzen ein. Und es ist nur in der Palette hier das zweite Symbol aus der linken atomaren Aufgabe mit mehreren Instanzen. Also klicken wir darauf und fügen es hier ein und verbinden es dann mit den anderen Aufgaben. Und jetzt haben wir das und werden dies "Interviewkandidaten" nennen. Also erstellen wir eine neue Zerlegung, die wir "Interviewkandidaten " nennen. Und da sind wir. Bevor wir die Aufgabe bearbeiten, werden wir uns die Datentypen ansehen, da wir zuerst eine Liste der Kandidaten benötigen. Und die Datentypen werden hier unter Eigenschaften der Spezifikation angegeben, und wir haben hier zwei definierte Typen. Sie können sie hier sehen, aber um sie etwas klarer zu sehen, öffnen wir die Datei Candidates.xsd und sehen uns hier die XSD-Spezifikation an. Im Wesentlichen haben wir hier zwei komplexe Typen: Der erste heißt "Candidate_type" und der zweite heißt "Candidates_type". Die erste ist eine Folge eines Namens, einer Telefonnummer und eines Kommentars. Und die zweite ist eine Folge von Kandidaten. Und der Kandidat, wie Sie hier sehen können, ist vom Kandidatentyp und hat ein unbegrenztes maxOccurs. Wir können also eine beliebige Anzahl von Kandidaten im Kandidatenstil haben. Und genau das brauchen wir für die Mehrfachinstanzaufgabe. Lassen Sie uns nun die Mehrfachinstanzaufgabe erstellen. Wir wählen die Mehrfachinstanzaufgabe im Editor aus und gehen zu Datenvariablen. Und in unseren Nettovariablen haben wir bereits eine Variable namens "Kandidaten", die vom Kandidatentyp ist, und wir haben ihr bereits einen Anfangswert gegeben, der so aussieht: Kandidat, Name, Telefonnummer, Kommentar. Derzeit sind sie alle leer. Wir werden diese Kandidatenvariable also per Drag & Drop in die Aufgabenvariablen oder die Zerlegungsvariablen der Interviewkandidaten ziehen. Und jetzt sehen wir hier eine rote Warnung : "Eine Variable muss als Mehrfachinstanz markiert sein" und das Symbol ganz rechts ist " Als Mehrfachinstanz markieren ". Also müssen wir diesen und jetzt diesen Variablennamen drücken - wie Sie gesehen haben - ändert sich von "Candidates" zu "Ccandidates_item". Und Sie können auch sehen, dass es jetzt vom Typ "Kandidat" und nicht mehr vom Typ "Kandidaten" ist. Genau das wollen wir also. Darunter hat der Editor einen Splitter und eine Verknüpfungsabfrage erstellt. Die Splitter-Abfrage lautet "für $ s in Kandidaten * return" und so weiter und so fort. Diese Splitter-Abfrage teilt die Kandidaten also im Wesentlichen in einzelne Kandidatenelemente auf. Und wenn wir mit XPath und Xquery vertraut sind, können wir hier unsere eigenen Abfragen schreiben. aber vorerst werden wir es einfach so lassen, wie es ist. Und die Verbindungs Abfrage ist in dem Ausgabe - Mapping. Also "für $ j im Interview geben Kandidaten / Kandidaten $ j zurück". Daher hat der Editor diese Verbindungsabfrage hier erneut erstellt, und wir werden sie vorerst nicht berühren , und im Wesentlichen sind wir für unsere Mehrfachinstanzaufgabe fertig. Natürlich könnten wir hier andere Variablen haben, die nicht als Mehrfachinstanz markiert sind, aber dies ist vorerst ausreichend. Wir klicken auf OK und dann ist diese Spezifikation vollständig. Jetzt werden wir es speichern und in die YAWL-Engine hochladen und einen neuen Fall starten. Okay, jetzt lass es uns ausprobieren. Wir sind derzeit hier als Benutzer angemeldet, der gleichzeitig Administrator ist. Und wir haben "Interviewkandidaten " mit der Fall-ID 36 gestartet. Wenn wir also in die Administrationswarteschlange gehen, sehen wir die Liste der Kandidaten bearbeiten - unsere erste Aufgabe hier. Und das können wir direkt für unseren Benutzer starten. Gehen Sie zur Arbeitswarteschlange, sehen Sie sich die gestartete Warteschlange an und bearbeiten Sie die Kandidatenliste. Und so können wir einen Kandidaten haben. Und jetzt können wir hier eine beliebige Anzahl von Kandidaten mit dem Pluszeichen erstellen. Also werde ich einen weiteren Kandidaten erstellen. Und ich vervollständige das. Schauen wir uns jetzt die Admin-Warteschlangen an. Wir haben hier eine Instanz "Interviewkandidaten" und wir können diese anbieten und starten. Und ich führe das Interview und beende es dann. Wir gehen zur Admin-Warteschlange. Wir bekommen hier ein weiteres Arbeitselement. Wir können damit beginnen, das Interview führen, und jetzt haben wir hier einen Punkt, der hier aufgeführt ist: "Kandidatenliste prüfen". Und wir überprüfen die Liste mit allen Interviewergebnissen. Das ist alles! Sie haben also gesehen, dass Aufgaben mit mehreren Instanzen eine gute Möglichkeit sind, die Arbeit an eine größere Anzahl von Personen zu verteilen. und in YAWL gibt es dafür mehrere Allokationsstrategien. Und das wird das Thema eines anderen Videos sein. Was wir heute für Aufgaben mit mehreren Instanzen nicht behandelt haben, sind Schwellenwerte und auch die dynamische Instanzerstellung . Wenn Sie an diesen Themen interessiert sind, hinterlassen Sie bitte unten einen Link. Bis zum nächsten Mal!