Mittwoch, 23. Februar 2011

BPMN: Objekte mit dem Prozess verknüpfen

Weiter geht es wieder im Prozess, den man erreicht über den entsprechenden Tabreiter bzw. das durch Doppelklick im 'BPM Project Navigator' auf den 'UrlaubsProcess'.

Auf dem Prozessschritt Antrag (erstellen) rechter Mausklick, Properties. Wechseln auf Tabreiter 'Implementation' und neben dem leeren Feld 'Human Task' das grüne Plus-Symbol (+) anklicken.
Im 'Create Human Task' Dialog den Namen setzen auf 'AntragErstellen' und das Pattern auf 'Initiator' umstellen. Der Title wird 'Bitte Urlaubsdaten erfassen'.
Neben Parameters das grüne Plus-Symbol (+) klicken und aus dem Dialog 'BrowseDataObjects' das 'UrlaubDataObjekt' mit der linken Maustaste von rechts aus dem Fenster in die leere Parameterliste ziehen, loslassen und 'editable' auswählen.
Jetzt das Fenster 'Browse Data Objects' schließen, ebenso 'Create Human Task' via 'OK' - eine Human Task definition wird angelegt (noch nicht das UI). STOP! An dieser Stelle noch nicht mit 'OK' den Properties-Dialog verlassen! Statt dessen bei 'Data Associations' den Haken setzen bei 'Use Associations' und klick auf den gelben Bleistift daneben ('Edit Data Associations').

Es öffnet sich der 'Data Associations' Editor. Hier per Drag&Drop von rechts das UrlaubDataObject in das Input-Feld links vom 'urlaubsantrag'-Prozessobjekt bewegen. Im Output-Feld ist das UrlaubDataObject bereits vorbelegt.
Jetzt die beiden Fenster jeweils mit 'OK' schließen. Das Aussehen der User Task hat sich geändert: es ist der kleine Pfeil dazugekommen, weil es eine 'Initiator Task' ist.

Die gleichen Schritte werden jetzt noch einmal wiederholt für die Aktivität 'Genehmigung' mit folgenden Parametern: Name: 'AntragGenehmigen' (Pattern: Simple), Title: 'Bitte Antrag prüfen', Parameters: UrlaubDataObjekt: editable: angehakt. Dieses Mal kann auch gleich das 'Outcome Target' unten entsprechend auf 'Outcome' gesetzt werden. Über das 'Outcome'-Object wird die Genehmigung [APPROVE] oder Ablehnung [REJECT] vom Manager weitergegeben im Prozess.

Dann ist bei Data Associations wieder der Haken zu setzen bei 'Use Associations'. Mit dem Klick auf das Edit-Icon (gelber Bleistift) gelangt gelangt man wieder zu den 'Edit Data Associations'. Dieses Mal müssen auf der linken Seite alle Felder einzeln zugewiesen werden, ausgenommen das Feld Resturlaub. Dieses wird anschließend mit einer Funktion gefüllt über den fx-Button.

Hier wird zunächst der 'Mode' oben links umgestellt auf 'XPath Exp.', bei Functions werden die 'Conversion Functions' voreingestellt. Dann wird die Funktion 'string' ausgewählt und nach oben in die 'Expression' übernommen per Doppelklick oder den Button 'Insert Into Expression'.
Oben in der 'Expression' setzt man den Cursor zwischen die beiden Klammern von 'string()'. Nun wird links unten bei 'Variables' ResturlaubReturn ausgewählt und wiederum oben in den Ausdruck eingefügt, so dass dieser jetzt aussieht wie auf dem Bild oben.
Die drei Fenster werden jeweils geschlossen mit 'OK'.

In der Prozess-Grafik verschwindet auch sogleich die Warning, da diese Task nun vollständig implementiert ist. Es ist allerdings noch kein User Interface generiert worden, das folgt später. An dieser Stelle bitte wieder speichern.

Jetzt wird die Verbindung 'abgelehnt' (von Bescheid zu BescheidAbgelehnt) bearbeitet. Hierzu den Pfeil anklicken und rechte Maustaste, Properties, wechseln auf den Tab Properties, Type setzen auf 'Condition'. Über das Icon: [fx] gelangt man in den Expression Builder.


Unter 'Variables' die Variable Outcome auswählen und per Drag&Drop oder über den Button 'Insert into Expression' in das Feld 'Expression' bewegen. Hier muss es nun heissen: Outcome == "REJECT" (Wichtig!!! => vor REJECT ist ein doppeltes Gleichheitszeichen und REJECT ist von Anführungszeichen umschlossen) !). Verlassen mit zwei Mal 'OK'.
Der Manager erhält den Urlaubsantrag und gemäß des "Simple" Patterns (nur APPROVE oder REJECT wählen zu können) wählt er bei Nicht-Genehmigung REJECT und somit läuft der Prozess jetzt diesen Pfad entlang. APPROVE wird nicht modelliert, denn das entspricht dem Default/Standard Pfad.

Nun wird der Prozessschritt BescheidGenehmigt implementiert. Hierzu Rechtsklick auf die Aktivität BescheidGenehmigt und 'Properties' auswählen. Dann auf Reiter 'Implementation', Implementation Type setzen auf 'Service task' und Implementation 'Service Call' auswählen. Weiter über Lupensymbol neben dem Feld 'Name'. Hier 'AntwortSchreiben' auswählen und die Operation 'write' wird automatisch übernommen. Noch nicht OK klicken.


Jetzt wieder 'use Associations' ankreuzen und den Button (Stift) für 'edit Data Associations' anklicken. In der Mitte das Data Objekt 'Urlaubsdaten' expandieren durch [+], ebenso rechts das "Urlaubsantrag" Dataobject.
Von rechts mit gedrückter rechter Maustaste die UrlaubsAntragObjekt Attribute nach links in die korrespondierenden Felder unter 'Input' ziehen. Ausnahmen: die Attribute 'status' und 'resturlaub'. Hierhin kommen statt dessen die Data Objekts 'Outcome' und 'ResturlaubReturn', für letzteres bitte wieder die Funktion anwenden wie oben beschrieben. Beenden mit zwei Mal 'OK'.



Die Warnung im Prozessschritt verschwindet, da jetzt die Implementierung auf den Service Call zum File-Adapter gesetzt wurde. Hierdurch werden die UrlaubsDataObjekt-Inhalte und der Status (REJECT oder APPROVE) in ein Textfile geschrieben.
Die gleichen Schritte sind noch ein mal entsprechend für die Aktivität 'BescheidAbgelehnt' durchzuführen, dann alles sichern. Unser Prozess sollte jetzt keine Warndreiecke mehr verzeichnen.

Nächster Schritt ---> BPMN: Benutzeroberflächen generieren

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.