Mittwoch, 16. März 2011

BPM-Suite und Oracle Enterprise Repository im Zusammenspiel

Um einen Service aus dem Oracle Enterprise Repository im BPMN-Prozess zu nutzen, muss dieser zunächst auf Ebene des SCA Composites bekannt gemacht werden.

Hierzu wird von rechts aus der Component Palette ein Webservice in den rechten Bereich 'External References' des Composites gezogen.

Dies ist zunächst ein Platzhalter für einen Service, das Feld WSDL URL ist noch leer. Über einen Klick auf den Butten neben dem Feld kommt man in den Auswahldialog für einen bestehenden Service.

Die obere Auswahlbox wird umgeschaltet von 'File System' auf 'Resource Palette'. Unter 'IDE Connections' -> 'Oracle Enterprise Repository' -> 'OERConnection1' -> 'Asset Types' -> 'Service' findet sich der zuvor eingetragene HrInfoService2. Dieser wird per Doppelklick übernommen.

Die Werte werden automatisch aus dem Repository übernommen. Da unser Service nur über einen Port Type verfügt, ist dieser bereits korrekt voreingestellt und der Dialog kann mit 'OK' verlassen werden.

Der Service wird daraufhin im Composite unter 'External References' dargestellt.

Weiter geht es in der BPMN-Ansicht des UrlaubsProcess. Zunächst wird per Rechter Maustaste -> 'Add Role' eine neue Swimlane eingefügt. Als Name wird hierfür der 'Automatic Handler' ausgewählt, eine Farbe kann wahlweise vergeben werden. Die neue Swimlane wird zwischen die beiden bestehenden gezogen.
Nun wird per Drag&Drop von rechts aus der 'Component Palette' eine 'Serivce Task' genau auf die Verbindung zwischen 'Antrag' und 'Genehmigung' in der neuen Swimlane gezogen. Wenn die Verbindung richtig getroffen wurde, färbt sie sich blau.

In dem sich öffnenden Dialog wird auf im Reiter 'Basic' der Name 'Resturlaub abfragen' vergeben. Im Reiter 'Implementation' wird dann die Implementation auf 'Service Call' gestellt. Über die Lupe kann dann der HRinfoService ausgewählt werden. Die einzige Operation gethrinfo2 ist dadurch voreingestellt.
Dann ist noch der Haken zu setzen bei 'Use Associations', welche über den gelben Stift rechts davon noch definiert werden müssen.

Hier wird die personalnr aus dem UrlaubsDataObject auf die Eingabevariable empid gemappt, der Rückgabewert holidaysOut kommt in den resturlaub. Dann beide Dialoge mit 'OK' schliessen.
Jetzt muss die Anwendung neu deployed werden, damit die Änderungen auf den Server gelangen.


Jetzt kann wieder ein Urlaubsantrag erstellt werden. Wichtig ist jetzt, eine vorhandene Personalnummer zu nehmen (z.B. 100), da über diese jetzt ja über den Webservice die verbleibenden Urlaubstage ermittelt werden.
Nachdem der Antragsprozess gestartet werden kann, lässt sich im Enterprise Manager der korrekte Aufruf des Webservice überprüfen. Dort kann man Audit Trail des UrlaubsProcess' die Aktivität 'Resturlaub abfragen' über das Plus [+] aufblättern und bekommt über 'Instance left the activity' die XML-Payload angezeigt. Beispielsweise werden für die Personalnummer 100 noch 240 (!) Tage Resturlaub ausgewiesen.

Über ein Login mit dem Manager-Account jcooper/Oracle123 steht der Urlaubsantrag jetzt zur Genehmigung zur Verfügung. Hier werden auch die Verbleibenden Tage Resturlaub, die der Webservice geliefert hat, angezeigt.

Herzlichen Glückwunsch! Wenn Sie bis hier gekommen sind, haben Sie unseren BPMN und SOA-Governance Handson-Workshop erfolgreich abgeschlossen. Zusammenfassend haben wir folgendes erstellt:

  • Einen Prozess zur Anlegen und Genehmigen von Urlaubsanträgen
  • Die Ergebnisse werden über einen Adapter an ein beliebiges System weitergeleitet
  • Es wurde ein Antrag auf einen Webservice in das Repository gestellt
  • Ein bestehender Webservice wird erweitert und zur Wiederverwendung bereitgestellt
  • Der Prozess wurde um den Service erweitert, der hiermit wiederverwendet wurde.
Bei Fragen hierzu sprechen Sie uns wieder an:

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.