soffico GmbH Integration Services Handbuch Orchestra Designer Optimizing Integration Services

Größe: px
Ab Seite anzeigen:

Download "soffico GmbH Integration Services Handbuch Orchestra Designer Optimizing Integration Services"

Transkript

1 soffico GmbH Integration Services Handbuch Orchestra Designer Optimizing Integration Services

2 Inhaltsverzeichnis INHALTSVERZEICHNIS EINFÜHRUNG OBERFLÄCHE HAUPTMENÜ File Quality Edit View Window Help SZENARIO MENÜ SZENARIO ELEMENTE Elemente gruppieren PROTOTYPES DESIGNER- TESTPANEL Problems Engine State Process Execution Channel Service Registry System Events Logging Logging-Level WORKING AREA SZENARIO ELEMENTE XML SCHEMAS XML Schema Kontextmenü XML-Schema Designer Importieren eines XML-Schemas Message Type aus XML-Schema erzeugen MESSAGE TYPES Message Types Kontextmenü Message Type Designer Message Type Designer Detailbereich Detailanzeige Key Editor Format Editor Message Type Komponenten XML Attribute XML Element Message Type erstellen Create Message Type Import from XSD Import from CSV Import from database Database Import Options Import from Valuemation Import RFC from SAP Import IDoc type from SAP IDOC Import Mode Import from Otd or ssc MESSAGE MAPPINGS Stand Seite 2 von 470 Version 4.4

3 3.3.1 Message Mapping Kontextmenü Message Mapping Designer Message Mapping Designer - Werkzeuge Message Mapping Designer Detailbereich Node Mappings Variables Node Mapping Initialization Arten von Message Mappings Anlegen eines Orchestra Message Mappings Node Mapping (im Orchestra Mapping) Node Mapping erzeugen Node Mapping editieren Node Mapping löschen Node Mapping filtern Attribute Mappings (im Orchestra Mapping) Direktes Mapping Mapping über einfache Operationen Zuweisung fester Werte Verwenden von Variablen Variable anlegen Lokale Variablen Lokale Variablen initialisieren Input-Variablen Output-Variablen In_Out-Variablen Mapping über Java Ausdrücke Mapping über XPath Ausdrücke Lookup-Funktionalität Aufruf von Channels und Subprozessen Mapping Prototypes Mapping Prototype Gruppen Verwenden von Mapping Prototypes Alternative Ansicht verwenden (im Orchestra Mapping) Anlegen eines Target Only Mapping Anlegen eines IDOC-Mapping Anlegen eines XSLT-Mapping Anlegen eines Java-Mapping Extended Java Mapping Anlegen eines Extended Java-Mapping PROCESS MODELS Process Models Kontextmenü Process Models Designer Process Modell Designer - Werkzeuge Process Modell Designer How To Elemente eines Prozessmodells Start Events Start Events im Prozessmodell verwenden Intermediate Events Intermediate Events im Prozessmodell verwenden End Events End Events im Prozessmodell verwenden Aufruf von Szenarioelementen Szenario Elemente im Prozessmodell verwenden Activities Activities im Prozessmodell verwenden Iteractive Activities im Prozessmodell verwenden Iteration einer Activity entfernen Iterationsarten Enterprise Features Enterprise Features im Prozessmodell verwenden Stand Seite 3 von 470 Version 4.4

4 Gateways Gateways im Prozessmodell verwenden Business-Transaction Business-Transaction im Prozessmodell verwenden Kantenübergänge im Prozessmodell Prozess- und Request-Variablen Prozessvariablen anlegen Variablen im Prozessablauf Process Variable Mapping Request Variable Mapping Konfigurationseinstellungen Profile Process type Manual Recovery Logging Process State Process mode Redeployment Strategy Manual restart Properties Scheduling Businesskey CHANNELS Channels Kontextmenü Begriffsdefinitionen Serializer XML Writer CSV Writer Text Writer HL7 Message Writer Fixed length field writer EDI Message Writer HCM Writer Binary Writer Fixed column writer Type Based Serializer Excel Writer Deserializer XML Reader CSV Reader Excel Reader Text Reader Stream Parser HL7 Message Reader EDI Message Reader HCM Extended Reader Json Reader Binary Reader Type Based Deserializer PDF Reader Input-Stream-Filter Entpacken einer gezipten Datei Archivierung des eingehenden Datenstroms External file archive Konfiguration External database archive Konfiguration Umwandlung der Datenstrom Kodierung Verfügbare Input-Stream-Filter Decode first ZIP entry decode GZIP stream decode Base64 stream Stand Seite 4 von 470 Version 4.4

5 translate ebcdic to latin External file archive External database archive Byte translation filter Collapse newline filter Output-Stream-Filter Verpacken von Dateien in ein Zip-Archiv Archivierung des ausgehenden Datenstroms External file archive Konfiguration External database archive Konfiguration Umwandlung der Datenstrom-Kodierung Verfügbare Output-Stream-Filter encode with GZIP encode with Base External file archive External database archive Byte translation Filter File Locking Methode lockfile Methode check and create lockfile Methode lock directory status file Methode script to lock files Beispiel Lockscript Quelltext Inbound Channels Database Inbound Listener FTP Listener File Inbound File Inbound Filename WEBDAV Listener HTTP Inbound Get (Parameter) HTTP Inbound Post (Parameter) HTTP Inbound Post (General) MLLP Inbound Channel Antwort-Nachrichten anpassen Message Queuing Inbound JMS Messagetypen Orchestra Object Input Orchestra Object Input Beispiel SAP Inbound Outbound Channels Database Source Reader Database Target Skript-Sprache des DB-Target Channels Verarbeitungsreihenfolge Sprachelemente Database BLOB Reader Database Outbound Skriptsprache des Database outbound channels If-Anweisung while-anweisung Einfache SQL-Anweisung Auslesen von Nachrichten Direkter Zugriff per ResultSet Erweiterte Eigenschaften Database Reader Sender External Command FTP Channel FTP Command einfügen Stand Seite 5 von 470 Version 4.4

6 FTP Commands Stream-Filter im FTP Channel File Reader File Outbound HTTP.General.Output HTTP Outbound HTTP Post Message Java Outbound LDAP Reader LDAP Writer MLLP Outbound Channel Message Queuing Outbound JMS Messagetypen Multi File Reader PGP Outbound SAP Outbound Valuemation Workflow Outbound Table Mapper Data Source Konfiguration Table Mapper - Mapping Verschiedene Arten der Datenübertragung Referenz für die Beschreibungsdateien für Table Mappings Kommandodateien ENVIRONMENT ENTRIES Environment Entries Kontextmenü Database Connection Server Connection Filepath FTP Connection Global Variable LDAP Connection Naming and Directory Services (JNDI) Proxy Server SAP Client Connection SAP Server Connection TCP/IP Connection TCP/IP Endpoint Uniform Ressource Locator (URL) Message Queue Endpoint PARSER DESCRIPTIONS Parser Descriptions Kontextmenü Konfiguration des Deserializers eines Stream - Channels Parser Description erstellen Hierarchische Parser Description erstellen Einfaches Beispiel für eine Parser Descripion Komplexes Beispiel Beschreibung der Parsersprache Semantik Syntax Vordefinierte Goals, Funktionen und Prozeduren Grundlegende Ziele (Goals) Funktionen EXTERNAL ARCHIVES External Archives Kontextmenü Function archive Mapping archive Standard Java Archive SIGNALS Stand Seite 6 von 470 Version 4.4

7 3.9.1 Signals Kontextmenü Signale definieren Signale senden Signal empfangen DOCUMENT LIBRARY Document Library Kontextmenü Document Designer Document Designer - Menü Edit Color Font Style Align Help Document Designer Werkzeuge Document Designer View Document erstellen Dokumentation erstellen Dokumentation exportieren SERVICES Service-Provider Service Provider Kontextmenü Webservice Provider anlegen Webservice Provider / Operationen Operation anlegen Operation definieren Webservice Provider / Implementierung Implementierung anlegen Implementierung definieren Webservice Provider / Binding SOAP Binding Orchestra Binding Service Declaration Service Declaration Kontextmenü Webservice Declaration anlegen Webservice Declaration importieren Webservice Declaration aktualisieren Service Provider aus Webservice Declaration anlegen Webservice Declaration / Operationen Operation anlegen Operation definieren Webservice Declaration / Binding SOAP Binding Orchestra Binding SECURITY SETTINGS CREDENTIALS / USER Benutzer anlegen Zuweisung von Rollen Zuweisung von Gruppen Benutzer-Authentifizierung Serverzertifikate User / Passwort Public Key Zertifizierung Secure Shell Zertifizierung Public/Private Key Pair in PKCS GRUPPEN Gruppe anlegen Zuweisung von Rollen Stand Seite 7 von 470 Version 4.4

8 4.3 ROLLEN Rolle anlegen DEPLOYMENT DICOM CHANNEL MESSAGE TYPE MESSAGE MAPPING PROCESS MODEL ANHANG ZERTIFIKAT GENERIEREN SSL-HANDSHAKE JAVA CRYPTOGRAPHY EXTENSION ZEITFORMATE FILENAME PATTERNS FILTER SYNTAX MIME-TYP ABBILDUNGSVERZEICHNIS TABELLENVERZEICHNIS INDEX Stand Seite 8 von 470 Version 4.4

9 1 Einführung Der Orchestra Designer ist unsere komfortable Lösung zur Schnittstellen-, Service- und Prozess Modellierung. Sie können den Orchestra Designer als eine Art integrierte Entwicklungsumgebung sehen, mit welcher Sie Orchestra programmieren. Der Designer bietet Ihnen eine leicht verständliche graphische Oberfläche zur Modellierung Ihrer Schnittstellen sowie Funktionen die es Ihnen ermöglichen, diese zu testen. Abbildung 1-1 Orchestra Designer Startbild Ihr Projekt wird vom Designer als Szenario zusammengefasst. Bei einem Szenario handelt es sich um eine Art Projektmappe, in welcher alle erforderlichen Komponenten wie z. B.: Prozess Modelle, Channels, Mappings, etc. zusammengefasst werden. Wie es in den meisten Entwicklungsumgebungen auch der Fall ist, bietet Ihnen der Orchestra Designer die Möglichkeit einzelne Komponenten des Szenarios zu testen und somit die Möglichkeit frühzeitig Fehlverhalten zu erkennen und auszumerzen. Sie können Ihr Szenario auch als Ganzes testen und anschließend Schritt für Schritt die Verarbeitung auf Ihre Richtigkeit prüfen. Nach Abschluss Ihrer Entwicklungsarbeit können Sie Ihr Szenario ganz einfach über das Exportieren eines Deployment-Files in die Orchestra Runtime übertragen. Stand Seite 9 von 470 Version 4.4

10 2 Oberfläche Im folgenden Kapitel erhalten Sie detaillierte Informationen zur Oberfläche des Orchestra Designers. Hauptmenü Szenario Menü Working Area Szenario - Elemente Designer - TestPanel Prototypes Abbildung 2-1 Orchestra Aufbau Der Orchestra Designer wird in folgende Bereiche gegliedert: Hauptmenü Szenario Menü Szenario Elemente Prototypes Designer- Testpanel Working Area Stand Seite 10 von 470 Version 4.4

11 2.1 Hauptmenü Im Hauptmenü finden Sie grundlegende Operationen zur Bedienung des Orchestra Designers. Abbildung 2-2 Hauptmenü File XML Hier können Sie neue XML-Dokumente anlegen oder existierende öffnen. Szenario Hier können Sie neue Szenarien anlegen, bestehende kopieren und existierende öffnen. Geöffnetes Szenario Hier können Sie das aktuell geöffnete Szenarien-Element oder alle Elemente des Szenarios speichern, sowie neue Szenarien-Elemente erstellen. Export Hier können Sie das deployment file sowie die Szenario- Dokumentation exportieren. Abbildung 2-3 File-Menü Import Hier können Sie existierende Message types, mappings, Service declarations, Signal declarations und Table- Mapper-Definitionen importieren. Properties Hier können Sie die Eigenschaften und Sicherheitseinstellungen des aktuell geöffneten Szenarios bearbeiten. Media Hier können Sie des geöffnete Szenario- Element als Bilddatei speichern od. ausdrucken. Stand Seite 11 von 470 Version 4.4

12 2.1.2 Quality Validate Hier können Sie das aktuell geöffnete Szenario-Element oder das gesamte Szenario validieren. Abbildung 2-4 Quality-Menü Testing Hier können Sie das Test- Panel ein/ausblenden, sowie das aktuell geöffnete Szenario-Element testen Edit Delete Hier können Sie das aktuell selektierte - Element löschen. Abbildung 2-5 Edit-Menü Properties Hier können Sie die Eigenschaften des aktuell geöffneten Szenario- Elements anzeigen View Zoom Hier können Sie hinein und heraus zoomen. Drawing area Hier können Sie die Größe der Drawing area verändern Grid Hier können Sie die Rastergröße verändern und das Raster ein oder ausblenden. Abbildung 2-6 View-Menü Look&Feel Hier können Sie das Orchestra Designer Layout ändern. Stand Seite 12 von 470 Version 4.4

13 2.1.5 Window Window Hier können Sie zwischen den Tabs im Hauptbereich hin und her springen, das aktuell selektierte Register oder alle Register schließen. Abbildung 2-7 Window-Menü Help About Hier können Sie sich die Version Ihres Orchestra Designers anzeigen lassen. Abbildung 2-8 Help-Menü Preferences Hier können Sie generelle Einstellungen Ihres Orchestra Designers einsehen und bearbeiten. Stand Seite 13 von 470 Version 4.4

14 2.2 Szenario Menü Im Szenario Menü finden Sie grundlegende Operationen zur Bearbeitung des geöffneten Szenarios. Deployment file erzeugen Szenario öffnen Neues Szenario erstellen Geöffnetes Szenario-Element testen Test-Panel anzeigen / verbergen Abbildung 2-9 Szenario Menü Geöffnetes Szenario-Element speichern Alle Szenario- Elemente speichern Zoom In Zoom Out Geöffnetes Szenario-Element drucken Stand Seite 14 von 470 Version 4.4

15 2.3 Szenario Elemente Im Bereich der Szenario Elemente werden Ihnen alle Elemente des geöffneten Szenarios in einer Baumstruktur angezeigt. Abbildung 2-10 Szenario Elemente Hinweis: Eine detaillierte Beschreibung der einzelnen Szenario-Elemente finden Sie im Kapitel 3 Szenario Elemente. Stand Seite 15 von 470 Version 4.4

16 2.3.1 Elemente gruppieren Im unteren Menübereich finden Sie immer allgemeine Aktivitäten der für alle Elemente zur Verfügung steht. Hier können Sie Gruppen anlegen und bearbeiten. Abbildung 2-11 Allgemeiner Teil Wenn Sie eine Gruppierung der Elemente vornehmen möchten, klicken Sie auf Add new group. Anschließend wird Ihnen das Create group - Formular angezeigt. Hier können Sie jetzt den Gruppennamen und eine Beschreibung angeben. Zum Speichern klicken Sie auf OK. Abbildung 2-12 Create Group Nach dem Sie ein Gruppenelement erzeugt haben, können Sie anschließend einen Rechtsklick auf die angelegte Gruppe ausführen, haben Sie die Möglichkeit, mit Fill up der Gruppe Elemente hinzuzufügen. Abbildung 2-13 Fill up Group Stand Seite 16 von 470 Version 4.4

17 2.4 Prototypes Den Bereich der Prototypes finden Sie im Orchestra Designer links unten. Abbildung 2-14 Prototypes Die Mapping-Prototypen enthalten Funktionen die innerhalb von Message Mappings verwendet werden können. Die Process Prototypes enthalten sogenannte Flow Nodes, d.h. Elemente die in einem Prozess Modell verwendet werden Hinweis: Eine detaillierte Beschreibung der einzelnen Mapping-Prototypes finden Sie im Kapitel Mapping Prototypes. Stand Seite 17 von 470 Version 4.4

18 2.5 Designer- Testpanel Das Designer-Testpanel finden Sie im rechten unteren Bereich des Orchestra Designers. Abbildung 2-15 Designer-Testpanel Orchestra bietet Ihnen eine Vielzahl an Möglichkeiten um mögliche Fehler in Ihrem Szenario ausfindig zu machen, bzw. ein Szenario vorab zu testen, um so den Entwicklungsaufwand möglichst gering zu halten. Die Test Engine dient hierbei dazu, das Szenario gesamtheitlich zu testen. Tatsächlich wird hier dieselbe Engine ausgeführt die auch in der Orchestra-Runtime im Application-Server läuft. Das Designer Testpanel wird in folgende Bereiche gegliedert: Problems Engine State Process Execution Channel Service Registry System Events Logging In den folgenden Kapiteln erhalten Sie eine kurze Beschreibung der einzelnen Elemente. Stand Seite 18 von 470 Version 4.4

19 2.5.1 Problems Im Register Problems des Designer-Testpanels werden Ihnen während der Entwicklung eines Szenarios aufgetretene Probleme angezeigt. Dieser Bereich des Orchestra Designers soll Sie bei Ihrer Arbeit unterstützen und Ihnen helfen, Fehler im Szenario zu beseitigen. Wenn Sie Ihr Szenario mit Validate all/current element überprüft haben, werden hier alle aufgetretenen Fehler gelistet. Wählen Sie ein Problem mit Doppelklick aus und Sie gelangen direkt in das Element das fehlerhaft ist. Diese Liste wird auch mit jedem Speichern eines Szenarioelements aktualisiert. Art des Problems Problemherkunft Problembeschreibung Abbildung 2-16 Problems (Designer-Testpanel) Über die einzelnen Einträge können Sie direkt an die Stelle gelangen, an welcher das Problem identifiziert wurde und dieses beheben. Stand Seite 19 von 470 Version 4.4

20 2.5.2 Engine State Im Register Engine State des Designer-Testpanels können Sie die Orchestra Testengine starten / beenden, sowie die Eigenschaften der Testengine bearbeiten. Zustand der Engine http Port der Engine https Port der Engine https Zertifikat Port der Engine Abbildung 2-17 Engine State (Designer-Testpanel) Start / Stop Engine Testmodus Importierte fremde Szenarien, die zum Test notwendig sind. (Zum Beispiel bei Partnerverwaltung) Cell-Port > Kommunikation zwischen verschiedenen Designern Engine state test engine deaktiviert test engine befindet sich in einem Statusübergang test engine erfolgreich gestartet Stand Seite 20 von 470 Version 4.4

21 2.5.3 Process Execution Im Register Process execution des Designer-Testpanels erhalten Sie die detaillierte Informationen über die in der Testengine abgelaufenen Prozesse. Hier können Sie bereits an der Spalte State erkennen, ob der Prozessschritt erfolgreich verarbeitet werden konnte. Prozessbezeichnung Prozess- Aktion Prozess- Aktivität Prozess- Quelle Status des Prozesses Prozess- Token Prozess- Startzeitpunkt Prozess- Information Abbildung 2-18 Process execution (Designer-Testpanel) Prozess- Variablen Aktivitäts- Variablen Prozessliste leeren Activities sind die Elemente des Prozessmodells, also insbesondere die Elemente der BPMN (Business process modelling notation). Die Ausführung einer Activity kann in verschiedene Aktionen (die Actions) aufgeteilt sein, insbesondere EnterActivity und LeaveActivity. Token: Jedes Mal wenn bei der Ausführung eines Prozessmodells ein Kontrollfluss erzeugt wird, wird für jede aktive Kante ein sogenanntes TOKEN (engl. Gutschein, Kürzel) erstellt, welches die Schritte des Prozessmodells der Reihe nach durchläuft. Das ist insbesondere der Fall, wenn eine Prozessinstanz oder ein paralleles OR-Gateway erzeugt wird. (In den meisten Fällen wird nur ein Token erzeugt) Die externe Darstellung im Monitor setzt sich aus einem Präfix (VOLATILE oder PERSISTENT) und einer eindeutigen ID zusammen. Auch bei dem Ausführungsmodus Volatile with revovery wird das Präfix Volatile verwendet. Stand Seite 21 von 470 Version 4.4

22 Tabelle 2-1 Token - Prozessmodus Prozessmodus Volatile Volatile with Recovery Persistent Bedeutung Flüchtig, Keine Speicherung der einzelnen Prozessschritte Nur der 1. Prozessschritt wird gespeichert (Dateneingang, Start) Alle Prozessschritte werden gespeichert Im unteren Teil des Registers werden Ihnen Prozessvariablen (unten links) und Aktivitätsvariablen (unten rechts) angezeigt. Diese beiden Felder können aber auch bei manchen Prozessschritten leer sein. Sie können Sich hier über einen Klick auf die Schaltfläche [ ] den jeweiligen Inhalt der verarbeiteten Message anzeigen lassen. In dem daraufhin erscheinenden Fenster sehen Sie dann den Inhalt der Message und die Message Properties. Abbildung 2-19 Process execution / Content Message(Designer-Testpanel Durch einen Doppelklick auf einen Prozess werden Ihnen alle Details des abgelaufenen Prozesses in einem extra Fenster angezeigt. Sie können hier auch direkt mit den Pfeil-Schaltflächen die Prozessliste durchlaufen. Abbildung 2-20 Process execution / Process details(designer-testpanel) Stand Seite 22 von 470 Version 4.4

23 2.5.4 Channel Im Register Channel des Designer-Testpanels sehen Sie alle Channels, welche das gestartete Szenario zur Verfügung stellt, sowie dessen Status, Channelnamen und Channel-Typ. Status des Channels Zugehöriges Szenario Channel- Bezeichnung Channelart Nachricht Abbildung 2-21 Channel (Designer-Testpanel) Hier haben Sie die Möglichkeit den jeweiligen Channel zu aktualisieren, zu starten oder anzuhalten. Über einen Doppelklick auf einen Channel oder über Markieren des Channels und Betätigen der Schaltfläche [ ] können Sie die Detailinformationen des Channels abrufen. Abbildung 2-22 Channel / Adapter State (Designer-Testpanel) Stand Seite 23 von 470 Version 4.4

24 2.5.5 Service Registry Im Register Service Registry des Designer-Testpanels werden Ihnen von dem Szenario angebotenen Webservices angezeigt. Das ist dann der Fall, wenn es Szenarioelemente vom Typ Service Provider gibt. Namen des Services Beschreibung des Services URL zur WSDL des Services Abbildung 2-23 Service registry (Designer-Testpanel) System Events Im Register System Events des Designer-Testpanels werden Ihnen alle vom System erzeugten Ereignisse angezeigt. Im Gegensatz zu den System Events im Monitor werden hier in der Regel nur Fehler protokolliert (zb. wenn ein Environment Entrie ungültig ist). Art des System Events Aktion des System Events Zeitstempel des System Events Herkunft System Events Beschreibung des System Events System Event - Abbildung 2-24 System events (Designer-Testpanel) Liste leeren Stand Seite 24 von 470 Version 4.4

25 2.5.7 Logging Im Register Logging des Designer-Testpanels können Sie sich die Logging Einträge des Designers abhängig von der gewählten Logging-Tiefe anzeigen lassen. Abbildung 2-25 Logging (Designer-Testpanel) Logging-Level SEVERE WARNING INFO CONFIG FINE FINER FINEST ALL - Log severe failures - potential problems and above - information messages and above - static configuration messages and above - providing tracing information and above - providing a fairly detailed tracing message and above - indicates highly detailed tracing message and above - log everything Stand Seite 25 von 470 Version 4.4

26 2.6 Working Area Die Working Area finden Sie im rechten oberen Bereich des Orchestra Designers. Hier werden Ihnen die Szenario-Elemente zur detaillierten Bearbeitung angezeigt. Abbildung 2-26 Working Area Working Area Stand Seite 26 von 470 Version 4.4

27 3 Szenario Elemente In diesem Kapitel erhalten Sie detaillierte Informationen zu den einzelnen Szenario Elementen, welche Ihnen der Orchestra Designer zur Verfügung stellt. Es stehen Ihnen folgenden Szenario Elemente zur Verfügung: XML Schemas Message Types Message Mappings Process Models Channels Environment Entries Parser Descriptions External Archives Document Library Signals Service Declaration Service Provider 3.1 XML Schemas Ein XML-Schema beinhaltet Definitionen von einem oder mehreren Elementen und Strukturdefinitionen (Typen). Ein XML Schema liegt extern in der Regel als Datei mit der Endung.xsd (XML Schema Definition) vor. In Orchestra können Sie solche XML-Schemas verwenden um daraus Message Types zu extrahieren. Stand Seite 27 von 470 Version 4.4

28 3.1.1 XML Schema Kontextmenü Im Bereich XML Schemas der Szenario Elemente befinden sich alle zu diesem Szenario gehörigen XML-Schemas. Hier können Sie über einen Rechtsklick auf das Element ein Menü öffnen (siehe Abbildung). In diesem Menü erhalten Sie die Möglichkeit neue XML Schemas zu importieren und die XML Schema Elemente innerhalb der Baumstruktur zu gruppieren. Haben Sie einen Rechtsklick auf ein vorhandenes XML- Schema ausgeführt, so erhalten Sie zusätzlich die Möglichkeit dieses zu öffnen, die Eigenschaften des Elements zu bearbeiten oder es zu löschen. Abbildung 3-1 XML-Schemas (Szenario Element) XML-Schema Designer Base Settings: Name und Beschreibung des XML-Schemas Abbildung 3-2 XML-Schema Designer Schema- Editor Stand Seite 28 von 470 Version 4.4

29 3.1.3 Importieren eines XML-Schemas Zum Importieren eines XML-Schemas aus dem Dateisystem gehen Sie wie folgt vor: 1. Öffnen Sie über einen Rechtsklick auf XML Schemas das Kontextmenü. 2. Klicken Sie auf [import file]. 3. Suchen Sie die zu importierende xsd- Datei in Ihrem Dateisystem und klicken Sie auf [Öffnen]. Wenn Ihre XML-Schema Definition erfolgreich importiert wurde, sehen Sie jetzt ein Register in der Working Area, welches die importierte XML-Schema Definition enthält. Hier haben Sie die Möglichkeit das XML-Schema und die Base settings des Schemas direkt zu bearbeiten. Base settings: Name und Beschreibung des XML-Schemas Abbildung 3-3 XML Schema XML-Schema Stand Seite 29 von 470 Version 4.4

30 3.1.4 Message Type aus XML-Schema erzeugen Damit die Definitionen aus einem XML-Schema innerhalb von Orchestra als Message Type verwendbar sind, müssen Sie den Message Type aus dem XML-Schema erzeugen. Zum Erzeugen eines Message Types aus einer XML-Schema Definition gehen Sie wie folgt vor: 1. Wählen Sie das gewünschte Schema im Bereich Szenario Elemente > XML Schemas aus. 2. Öffnen Sie über einen Rechtsklick auf das gewünschte XML Schema das Kontextmenü. 3. Wählen Sie den Eintrag [expand to message type] aus der Liste aus. 4. Es öffnet sich das Fenster [Expand schema element to message type]. Die vorhandenen Elemente und Typen werden automatisch angezeigt. Wählen Sie hier die gewünschte Element- oder Strukturdefinition und klicken Sie auf [next]. Verwendete Elemente des XML Schemas Verwendete Typen des XML Schemas Abbildung 3-4 Expand schema element to message type 5. Wählen Sie anschießend die gewünschte Elementdefinition oder den Message Type aus und klicken Sie auf [next]. 6. Im letzten Schritt können Sie auswählen, ob ein neuer Message Type angelegt werden oder ein bestehender überschrieben werden soll. Klicken Sie nun auf [finish]. 7. Abschließend generiert Orchestra automatisch den ausgewählten Message Type. Stand Seite 30 von 470 Version 4.4

31 Base Settings: Name und Beschreibung Erzeugter Message Type Abbildung 3-5 Erzeugter Message Type Hinweis: Genauere Informationen zum Thema Message Type finden Sie im Kapitel 3.2 Message Types. Stand Seite 31 von 470 Version 4.4

32 3.2 Message Types Ein Message Type beschreibt die Struktur einer Nachricht. Im Orchestra Designer werden Message Types an verschiedenen Stellen verwendet: Ein Mapping benötigt Message Types um die Struktur der Quell- und Zielnachrichten zu kennen. Bei manchen Input-Channels werden Message Types benötigt um korrekte XML- Nachrichten erzeugen zu können. Z.B. benötigt der CSV-Deserializer die Typdefinition um die richtige XML-Struktur zu erzeugen. Bei manchen Output-Channels werden Message Typen benutzt weil die Struktur der Nachricht bekannt sein muss. Z.B. beschreibt im DBTarget-Channel der Message Type die Struktur der Zieltabellen. Abbildung 3-6 Message Type Ansicht Eine genaue Erläuterung der eben aufgelisteten Komponenten erhalten Sie in den folgenden Kapiteln. Stand Seite 32 von 470 Version 4.4

33 3.2.1 Message Types Kontextmenü Abbildung 3-7 Message Types (Szenario Element) Im Bereich Message Types der Szenario Elemente befinden sich alle zu diesem Szenario gehörigen Message Types. Hier können Sie über einen Rechtsklick auf das Element ein Menü öffnen (siehe Abbildung). In diesem Menü erhalten Sie die Möglichkeit neue Message Types zu erstellen oder zu importieren und die Message Type Elemente innerhalb der Baumstruktur zu gruppieren. Haben Sie einen Rechtsklick auf einen vorhandenen Message Type ausgeführt, so erhalten Sie zusätzlich die Möglichkeit diesen zu öffnen, die Eigenschaften des Elements zu bearbeiten oder es zu löschen Message Type Designer Im Orchestra Designer steht Ihnen eine grafische Oberfläche zur Verfügung, welche es Ihnen ermöglicht einen Message Type zu erstellen und zu bearbeiten. Type Editor Detailbereich Abbildung 3-8 Message Type Designer Stand Seite 33 von 470 Version 4.4

34 Der Type Editor dient zur Bearbeitung und Anzeige Ihres erstellten Message Types. Element: Die Spalte Element veranschaulicht Ihnen den Aufbau des angelegten Message Types. Hier können Sie beliebig viele Elemente und Attribute hinzufügen. Hinweis: Informationen zum Erstellen eines XML Attributs finden Sie im Kapitel und zur Erstellung eines Elements im Kapitel Cardinality: Diese Spalte zeigt Ihnen, wie oft ein einzelnes Element vorkommt. 0:1 Element wurde im Detailbereich als optional definiert 1:1 verpflichtendes Element (Mandatory) 0:* Element optional, kann beliebig oft vorkommen 1:* verpflichtendes Element, kann beliebig oft vorkommen Basetype: Die Spalte Base Type ermöglicht Ihnen einen Datentyp für Ihr Element zu wählen. (zum Beispiel String, int, long ) Description: Hier können Sie eine im Detailbereich erstellte Beschreibung eines Elements sehen, oder direkt eingeben. Namespace: Bei Erstellung eines Messagetypes kann es nur einen Namespace geben, der im obersten Root-element definiert wird Message Type Designer Detailbereich Der Message Type Designer Detailbereich wird in folgende Bereiche gegliedert: Detailanzeige Format Editor Key Editor Detailanzeige In der Detailanzeige können Sie alle relevanten Informationen eines ausgewählten Elements sehen und bearbeiten, die dann im Type Editor angezeigt werden. Das Default-format bestimmt beim Einlesen einer Datei den entsprechenden Deserializer bzw. beim Schreiben einer Datei den entsprechenden Serializer. Stand Seite 34 von 470 Version 4.4

35 Abbildung 3-9 Message Type Designer - Detailbereich Key Editor Im Eigenschaftenbereich können Sie für ein ausgewähltes XML-Element Schlüssel vergeben. Klicken Sie hierzu auf Edit keys. Mit Add key können Sie nun einen Schlüssel definieren: Abbildung 3-10 Message Type Designer - Keys Stand Seite 35 von 470 Version 4.4

36 Format Editor Der Format Editor wird beim Einlesen einer odt- oder csv-datei relevant. Das Defaultformat ist hier Internal. Somit werden die Felder des Format Editors automatisch befüllt. Override delimiters: Bei Auswahl können für die verschiedenen Level (Tiefen) der Elemente Befehle eingegeben werden. Escape Sequences: Angaben, welche Zeichen beim Splitten während des Lesens intern geschrieben werden. Abbildung 3-11 Message Type Designer Format Editor Message Type Komponenten In diesem Kapitel finden Sie eine genaue Erklärung der einzelnen Elemente, aus welchen sich ein Message Type zusammensetzt. Ein Message Type setzt sich aus folgenden Komponenten zusammen: XML Attribut XML Element In den folgenden Kapiteln erhalten Sie eine Beschreibung der einzelnen Elemente. Stand Seite 36 von 470 Version 4.4

37 XML Attribute XML-Attribut-Definitionen beschreiben in der Regel Meta-Informationen zu Elementen. Um die Eigenschaften eines Elementes zu sehen, wählen Sie das gewünschte Element aus und die Eigenschaften werden rechts im Detailbereich angezeigt. Defaultformat Attributname Attribut ist optional Attributtyp Abbildung 3-12 XML-Attribut-Eigenschaften Pfadname des Knotens Um einem Message Type ein XML Attribut hinzuzufügen gehen Sie wie folgt vor: 1. Machen Sie einen Rechtsklick auf das Element, zu welchen Sie ein Attribut hinzufügen möchten. Wählen Sie add XML attribute. 2. Das Element enthält jetzt ein neues Attribut mit der 3. Wählen Sie das neue Attribut aus. Nun können Sie das Attribut im Detailbereich bearbeiten. (Siehe Abbildung 3-12 XML-Attribut-Eigenschaften) Stand Seite 37 von 470 Version 4.4

38 XML Element XML Elemente können sich aus weiteren einfachen sowie komplexen Elementen zusammensetzen. Ein Element ist automatisch einfach (simple), wenn es keine Kinder besitzt. Jedes XML-Dokument hat ein Wurzelelement (root), das alle anderen Elemente (complex und simple) enthält: Defaultformat Elementname Abbildung 3-13 XML- Element -Eigenschaften Um einem Message Type ein XML Element hinzuzufügen gehen Sie wie folgt vor: 1. Wählen Sie das Element aus, zu welchem Sie ein XML Element hinzufügen möchten. 2. Durch Rechtsklick append child können Sie ein XML Element hinzufügen. 3. Das Element enthält jetzt ein neues XML Element mit der Bezeichnung newnode. 4. Nun können Sie dieses rechts im Eigenschaftenfenster bearbeiten. 5. Um ein XML Element an einer bestimmten Stelle zu platzieren, wählen Sie die Stelle aus. Durch Rechtsklick insert before und insert after können Sie das XML Element vor oder nach dem ausgewählten Element einfügen. Stand Seite 38 von 470 Version 4.4

39 3.2.4 Message Type erstellen Der Orchestra Designer bieten Ihnen mehrere Möglichkeiten zur Definition von Message Types. Diese Möglichkeiten sind: Create message type (Erstellen von Hand) Import from XSD Import from CSV Import from otd or ssc Import from database Import from valuemation Import rfc from SAP Import idoc from SAP Abbildung 3-14 Message Type erzeugen Eine detaillierte Anleitung der einzelnen Möglichkeiten zum Erstellen vom Message Types finden Sie in den folgenden Unterkapiteln. Stand Seite 39 von 470 Version 4.4

40 Create Message Type Der Orchestra Designer bietet Ihnen die Möglichkeit einen Message Type von Hand anzulegen. Um einen Message Type anzulegen gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Types über einen Rechtsklick auf Message Types. 2. Wählen Sie den Eintrag [create message type]. 3. Sie bekommen nun das Fenster [Create new message type] angezeigt. Hier können Sie Ihren Message Type nun einen Name, so wie eine Beschreibung geben. Abbildung 3-15 Create new message type 4. Klicken Sie abschließend auf [finish] um den neuen Message Type zu erstellten. 5. Der neu angelegte Message Type wird nun im Message Type Designer geöffnet. Hinweis: Nähere Informationen zu den einzelnem Elementen eines Message Types erhalten Sie im Kapitel Message Type Komponenten Informationen zum Message Type Designer erhalten Sie im Kapitel Message Type Designer. Stand Seite 40 von 470 Version 4.4

41 Import from XSD Im Orchester Designer können Sie einen Message Type aus einer XSD-Datei von Ihrem Dateisystem importieren. Der entsprechende Message Type wird anschließend automatisch generiert. Achtung: Damit eine XSD importiert werden kann, müssen bestimmte Randbedingungen erfüllt sein: Es darf nur genau ein Element definiert sein. Im Normalfall enthält eine XSD-Datei mehrere Element- und Typdefinitionen. In diesem Fall kann sie nicht als Typ sondern nur als XML-Schema importiert werden (siehe Kapitel Importieren eines XML-Schemas). XSD-Dateien können nur als Typ importieren, wenn der Typ vorher aus Orchestra exportiert worden ist. Um einen Message Type aus einer XSD-Datei erzeugen zu lassen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Types über einen Rechtsklick auf Message Types. 2. Wählen Sie den Eintrag import from xsd. 3. Suchen Sie die zu importierende xsd-datei in Ihrem Dateisystem und klicken Sie auf Öffnen. 4. Nach dem Import sehen Sie im Bereich Scenario Elements > Message Types den eben importierten Message Type. Abbildung 3-16 Via XSD Import erstellter Message Type Stand Seite 41 von 470 Version 4.4

42 Import from CSV Im Orchester Designer können Sie einen Message Type aus einer CSV-Datei von Ihrem Dateisystem importieren. Der entsprechende Message Type wird anschließend automatisch generiert. Um einen Message Type aus einer CSV-Datei erzeugen zu lassen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Types über einen Rechtsklick auf Message Types. 2. Wählen Sie den Eintrag import from csv. 3. Suchen Sie die zu importierende csv-datei in Ihrem Dateisystem und klicken Sie auf next. Abbildung 3-17 CSV Import 4. Im folgenden Dialog [CSV-Settings] müssen Sie noch die Einstellungen für den zu erstellenden Message Type angeben. Tragen Sie hier einen Namen, ein Escape- und ein Seperator-Zeichen ein und wählen Sie das Encoding. Hier sehen Sie nun auch direkt eine Preview-Ansicht. 5. Klicken Sie abschliessend auf [finish]. 6. Nach dem Import sehen Sie im Bereich Scenario Elements > Message Types den eben importierten Message Type. Stand Seite 42 von 470 Version 4.4

43 Abbildung 3-18 Via CSV Import erstellter Message Type Import from database Im Orchester Designer können Sie einen Message Type aus einer Datenbank importieren. Hinweis: Damit Sie einen Message Type aus einer Datenbank importieren können, benötigen Sie ein Environment Entry für die Datenbank-Verbindung. Wie Sie ein Environment Entry definieren können, können Sie im Kapitel Database Connection nachlesen. Ebenso können Sie aber auch das benötigte Environment Entry während des Importvorgangs definieren, dazu klicken Sie auf die Schaltfläche [New], welche sich neben dem Feld für das Environment Entry befindet. Hier haben Sie u.a. auch die Möglichkeit bestehende Entries über [Edit] zu ändern. Um einen Message Type aus einer Datenbank erzeugen zu lassen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Types über einen Rechtsklick auf Message Types. 2. Wählen Sie den Eintrag [import from database]. Stand Seite 43 von 470 Version 4.4

44 Message Type - Name Message Type - Namespace Environment Entry für die Datenbankverbindung anlegen / bearbeiten Environment Entry für die Datenbankverbindung Abbildung 3-19 Import Message Type from Database Bestehenden Message Type überschreiben 3. Geben Sie dem Message Type einen Namen, wählen eine Datenbank (bzw. das Environment Entry für die Datenbankverbindung) aus und klicken Sie auf [next]. Hinweis: Es ist möglich, einen bestehenden Message Type zu überschreiben (wenn z.b. neue Spalten zu einer Datenbanktabelle hinzugefügt worden sind), ohne einen neuen anzulegen. Ebenso kann man an dieser Stelle auch einen XML-Namespace angeben in dem die XML-Elemente des Datentyps liegen sollen; in der Regel wird man dieses Feld leer lassen. 4. Im folgenden Dialog sehen Sie auf der rechten Seite die verfügbaren Tabellen. Durch einen Doppelklick auf die Tabelle (oder markieren der Tabelle) und klicken der Schaltfläche [<<] wird eine Tabelle auf der linken Seite als Kind Element des aktuell selektierten Elementes eingefügt. Auf der rechten Seite sehen Sie anschließend alle Tabellen, die durch Fremdschlüsselbeziehungen mit dem aktuell ausgewählten Element verbunden sind. Hinweis: Wenn auf der Datenbank keine Fremdschlüssel angelegt sind, dann kann man die Checkbox [all tables] auswählen um alle verfügbaren Tabellen zu sehen. Message Type Root-Element Stand Seite 44 von 470 Version 4.4

45 Message Type Kind-Element Alle Tabellen anzeigen Vorhandene Tabellen-Elemente/ Vorhandene Fremdschlüssel- Tabellen Abbildung 3-20 Import Message Type from Database Dictionary 7. Nach dem Sie den Message Type aus der Datenbank definiert haben klicken Sie auf [next]. 8. Im letzten Dialogfenster können Sie Import Optionen für die Generierung des Datentyps auswählen.(siehe Kapitel Databse Import Options) Abbildung 3-21 Import Message Type from Database Import Options Stand Seite 45 von 470 Version 4.4

46 Database Import Options create mode attribute Die Datenbank Import Option create mode attribute erzeugt ein XML-Attribut mode in jeder Elementdefinition. Diese Option ist nur aus Gründen der Kompatibilität zu älteren Versionen vorhanden, in der Regel wird diese Option nicht gesetzt. mark single int keys as auto Die Datenbank Import Option mark single int keys as auto sorgt dafür, dass in dem erzeugten Message Type für Schlüssel die aus nur einem Feld mit ganzzahligem Datentyp bestehen, eine Anmerkung (Annotation) eingetragen wird. Hinweis: Wenn ein DBTarget-Channel erzeugt wird, wird mark single int keys as auto verwendet, um den Channel so zu konfigurieren, dass dieses Feld automatisch mit einem neuen eindeutigen Schlüsselwert befüllt wird, wenn ein Datensatz neu angelegt wird Import from Valuemation Im Orchester Designer können Sie einen Message Type aus dem Valuemation- Repository importieren. (Valuemation ist eine integrierte Produktlinie für Business Service Management der USU AG.) Hinweis: Damit Sie einen Message Type aus einer Datenbank importieren können, benötigen Sie ein Environment Entry für die Datenbank-Verbindung. Wie Sie ein Environment Entry definieren können, können Sie im Kapitel Database Connection nachlesen. Ebenso können Sie aber auch das benötigte Environment Entry während des Importvorgangs definieren, dazu klicken Sie auf die Schaltfläche [New], welche sich neben dem Feld für das Environment Entry befindet. Hier haben Sie u.a. auch die Möglichkeit bestehende Entries über [Edit] zu ändern. Um einen Message Type aus Valuemation erzeugen zu lassen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Types über einen Rechtsklick auf Message Types. 2. Wählen Sie den Eintrag [import from Valuemation]. Stand Seite 46 von 470 Version 4.4

47 Message Type - Namespace Message Type - Namespace Environment Entry für die Datenbankverbindung anlegen / bearbeiten Environment Entry für die Datenbankverbindung Bestehenden Message Type überschreiben Abbildung 3-22 Import Message Type from Valuemation 3. Geben Sie dem Message Type einen Namen, wählen eine Datenbank (bzw. das Environment Entry für die Datenbankverbindung zu Valuemation) aus und klicken Sie auf [next]. Hinweis: Es ist möglich, einen bestehenden Message Type zu überschreiben (wenn z.b. neue Spalten zu einer Datenbanktabelle hinzugefügt worden sind) oder einen neuen anzulegen. Ebenso kann man an dieser Stelle auch einen XML-Namespace angeben in dem die XML-Elemente des Datentyps liegen sollen; in der Regel wird man dieses Feld leer lassen. 4. Beim Import from Valuemation wählen Sie genau wie beim Import from database zuerst eine Datenbankverbindung aus und selektieren anschließend die Business Objects, die als Message Type importiert werden sollen. Stand Seite 47 von 470 Version 4.4

48 Abbildung 3-23 Import Message Type from Valuemation 5. Anschließend können Sie die Lookup-Statements setzen bzw. löschen. Dies ist an dieser Stelle nötig, weil ggf. zusätzliche Parameterattribute (die Fachschlüssel des Zielobjekts) in den Message type eingefügt werden. Fremdschlüssel Attribut aus Valuemation Referenziertes Business Object aus Valuemation Business Objects aus Valuemation Lookup Statement Abbildung 3-24 Import Message Type from Valuemation Lookup statements Stand Seite 48 von 470 Version 4.4

49 Import RFC from SAP Im Orchester Designer können Sie einen Message Type von SAP importieren, der die Parameter eines RFCs (Remote Function Call). Hinweis: Mit REMOTE FUNCTION CALLs (RFC) können bestehende Funktionsbausteine eines entfernten SAP/R3-Systems ausgeführt werden, oder aus einem R3-System heraus entfernte Systeme (in diesem Fall Orchestra) aufgerufen werden. Damit Sie einen Message Type aus SAP-RFC importieren können, benötigen Sie ein Environment Entry für die SAP-Verbindung. Wie Sie ein solches Environment Entry definieren, können Sie im Kapitel SAP Client Connection. Ebenso können Sie aber auch das benötigte Environment Entry während des Importvorgangs definieren, dazu klicken Sie auf die Schaltfläche [New], welche sich neben dem Feld für das Environment Entry befindet. Hier haben Sie u.a. auch die Möglichkeit bestehende Entries über [Edit] zu ändern. Um einen Message Type aus SAP - RFC erzeugen zu lassen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Types über einen Rechtsklick auf Message Types. 2. Wählen Sie den Eintrag [import from RFC]. 3. Wählen Sie zuerst ein SAP System aus (bzw. das Environment Entry für die SAP Verbindung). Sie können auch einen Namespace für den generierten Typ angeben, per default ist das urn:emds:rfc. Stand Seite 49 von 470 Version 4.4

50 Environment Entry für die Datenbankverbindung Environment Entry für die SAP-verbindung anlegen / bearbeiten Message Type - Namespace Abbildung 3-25 Import Message Type from RFC 4. Im folgenden Dialogfenster haben Sie die Möglichkeit Suchmuster anzugeben um den RFC im SAP-System zu suchen. Klicken Sie zum Fortfahren auf [next]. SAP- RPC Gruppe SAP- RPC Funktion SAP- RPC Sprache Abbildung 3-26 Import Message Type from RFC Define search 5. Sie erhalten nun eine Auflistung aller verfügbaren RFC-Funktionen. Abschließend wählen Sie Ihren benötigten RFC aus und klicken auf [finish]. Stand Seite 50 von 470 Version 4.4

51 Verfügbare SAP-RFC Funktionen SAP-RFC Funktionsbeschreibung Abbildung 3-27 Import Message Type from RFC Select RFC - Function 6. Wenn Sie auf [finish] klicken, werden zwei Typen in Ihrem Szenario angelegt, einer für die Nachricht (request) und einer für die Antwort (response) Import IDoc type from SAP Zum Informationsaustausch zwischen SAP und Orchestra können IDOCs (Intermediate Document) verwendet werden. Hinweis: Ein IDOC ist ein Behälter für den Austausch von Daten zwischen R/3-, R/2- und Fremdsystemen. Damit Sie einen Message Type aus SAP-RFC importieren können, benötigen Sie ein Environment Entry für die SAP-Verbindung. Wie Sie ein solches Environment Entry definieren, können Sie im Kapitel SAP Client Connection. Ebenso können Sie aber auch das benötigte Environment Entry während des Importvorgangs definieren, dazu klicken Sie auf die Schaltfläche [New], welche sich neben dem Feld für das Environment Entry befindet. Hier haben Sie u.a. auch die Möglichkeit bestehende Entries über [Edit] zu ändern. Stand Seite 51 von 470 Version 4.4

52 Um einen Message Type aus SAP - IDOC erzeugen zu lassen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Types über einen Rechtsklick auf Message Types. 2. Wählen Sie den Eintrag [import from IDOC]. 3. Wählen Sie eine SAP-Connection (bzw. das Environment Entry für die SAP Verbindung) um eine Verbindung zum SAP-System herstellen zu können sowie einen Modus. (siehe Kapitel IDOC Import Mode). Des Weiteren können Sie einen Namespace angeben, sowie ggf. einen bereits existenten Message Type überschreiben lassen. 4. Wenn Sie Ihre Einstellungen vorgenommen haben klicken Sie auf [next]. Environment Entry für die SAP- Verbindung Environment Entry für die SAP-Verbindung anlegen / bearbeiten IDOC Import Mode Abbildung 3-28 Import Message Type from IDOC Bestehenden Message Type überschreiben 5. In den folgenden Suchfeldern können Sie Ihre Kriterien zur Suche des IDOCs angeben. 6. Haben Sie Ihre Kriterien eingegeben, so können Sie nun auf [finish] klicken. Stand Seite 52 von 470 Version 4.4

53 IDOC - Name IDOC - Erweiterungstyp IDOC - Release Abbildung 3-29 Import Message Type from IDOC Define search IDOC - Version IDOC Import Mode Create idoc control record & idoc structure Der erzeugte Message Typ enthält sowohl die IDOC-Struktur als auch die Steuertabelle für die Nachrichtenfindung. Create idoc structure Der erzeugte Message Typ enthält nur die IDOC-Struktur. Stand Seite 53 von 470 Version 4.4

54 Import from Otd or ssc Im Orchestra Designer können Sie einen Message-Type aus einer otd- oder ssc-datei von Ihrem Dateisystem importieren. Otd und ssc sind Datenformate die von jcaps und egate exportiert werden und Informationen über Datentypen enthalten. Das Defaultformat wird auf Internal gesetzt und somit werden die Felder des Override delimiters und Escape Sequences automatisch befüllt. Um einen Message Type aus einer otd-oder ssc-datei erzeugen zu lassen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Types über einen Rechtsklick auf Message Types. 2. Wählen Sie den Eintrag import from otd or ssc. 3. Suchen Sie die zu importierende Datei in Ihrem Dateisystem und klicken Sie auf Öffnen. 4. Nach dem Import sehen Sie im Bereich Scenario Elements > Message Types den eben importierten Message Type. Stand Seite 54 von 470 Version 4.4

55 3.3 Message Mappings Message Mappings beschreiben die Abbildung einer Quell-Message-Struktur auf eine Ziel-Message-Struktur. In folgenden Kapiteln finden Sie folgende Informationen über Message Mappings Arten von Message Mappings Anlegen eines Orchestra Message Mappings Node Mapping (im Orchestra Mapping) Attribut Mapping (im Orchestra Mapping) XPath Ausdrücke Anonyme Java Funktionen Lookup-Funktionalität Channel- und Subprozess- Aufrufe Verwenden vom Mapping Prototypes Alternative Ansicht verwenden Anlegen eines Target Only Message Mappings Anlegen eines IDOC Message Mappings Anlegen eines XSLT Message Mappings Anlegen eines Java Message Mappings Anlegen eines Extended Java Message Mappings Stand Seite 55 von 470 Version 4.4

56 3.3.1 Message Mapping Kontextmenü Im Bereich Message Mapping der Szenario Elemente befinden sich alle zu diesem Szenario gehörigen Message Mappings. Hier können Sie über einen Rechtsklick auf das Element ein Menü öffnen (siehe Abbildung). In diesem Menü erhalten Sie die Möglichkeit neue Message Mappings zu erstellen oder zu importieren und die Message Mappings Elemente innerhalb der Baumstruktur zu gruppieren. Haben Sie einen Rechtsklick auf ein vorhandenes Message Mapping ausgeführt, so erhalten Sie zusätzlich die Möglichkeit dieses zu öffnen, die Eigenschaften des Elements zu bearbeiten oder es zu löschen. Abbildung 3-30 Message Mapping (Szenario Element) Message Mapping Designer Im Orchestra Designer steht Ihnen eine grafische Oberfläche zur Verfügung, welche es Ihnen ermöglicht, ein Message Mapping zu erstellen und zu bearbeiten. Mapping Werkzeuge Mapping Editor Mapping Details Abbildung 3-31 Message Mapping Designer Stand Seite 56 von 470 Version 4.4

57 Message Mapping Designer - Werkzeuge Zum Bearbeiten eines Message Mappings stehen Ihnen verschiedene Werkzeuge zur Verfügung. Einfache Operationen / Commutative expression Auswahl- Werkzeug Variable / Variable reference Wert / Literal value Java- Funktionen XPath Ausdrücke Zuweisung / Assignment Abbildung 3-32 Message Mapping Designer - Werkzeuge Mit dem Auswahlwerkzeug können Elemente eines Message Mappings eingefügt, verschoben, gelöscht und manipuliert werden. Mit Commutative expression können Sie Ihrem Mapping eine einfache kommutative Rechenoperation (Addition oder Multiplikation) per Click&Click hinzufügen. Literal value fügt Ihrem Mapping eine festen Wert über die Click&Click Methode hinzufügen. Variable Reference fügt dem Mapping eine Variablenreferenz (Verweis auf die Variable) per Click&Click hinzu. Mit Java-Funktion können Sie Ihrem Mapping eine anonyme Java-Methode per Click&Click hinzufügen. Für jedes Mapping wird im Hintergrund eine Java-Klasse generiert. Dieser Klasse wird eine Methode hinzugefügt, welche bei der Ausführung des Mappings aufgerufen wird, wenn dieses Element auf ein Zielattribut gemappt wird. Die Zuweisung zwischen den Mapping Elementen können Sie über Assignment ausführen. Stand Seite 57 von 470 Version 4.4

58 Message Mapping Designer Detailbereich Der Message Mapping Designer Detailbereich wird in folgende Bereiche gegliedert: Node Mappings Variables Before Node Mappings Im Register Node Mapping des Detailbereichs bekommen Sie alle Node Mappings innerhalb des geöffneten Message Mappings angezeigt. Zum Anzeigen des Node Mappings im Message Mapping Designer können Sie einfach in der Auflistung der Node Mappings den gewünschten Eintrag selektieren. Node Mapping Source Node Mapping Target Node Mapping Kommentar Abbildung 3-33 Message Mapping Designer Node Mappings Node Mapping - anlegen - editieren - löschen Stand Seite 58 von 470 Version 4.4

59 Variables Im Register Variables des Detailbereichs bekommen Sie alle für das geöffneten Message Mapping definierten Variablen angezeigt. Zum Verwenden einer Variablen im Message Mapping Designer benutzen Sie das Variable reference - Werkzeug. Variablen Subtyp Variablen Typ Variablen Verwendung Vaiablen - anlegen - editieren - löschen Variablen Name Variablen Optional Variablen Beschreibung Abbildung 3-34 Message Mapping Designer - Variables Node Mapping Initialization XPath- Initialisierung Im Register Node Mapping des Detailbereichs können Sie Variablen vorinitialisieren. Variablen- Initialisierung Abbildung 3-35 Message Mapping Designer Node Mapping Initialization Stand Seite 59 von 470 Version 4.4

60 3.3.3 Arten von Message Mappings Orchestra Mapping Ein Orchestra Mapping ist ein grafisches Mapping im Orchestra Designer. Für Datenbank-Mappings sollten die Quell- und Zieltypen aus der Datenbank importiert worden sein. - Target Only Ein Target-Only-Mapping ist ein Orchestra-Mapping ohne Quell-Message. - IDOC-Mapping Ein IDOC-Mapping ist ein Orchestra-Mapping für die Verarbeitung von IDOCs. Die Quell- und Zieltypen müssen aus SAP importiert worden sein. IDOC-Mappings werden mit Hilfe des Mapping-Wizards (Dialogfolge zum Erzeugen eines Mappings) generiert. XSLT-Mapping Ein XSLT-Mapping ist ein ein XSLT-Skript das eine Quellnachricht in eine Zielnachricht transformiert. Java-Mapping Ein Java-Mapping verwendet ein externes Java-Archiv (JAR) um eine Quellnachricht in eine Zielnachricht zu transformieren. Extended Java-Mapping / Prozedurales Mapping Als Prozedurale Mappings (Extended Java-Mapping) bezeichnen wir Mappings die mit Hilfe einer Programmiersprache definiert werden. Innerhalb von Orchestra verwendet man hierzu Java mit eingebetteten XPath- Ausdrücken. Stand Seite 60 von 470 Version 4.4

61 3.3.4 Anlegen eines Orchestra Message Mappings Ein Orchestra Mapping ist ein grafisches Mapping im Orchestra Designer. Für Datenbank-Mappings sollten die Quell- und Zieltypen aus der Datenbank importiert worden sein. Um ein Orchestra Message Mapping zu erzeugen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Mapping über einen Rechtsklick auf Message Mapping. 2. Wählen Sie den Eintrag [create mapping]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Message Mapping ein und klicken auf [next]. Message Mapping Name Message Mapping Beschreibung Abbildung 3-36 Message Mapping erzeugen 4. Im nächsten Dialogabschnitt wählen Sie den Mapping Typ Orchestra aus und klicken Sie auf [next]. 5. In den beiden folgenden Abfragen wählen Sie Ihren Quell- sowie Ihren Ziel-Nachrichtentyp und bestätigen jeweils Ihre Auswahl mit [next]. 6. Abschließend müssen Sie lediglich noch angeben, ob vom Orchestra Designer Node- Mappings angelegt werden sollen und Ihre Eingaben mit [finish] bestätigen. Nun erscheint Ihr Message Mapping im Designer Panel. Abbildung 3-37 erzeugtes Message Mapping Stand Seite 61 von 470 Version 4.4

62 3.3.5 Node Mapping (im Orchestra Mapping) Node Mappings erzeugen für einen gegebenen Elementtyp der Quell-Message ein oder mehrere Elemente in der Ziel-Message abhängig von der Anzahl der Elemente in der Quell-Message Node Mapping erzeugen Um ein Node Mapping zu erzeugen, gehen Sie wie folgt vor: 1. Öffnen Sie das Message Mapping, für welches Sie ein Node Mapping anlegen möchten. 2. Markieren Sie im Message Mapping Designer die Nodes der Ziel- und der Quell-Message für welche Sie ein Node Mapping erzeugen möchten. Root-Element des Message Types Kardinalität NodeMapping Child-Element des Message Types Selektierter Node der Ziel- Message Abbildung 3-38 Node Mapping - markierte Nodes 3. Nach dem Sie die gewünschten Nodes markiert haben, klicken Sie im Register [node mappings] des Detailbereichs auf die Schaltfläche [Add]. 4. Jetzt sehen Sie in der Auflistung der Node Mappings einen zweiten Eintrag. Hier können Sie über markieren eines Listeneintrages das jeweilige Node Mapping anzeigen lassen. Hinweis: Durch Selektieren eines Eintrags in der Auflistung der Node Mappings wird Ihnen das selektierte Node Mapping im Message Mapping Designer angezeigt. Hier haben Sie auch die Möglichkeit über die Schaltfläche [Auto] automatisch Attribut Mappings erzeugen zu lassen. (Wenn Sie nähere Informationen über Attribut Mappings erhalten möchten, lesen Sie Kapitel Attribute Mapping). Stand Seite 62 von 470 Version 4.4

63 Anzeige des selektierten Node Mappings Node Mapping hinzufügen Auflistung aller Node Mappings Abbildung 3-39 Node Mapping- erzeugtes Node Mappings Stand Seite 63 von 470 Version 4.4

64 Node Mapping editieren Im Editor für Node Mappings werden folgenden Einstellungen vorgenommen: Definition von Filterbedingungen (in XPath). Bei Mehrdeutigkeit des Node Mappings kann zwischen alternativen Navigationsmöglichkeiten ausgewählt werden. Auswahl eines Zielschlüssels (wird z.b. vom Database Target Channel verwendet). Um ein Node Mapping zu editieren, gehen Sie wie folgt vor: 5. Öffnen Sie das Message Mapping, für welches Sie ein Node Mapping editieren möchten. 6. Markieren Sie im Register [node mappings] des Detailbereichs das Node Mapping, welches Sie bearbeiten möchten, und klicken Sie auf [Edit]. Jetzt wird Ihnen das Fenster [change node mapping] angezeigt. Auflistung aller möglichen Schlüssel Hinzufügen/ Löschen von Namespace- Präfixen Auflistung aller XPath-Präfixe und der zugeordneten Namespaces Abbildung 3-40 Node Mapping - Node Mapping editieren Filterausdruck 7. Nach dem Sie Ihre Änderungen am Node Mapping vorgenommen haben klicken Sie auf [validate], damit Ihre Änderungen vorgenommen werden und abschließend auf [OK]. Stand Seite 64 von 470 Version 4.4

65 Node Mapping löschen Um ein Node Mapping zu löschen, gehen Sie wie folgt vor: 1. Öffnen Sie das Message Mapping, für welches Sie ein Node Mapping löschen möchten. 2. Markieren Sie im Register [node mappings] des Detailbereichs das Node Mapping, welches Sie löschen möchten, und klicken Sie auf [delete]. Abbildung 3-41 Node Mapping - Node Mapping löschen Node Mapping löschen Achtung: Einmal gelöschte Node Mappings können nicht wiederhergestellt werden. Stand Seite 65 von 470 Version 4.4

66 Node Mapping filtern Der Orchestra Designer bietet Ihnen die Möglichkeit für ein Node Mapping eine Filterbedingung in Form eines XPath-Ausdrucks anzugeben. Damit kann die Menge der Informationen die in die Zielnachricht gemappt werden, durch bestimmte Kriterien eingeschränkt werden. Um für ein bestehendes Node Mapping eine Filterbedingung anzulegen, gehen Sie wie folgt vor: 1. Öffnen Sie das Message Mapping, für welches Sie ein Node Mapping mit einer Filterbedingung versehen möchten. 2. Markieren Sie im Register [node mappings] des Detailbereichs das Node Mapping, welches Sie bearbeiten möchten, und klicken Sie auf [Edit]. Jetzt wird Ihnen das Fenster [change node mapping] angezeigt. Hinzufügen/ löschen von Filter Conditions Auflistung aller XPath - Namespaces XPath-Filter - Ausdruck Abbildung 3-42 Node Mapping - Node Mapping Filter Conditions 3. Im Bereich [Filter condition] können Sie den XPath-Filter angeben. Dazu kann es nötig sein, Präfixe für die verwendeten Namespaces zu definieren. 4. Nach dem Sie Ihren Filter definiert haben, klicken Sie auf [Validate] um Ihren Filterausdruck auf Fehler zu überprüfen und die Änderung zu übernehmen. 5. Klicken Sie abschließend auf [OK]. Jetzt sehen Sie im Message Mapping Designer, dass das Node Mapping eine gestrichelte Linie erhalten hat. Diese zeigt an, dass ein Filter für dieses Node Mapping eingetragen wurde. Stand Seite 66 von 470 Version 4.4

67 Node Mapping enthält Filter Conditions Abbildung 3-43 Node Mapping- Node Mapping mit Filter Conditions. Stand Seite 67 von 470 Version 4.4

68 3.3.6 Attribute Mappings (im Orchestra Mapping) Innerhalb eines Node Mappings werden eine Menge von Attribut Mappings definiert, die zeigen, mit welchen Werten die Felder der Ziel-Message befüllt werden. In den folgenden Kapiteln finden Sie folgende Informationen über Attribute Mappings Direktes Mapping Mapping über einfache Operationen Zuweisung fester Werte Verwenden von Variablen Mapping über Java Ausdrücke Mapping über XPath Ausdrücke Lookup in Parameternachrichten Aufruf von Channels und Subprozessen Verwenden von Mapping Prototypes Attribut Mapping Abbildung 3-44 Attribute Mapping Achtung: Bei Mappings ist es wichtig zu wissen, dass die Verarbeitungsreihenfolge durch die Struktur der Ziel-Message definiert wird. Das hat zur Folge, dass jeder im Mapping verwendete Ausdruck eine Verbindung zur Ziel-Message aufweisen muss, andernfalls wird der Ausdruck nicht ausgeführt. Stand Seite 68 von 470 Version 4.4

69 Direktes Mapping Um ein direktes Mapping innerhalb eines Node Mappings anzulegen, gehen Sie wie folgt vor: 1. Öffnen Sie das Message Mapping, für welches Sie ein Attribute Mapping vornehmen möchten. 2. Markieren Sie im Register [node mappings] des Detailbereichs das Node Mapping, welches Sie bearbeiten möchten. 3. Selektieren Sie in der Werkzeugleiste das [Assignment]-Werkzeug. 4. Klicken Sie im Message Mapping Designer in der Quell-Message auf das gewünschte Attribut und halten Sie die Maustaste gedrückt. 5. Ziehen Sie nun den Pfeil auf das gewünschte Attribut der Ziel-Message und lassen Sie die Maustaste los. Abbildung 3-45 Attribute Mapping - Direktes Mapping Achtung: Sollte Ihre Zuweisung nicht funktionieren, gibt es hierfür in den meisten Fällen zwei mögliche Ursachen. Es wurde kein Node Mapping selektiert. Vergewissern Sie sich im Register [node mapping] im Detailbereich, dass ein Node Mapping selektiert ist. Die Datentypen der Quell- und Ziel-Message sind nicht kompatibel. Den Datentyp eines Attributs können Sie sich über einen Doppelklick auf das jeweilige Attribut anzeigen lassen. Ggf. müssen Sie eine Konvertierung vornehmen. Hinweis: Der Orchestra Designer bietet Ihnen auch die Möglichkeit ähnliche Attribute automatisch mappen zu lassen. Dazu markieren Sie im Register [node mappings] des Detailbereichs das gewünschte Node Mapping und klicken auf die Schaltfläche [Auto]. Stand Seite 69 von 470 Version 4.4

70 Mapping über einfache Operationen Um den Wert einer einfachen kommutativen Operation (Addition oder Multiplikation) zu mappen, gehen Sie wie folgt vor: 1. Öffnen Sie das Message Mapping, für welches Sie ein Attribute Mapping vornehmen möchten. 2. Markieren Sie im Register [node mappings] des Detailbereichs das Node Mapping, welches Sie bearbeiten möchten. 3. Selektieren Sie in der Werkzeugleiste das [Commutative expression]-werkzeug und klicken Sie in den Message Mapping Designer. 4. Nun wird dem Mapping eine einfache Operation hinzugefügt. 5. Zum Bearbeiten der Operation führen Sie einen Doppelklick auf diese aus. Es öffnet sich das Fenster [Operation]. Operation Initialwert (0 für die Multiplikation, 1 für die Addition) Abbildung 3-46 Attribute Mapping - Einfache Funktion 6. Nach dem Sie Ihre Operation bearbeitet haben klicken Sie auf [OK]. 7. Selektieren Sie in der Werkzeugleiste das [Assignment]-Werkzeug. 8. Klicken Sie im Message Mapping Designer in der Quell-Message auf das gewünschte Attribut und halten Sie die Maustaste gedrückt. 9. Ziehen Sie nun den Pfeil auf die Operation und lassen Sie die Maustaste los. Abbildung 3-47 Attribute Mapping - Einfache Operation anwenden Einfache Operation im Mappping Stand Seite 70 von 470 Version 4.4

71 10. Klicken Sie auf die Operation und halten Sie die Maustaste gedrückt. 11. Ziehen Sie nun den Pfeil von der Operation auf das Attribut der Ziel-Message und lassen Sie die Maustaste los. Abbildung 3-48 Attribute Mapping Mapping mit einfacher Funktion Achtung: Sollte Ihre Zuweisung nicht funktionieren gibt es hierfür in den meisten Fällen zwei mögliche Ursachen. Es wurde kein Node Mapping selektiert. Vergewissern Sie sich im Register [node mapping] im Detailbereich, dass ein Node Mapping selektiert ist. Die Datentypen der Quell- und Ziel-Message sind nicht kompatibel. Den Datentyp eines Attributs können Sie sich über einen Doppelklick auf das jeweilige Attribut anzeigen lassen. Ggf. müssen Sie eine Konvertierung vornehmen. Stand Seite 71 von 470 Version 4.4

72 Zuweisung fester Werte Um eine Zuweisung fester Werte innerhalb eines Node Mappings vorzunehmen, gehen Sie wie folgt vor: 1. Öffnen Sie das Message Mapping, für welches Sie einem Attribute einen festen Wert zuweisen möchten. 2. Markieren Sie im Register [node mappings] des Detailbereichs das Node Mapping, welches Sie bearbeiten möchten. 3. Selektieren Sie in der Werkzeugleiste das [Literal value]-werkzeug und klicken Sie in den Message Mapping Designer. 4. Nun wird dem Mapping ein Wert hinzugefügt. Abbildung 3-49 Attribute Mapping Zuweisung fester Werte Wert im Mapping 5. Zum Bearbeiten des Wertes führen Sie einen Doppelklick auf diese aus. Es öffnet sich das Fenster [edit literal expression]. Datentyp Wert Abbildung 3-50 Attribute Mapping Festen Wert bearbeiten Hinweis: Der Orchestra Designer bietet Ihnen die Datentypen String, Boolean, Integer, Long, Int, Double, Float, Decimal, DateTime, Date und Time für Wertzuweisungen. Stand Seite 72 von 470 Version 4.4

73 6. Nach dem Sie Ihren Wert bearbeitet haben, klicken Sie auf [OK]. 7. Selektieren Sie in der Werkzeugleiste das [Assignment]-Werkzeug. 8. Klicken Sie im Message Mapping Designer auf den Wert, welchen Sie eben eingefügt haben und halten Sie die Maustaste gedrückt. 9. Ziehen Sie nun den Pfeil von der Operation auf das Attribut der Ziel-Message und lassen Sie die Maustaste los. Abbildung 3-51 Attribute Mapping Mapping mit festem Wert Achtung: Sollte Ihre Zuweisung nicht funktionieren gibt es hierfür in den meisten Fällen zwei mögliche Ursachen. Es wurde kein Node Mapping selektiert. Vergewissern Sie sich im Register [node mapping] im Detailbereich, dass ein Node Mapping selektiert ist. Die Datentypen des festen Wertes und Ziel-Message sind nicht kompatibel. Den Datentyp eines Attributs können Sie sich über einen Doppelklick auf das jeweilige Attribut anzeigen lassen. Ggf. müssen Sie eine Konvertierung vornehmen Stand Seite 73 von 470 Version 4.4

74 Verwenden von Variablen Innerhalb eines Node Mappings haben Sie die Möglichkeit verschiedene Arten von Variablen zu verwenden. Hinweis: Lokale Variablen sind mapping global. Das heißt eine im Mapping definierte Variable kann in allen untergeordneten Node Mappings verwendet werden. Variablen - Typ Bei Messages, der Messagetyp SubTyp Variablen- Verwendung Variablen hinzufügen, entfernen, und editieren Variablen - Name Variable Optional? Variablen Beschreibung Abbildung 3-52 Attribute Mapping Verwenden von Variablen In folgenden Kapiteln finden Sie Informationen über Variablen innerhalb eines Message Mappings. Variablen anlegen Lokale Variablen Lokale Variablen initialisieren Input-Variablen Output-Variablen In_Out-Variablen Stand Seite 74 von 470 Version 4.4

75 Variable anlegen Um eine Variablen innerhalb eines Message Mappings anzulegen, gehen Sie wie folgt vor: 1. Öffnen Sie das Message Mapping, für welches Sie eine Variable definieren möchten. 2. Navigieren Sie im Detailbereich zum Register [variables]. Variable hinzufügen Abbildung 3-53 Attribute Mapping Variable hinzufügen 3. Klicken Sie auf [Add]. Es öffnet sich das Fenster [edit new variable]. Variable optional? Variablenname Variablentyp Verwendungszweck Variablen- Beschreibung Abbildung 3-54 Attribute Mapping Variable bearbeiten 4. Hier haben Sie die Möglichkeit den Typ für die Variable zu definieren. (Wie Sie die jeweiligen Variablentypen verwenden können, entnehmen Sie den folgenden Kapiteln). 5. Nach dem Sie Ihre Variable bearbeitet haben, klicken Sie auf [OK]. Stand Seite 75 von 470 Version 4.4

76 Lokale Variablen Innerhalb eines Node Mappings haben Sie die Möglichkeit lokale Variablen zu verwenden. Lokale Variablen können Sie verwenden, um Standardwerte zu setzen, oder um Funktionswerte innerhalb eines Mappings lokal zwischen zu speichern. Hinweis: Der Einsatz von lokalen Variablen ist besonders dann erwägenswert, wenn Werte in verschieden Node Mappings mehrfach verwendet werden sollen. Um lokale Variablen zu verwenden, gehen Sie wie folgt vor: 1. Legen Sie eine neue Variable an / oder ändern Sie den Typ einer bestehenden Variable auf den Typ [LOCAL]. (Wie Sie eine Variable anlegen können, lesen Sie im Kapitel Variable anlegen) Verwendung = LOCAL Abbildung 3-55 Attribute Mapping lokale Variable anlegen 2. Nun können Sie Ihre eben angelegte Variable im Mapping verwenden. Dazu wählen Sie in der Werkzeugleiste das [Variable reference]-werkzeug und klicken in den Message Mapping Designer. 3. Zum Bearbeiten der Variablen führen Sie einen Doppelklick auf diese aus. Es öffnet sich das Fenster [Variable reference]. Verfügbare Variablen Abbildung 3-56 Attribute Mapping Variable reference Stand Seite 76 von 470 Version 4.4

77 4. Wählen Sie Ihre gewünschte Variable und klicken Sie auf [OK]. 5. Selektieren Sie in der Werkzeugleiste das [Assignment]-Werkzeug. 6. Klicken Sie im Message Mapping Designer auf die Variable, welchen Sie eben eingefügt haben und halten Sie die Maustaste gedrückt. 7. Ziehen Sie nun den Pfeil von der Variablen auf das Attribut der Ziel-Message und lassen Sie die Maustaste los. Abbildung 3-57 Attribute Mapping Mapping mit Variable Hinweis: Lokale Variablen können für jedes Node Mapping mit einem Wert vorinitialisiert werden. Lesen Sie hierzu Kapitel Lokale Variablen initialisieren. Lokale Variablen können als Zwischenspeicher von Funktionswerten verwendet werden. Abbildung 3-58 lokale Variable als Zwischenspeicher Abbildung 3-59 lokale Variable verwenden Achtung: Sollte Ihre Zuweisung nicht funktionieren gibt es hierfür in den meisten Fällen zwei mögliche Ursachen. Es wurde kein Node Mapping selektiert. Vergewissern Sie sich im Register [node mapping] im Detailbereich, dass ein Node Mapping selektiert ist. Die Datentypen der Variablen und Ziel-Message sind nicht kompatibel. Den Datentyp eines Attributs können Sie sich über einen Doppelklick auf das jeweilige Attribut anzeigen lassen. Ggf. müssen Sie eine Konvertierung vornehmen. Stand Seite 77 von 470 Version 4.4

78 Lokale Variablen initialisieren Wenn Sie innerhalb eines Message Mappings lokale Variablen verwenden, kann es unter Umständen sinnvoll sein, diese mit einem Wert vorzuinitialisieren, bevor ein Node Mapping ausgeführt wird. Um eine lokale Variable zu initialisieren, gehen Sie wie folgt vor: 1. Öffnen Sie das Message Mapping, für welches Sie eine lokale Variable initialisieren möchten. 2. Markieren Sie im Register [node mappings] des Detailbereichs das Node Mapping, welches Sie bearbeiten möchten. 3. Wechseln Sie auf das Register [node mapping initialization]. Hier können Sie nun einen Namespace Prefix für XPath angeben so wie der lokalen Variablen über einen XPath- Ausdruck einen Wert zuweisen. (Siehe Abbildung). Abbildung 3-60 Attribute Mapping Lokale Variable initialisieren 4. Nach dem Sie mit der Bearbeitung fertig sind, klicken Sie zum Überprüfen und übernehmen des Code-Ausdrucks auf [Validate]. Stand Seite 78 von 470 Version 4.4

79 Input-Variablen Input-Variablen dienen dazu, dem Mapping aus einem Prozess Modell heraus Werte zu übergeben um diese innerhalb des Mappings verwenden zu können. Um Input-Variablen zu verwenden, gehen Sie wie folgt vor: 1. Legen Sie eine neue Variable an / oder ändern Sie den Typ einer bestehenden Variable auf den Typ [INPUT]. (Wie Sie eine Variable anlegen können, lesen Sie im Kapitel Variable anlegen) Verwendung = INPUT Abbildung 3-61 Attribute Mapping Input - Variable anlegen 2. Nun können Sie Ihre eben angelegte Variable im Mapping verwenden. Dazu wählen Sie in der Werkzeugleiste das [Variable reference]-werkzeug und klicken in den Message Mapping Designer. 3. Zum Bearbeiten der Variablen führen Sie einen Doppelklick auf diese aus. Es öffnet sich das Fenster [Variable reference]. Verfügbare Variablen Abbildung 3-62 Attribute Mapping Variable reference 4. Wählen Sie nun Ihre gewünschte Variable aus und klicken Sie auf [OK]. 5. Selektieren Sie in der Werkzeugleiste das [Assignment]-Werkzeug. Stand Seite 79 von 470 Version 4.4

80 6. Klicken Sie im Message Mapping Designer auf die Variable, welche Sie eben eingefügt haben und halten Sie die Maustaste gedrückt. 7. Ziehen Sie nun den Pfeil von der Variablen auf das Attribut der Ziel-Message und lassen Sie die Maustaste los. Abbildung 3-63 Attribute Mapping Mapping mit Variable Hinweis: Wie Sie Input Variablen aus einem Prozess Modell heraus befüllen können lesen Sie im Kapitel Request Variable Mapping nach. Achtung: Sollte Ihre Zuweisung nicht funktionieren, gibt es hierfür in den meisten Fällen zwei mögliche Ursachen. Es wurde kein Node Mapping selektiert. Vergewissern Sie sich im Register [node mapping] im Detailbereich, dass ein Node Mapping selektiert ist. Die Datentypen der Variablen und Ziel-Message sind nicht kompatibel. Den Datentyp eines Attributs können Sie sich über einen Doppelklick auf das jeweilige Attribut anzeigen lassen. Ggf. müssen Sie eine Konvertierung vornehmen. Stand Seite 80 von 470 Version 4.4

81 Output-Variablen Innerhalb eines Node Mappings haben Sie die Möglichkeit aus dem Mapping Variablenwerte an ein Prozess Modell zurückzugeben. Achtung: Bei Mappings ist es wichtig zu wissen, dass die Verarbeitungsreihenfolge durch die Struktur der Ziel-Message definiert wird. Das hat zur Folge, dass jedes im Mapping verwendete Argument eine Verbindung zur Ziel-Message aufweisen muss, andernfalls wird das Argument nicht ausgeführt. Um Output-Variablen zu verwenden, gehen Sie wie folgt vor: 1. Legen Sie eine neue Variable an / oder ändern Sie den Typ einer bestehenden Variable auf den Typ [OUTPUT]. (Wie Sie eine Variable anlegen können, lesen Sie im Kapitel Variable anlegen) Verwendung = OUTPUT Abbildung 3-64 Attribute Mapping Output - Variable anlegen 2. Nun können Sie Ihre eben angelegte Variable im Mapping verwenden. Dazu wählen Sie in der Werkzeugleiste das [Variable reference]-werkzeug und klicken in den Message Mapping Designer. 3. Zum Bearbeiten der Variablen führen Sie einen Doppelklick auf diese aus. Es öffnet sich das Fenster [Variable reference]. Verfügbare Variablen Abbildung 3-65 Attribute Mapping Variable reference Stand Seite 81 von 470 Version 4.4

82 4. Wählen Sie nun Ihre gewünschte Variable aus und klicken Sie auf [OK]. 5. Im Designer sehen Sie nun das für die Variable nicht mehr den Text Variable sondern der Namen der selektierten Variablen zu lesen ist. 6. Selektieren Sie in der Werkzeugleiste das [Assignment]-Werkzeug. 7. Klicken Sie im Message Mapping Designer auf ein Attribut der Quell-Message / auf eine Funktion und halten Sie die Maustaste gedrückt. 8. Ziehen Sie nun den Pfeil von dem Attribut der Quell-Message / der Funktion auf die Variable und lassen Sie die Maustaste los. Abbildung 3-66 Attribute Mapping Mapping mit Output-Variable Hinweis: Wie Sie Output Variablen eines Message Mappings in einem Prozess Modell verwenden können, lesen Sie im Kapitel Szenario Elemente im Prozessmodell verwenden nach. Achtung: Sollte Ihre Zuweisung nicht funktionieren gibt es hierfür in den meisten Fällen zwei mögliche Ursachen. Es wurde kein Node Mapping selektiert. Vergewissern Sie sich im Register [node mapping] im Detailbereich, dass ein Node Mapping selektiert ist. Die Datentypen der Variablen und Ziel-Message sind nicht kompatibel. Den Datentyp eines Attributs können Sie sich über einen Doppelklick auf das jeweilige Attribut anzeigen lassen. Ggf. müssen Sie eine Konvertierung vornehmen. Stand Seite 82 von 470 Version 4.4

83 In_Out-Variablen In_Out-Variablen sind eine kombinierte Form zwischen Input und Output Variablen. Sie vereinen somit die Funktionalität einer Input und einer Output Variablen. Um In_Out-Variablen zu verwenden, gehen Sie wie folgt vor: 1. Legen Sie eine neue Variable an / oder ändern Sie den Typ einer bestehenden Variable auf den Type [IN_OUT]. (Wie Sie eine Variable anlegen können, lesen Sie im Kapitel Variable anlegen) Verwendung = IN_OUT Abbildung 3-67 Attribute Mapping edit new Variable 2. Nun können Sie Ihre eben angelegte Variable im Mapping verwenden. Dazu wählen Sie in der Werkzeugleiste das [Variable reference]-werkzeug und klicken in den Message Mapping Designer. 3. Zum Bearbeiten der Variablen führen Sie einen Doppelklick auf diese aus. Es öffnet sich das Fenster [Variable reference]. Verfügbare Variablen Abbildung 3-68 Attribute Mapping Variable reference 4. Wählen Sie nun Ihre gewünschte Variable aus und klicken Sie auf [OK]. 5. Im Designer sehen Sie nun, dass für die Variable nicht mehr der Text Variable sondern der Namen der selektierten Variablen zu lesen ist. 6. Selektieren Sie in der Werkzeugleiste das [Assignment]-Werkzeug. 7. Klicken Sie im Message Mapping Designer auf ein Attribut der Quell-Message / auf eine Funktion und halten Sie die Maustaste gedrückt. Stand Seite 83 von 470 Version 4.4

84 8. Ziehen Sie nun den Pfeil von dem Attribut der Quell-Message / der Funktion auf die Variable und lassen Sie die Maustaste los. Abbildung 3-69 Attribute Mapping Mapping mit IN_OUT - Variable Hinweis: Wie Sie IN_OUT Variablen eines Message Mappings in einem Prozess Modell verwenden können, lesen Sie im Kapitel Request Variable Mapping nach. Achtung: Sollte Ihre Zuweisung nicht funktionieren gibt es hierfür in den meisten Fällen zwei mögliche Ursachen. Es wurde kein Node Mapping selektiert. Vergewissern Sie sich im Register [node mapping] im Detailbereich, dass ein Node Mapping selektiert ist. Die Datentypen der Variablen und Ziel-Message sind nicht kompatibel. Den Datentyp eines Attributs können Sie sich über einen Doppelklick auf das jeweilige Attribut anzeigen lassen. Ggf. müssen Sie eine Konvertierung vornehmen. Stand Seite 84 von 470 Version 4.4

85 Mapping über Java Ausdrücke Häufig reichen die vordefinierten Funktionen (siehe Kapitel Mapping Prototypes) nicht aus um Quellausdrücke in Werte für die Zielfelder zu konvertieren. Aus diesem Grund bietet Ihnen der Orchestra Designer die Möglichkeit eigene anonyme Java-Funktionen anzulegen. Um eine Java-Funktion innerhalb eines Node Mappings anzulegen, gehen Sie wie folgt vor: 1. Öffnen Sie das Message Mapping, für welches Sie Attribute über eine Java-Funktion bearbeiten möchten. 2. Wählen Sie das gewünschte Node Mapping aus. 3. Selektieren Sie in der Werkzeugleiste das [Java expression]-werkzeug und klicken Sie in den Message Mapping Designer. 4. Nun wird dem Mapping eine anonyme Java-Funktion hinzugefügt. Java-Funktion im Mappping Abbildung 3-70 Attribute Mapping Hinzufügen einer anonymen Java-Funktion 5. Zum Bearbeiten der anonymen Java-Funktion führen Sie einen Doppelklick auf diese aus. Es öffnet sich das Fenster [java expression properties]. Stand Seite 85 von 470 Version 4.4

86 Parameter- Name Parameter- Typ Parameteroptional? Rückgabetyp Rückgabe- Wert kann null sein Funktionsname Quelltext der Java Funktion Abbildung 3-71 Attribute Mapping Java expression properties Hinweis: Bei Parametern für anonyme Java Funktionen ist zu beachten, dass sie als required oder nicht required (= optional) definiert werden können. Ist ein Parameter required und bei der Ausführung steht der Wert nicht zur Verfügung, dann wird die Funktion nicht aufgerufen. Bei Parametern der Typen int, long, double, float und boolean ist der Java-Typ der Parameter abhängig davon ob der Parameter als required definiert wurde. Ist der Wert optional dann erhält der Java-Typ statt der primitiven Java-Typen die zugehörigen Objekt-Typen Integer, Long, Double, Float oder Boolean. Diese Typen können auch den Wert null annehmen, was bei primitiven Typen nicht der Fall ist. Deshalb übernimmt in diesem Fall das Mapping-Framework die Prüfung auf null und ruft die Funktionen nicht auf, wenn kein Wert vorhanden ist (der Quellausdruck null liefert). 6. Nach dem Sie Ihre Java Funktion bearbeitet haben, klicken Sie auf [Validate] um Ihren Code überprüfen zu lassen und um Ihre Eingaben zu bestätigen. 7. Zum Abschließen Ihrer Funktionsbearbeitung klicken Sie auf [OK]. 8. Nun sehen Sie, dass die Java Funktion im Message Mapping Designer an Ihre Eingaben im [java expression properties] Fenster angepasst wurde. Stand Seite 86 von 470 Version 4.4

87 Java-Funktion create_artikel_id Abbildung 3-72 Attribute Mapping Java Funktion Parameter der Java-Funktion create_artikel_id Hinweis: Anonyme Java Funktionen können unterschiedliche Werte als Parameter annehmen, neben der Übergabe von Attributen können Sie ebenfalls Festwerte, Variablenwerte, Rückgabewerte von Subprozessen und Channels sowie Rückgabewerte anderer anonymer Funktionen erhalten. 9. Selektieren Sie in der Werkzeugleiste das [Assignment]-Werkzeug. 10. Klicken Sie im Message Mapping Designer auf den gewünschten Mapping Eintrag, welchen Sie der Java Funktion als Parameter übergeben möchten und halten Sie die Maustaste gedrückt. 11. Ziehen Sie nun den Pfeil auf den Parameter der Java Funktion, für welchen der Wert an die Funktion übergeben werden soll und lassen Sie die Maustaste los. 12. Um den Rückgabewert der Java Funktion als Quelle für ein Attribut der Ziel-Message zu verwenden, klicken Sie auf die Java-Funktion und halten Sie die Maustaste gedrückt. 13. Ziehen Sie nun den Pfeil auf das gewünschte Attribut der Ziel-Message der und lassen Sie die Maustaste los. Stand Seite 87 von 470 Version 4.4

88 Abbildung 3-73 Attribute Mapping Mapping mit anonymer Java Funktion Achtung: Sollte Ihre Zuweisung nicht funktionieren, gibt es hierfür in den meisten Fällen zwei mögliche Ursachen. Es wurde kein Node Mapping selektiert. Vergewissern Sie sich im Register [node mapping] im Detailbereich, dass ein Node Mapping selektiert ist. Die Datentypen der Funktion und des Zielfeldes sind nicht kompatibel. Den Datentyp eines Attributs können Sie sich über einen Doppelklick auf das jeweilige Attribut anzeigen lassen. Ggf. müssen Sie eine Konvertierung vornehmen. Stand Seite 88 von 470 Version 4.4

89 Mapping über XPath Ausdrücke Innerhalb eines Node Mappings haben Sie die Möglichkeit über XPath Ausdrücke auf Werte der XML Struktur der Quell-Message zuzugreifen. Um einen XPath-Ausdruck innerhalb eines Node Mappings zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Message Mapping, für welches Sie einen XPath-Ausdruck einfügen möchten. 2. Wählen Sie das gewünschte Node Mapping aus. 3. Selektieren Sie in der Werkzeugleiste das [XPath expression]-werkzeug und klicken Sie in den Message Mapping Designer. 4. Nun wird dem Mapping ein XPath-Ausdruck hinzugefügt. Abbildung 3-74 Attribute Mapping Mapping mit XPath XPath Ausdruck im Mapping 5. Zum Bearbeiten des anonymen XPath-Ausdrucks führen Sie einen Doppelklick auf diesen aus. Es öffnet sich das Fenster [XPath Editor]. Stand Seite 89 von 470 Version 4.4

90 Namespace- URI Namespace Hinzufügen / Löschen Funktionsname Funktionsname Namespace- Prefix Parameter Auflistung des XPath Ausdrucks XPath Ausdrucks Abbildung 3-75 Attribute Mapping XPath Editor 6. Nach dem Sie Ihren XPath-Ausdruck bearbeitet haben, klicken Sie auf [OK]. 7. Nun sehen Sie, dass der XPath-Ausdruck im Message Mapping Designer an Ihre Eingaben im [XPath Editor] Fenster angepasst wurde. Abbildung 3-76 Attribute Mapping XPath Stand Seite 90 von 470 Version 4.4

91 Hinweis: XPath Ausdrücke können unterschiedliche Werte als Parameter übernehmen, neben der Übergabe von Attributen können Sie ebenfalls Festwerte, Variablenwerte, Rückgabewerte von Subprozessen und Channels sowie Rückgabewerte anderer anonymer Funktionen oder XPath Ausdrücke erhalten. 8. Selektieren Sie in der Werkzeugleiste das [Assignment]-Werkzeug. 9. Klicken Sie im Message Mapping Designer auf den XPath-Ausdruck und halten Sie die Maustaste gedrückt. 10. Ziehen Sie nun den Pfeil auf das Attribut der Ziel-Message / eine Funktion für die Verarbeitung des XPath-Resultats, für welches Sie das Resultat des XPath-Ausdrucks verwenden möchten und lassen Sie die Maustaste los. Abbildung 3-77 Attribute Mapping Mapping mit XPath Achtung: Sollte Ihre Zuweisung nicht funktionieren gibt es hierfür in den meisten Fällen zwei mögliche Ursachen. Es wurde kein Node Mapping selektiert. Vergewissern Sie sich im Register [node mapping] im Detailbereich, dass ein Node Mapping selektiert ist. Die Datentypen des Ausdrucks und des Zielfeldes sind nicht kompatibel. Den Datentyp eines Attributs können Sie sich über einen Doppelklick auf das jeweilige Attribut anzeigen lassen. Ggf. müssen Sie eine Konvertierung vornehmen. Stand Seite 91 von 470 Version 4.4

92 Lookup-Funktionalität Neben der Quell-Message kann man auch noch andere Nachrichten als Parameter an ein Mapping übergeben. Dies kann insbesondere sinnvoll sein, wenn man Informationen aus verschiedenen Nachrichten in einer Ergebnisnachricht kombinieren will. Nachfolgend ein Beispiel an dem man sieht, wie ein Mapping Werte aus einer übergebenen zweiten Nachricht lookupmsg anhand eines Schlüssels selektiert. Abbildung 3-78 Lookup mit Hilfe eines XPath-Ausdrucks Der Schlüssel ist der Wert aus dem Quellfeld Name. Der Lookup wird mit Hilfe eines XPath-Ausdrucks durchgeführt. In dem XPath-Editor wurde ein Parameter key angelegt dem der Wert aus dem Feld Name zugewiesen wird. Der XPath-Ausdruck abt[old=$key]/new wird auf die Nachricht aus der Variablen lookupmsg angewendet; der Ergebniswert wird in das Ziel Feld Abt gemappt. Stand Seite 92 von 470 Version 4.4

93 Aufruf von Channels und Subprozessen Häufig will man Nachrichten aus anderen Datenquellen in eine Ziel-Message einfügen. Man kann deshalb Channels und Subprozesse, direkt in einem Mapping aufrufen. Um einen Channel oder Subprozess in einem Mapping zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Message Mapping, in welches Sie einen Channel oder einen Subprozess einfügen möchten. 2. Wählen Sie das gewünschte Node Mapping aus. 3. Markieren Sie im Szenario Bereich des Orchestra Designers den gewünschten Channel oder das gewünschte Prozess Modell. 4. Klicken Sie nun auf den Message Mapping Designer um den Channel oder das Prozess Modell in das Mapping einzufügen. Channelaufruf im Mappping Aufruf eines Subprozesses im Mapping Eingabe- Parameter Abbildung 3-79 Attribute Mapping Mapping mit Channel und Prozess Modell Rückgabewert 5. Nun wird dem Mapping der Channel oder das Prozess Modell hinzugefügt. 6. Selektieren Sie in der Werkzeugleiste das [Assignment]-Werkzeug. 7. Klicken Sie im Message Mapping Designer auf den gewünschten Mapping Eintrag, welchen Sie dem Channel oder dem Prozess Modell als Parameter übergeben möchten und halten Sie die Maustaste gedrückt. Stand Seite 93 von 470 Version 4.4

94 8. Ziehen Sie nun den Pfeil auf den Parameter des Channel oder des Prozess Modells, für welchen der Wert an die Funktion übergeben werden soll und lassen Sie die Maustaste los. 9. Um den Rückgabewert des Channel oder des Prozess Modell als Quelle für ein Attribut der Ziel-Message zu verwenden, klicken Sie auf den Rückgabewert des Channel oder des Prozess Modell und halten Sie die Maustaste gedrückt. 10. Ziehen Sie nun den Pfeil auf das gewünschte Attribut der Ziel-Message der und lassen Sie die Maustaste los. Abbildung 3-80 Attribute Mapping Mapping mit Channel und Prozess Modell Achtung: Sollte Ihre Zuweisung nicht funktionieren gibt es hierfür in den meisten Fällen zwei mögliche Ursachen. Es wurde kein Node Mapping selektiert. Vergewissern Sie sich im Register [node mapping] im Detailbereich, dass ein Node Mapping selektiert ist. Die Datentypen des Parameters und des Zielfeldes sind nicht kompatibel. Den Datentyp eines Attributs können Sie sich über einen Doppelklick auf das jeweilige Attribut anzeigen lassen. Ggf. müssen Sie eine Konvertierung vornehmen. Stand Seite 94 von 470 Version 4.4

95 Mapping Prototypes Häufig will man Nachrichten in andere Datentypen umwandeln, String-, Datumsfunktionen und andere Standardfunktionen verwenden. Der Orchestra Designer biete Ihnen deshalb eine Bibliothek dieser Funktionen die so genannten Mappings Prototypes. Diese finden Sie im linken unteren Bereich des Orchestra Designers. Mapping Prototypes Abbildung 3-81 Mapping Prototypes Mapping Prototype Gruppen Conversion functions Umwandlungsfunktionen z.b. für Datentypen. IDOC-Mapping Date functions Funktionen auf Datumswerten. Logical functions Logische Funktionen werden auf Ausdrücke angewendet, um Informationen zu den Werten oder Mengen in diesem Ausdruck zurückzugeben. String functions Funktionen die mit Zeichenketten umgehen Context functions Funktionen aus dem XPath-Kontext IDoc functions IDOC Funktionen für die Verarbeitung von IDOC Segmenten. Stand Seite 95 von 470 Version 4.4

96 Verwenden von Mapping Prototypes Um einen Mapping Prototype in einem Mapping zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Message Mapping, in welches Sie einen Mapping Prototype einfügen möchten. 2. Wählen Sie das gewünschte Node Mapping aus. 3. Markieren Sie im Bereich Mapping Prototype die gewünschte Funktion. 4. Klicken Sie nun auf den Message Mapping Designer um die Funktion in das Mapping einzufügen. Mapping Prototype - Funktion im Mapping Abbildung 3-82 Attribute Mapping Mapping Prototype Functions im Mapping 5. Nun wird dem Mapping die Mapping Prototype Funktion hinzugefügt. 6. Selektieren Sie in der Werkzeugleiste das [Assignment]-Werkzeug. 7. Klicken Sie im Message Mapping Designer auf das Attribut der Quell-Message, den Wert, die Variable, o.a. Werte, welchen Sie die Mapping Prototype Funktion als Parameter übergeben möchten und halten Sie die Maustaste gedrückt. 8. Ziehen Sie nun den Pfeil auf den Parameter der Mapping Prototype Funktion, für welchen der Wert an die Funktion übergeben werden soll und lassen Sie die Maustaste los. 9. Befüllen Sie ggf. auch alle anderen benötigten Parameter. 10. Um den Rückgabewert der Mapping Prototype Funktion für ein Attribut der Ziel-Message / oder eine weitere Funktion zu verwenden, klicken Sie auf die Mapping Prototype Funktion und halten Sie die Maustaste gedrückt. 11. Ziehen Sie nun den Pfeil auf das gewünschte Attribut der Ziel-Message / oder eine weitere Funktion und lassen Sie die Maustaste los. Stand Seite 96 von 470 Version 4.4

97 Abbildung 3-83 Attribute Mapping Mapping mit Mapping Prototyp Funktion Achtung: Sollte Ihre Zuweisung nicht funktionieren gibt es hierfür in den meisten Fällen zwei mögliche Ursachen. Es wurde kein Node Mapping selektiert. Vergewissern Sie sich im Register [node mapping] im Detailbereich, dass ein Node Mapping selektiert ist. Die Datentypen des Funktionsaufrufes und des Zielfeldes sind nicht kompatibel. Den Datentyp eines Attributs können Sie sich über einen Doppelklick auf das jeweilige Attribut anzeigen lassen. Ggf. müssen Sie eine Konvertierung vornehmen. Stand Seite 97 von 470 Version 4.4

98 3.3.7 Alternative Ansicht verwenden (im Orchestra Mapping) Wenn Sie sehr umfangreiche Datentypen haben, kann das Navigieren in der Standardansicht des Message Mapping Editors sehr mühsam werden. Aus diesem Grund können Sie in eine alternative Ansicht umschalten. Um die alternative Ansicht zu wählen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Mapping über einen Rechtsklick auf das gewünschte Message Mapping. 2. Wählen Sie den Eintrag [change view]. 3. Jetzt können Sie das Message Mapping in der Alternative Ansicht öffnen. Node Mapping Attribut Mapping Abbildung 3-84 Message Mapping Alternative Ansicht Hinweis: Gehört die Quelle eines Attribut-Mappings zu einem anderen Element als dem aktuellen Quellknotenelement des Node-Mappings, dann wird dies durch ein einen XPath- Ausdruck dargestellt. (siehe folgende Abbildung) Stand Seite 98 von 470 Version 4.4

99 Abbildung 3-85 Message Mapping Alternative Ansicht / Quell-Message aus anderem Elementknoten Anlegen eines Target Only Mapping Ein Target-Only-Mapping ist ein Orchestra-Mapping ohne Quell-Message. Um ein Target Only Message Mapping zu erzeugen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Mapping über einen Rechtsklick auf Message Mapping. 2. Wählen Sie den Eintrag [create mapping]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Message Mapping ein und klicken auf [next]. Stand Seite 99 von 470 Version 4.4

100 Message Mapping Name Message Mapping Beschreibung Abbildung 3-86 Message Mapping erzeugen 4. Im nächsten Dialogabschnitt wählen Sie den Mapping Typ [Target Only] aus und klicken Sie auf [next]. 5. In den folgenden Abfragen wählen Sie Ihren Target-Type und bestätigen Ihre Auswahl mit [next]. 6. Abschließend müssen Sie lediglich noch angeben, ob vom Orchestra Designer ein Node- Mapping angelegt werden soll und Ihre Eingaben mit [finish] bestätigen. Nun erscheint Ihr Message Mapping im Designer Panel. Nun können Sie Ihr Mapping bearbeiten. Abbildung 3-87 Target Only Message Mapping Stand Seite 100 von 470 Version 4.4

101 3.3.9 Anlegen eines IDOC-Mapping Ein IDOC-Mapping ist ein Orchestra-Mapping für die Verarbeitung von IDOCs. Die Quell- und Zieltypen müssen aus SAP importiert worden sein. IDOC-Mappings werden mit Hilfe des Mapping-Wizards (Dialogfolge zum Erzeugen eines Mappings) generiert. Um ein IDOC Message Mapping zu erzeugen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Mapping über einen Rechtsklick auf Message Mapping. 2. Wählen Sie den Eintrag [create mapping]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Message Mapping ein und klicken auf [next]. Message Mapping Name Message Mapping Beschreibung Abbildung 3-88 Message Mapping erzeugen 4. Im nächsten Dialogabschnitt wählen Sie den Mapping Typ IDOC aus und klicken Sie auf [next]. Hinweis: Eine genau Beschreibung der Mapping Typen finden Sie im Kapitel 3.2 Message Types. 5. In der folgenden Abfragen wählen Sie Ihren IDOC Mapping Type und bestätigen jeweils Ihre Auswahl mit [next]. Stand Seite 101 von 470 Version 4.4

102 Abbildung 3-89 IDOC Message Type wählen Stand Seite 102 von 470 Version 4.4

103 Anlegen eines XSLT-Mapping Ein XSLT-Mapping ist ein XSLT-Skript das eine Quellnachricht in eine Zielnachricht transformiert. Um ein XSLT Message Mapping zu erzeugen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Mapping über einen Rechtsklick auf Message Mapping. 2. Wählen Sie den Eintrag [create mapping]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Message Mapping ein und klicken auf [next]. Message Mapping Name Abbildung 3-90 Message Mapping erzeugen Message Mapping Beschreibung 4. Im nächsten Dialogabschnitt wählen Sie den Mapping Typ XSLT aus und klicken Sie auf [next] um Ihr XSLT Mapping anzulegen. 5. Nun erscheint Ihr XSLT Mapping im Designer Panel. Hier können Sie Ihr Mapping bearbeiten. Abbildung 3-91 XSLT - Mapping Stand Seite 103 von 470 Version 4.4

104 Anlegen eines Java-Mapping Ein Java-Mapping verwendet ein externes Java-Archiv (JAR) um eine Quellnachricht in eine Zielnachricht zu transformieren. Um ein Java Message Mapping zu erzeugen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Mapping über einen Rechtsklick auf Message Mapping. 2. Wählen Sie den Eintrag [create mapping]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Message Mapping ein und klicken auf [next]. Message Mapping Name Abbildung 3-92 Message Mapping erzeugen Message Mapping Beschreibung 4. Im nächsten Dialogabschnitt wählen Sie den Mapping Typ [JAVA] aus und klicken Sie auf [next] um Ihr Java Mapping anzulegen. 5. In den beiden folgenden Abfragen wählen Sie Ihre Quell- sowie Ihre Ziel-Message und bestätigen jeweils Ihre Auswahl mit [next]. 6. Anschließend müssen Sie noch ein Java-Archiv, welches Sie verwenden möchten auszuwählen. Stand Seite 104 von 470 Version 4.4

105 Extended Java Mapping Als Prozedurale Mappings bezeichnen wir Mappings die mit Hilfe einer Programmiersprache definiert werden. Innerhalb von Orchestra verwendet man hierzu Java mit eingebetteten XPath-Ausdrücken. Implementierungsdetail: Prozedurale Mappings werden mit Hilfe eines Präprozessors nach Java übersetzt. Tatsächlich wird eine Klasse generiert, deren Methode execute überladen wird. In einem prozeduralen Mapping sind als eingebettete XPath-Ausdrücke nur Pfad- Ausdrücke erlaubt; sie beginnen immer mit einer Referenz auf eine Message oder eine Variable vom Typ Node oder NodeSet. XPath-Ausdrücke können sowohl verwendet werden um Elemente der Quellnachricht zu referenzieren, als auch um ein Element der Zielstruktur zu referenzieren, wenn man dieser Werte zuweisen will. Beispiel: $MSG/Record = $SRC/Record[child::name=$kz]; Diese Form der Zuweisung führt eine rekursive Kopie (deep copy) aus. Fehlende Knoten im Ziel werden dabei automatisch angelegt. Wenn man z.b. als erstes Statement schreibt: $MSG/first/second/third = "hallo"; Dann werden die fehlenden Knoten first, second und third angelegt. Der Knoten third erhalt den Textwert hallo. Stand Seite 105 von 470 Version 4.4

106 Nachfolgend ein einfaches Beispiel für ein Mapping: Abbildung 3-93 Extended Java Mapping erzeugen Man sieht hier insbesondere: Dass man innerhalb eines XPath-Ausdrucks auf Variablen zugreifen kann, die im Parameterpanel definiert wurden. Diese werden wie in XPath erforderlich, mit einem führenden Dollarzeichen referenziert. Dass man innerhalb von Java Variablen referenziert, indem man ihren Namen schreibt, z.b. neuername. Nachfolgend ein weiteres Beispiel: $DST = $SRC; remove($dst/record[name='jwo']); for (Node record: $DST/Record) { String name = asstring($record/name); if ( name.equals(persid) ) { $record/property[key='nachname']/value = newname; } } Node record = appendchild($dst/record); Node property = appendchild($record/property); = 12; Stand Seite 106 von 470 Version 4.4

107 Man sieht hier insbesondere: Dass man einen Knoten mit der Methode remove entfernen kann. Als Argument für remove gibt man den XPath zu dem Element an, das entfernt werden soll. Das man mit einer abgekürzten Syntax über Knotenmengen iterieren kann. Dass man die Methode asstring verwenden muss um den Werte eines XPath- Ausdrucks in einen String zu verwandeln. Das ist nötig, da XPath-Ausdrücke immer eine Knotenmenge zurückliefern. Dass man einem Knoten ein weiteres Kind vom selben Typ mit der Methode appendchild hinzufügen kann. Folgende Hilfsmethoden stehen in einem prozeduralen Mapping zur Verfügung: Methode remove(nodeset) remove(node) asstring(nodeset) asint(nodeset) aslong(nodeset) asdouble(nodeset) Tabelle 3-1 Hilfsmethoden Prozedurale Mappings Beschreibung Entfernt alle Knoten der Knotenmenge; die Methode darf nur auf der Zielnachricht aufgerufen werden. Entfernt den Knoten; die Methode darf nur auf der Zielnachricht aufgerufen werden. Wandelt eine Knotenmenge entsprechend den XPath-Regeln in einen String um. Wandelt eine Knotenmenge entsprechend den XPath-Regeln in eine Ganzzahl (int-wert) um. Wandelt eine Knotenmenge entsprechend den XPath-Regeln in eine Ganzzahl (Objekt vom Typ Long) um. Wandelt eine Knotenmenge entsprechend den XPath-Regeln in eine Fließkommazahl (Objekt vom Typ Double) um. appendchild(<xpath>) einen neuen Knoten hinzu; liefert den Knoten (Objekt vom Typ Node zurück Hinweis: Eine detailiertere Beschreibung der Extended Java Mappings finden Sie im Entwicklerhandbuch Kapitel 3. Stand Seite 107 von 470 Version 4.4

108 Anlegen eines Extended Java-Mapping Als Prozedurale Mappings (Extended Java-Mapping) bezeichnen wir Mappings die mit Hilfe einer Programmiersprache definiert werden. Innerhalb von Orchestra verwendet man hierzu Java mit eingebetteten XPath-Ausdrücken. Um ein Java Message Mapping zu erzeugen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Message Mapping über einen Rechtsklick auf Message Mapping. 2. Wählen Sie den Eintrag [create mapping]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Message Mapping ein und klicken auf [next]. Message Mapping Name Abbildung 3-94 Message Mapping erzeugen Message Mapping Beschreibung 4. Im nächsten Dialogabschnitt wählen Sie den Mapping Typ [Extended Java Mapping] aus und klicken Sie auf [next] um Ihr Java Mapping anzulegen. 5. In den beiden folgenden Abfragen wählen Sie Ihre Quell- sowie Ihre Ziel-Message und bestätigen jeweils Ihre Auswahl mit [next]. 6. Anschließend müssen Sie noch ein Java-Archiv, welches Sie verwenden möchten auszuwählen. Stand Seite 108 von 470 Version 4.4

109 3.4 Process Models Prozessmodelle beschreiben das Zusammenspiel verschiedener Aktivitäten. Als Modellierungssprache wird im Orchestra Designer die standardisierte Modellierungssprache BPMN (Business Process Modeling Notation) der OMG (Object Management Group) verwendet, siehe dazu In den folgenden Kapiteln erhalten Sie detaillierte Informationen über: Process Model Designer - Knoten Process Model Designer - Kanten Prozessvariablen Zuweisung von Variablen im Prozessablauf Konfigurationseinstellungen Business Keys Stand Seite 109 von 470 Version 4.4

110 3.4.1 Process Models Kontextmenü Im Bereich Process Models der Szenario Elemente befinden sich alle zu diesem Szenario gehörigen Process Models. Hier können Sie über einen Rechtsklick auf das Element ein Menü öffnen (siehe Abbildung). In diesem Menü erhalten Sie die Möglichkeit neue Process Models zu erstellen, eine neue Dokumentation anzulegen und die Process Model Elemente innerhalb der Baumstruktur zu gruppieren. Haben Sie einen Rechtsklick auf ein vorhandenes Process Modell ausgeführt, so erhalten Sie zusätzlich die Möglichkeit dieses zu öffnen, die Eigenschaften des Elements zu bearbeiten oder es zu löschen. Abbildung 3-95 Process Models (Szenario Element) Process Models Designer Im Orchestra Designer steht Ihnen eine grafische Oberfläche zur Verfügung, welche es Ihnen ermöglicht ein Prozess Modell zu erstellen und zu bearbeiten. Process Designer Panel Process Designer Werkzeuge Scenario Elements Process Prototyps Abbildung 3-96 Process Modell Designer Stand Seite 110 von 470 Version 4.4

111 Process Modell Designer - Werkzeuge Zum Bearbeiten eines Prozess Modells stehen Ihnen verschiedene Werkzeuge zur Verfügung. Auswahl- Werkzeug Kommentar- Werkzeug Edge-Werkzeug / Verbindung herstellen Abbildung 3-97 Process Modell Designer - Werkzeuge Mit dem Auswahlwerkzeug können Elemente eines Prozess Modells eingefügt, verschoben, gelöscht und manipuliert werden. Kommentare können mit dem zugehörigen Werkzeug angelegt werden. Mit dem Edge-Werkzeug können Sie Verbindungslinien zwischen Aktivitäten und anderen Modellelementen (z.b. Channels) erstellen; diese Kanten heißen in BPMN Associations Process Modell Designer How To Elemente eines Prozess Modells wie z.b. Mappings, Channels, Aktivitäten, Events oder Gateways werden mittels Click & Click in die Editoroberfläche eingefügt. Mit dem Auswahlwerkzeug können Sie dort verschoben und editiert werden. Abbildung 3-98 Process Modell Designer Click&Click Abhängig vom Typ des Objektes können einzelne Aktionen auch mit der rechten Maustaste und nachfolgender Auswahl eines Menüeintrages ausgeführt werden. Abbildung 3-99 Process Modell Designer Aktionen Stand Seite 111 von 470 Version 4.4

112 3.4.3 Elemente eines Prozessmodells Im Process Model Designer stehen Ihnen verschiedene Elemente zum Erstellen von Prozessmodellen zur Verfügung. In den folgenden Kapiteln erhalten Sie eine detaillierte Beschreibung der einzelnen Elemente. Folgende Modellelemente werden in Orchestra verwendet: Start Events Intermediate Events End Events Scenario Elemente Activities Enterprise Features Gateways Business-Transaction Achtung: Alle Szenario Elemente, ausgenommen Message Mappings und Subprozessmodelle benötigen eine Activity um angesprochen werden zu können. Hinweis: Jedes Prozessmodell benötigt zwingend ein Start- so wie ein End- Event um den Einstiegs- bzw. den Endpunkt eines Prozessmodells zu definieren. Stand Seite 112 von 470 Version 4.4

113 Start Events Start Events werden benutzt, um Situationen zu beschreiben, in denen der Workflow auf ein internes oder externes Ereignis wartet, um mit der Ausführung zu beginnen. Es können im Prozessmodell folgende Start Events verwendet werden: Tabelle 3-2 Start Events Symbol Bezeichnung Beschreibung Start Subprozesse beginnen typischerweise mit diesem Startevent. D.h. sie werden nicht durch ein externes Ereignis initiiert, sondern durch einen Aufruf von einem anderen Prozess Modell. Message Eine Nachricht von einem externen System wird durch einen Inbound-Channel empfangen. Mit Hilfe des Message Events wird eine Prozessinstanz gestartet. Timer Mit Hilfe dieses Events werden Prozessinstanzen zeitlich gesteuert gestartet. Man kann sowohl periodisch wiederkehrende Events definieren (z.b. alle 10 Minuten), als auch Events die zu bestimmten Zeitpunkten auftreten (z.b. jeden Montag um 7 Uhr). Signal Eine Prozessinstanz wird initiiert, wenn ein Signal des angegebenen Typs von einem anderen Prozess gesendet wird. Signale werden durch eine Signatur identifiziert, die im Scenario unter dem Abschnitt Service Operation definiert werden. Hier kann man auch einen Event-Filter definieren um nur auf Events mit bestimmten Eigenschaften zu reagieren. Stand Seite 113 von 470 Version 4.4

114 Start Events im Prozessmodell verwenden Um ein Start Event in einem Prozessmodell verwenden zu können, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozessmodell, welches Sie bearbeiten möchten. 2. Markieren Sie im Bereich Process Prototypes > Start Events das Start Event, welches Sie im Prozessmodell verwenden möchten. 3. Klicken Sie nun in den Process Model Designer um das Element einzufügen Start Event im Prozess Modell Abbildung Start Event im Prozess Modell verwenden 4. Nach dem Sie alle notwendigen Elemente in das Prozessmodell eingefügt haben, können Sie die Elemente nun über das Edge -Werkzeug mit einander verbinden. Hinweis: Abhängig vom Start-Event müssen Sie noch die notwendigen Einstellungen für das jeweilige Start-Event vornehmen: Message Das Message-Start-Event benötigt zusätzlich noch einen Inbound-Channel, welcher die Message des externen Systems liefert. Abbildung Message Start Event Stand Seite 114 von 470 Version 4.4

115 Um die Einstellungen des Message Events zu bearbeiten, klicken Sie doppelt auf das Symbol. Unter Correlations werden Ihnen die eingehenden Messages angezeigt. Unter Process Properties können Sie die Ausdrücke für die Messages definieren. Zuweisungsmöglichkeit für Prozessvariablen via Java od. XPath (Siehe Kapitel ) Abbildung Message Start Event - Einstellungen Timer Zum Einstellen der Timer-Eigenschaften des Timer-Start-Events führen Sie einen Doppelklick auf diesen aus. Abbildung Timer Start Event Einstellungen Stand Seite 115 von 470 Version 4.4

116 Signal Zum Einstellen der Signal-Eigenschaften des Signal-Start-Events führen Sie einen Doppelklick auf diesen aus. Auswahl des Signals Transient: Signale verfallen, wenn Scenario inaktiv ist. Persistent: Signale werden in einer Queue gespeichert und ausgeführt wenn Scenario aktiv ist. (anonymous: keine Bennenung named topic: Bennenung) Abbildung Signal Start Event Einstellungen Erstellung von Eigenschaften mit Java oder Xpath Abbildung Signal Start Event Einstellungen Stand Seite 116 von 470 Version 4.4

117 Intermediate Events Intermediate Events werden benutzt, um innerhalb des Prozessablaufs auf ein Ereignis zu warten bzw. zu reagieren. Man unterscheidet folgende Intermediate Events: Tabelle 3-3 Intermediate Events Symbol Bezeichnung Beschreibung Error Error Event (Blitzsymbol im doppelten Kreis): wird an eine Aktivität angehängt. Von diesem Knoten aus wird dann weiter verzweigt. Wenn eine Aktivität mit einem Error Event mit einem Fehler beendet wird, dann wird in den Pfad verzweigt, der von dem Error Event ausgeht. Timer Timer Event (Analoge Uhr im doppelten Kreis): Definiert eine zeitliche Verzögerung. Dieses Symbol kann als unabhängiger Knoten verwendet werden oder an eine Aktivität angehängt werden. Im ersten Fall wartet der Prozess eine bestimmte Zeitdauer, bis er weiterarbeitet. Im zweiten Fall wird der Prozessfluss verändert, wenn die Aktivität nicht in der angegebenen Zeitdauer beendet wird. Signal Wartet auf ein Signal eines bestimmten Typs dass von einem anderen Prozess gesendet wird. Signale werden durch eine Signatur identifiziert, die im Scenario unter dem Abschnitt Service Operation definiert werden kann. Stand Seite 117 von 470 Version 4.4

118 Throw Sendet ein Signal. Ein anderer Prozess kann mit einem solchen Signal gestartet werden (Start Event) oder auf ein solches Signal warten (Intermediate Event). Manual Recovery Erreicht der Prozess diese Aktivität, dann hält er an und bekommt einen besonderen Status. Der Benutzer kann dann im Orchestra Monitor entscheiden, ob die Aktivität übersprungen oder die Aktivität noch einmal ausgeführt werden soll. Dabei können auch Prozessvariablen manuell geändert werden. Wenn z.b. ein Mapping nicht ausgeführt werden konnte, weil die Quell-Message nicht vollständig war, dann kann die Nachricht im XML-Format in einem Editorfenster geändert und danach das Mapping erneut ausgeführt werden. Diese Aktivität kann in Orchestra nicht getestet werden. Message Aufruf eines Services. Der Service kann sowohl ein externer Web-Service als auch ein interner Orchestra-Service sein. Dasselbe wie ein Service Call, allerdings kann hier kein Intermediate Event angehängt (attached) werden, weil es sich formal um keine Activity entspr. BPMN handelt. Log Logging Event: Führt ein Logging aus. Stand Seite 118 von 470 Version 4.4

119 Intermediate Events im Prozessmodell verwenden Um ein Intermediate Event in einem Prozessmodell verwenden zu können, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozessmodell, welches Sie bearbeiten möchten. 2. Markieren Sie im Bereich Process Prototypes > Intermediate Events das Intermediate Event, welches Sie im Prozessmodell verwenden möchten. 3. Klicken Sie nun in den Process Model Designer um das Element einzufügen Intermediate Event im Prozess Modell Abbildung Intermediate Event im Prozess Modell verwenden 4. Nach dem Sie alle notwendigen Elemente in das Prozessmodell eingefügt haben, können Sie die Elemente nun über das Edge -Werkzeug miteinander verbinden. Hinweis: Abhängig vom Intermediate-Event müssen Sie noch die notwendigen Einstellungen für das jeweilige Intermediate-Event vornehmen: Error Zum Einstellen der Eigenschaften des Error-Intermediate-Events führen Sie einen Doppelklick auf diesen aus. Stand Seite 119 von 470 Version 4.4

120 Zuweisungsmöglichkeit für Prozessvariablen via Java od. XPath (Siehe Kapitel ) Abbildung Error Intermediate Event Einstellungen Timer Zum Einstellen der Eigenschaften des Timer-Intermediate-Events führen Sie einen Doppelklick auf diesen aus. Abbildung Timer Intermediate Event Einstellungen Stand Seite 120 von 470 Version 4.4

121 Signal Zum Einstellen der Eigenschaften des Signal-Intermediate-Events führen Sie einen Doppelklick auf diesen aus. Auswahl des Signals Transient: Signale verfallen, wenn Scenario inaktiv ist. Persistent: Signale werden in einer Queue gespeichert und ausgeführt wenn Scenario aktiv ist. (named topic: wird momentan nicht unterstützt) Abbildung Signal Intermediate Event Einstellungen Erstellung von Eigenschaften mit Java oder Xpath Abbildung Signal Intermediate Event Einstellungen Stand Seite 121 von 470 Version 4.4

122 Zuweisungsmöglichkeit für Prozessvariablen via Java od. XPath (Siehe Kapitel ) Abbildung Signal Intermediate Event Einstellungen Message Das Message-Intermediate-Event benötigt zusätzlich noch einen Inbound-Channel, welcher die Message des externen Systems liefert. Abbildung Message Intermediate Event Um die Einstellungen des Message Intermediate Events zu bearbeiten, klicken Sie doppelt auf das Symbol. Unter Correlations werden Ihnen die eingehenden Messages angezeigt. Unter Process Properties können Sie die Ausdrücke für die Messages definieren. Stand Seite 122 von 470 Version 4.4

123 Mögliche Variablen Erstellung von Eigenschaften für die Variabeln mit Java oder Xpath Abbildung Einstellungen Message Intermediate Event Zuweisungsmöglichkeit für Prozessvariablen via Java od. XPath (Siehe Kapitel ) Abbildung Einstellungen Message Intermediate Event Stand Seite 123 von 470 Version 4.4

124 Log Zum Einstellen der Eigenschaften des Log-Intermediate-Events führen Sie einen Doppelklick auf diesen aus. Loglevel auswählen Auswahl der zu loggenden Operationen Abbildung Log Intermediate Event Einstellungen Zuweisungsmöglichkeit für Prozessvariablen via Java od. XPath (Siehe Kapitel ) Abbildung Log Intermediate Event Einstellungen Stand Seite 124 von 470 Version 4.4

125 End Events End Events werden benutzt, um Situationen zu beschreiben, in denen der Workflow eines Prozess Modells abgeschlossen ist. Es können im Prozessmodell folgende End Events verwendet werden: Tabelle 3-4 End Events Symbol Bezeichnung Beschreibung End Beendet den Prozess erfolgreich ohne weitere Aktion. Error Beendet den Prozess mit Fehler. Signal Beendet den Prozess und legt ein Signal auf den Bus. Signale werden durch eine Signatur identifiziert, die im Scenario unter dem Abschnitt Service Operation definiert wird. Ein anderer Prozess kann mit einem solchen Signal gestartet werden (Start Event) oder auf ein solches Signal warten (Intermediate Event). Stand Seite 125 von 470 Version 4.4

126 End Events im Prozessmodell verwenden Um ein End Event in einem Prozessmodell verwenden zu können, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozessmodell, welches Sie bearbeiten möchten. 2. Markieren Sie im Bereich Process Prototypes > End Events das End Event, welches Sie im Prozessmodell verwenden möchten. 3. Klicken Sie nun in den Process Model Designer um das Element einzufügen End Event im Prozess Modell Abbildung End Event im Prozess Modell verwenden 4. Nach dem Sie alle notwendigen Elemente in das Prozessmodell eingefügt haben, können Sie die Elemente nun über das Edge -Werkzeug mit einander verbinden. Hinweis: Abhängig vom End-Event müssen Sie noch die notwendigen Einstellungen für das jeweilige End-Event vornehmen: Error Die Einstellen der Eigenschaften des Error-End-Events werden Ihnen angezeigt, sobald Sie ein Error-End-Event in den Process Model Designer einfügen. Stand Seite 126 von 470 Version 4.4

127 Abbildung Error End Event Einstellungen Um die Einstellungen des Error-End-Events zu definieren, klicken Sie doppelt auf das Symbol. End Event im Prozess Modell Abbildung Error End Event Einstellungen Stand Seite 127 von 470 Version 4.4

128 Signal Zum Einstellen der Eigenschaften des Signal-End-Events führen Sie einen Doppelklick auf diesen aus. Zuweisungsmöglichkeit für Prozessvariablen via Java od. XPath (Siehe Kapitel ) Abbildung Signal End Event Einstellungen Stand Seite 128 von 470 Version 4.4

129 Aufruf von Szenarioelementen Manche Szenarioelemente können innerhalb eines Prozessmodelles mit Hilfe von verschiedenen Aktivitäten aufgerufen werden. Folgende Szenarioelemente können aufgerufen werden: Tabelle 3-5 Scenario Elemente Symbol Elementbezeichnung Beschreibung Message Mapping Aufruf eines Message Mappings. Process Model Aufruf eines Process Models Channel Channel. Service Declaration Aufruf eines Service. Stand Seite 129 von 470 Version 4.4

130 Szenario Elemente im Prozessmodell verwenden Um ein Szenario Element in einem Prozessmodell verwenden zu können, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozessmodell welches Sie bearbeiten möchten. 2. Markieren Sie im Bereich Scenario Elements das Element, welches Sie im Prozessmodell verwenden möchten. 3. Klicken Sie nun in den Process Model Designer um das Element einzufügen 4. Wenn sie ein anderes Szenario Element als ein Message Mapping verwenden möchten, benötigen Sie jetzt noch eine Call-, Send- oder Receive-Activity, diese finden Sie im Orchestra Designer links unten im Registern [Mapping Prototypes]. Die Activity fügen Sie dem Prozessmodell ebenfalls über Click&Click hinzu. 5. Nach dem Sie alle notwendigen Elemente in das Prozessmodell eingefügt haben, können Sie die Elemente nun über das Edge -Werkzeug mit einander verbinden. Channel im Prozess Modell Message Mapping im Prozess Modell Abbildung Szenario Elemente im Prozess Modell verwenden Stand Seite 130 von 470 Version 4.4

131 Activities Activities beschreiben Arbeitsschritte innerhalb eines Prozessmodells. Es werden folgende Activities zur Verfügung gestellt. Tabelle 3-6 Activities Symbol Bezeichnung Beschreibung Send Asynchroner Aufruf (Request) eines Channels. Receive Warten auf eine Benachrichtigung durch ein externes System mittels eines Inbound-Channels. Call Synchroner Aufruf (Request-Response) eines Channels. Response Gibt eine Nachricht an einen Prozessinitiator zurück. Script Aufruf einer Prozedur die in Java geschrieben wird. Man kann Input- und Output-Parameter definieren. Stand Seite 131 von 470 Version 4.4

132 Activities im Prozessmodell verwenden Um eine Activity in einem Prozessmodell verwenden zu können, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozessmodell welches Sie bearbeiten möchten. 2. Markieren Sie im Bereich Process Prototypes > activities die Activity, welches Sie im Prozessmodell verwenden möchten. 3. Klicken Sie nun in den Process Model Designer um das Element einzufügen. 4. Nach dem Sie alle notwendigen Elemente in das Prozessmodell eingefügt haben, können Sie die Elemente nun über das Edge -Werkzeug miteinander verbinden. Activity im Prozessmodell Abbildung Activity im Prozess Modell verwenden Hinweis: Jede Activity enthält abhängig von seinem Typ Ein- und Ausgabe- Variablen für diese können Sie eine Zuweisung vornehmen. Möchten Sie eine Zuweisung vornehmen, so führen Sie einen Doppelklick auf die Activity aus um deren Eigenschaften zu öffnen. Stand Seite 132 von 470 Version 4.4

133 Iteractive Activities im Prozessmodell verwenden In manchen Fällen ist es nötig eine Iteration für eine Activity vorzunehmen, z.b. bei Verwendung von Messages-Listen zur Abarbeitung aller Messages innerhalb der Liste. Um über eine Activity in einem Prozessmodell zu iterieren, gehen Sie wie folgt vor: Achtung: Wenn Sie die Möglichkeit der Interativen Activities verweden möchten, müssen Sie für das Prozessmodell eine Counter-Variable in den Properties definieren. Wie Sie eine Variable für Prozessmodelle anlegen können, entnehmen Sie dem Kapitel Prozessvariablen anlegen. 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozessmodell welches Sie bearbeiten möchten. 2. Führen Sie im Bereich Process Model Designer einen Rechtsklick auf die Activity aus, für welche Sie eine Iteration vornehmen möchten. Abbildung Activity im Prozess Modell iterieren 3. Wählen Sie im Kontextmenü im Bereich [Loop] die entsprechende Iterationsmethode, welche Sie verwenden möchten. 4. Im folgenden Dialog müssen Sie Ihre Definition für die Iteration vornehmen. 5. Zum Abschließen der Iteration klicken Sie auf [ok]. Abbildung Iterative Activity im Prozess Modell Stand Seite 133 von 470 Version 4.4

134 Um die Eigenschaften der Iteractive-Events zu bearbeiten, führen Sie einen Doppelklick auf das Symbol aus. Zuweisungsmöglichkeit für Prozessvariablen via Java od. XPath (Siehe Kapitel ) Abbildung Iterative Activity im Prozess Modell Einstellungen der Fehlerbehandlung Optimierung der übertragenden Daten Auswahl lokaler oder globaler Modus Abbildung Iterative Activity im Prozess Modell Stand Seite 134 von 470 Version 4.4

135 Verfügbare Variablen Erstellung von Eigenschaften für die Variabeln mit Java oder Xpath Abbildung Iterative Activity im Prozess Modell Stand Seite 135 von 470 Version 4.4

136 Iteration einer Activity entfernen Um über eine Iteration für eine Activity zu entfernen, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozessmodell welches Sie bearbeiten möchten. 2. Führen Sie im Bereich Process Model Designer einen Rechtsklick auf die Activity aus, für welche Sie eine Iteration vornehmen möchten. Abbildung Iteration einer Activity entfernen 3. Wählen Sie im Kontextmenü im Bereich [Loop] > [Disable loop]. Abbildung Activity im Prozess Modell Stand Seite 136 von 470 Version 4.4

137 Iterationsarten Standard Mit der Standard-Iteration können Schleifen per Hand (Java-Code) erstellt werden. Abbildung Standard Iteration Messagelist iteration Die Messagelist Iteration wird verwendet, um über eine MessageList iterieren zu können. Sie benötigt im Prozessmodell drei Variablen, die MessageList selbst eine Message für die aktuell zu verarbeitende Nachricht und eine Countervariable. Abbildung Messagelist Iteration Stand Seite 137 von 470 Version 4.4

138 For-Loop Eine For-Schleife wird verwendet um wie beim Programmieren eine Schleife zu erzeugen, welche eine Start-, eine Endbedingung und eine Zählervariable enthält. Abbildung For-Loop XPath-Loop Ein XPath-Loop ermöglicht es, über die Elemente einer Liste zu Iterieren. Dazu wird ein XPath-Ausdruck angegeben, welcher die entsprechende Elemente die zu verarbeiten sind, definiert. Abbildung XPath-Loop Stand Seite 138 von 470 Version 4.4

139 Enterprise Features Enterprise Features sind Aktivitäten die in BPMN nicht enthalten sind sondern von Orchestra definiert werden. Es gibt folgende Enterprise Features: Tabelle 3-7 Enterprise Features Symbol Bezeichnung Beschreibung Service Call Aufruf eines Services. Der Service kann sowohl ein externer Web-Service als auch ein interner Orchestra-Service sein. Service Response Antwort auf einen Service-Aufruf der von diesem Prozess Modell implementiert wird. Partner send Nötig im Rahmen der Partnerverwaltung. Die Aktivität ruft für genau einen Partner, der auch in den Aufrufparametern mitgeschickt wird, ein Prozess Modell auf. Partner publish Nötig im Rahmen der Partnerverwaltung. Legt eine Nachricht und den Namen eines Business-Objektes auf den Bus. Die Aktivität initiiert für alle Partner, die dieses Businessobjekt abonniert haben, ein Prozess Modell. Stand Seite 139 von 470 Version 4.4

140 Enterprise Features im Prozessmodell verwenden Um ein Enterprise Feature in einem Prozessmodell verwenden zu können, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozessmodell welches Sie bearbeiten möchten. 2. Markieren Sie im Bereich Process Prototypes > Enterprise Features das Feature, welches Sie im Prozessmodell verwenden möchten. 3. Klicken Sie nun in den Process Model Designer um das Element einzufügen Enterprise Features im Prozess Modell Abbildung Enterprise Feature im Prozess Modell verwenden 4. Nach dem Sie alle notwendigen Elemente in das Prozessmodell eingefügt haben, können Sie die Elemente nun über das Edge -Werkzeug mit einander verbinden. 5. Um die Eigenschaften der Enterprise Features zu bearbeiten, führen Sie einen Doppelklick auf das Symbol aus. Stand Seite 140 von 470 Version 4.4

141 Eigenschaften Fehlerbehandlung Abbildung Enterprise Feature - Eigenschaften Zuweisungsmöglichkeit für Prozessvariablen via Java od. XPath (Siehe Kapitel ) Abbildung Enterprise Feature - Eigenschaften Stand Seite 141 von 470 Version 4.4

142 Gateways Gateways sind Verzweigungen innerhalb eines Prozessmodelles. Tabelle 3-8 Gateways Symbol Bezeichnung Beschreibung XOR Bedingte Verzweigung. Der erste Kontrollpfad dessen Bedingung erfüllt ist, wird ausgeführt. Die Reihenfolge der Pfade ist nicht definiert. XOR Join Zusammenführung nach XOR Verzweigung. OR Parallele, bedingte Verzweigung. Es werden alle Kontrollpfade ausgeführt, deren Bedingung erfüllt ist. OR Join Zusammenführung nach OR Verzweigung. Stand Seite 142 von 470 Version 4.4

143 Gateways im Prozessmodell verwenden Um ein Gateway in einem Prozessmodell verwenden zu können, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozessmodell, welches Sie bearbeiten möchten. 2. Markieren Sie im Bereich Process Prototypes > Gateways das Gateway, welches Sie im Prozessmodell verwenden möchten. 3. Klicken Sie nun in den Process Model Designer um das Element einzufügen 4. Nach dem Sie alle notwendigen Elemente in das Prozessmodell eingefügt haben, können Sie die Elemente nun über das Edge -Werkzeug miteinander verbinden. Gateways im Prozess Modell Abbildung Gateways im Prozess Modell verwenden 5. Abschließend müssen noch Ihre Gateway-Bedingungen eingerichtet werden. Um dem jeweiligen Zweig eine Bedingung zuzuweisen, klicken Sie auf die jeweilige Edge. Nun sehen Sie [configure]-fenster Gateway-Bedingung in Java od. als XPath Abbildung Gateway konfigurieren Stand Seite 143 von 470 Version 4.4

144 Business-Transaction Business-Transactions stellen sicher, dass eine Transaktion, die durch einen Identifier (einen Wert) identifiziert wird, nicht mehrfach ausgeführt wird. Tabelle 3-9 Business-Transactions Symbol Bezeichnung Beschreibung Start Transaction Stellt sicher, dass eine Transaktion mit der übergebenen ID innerhalb dieses Szenarios nicht bereits ausgeführt wurde. Die übergebene TransaktionsID wird von der Orchestra Runtime persistent gespeichert. Wurde die Transaktion bereits einmal ausgeführt, dann kann, abhängig von der Konfiguration dieser Aktivität, ein Fehler erzeugt werden. Undo Transaction Löscht die Information über die übergebene Transaktions-ID. Stand Seite 144 von 470 Version 4.4

145 Business-Transaction im Prozessmodell verwenden Um eine Business-Transaction in einem Prozessmodell verwenden zu können, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozessmodell welches Sie bearbeiten möchten. 2. Markieren Sie im Bereich Process Prototypes > Business-Transaction, welches Sie im Prozessmodell verwenden möchten. 3. Klicken Sie nun in den Process Model Designer um das Element einzufügen Business-Transaction im Prozess Modell Abbildung Business-Transaction im Prozess Modell verwenden 4. Nach dem Sie alle notwendigen Elemente in das Prozessmodell eingefügt haben, können Sie die Elemente nun über das Edge -Werkzeug mit einander verbinden. Stand Seite 145 von 470 Version 4.4

146 3.4.4 Kantenübergänge im Prozessmodell Kanten verbinden Modellelemente. BPMN definiert drei Typen von Kanten, sogenannte Flows. Im Process Model Designer stehen Ihnen verschiedene Kanten zum Erstellen von Prozessmodellen zur Verfügung. Sequence flows bestimmen die Ablaufreihenfolge. Message flows zeigen den Nachrichtenfluss. In Orchestra werden Sie benutzt, um die Übergabe einer Nachricht an ein externes System, einen Subprozess oder einen Service darzustellen. Auch das Eintreffen einer Nachricht von einem externen System wird mit einem Message flow dargestellt. Associations werden in Orchestra benutzt um Text (Annotations) mit anderen Knoten zu verknüpfen. Message flow Sequence flow Association Abbildung Process Modell Designer Kanten Stand Seite 146 von 470 Version 4.4

147 3.4.5 Prozess- und Request-Variablen Prozessvariablen werden im Prozess genutzt, um zwischen den einzelnen Aktivitäten des Prozesses Daten zu übertragen. Ebenso wie für Message Mappings gibt es auch für Prozessmodelle unterschiedliche Variablentypen, die es Ihnen ermöglichen, einen Datenaustausch mit Elementen, welche im Prozess Modell verwendet werden, durchzuführen. Hinweis: Nach der Erstellung eines neuen Prozessmodells sind die Variablen CURMSG und ERROR bereits angelegt. In folgenden Kapiteln finden Sie folgende Informationen über Prozessvariablen Prozessvariablen anlegen Variablen im Prozessablauf Process Variable Mapping Request Mapping Stand Seite 147 von 470 Version 4.4

148 Prozessvariablen anlegen Um eine Prozessvariable anzulegen, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models über einen Rechtsklick das Kontextmenü für das Prozessmodell, welches Sie bearbeiten möchten, 2. Klicken Sie im Kontextmenü auf den Eintrag [properties]. Es öffnet sich das Fenster [edit Process Model]. Hier navigieren Sie nun auf das Register [Properties] und klicken auf die Schaltfläche [Add] um eine neue Variable für das Prozessmodell hinzuzufügen. Abbildung Variablen des Prozess Modells bearbeiten 3. Jetzt können Sie die Eigenschaften der Variablen durch einen einfachen Klick auf die jeweilige Spalte definieren. Zum Abschließen der Bearbeitung klicken Sie auf [OK]. Hinweis: Prozessvariablen werden meist mit Usage LOCAL angelegt. Wird ein Prozessmodell von einem anderen Modell als Subprozess aufgerufen, dann kann man hier auch INPUT, OUTPUT oder IN_OUT wählen um Input- bzw. Output-Parameter zu definieren. In diesem Zusammenhang kann auch die Angabe von Required von Bedeutung sein. Stand Seite 148 von 470 Version 4.4

149 Variablen im Prozessablauf Variablen werden während des Ablaufes eines Prozesses geändert, dies geschieht bei folgenden Ereignissen: Beim Start eines Prozesses können durch ein Input-Event Werte für Prozessvariablen zugewiesen werden; bei einem Message-Event wird z.b. die eingegangene Nachricht der Variable CURMSG zugewiesen. Beim Aufruf eines Channels oder eines Services mit Hilfe der Call- und Send- Aktivitäten oder beim Aufruf eines Mappings oder eines Skriptes werden die Werte von Prozessvariablen an Parameter des aufgerufenen Objektes übergeben. (Request Mapping) Beim Aufruf eines Channels oder eines Services mit Hilfe der Call-, und Receive-Aktivitiäten oder beim Aufruf eines Mappings oder eines Skriptes werden die Werte von Output-Parametern des aufgerufenen Objektes an Prozessvariablen übergeben. (Process Variable Mapping) Hinweis: Die Defaultzuweisungen können jederzeit geändert werden. Manche Objekte, wie z.b. Database Outbound-Channel oder Java-Skripte haben auch gar keine Default- Parameter. Vielmehr werden die Parameter bei der Definition des Objektes definiert wie bei jeder Definition einer Prozedur in einer Programmiersprache. Stand Seite 149 von 470 Version 4.4

150 Process Variable Mapping Die Zuweisung von Werten an die Variablen des Prozessmodells wird für jedes aufgerufene Objekt in speziellen Dialogen vorgenommen. Sie können für die Prozessvariablen an den verschiedensten Stellen im Prozessmodell eine Zuweisung vornehmen. Um eine Zuweisung für eine Prozessvariable vorzunehmen, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozessmodell welches Sie bearbeiten möchten. 2. Führen Sie einen Doppelklick auf das Prozess Element, in welchen Sie die Prozess- Variablen bearbeiten möchten aus. Es öffnet sich ein Fenster zur Konfiguration des Elements. Hinweis: Bei Scenario Elementen ist dies nicht der Fall, da die Variablenzuweisung für diese in der aufrufenden Aktivität stattfindet. 3. Im geöffneten Konfigurationsfenster gehen Sie nun auf das Register [Process variable mapping]. Hier können Sie die Prozessvariablen bearbeiten. Verfügbare Prozessvariablen Zuweisungsmöglichkeit für Prozessvariablen via Java od. XPath Abbildung Zuweisung von Prozess Variablen im Prozessablauf Stand Seite 150 von 470 Version 4.4

151 4. Um eine Zuweisung vorzunehmen, wählen Sie eine Prozessvariable im Bereich [Process variable mapping] aus. 5. Jetzt können Sie der selektierten Variablen im Bereich [Expression] über Java oder einen XPath Ausdruck eine Wertzuweisung vornehmen. 6. Zum Abschließen klicken Sie auf [ok]. Der Prozess Variablen CURMSG wurde der Inhalt der Aktivitätseigenschaft MSG zugewiesen Abbildung Zuweisung von Prozess Variablen im Prozessablauf Hinweis: In dem Feld Namespace Context können Präfixe definiert werden, die man in XPath benötigt, um auf Dokumente mit Namespaces zuzugreifen. Stand Seite 151 von 470 Version 4.4

152 Request Variable Mapping Die Zuweisung von Request Variablen für eine Aktivität wird für jedes aufgerufene Objekt in speziellen Dialogen vorgenommen. Sie können für die Request Variablen im Prozessmodell Zuweisungen vornehmen. Die Zuweisung der Variablen wird vor dem Aufruf der eigentlichen Aktivität vorgenommen. Um eine Zuweisung für Request Variablen vorzunehmen, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozessmodell welches Sie bearbeiten möchten. 2. Führen Sie einen Doppelklick auf eine Aktivität des Prozess Elements, in welcher Sie die Request Variablen bearbeiten möchten, aus. Es öffnet sich ein Fenster zur Konfiguration des Elements. Hinweis: Bei Scenario Elementen ist dies nicht der Fall, da die Variablenzuweisung für diese in der aufrufenden Aktivität stattfindet. 3. Im geöffneten Konfigurationsfenster gehen Sie nun auf das Register [Request mapping]. Hier können Sie die Request Variablen bearbeiten. Verfügbare Requestvariablen Zuweisungsmöglichkeit für Requestvariablen via Java od. XPath Abbildung Zuweisung von Request Variablen im Prozessablauf Stand Seite 152 von 470 Version 4.4

153 4. Um eine Zuweisung vorzunehmen, wählen Sie eine Request-Variable im Bereich [Request mapping] aus. 5. Jetzt können Sie der selektierten Variablen im Bereich [Expression] über Java oder einen XPath Ausdruck eine Wertzuweisung vornehmen. 6. Zum Abschließen klicken Sie auf [ok]. Der Request-Variablen MSG wurde der Inhalt der Prozess Variablen CURMSG zugewiesen Abbildung Zuweisung von Variablen im Prozessablauf Hinweis: In dem Feld Namespace Context können Präfixe definiert werden, die man in XPath benötigt, um auf Dokumente mit Namespaces zuzugreifen. Stand Seite 153 von 470 Version 4.4

154 3.4.6 Konfigurationseinstellungen Für Prozess Modelle können die unterschiedlichsten Konfigurationseinstellungen vorgenommen werden. Profile Process state Properties Scheduling Business key Profile Im Register Profile der Konfigurationseinstellungen für Prozessmodelle können Sie grundlegende Einstellungen vornehmen. Namen und Beschreibung des Prozess-modells Einstellungen für die Art der Ausführung des Prozessmodells Größe der Nachricht Aktivierung/Deaktivie rung der manuellen Fehlerbehebung In folgenden Kapiteln finden Sie folgende Informationen über Konfigurationseinstellungen Logging- Einstellungen des Prozessmodells Abbildung Prozess Modell Konfigurationseinstellungen - Profile Transaktionseinstellungen Stand Seite 154 von 470 Version 4.4

155 Process type Optimize for small messages Optimize for small messages bedeutet, dass die Nachrichten zur Verarbeitung in den Hauptspeicher geladen werden. Dieser Modus ist für kleine bis mittelgroße Nachrichten gedacht. Die Verarbeitung wird dadurch schneller. Optimize for mass data processing Optimize for mass data processing bedeutet, dass die Nachrichten während der Verarbeitung nur teilweise in den Hauptspeicher geladen werden. Dieser Modus ist für sehr große Nachrichten gedacht, die u. U. nicht in den Hauptspeicher passen. Die Verarbeitung wird dadurch notgedrungen langsamer Manual Recovery Abort process on error Wenn während der Ausführung eines Prozesses eine Aktivität nicht ausgeführt werden kann, wird der Prozess mit einer Fehlermeldung abgebrochen. Der Prozess kann nicht wiederhergestellt werden. Use manual recovery for processing errors Wenn während der Ausführung eines Prozesses eine Aktivität nicht ausgeführt werden kann, bekommt der Prozess einen besonderen Status. Der Benutzer kann im Orchestra Monitor dann entscheiden, ob die Aktivität übersprungen oder die Aktivität noch einmal ausgeführt werden soll. Hinweis: Dabei können auch Prozessvariablen manuell geändert werden. Stand Seite 155 von 470 Version 4.4

156 Logging Im Bereich Logging kann festgelegt werden, welche Arten von Ereignissen als System Event geloggt werden. Hinweis: Diese System Events werden auch im Orchestra Monitor angezeigt. Wird <default> ausgewählt, so wird der Standard Logging Level der Orchestra Installation verwendet Process State Im Register Process State der Konfigurationseinstellungen für Prozessmodelle können Sie grundlegende Einstellungen für die Verarbeitung eines Prozesses vornehmen. Art der Verarbeitung Veröffentlichungsstrategie Manuellen Neustart ermöglichen Abbildung Prozess Modell Konfigurationseinstellungen Process State Stand Seite 156 von 470 Version 4.4

157 Process mode Persistent Persistent bedeutet, dass der Verarbeitungszustand eines Prozesses in der Orchestra Datenbank gespeichert wird. D.h. auch wenn die Runtime Engine oder das gesamte Orchestra gestoppt wird oder der Rechner abstürzt, wird nach einem Neustart die Verarbeitung an der richtigen Stelle weitergeführt. Die Speicherung jedes Prozessschrittes kostet natürlich Performance, der Standardmodus ist deshalb Volatile. Volatile Volatile bedeutet, dass der Verarbeitungszustand eines Prozesses im Hauptspeicher gehalten wird. D.h. wenn die Runtime Engine oder das gesamte Orchestra gestoppt wird oder der Rechner abstürzt, wird auch die Verarbeitung des Prozessmodells abgebrochen und kann nicht wiederhergestellt werden Redeployment Strategy Abort running processes Bricht aktuell laufende Prozesse vor dem Redeployment ab. Restart after redeployment Unterbricht aktuell laufende Prozesse vor dem Redeployment und startet diese nach dem Redeployment erneut Manual restart Disabled Enabled Stand Seite 157 von 470 Version 4.4

158 Properties Im Register Properties der Konfigurationseinstellungen für Prozessmodelle können Sie die Variablen des Prozessmodells bearbeiten. Sie können hier Variablen hinzufügen, editieren oder entfernen. Subtyp der Prozess Variablen Verwendung der Prozess Variablen Typ der Prozess Variablen Prozess Variable ist optional? Namen der Prozess Variablen Beschreibung der Prozess Variable Prozess Variable hinzufügen / entfernen Abbildung Prozess Modell Konfigurationseinstellungen - Properties Stand Seite 158 von 470 Version 4.4

159 Scheduling Im Register Scheduling der Konfigurationseinstellungen für Prozessmodelle kann die Reihenfolge und die Priorität der Ausführung von Prozessinstanzen angepasst werden. Priorität des Prozessmodells Subprozess Modus des Prozessmodells Ausführungsart des Prozess Modells Startevent des Prozess Modells Abbildung Prozess Modell Konfigurationseinstellungen - Scheduling Priority Low, Normal, High Subprocess mode Scheduling Event Standard oder Derived. Derived bedeutet, dass die Priorität des aufrufenden Prozesses verwendet wird. Parallel oder Sequential Definiert die Ausführungsreihenfolge bei sequentieller Abarbeitung: Fifo (first in first out) oder Best effort (nach Gutdünken) Stand Seite 159 von 470 Version 4.4

160 Businesskey Im Register Businesskey der Konfigurationseinstellungen für Prozessmodelle können Prozessvariablen als sogenannte Business Keys festgelegt werden. Die Werte von Business Keys werden im Orchestra Monitor angezeigt. In der Regel sind das identifizierende Namen von Daten, wie z.b. Kontonummer, die von einem Prozess Modell verarbeitet werden. Wenn während der Verarbeitung ein Problem auftritt, kann ein Benutzer im Monitor auf diese Weise sehr schnell erkennen, um welchen Datensatz es sich handelt, wenn ein Problem auftritt. Abbildung Prozess Modell Konfigurationseinstellungen - Businesskey Stand Seite 160 von 470 Version 4.4

161 3.5 Channels Channels werden in Orchestra zum Datenaustausch mit externen Systemen, z.b. Datenbanken, Filesysteme, LDAP-Directories, SAP/R3, verwendet. In den folgenden Kapiteln erhalten Sie detaillierte Informationen über Channels: Begriffsdefinitionen Serializer: Wandeln das interne Nachrichtenformat in ein externes serielles Datenformat Deserializer: Wandeln ein externes serielles Datenformat in das interne Nachrichtenformat Inbound Channels: Channels die Nachrichten von außen entgegennehmen und Prozesse starten. Outbound Channels: Channels die von einem Prozess aufgerufen werden Channels Kontextmenü Im Bereich Channels der Szenario Elemente befinden sich alle zu diesem Szenario gehörigen Channels. Hier können Sie über einen Rechtsklick auf das Element ein Menü öffnen (siehe Abbildung). In diesem Menü erhalten Sie die Möglichkeit neue Channels zu erstellen und die Channel Elemente innerhalb der Baumstruktur zu gruppieren. Haben Sie einen Rechtsklick auf einen vorhandenen Channel ausgeführt, so erhalten Sie zusätzlich die Möglichkeit diesen zu öffnen, die Eigenschaften des Elements zu bearbeiten oder es zu löschen. Abbildung Channels (Szenario Element) Stand Seite 161 von 470 Version 4.4

162 3.5.2 Begriffsdefinitionen Die folgenden Definitionen sind im Zusammenhang mit Channels von Bedeutung: Inbound-Channel Erhält Nachrichten von einem externen System. Bei Eingang der Nachricht wird in der Regel eine Instanz eines Prozessmodells erzeugt und gestartet. Abbildung Stream Channels Inbound Channel Outbound-Channel Wird von einem Prozessmodell aus aufgerufen. Ein Output-Channel kann Parameter übernehmen und zurückliefern. Insbesondere kann er Nachrichten (Werte vom Typ Message) übernehmen und zurückliefern. Abbildung Stream Channels Outbound Channel Stream-Channel Ein Channel der eine Nachricht in Form eines Bytestreams schreibt oder liest. Stream-Channels können sowohl Inbound- als auch Outbound-Channels sein. So sind z.b. File-Inbound-, File-Output-Channel und File reader Stream- Channels. Abbildung Stream Channels Stream Channels Stand Seite 162 von 470 Version 4.4

163 Serializer Wandeln eine Nachricht (einen Wert vom Typ Message) in eine Folge von Bytes (einen Bytestream) um. Für jeden Stream-Output-Channel lässt sich ein Serializer auswählen und, abhängig vom Typ des Serializers, konfigurieren. Abbildung Stream Channels Serializer Deserializer Wandeln eine Folge von Bytes (einen Bytestream) in eine Nachricht (einen Wert vom Typ Message) um. Für jeden Stream-Input-Channel lässt sich ein Deserializer auswählen und, abhängig vom Typ des Deserializers, konfigurieren. Abbildung Stream Channels Deserializer Stream-Filter Eine Komponente die aus einem Byte-Stream liest und in einen Byte-Stream schreibt. Bei der Konfiguration eines Stream-Output-Channels kann man eine Folge von Filtern auswählen, die nach dem Serializer ausgeführt werden. Analog kann man bei der Konfiguration eines Stream-Input-Channels eine Folge von Filtern auswählen, die vor dem Deserializer ausgeführt werden. Stand Seite 163 von 470 Version 4.4

164 3.5.3 Serializer Serializer wandeln eine Nachricht (einen Wert vom Typ Message) in eine Folge von Bytes (einen Bytestream) um. Für jeden Stream-Output-Channel lässt sich ein Serializer auswählen und, abhängig vom Typ des Serializers, konfigurieren. Folgende Message-Serializer stehen zur Verfügung: XML Writer Ein XML-Writer schreibt eine Nachricht als XML. Die Nachricht muss als strukturierte Nachricht vorliegen. Eine strukturiere Nachricht kann auf verschiedene Weise entstehen, z.b. wenn sie von einem Input-Stream-Channel mit einem XML-Deserialzer oder von einem Database-Input-Channel stammt oder wenn Sie von einem Mapping erzeugt wurde. Der XML Writer lässt sich konfigurieren: Man kann den bevorzugten Zeichensatz angeben und ob newlines eingefügt werden sollen, falls das erzeugte XML-Dokument auch mit einem Editor darstellbar sein soll. Der Zeichensatz in dem der XML-Stream erstellt werden soll Document Type Declaration für den XML Header Zeilenumbruch nach jedem Datensatz XSLT-Stylesheet für den XML Header Abbildung XML Writer - Configure Stand Seite 164 von 470 Version 4.4

165 CSV Writer Ein CSV Writer schreibt eine Nachricht als CSV. Die Nachricht muss als strukturierte Nachricht vorliegen. Die Kindelemente des Wurzelelementes bilden die Zeilen, die Textinhalte der Zeilenelemente bilden die Spalten des erzeugten CSV-Streams. Der CSV Writer lässt sich konfigurieren: Fluchtsymbol: Falls das Separator oder Quote-Zeichen im Text vorkommt, wird es damit maskiert. Der Zeichensatz in dem der CSV-Stream erstellt werden soll Das Trennzeichen für die Spalten Wert der Spalten in Anführungszeichen Windows: \r\n Unix: \n MacOS: \r Kopfzeile als literaler Text Abbildung CSV Writer - Configure Stand Seite 165 von 470 Version 4.4

166 Text Writer Ein Text Writer schreibt den Inhalt der Felder einer strukturierten Nachricht. Der Text Writer lässt sich konfigurieren: Der Zeichensatz in dem der Text-Stream erstellt werden soll Abbildung Text Writer - Configure Im Feld Newline after element kann eine kommasparierte Liste von Elementnamen angegeben werden. Wenn ein Nachrichtenelement mit einem Namen aus dieser Liste geschrieben wurde, dann wird danach ein Newline geschrieben. * = nach jedem Element ein Newline geschrieben. Die Definition von Newline, wird durch die Java System property line.separator definiert und ist unter UNIX normalerweise '\n' unter Windows '\r\n'. Stand Seite 166 von 470 Version 4.4

167 HL7 Message Writer Der HL7 Message Writer schreibt eine Nachricht im HL7-Format (Health Level 7). HL7 ist ein Format zum Austausch von Daten im Gesundheitswesen. Die Nachricht muss als strukturierte Nachricht vorliegen und wird anhand eines XML- Schemas das in Orchestra importiert worden sein muss, nach HL7 konvertiert. Der HL7 Message Writer lässt sich konfigurieren: Dynamic = Die Struktur der Nachricht wird nicht geprüft. Type = Die zu schreibende Nachricht wird auf den Typ geprüft, der durch den zugehörigen XML- Schema-Typ definiert wird. Lax = Ähnlich wie Type, erlaubt aber noch zusätzliche Felder in der HL7-Nachricht. Das Trennzeichen für Felder in HL7; ist normalerweise die Pipe Default: Länge des Segmentnamens ist automatisch 3 User defined: Benutzer kann im Feld Limit selbst die maximale Länge des Segmentnamens bestimmen. Erlaubte Zeichen des Segmentnamens werden gepüft Abbildung HL7 Message Writer - Configure Der Zeichensatz in dem der Stream erstellt werden soll Nur nötig für Type und Lax. Hier werden HL7-Felder angegeben, anhand derer der XML-Schema-Typ gefunden wird, dem die Nachricht entsprechen muss. Stand Seite 167 von 470 Version 4.4

168 Fixed length field writer Der Fixed length field writer wird verwendet, wenn die zu erstellende Datei die Inhalte einer Message mit fixen Längendefinitionen erhalten soll. Jedes Feld enthält den Inhalt der Message entsprechende der Längendefinition des Message Types. Der Zeichensatz in dem der Stream erstellt werden soll Message Type mit den entsprechenden Feldlängendefinitionen Windows: \r\n Unix: \n MacOS: \r Abbildung Fixed length field writer - Configure Stand Seite 168 von 470 Version 4.4

169 EDI Message Writer Der EDI Message Writer schreibt eine Nachricht im EDIFACT-Format (Electronic Data Interchange For Administration, Commerce and Transport). Der EDI Message Writer lässt sich konfigurieren: Dynamic = Ein generischer Typ wird erzeugt. Validation = Stellt sicher, dass die eingelesene Nachricht genau dem Typ entspricht, der durch den zugehörigen XML-Schema-Typ definiert wird. Nur nötig für den Modus Type. Hier werden EDI-Felder angegeben, anhand derer der XML-Schema-Typ gefunden wird, dem die Nachricht entsprechen muss. Der Zeichensatz in dem der Stream erstellt werden soll Abbildung EDI Message Writer - Configure Dezimaltrenner, normalerweise Komma oder Punkt HCM Writer Der HCM Writer schreibt eine Nachricht im HCM-Format (Hospital Communication Module von SAP). Die Nachricht muss als strukturierte Nachricht vorliegen und wird anhand eines XML-Schemas das in Orchestra importiert worden sein muss, nach HCM konvertiert. Der Serializer lässt sich nicht konfigurieren. Stand Seite 169 von 470 Version 4.4

170 Binary Writer Wenn die Nachricht als strukturierte Nachricht vorliegt, dann wird sie als XML geschrieben. Liegt Sie als Binäre Nachricht vor, dann wird sie unverändert als Byte- Stream geschrieben Fixed column writer Der Fixed column writer wird verwendet, wenn die zu erstellende Datei die Datensätze einer Message mit fixen Spaltengrößen und fixen Längendefinitionen erhalten soll. Jedes Feld enthält entsprechende der Spaltendefinition ein Key / Value Paar bestehend aus dem Namen der Spaltendefinition und dem Wert mit der entsprechenden Länge. Der Zeichensatz in dem der Stream erstellt werden soll Windows: \r\n Unix: \n MacOS: \r Spaltendefinitionen des Writers Abbildung Fixed column writer - Configure Stand Seite 170 von 470 Version 4.4

171 Type Based Serializer Der Type Based Serializer erkennt automatisch die Formatinformationen aus dem Datentypen den er schreibt. (z.b.: Delimiter, Feldlänge) Bei diesem Vorgang erfolgt in der Regel keine Konfiguration. Der Zeichensatz des Text-Streams Abbildung Type Based Serializer Um den Eingabestream mit Hilfe eines bestimmten Datentyps zu parsen, muss in der Combox als Default-Format INTERNAL ausgewählt werden. Klicken Sie auf [Format Editor] um die gewünschten Informationen zu pflegen. Abbildung Type Based Serializer Format Editor match delimiters fixed length optional mode & terminator mode Tabelle 3-10 Type Based Serializer - Format Editor Hier definieren Sie die Kriterien, bei denen das Parsing durchgeführt werden soll Hier können Sie die Eigenschaften einsehen und ändern Für Felder mit fester Länge muss hier der die Länge definiert werden. Die Bedeutung der Begriffe kann im JCAPS-Handbuch nachgelesen werden. Stand Seite 171 von 470 Version 4.4

172 Excel Writer Der Excel Writer erwartet Datentypen im CSV-Format um diese zu lesen und in die entsprechenden Tabellen eines MS- Excel-dokument zu schreiben. Dateiname eingeben Excel Spreadsheat wählen: XLS (ab 2007) XLSX (ältere Versionen) Abbildung Excel Writer Stand Seite 172 von 470 Version 4.4

173 3.5.4 Deserializer Wandeln eine Folge von Bytes (einen Bytestream) in eine Nachricht (einen Wert vom Typ Message) um. Für jeden Stream-Input-Channel lässt sich ein Deserializer auswählen und, abhängig vom Typ des Deserializers, konfigurieren. Folgende Message- Serializer stehen zur Verfügung: XML Reader Der XML Reader liest einen XML-Stream und erzeugt eine strukturierte Nachricht. Man kann konfigurieren ob nach Abschluss des XML-Dokumentes noch Bytes folgen dürfen, die dann ignoriert werden sollen. Abbildung XML Reader Configure Stand Seite 173 von 470 Version 4.4

174 CSV Reader Der CSV Reader erwartet ein CSV-Dokument als Inputstream. Dieser Deserializer parst den Eingabestream und erzeugt eine strukturierte Nachricht. Er kann wie folgt konfiguriert werden: Der Zeichensatz des CSV-Streams Das Trennzeichen für die Spalten Werte der Spalten werden mit einem Quote character umschlossen Anzahl der zu überspringenden Zeilen Abbildung CSV Reader - Configure Hinweis: Wird kein Result type ausgewählt (entspricht <generic type>), dann wird ein strukturiertes Dokument im Namespace urn:emds:csv erzeugt. Das Wurzelelement erhält den Namen content. Für jede Zeile wird ein Kindelement line angelegt. Die Spalten werden als Elemente mit dem Namen column<pos> angelegt. Wird hier ein Message-Typ ausgewählt, dann wird eine Instanz dieses Typs erzeugt. Der Typ sollte zwei Hierarchieebenen (Zeilen und Spalten) haben, die und die Elemente sollten den Typ String haben Excel Reader Der Excel Reader erwartet ein MS-Excel-Dokument als Inputstream. Der Excel Reader erzeugt ein strukturiertes Dokument im Namespace urn:emds:xls. Das Wurzelelement erhält den Namen content. Für jede Zeile wird ein Kindelement line angelegt. Die Spalten werden als Elemente mit dem Namen column<pos> angelegt. Der Excel Reader kann wie folgt konfiguriert werden: Stand Seite 174 von 470 Version 4.4

175 Leere Spalten überspringen Das benötigte Arbeitsblatt Anzahl der zu überspringenden Zeilen Leere Zeilen überspringen Abbildung Excel Reader Configure Text Reader Der Text Reader erwartet einen Text als Inputstream und erzeugt eine strukturierte Nachricht mit Namespace urn:emds:text. Das Wurzelelement heißt text. Der Zeichensatz des Text-Streams Abbildung Text Reader - Configure Break text on newline bedeutet, dass für jede Zeile ein Kindelement mit dem Namen text angelegt wird. Andernfalls wird der komplette Text des Inputstreams als Kindelement text abgelegt. Stand Seite 175 von 470 Version 4.4

176 Stream Parser Der Stream Parser parst einen Input Stream anhand einer Parser Description und erzeugt eine strukturierte Nachricht. Der Zeichensatz des Streams Auswahl einer im Szenario definierten Parser-Description Abbildung Stream Parser - Configure Hinweis: Nähere Informationen zum Thema Parser erhalten Sie in Kapitel 3.7 Parser Description. Stand Seite 176 von 470 Version 4.4

177 HL7 Message Reader Der HL7 Message Reader erwartet eine Nachricht im HL7-Format (Health Level 7). HL7 ist ein Format zum Austausch von Daten im Gesundheitswesen. Der HL7 Message Reader parst den Eingabestream und erzeugt eine strukturierte Nachricht. Er kann wie folgt konfiguriert werden: Dynamic = Die Struktur der Nachricht wird nicht geprüft. Type = Die zu schreibende Nachricht wird auf den Typ geprüft, der durch den zugehörigen XML- Schema-Typ definiert wird. Lax = Ähnlich wie Type, erlaubt aber noch zusätzliche Felder in der HL7-Nachricht. Umgang mit leeren Elementen Limit Segment name lenght: Länge des Segmentnamens wird geprüft Disabled: Länge wird nicht geprüft (Mode Dynamic) Der Zeichensatz in dem der Stream erstellt werden soll Maximale Länge des Segmentnamnes Erlaubte Zeichen des Segmentnamens werden gepüft Abbildung HL7 Message Reader - Configure Nur nötig für Type und Lax. Hier werden HL7-Felder angegeben, anhand derer der XML-Schema-Typ gefunden wird, dem die Nachricht entsprechen muss. Stand Seite 177 von 470 Version 4.4

178 EDI Message Reader Der EDI Message Reader erwartet eine Nachricht im EDIFACT-Format (Electronic Data Interchange For Administration, Commerce and Transport) parst diese und erzeugt eine strukturierte Nachricht. Dieser Deserialzer kann wie folgt konfiguriert werden: Dynamic = Ein generischer Typ wird erzeugt. Validation = Stellt sicher, dass die eingelesene Nachricht genau dem Typ entspricht, der durch den zugehörigen XML-Schema-Typ definiert wird. Der Zeichensatz in dem der Stream erstellt werden soll Nur nötig für den Modus Validation. Hier werden EDI-Felder angegeben, anhand derer der XMLSchema-Typ gefunden wird, dem die Eingabenachricht entsprechen muss. Abbildung EDI Message Reader - Configure Delimiters die vom Deserializer benutzt werden, um Elemente des Dokuments zu erkennen. (nötig für ANSI-X12) Stand Seite 178 von 470 Version 4.4

179 HCM Extended Reader Der HCM extended Reader erwartet eine Nachricht im HCM-Format (Hospital Communication Module von SAP) parst diese und erzeugt eine Liste von strukturierten Nachricht (eine Messagelist). Die zugehörigen XMLSchemas müssen in Orchestra importiert worden sein, damit dieser Deserializer die Datenstruktur erzeugen kann Json Reader Der Json Reader liest eine Json Datei und erzeugt daraus eine strukturierte Nachricht. Es gibt die folgenden Konfigurationsmöglichkeiten: Der default Wert Strict prüft die Nachricht nach RFC Wird Strict auf false gesetzt werden folgende Prüfungen übergangen: Streams that start with the non-execute prefix, ")]}'\n". Streams that include multiple top-level values. With strict parsing, each stream must contain exactly one top-level value. Top-level values of any type. With strict parsing, the top-level value must be an object or an array. Numbers may be NaNs or infinities. End of line comments starting with // or # and ending with a newline character. C-style comments starting with /* and ending with */. Such comments may not be nested. Names that are unquoted or 'single quoted'. Strings that are unquoted or 'single quoted'. Array elements separated by ; instead of,. Unnecessary array separators. These are interpreted as if null was the omitted value. Names and values separated by = or => instead of :. Stand Seite 179 von 470 Version 4.4

180 Name/value pairs separated by ; instead of, Binary Reader Der Binary Reader liest einen byte stream und liefert eine binary message, d.h. tatsächlich wird keine Umwandlung vorgenommen Type Based Deserializer Der Type Based Deserializer erkennt automatisch welche Formatinformationen er beim Schreiben eines Datentypes verwenden muss. (z.b.: Delimiter, Feldlänge) Bei diesem Vorgang erfolgt in der Regel keine Konfiguration. Der Zeichensatz des Text-Streams Abbildung Type Based Deserializer Um den Eingabestream mit Hilfe eines bestimmten Datentyps in eine Nachricht umzuwandeln, muss in der Combox als Default-Format INTERNAL ausgewählt werden. Klicken Sie auf [Format Editor] um die gewünschten Informationen zu pflegen. match delimiters fixed length optional mode & terminator mode Hier definieren Sie die Kriterien, bei denen das Parsing durchgeführt werden soll Hier können Sie die Eigenschaften einsehen und ändern Für Felder mit fester Länge muss hier die Länge definiert werden. Die Bedeutung der Begriffe kann im JCAPS-Handbuch nachgelesen werden PDF Reader Der PDF Reader kann den Textinhalt eines PDF-Dokumentes auslesen und erzeugt daraus eine strukturierte Message. Abhängig davon ob Create one element per page selektiert ist, wird der komplette Text des Dokumentes als Wert eines Simple-elementes im strukturierten Dokument generiert. Stand Seite 180 von 470 Version 4.4

181 Abbildung PDF Reader Stand Seite 181 von 470 Version 4.4

182 3.5.5 Input-Stream-Filter Input-Stream-Filter werden zur Vorverarbeitung von Input-Streams in Orchestra Stream- Channels (z.b. FileReader) verwendet. Diese Vorverarbeitung wird ausgeführt bevor die eigentliche Verarbeitung stattfindet. Im Wesentlichen gibt es drei mögliche Verwendungszwecke der Input Stream Filter. Diese sind: Entpacken gezipter Dateien Archivierung des eingehenden Datenstroms Umwandlung der Datenstrom-Kodierung Entpacken einer gezipten Datei In allen Channels, welche einen Deserializer zur Verarbeitung der eingehenden Daten verwenden, kann über die Möglichkeit der Input-Stream-Filter das Entpacken gezippter Daten vorgenommen werden. Um das Entpacken gezippter Dateien vorzunehmen, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Channels den Channel, für welchen Sie den Input-Stream-Filter definieren möchten. 2. Navigieren Sie im geöffneten Channel zum Bereich [Deserializer]. Abbildung Deserializer eines Stream-Channels 3. Unterhalb des gewählten Deserializers sehen Sie ein Textfeld mit dem Inhalt {Input} --> {Orchestra} hier führen Sie nun einen Doppelklick auf den Pfeil [ --> ] aus. Stand Seite 182 von 470 Version 4.4

183 4. Es öffnet sich ein Kontextmenü zur Auswahl des Input-Stream-Filters. Abbildung Input-Stream-Filter Kontext Menü 5. In diesem Kontextmenü wählen Sie nun die gewünschte Funktionalität aus. In diesem Fall wählen Sie abhängig vom Typ der eingehenden Datei entsprechend [decode first ZIP entry] bzw. [decode GZIP stream]. 6. Nach dem Sie Ihre Auswahl getroffen haben, ändert sich der Inhalt des Textfeldes entsprechend der gewählten Funktionalität. {Input} --> [Funktionalität] --> {Orchestra} Hinweis: Es ist ebenfalls möglich mehrere Funktionalitäten hintereinander auszuführen, bevor die Verarbeitung von Orchestra ansetzt. Zum Erweitern klicken Sie jeweils auf den Pfeil [ -->] Archivierung des eingehenden Datenstroms In allen Channels, welche einen Deserializer zur Verarbeitung der eingehenden Daten verwenden, kann über die Möglichkeit der Input-Stream-Filter das Archivieren des eingehenden Datenstromes vorgenommen werden. Die Daten können entweder im FileSystem oder in einer Datenbank archiviert werden. Um das Archivieren des Datenstroms vorzunehmen, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Channels den Channel, für welchen Sie den Input-Stream-Filter definieren möchten. 2. Navigieren Sie im geöffneten Channel zum Bereich [Deserializer]. Abbildung Deserializer eines Stream-Channels Stand Seite 183 von 470 Version 4.4

184 3. Unterhalb des gewählten Deserializers sehen Sie ein Textfeld mit dem Inhalt {Input} --> {Orchestra} hier führen Sie nun einen Doppelklick auf den Pfeil [ --> ] aus. 4. Es öffnet sich ein Kontextmenü zur Auswahl des Input-Stream-Filters. Abbildung Input-Stream-Filter Kontext Menü 5. In diesem Kontextmenü wählen Sie nun die gewünschte Funktionalität aus. In diesem Fall wählen Sie abhängig vom gewünschten Archivierungsverfahren [External file archive] bzw. [External database archive]. 6. Nach dem Sie Ihre Auswahl getroffen haben ändert sich der Inhalt des Textfeldes entsprechend der gewählten Funktionalität. {Input} --> [Funktionalität] --> {Orchestra} 7. Nach der Auswahl müssen sie den gewählten Input-Stream-Filter noch konfigurieren. Dazu führen Sie einen Doppelklick auf diesen aus. Hinweis: Es ist möglich mehrere Schritte hintereinander auszuführen, bevor die Verarbeitung von Orchestra einsetzt. Zum Erweitern klicken Sie jeweils auf den Pfeil [ -->] External file archive Konfiguration Zur Konfiguration der Archivierungsmethode [External file archive] gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Channels den Channel, für welchen Sie das externe File Archiv konfigurieren möchten. 2. Navigieren Sie im geöffneten Channel zum Bereich [Deserializer]. Abbildung Deserializer eines Stream-Channels Stand Seite 184 von 470 Version 4.4

185 3. Unterhalb des gewählten Serializers sehen Sie ein Textfeld mit dem Inhalt {Input} --> External file archive --> {Orchestra} hier führen Sie nun einen Doppelklick auf [External file archive] aus. 4. Es öffnet sich der Konfigurationsdialog für das externe File Archive. Angezeigter Name Beschreibung Environment Entry für den Filepath Create/Overwrite = Archivdatei erstellen/ Überschreiben Append if exists = Archivdatei erstellen/ Daten anhängen Falls das Verzeichnis auf einem Netzlaufwerk liegt, muss hier u.u. ein Benutzer ausgewählt werden. Unterordner Dateiname Dateicodierung Write through = Während des Einlesens schreiben Write on close = Archivdatei schreiben nachdem alle Daten gelesen worden sind. Kopfzeile für den Inhalt Abbildung Input-Stream-Filter External file archive - Configure Trennzeile für den Inhalt (nur bei Append if exists) 5. Nach dem Sie die Konfiguration vorgenommen haben, klicken Sie zum Speichern der Änderungen auf [OK]. Stand Seite 185 von 470 Version 4.4

186 External database archive Konfiguration Zur Konfiguration der Archivierungsmethode [External database archive] gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Channels den Channel, für welchen Sie das externe Datenbank Archiv konfigurieren möchten. 2. Navigieren Sie im geöffneten Channel zum Bereich [Deserializer]. Abbildung Deserializer eines Stream-Channels 3. Unterhalb des gewählten Serializers sehen Sie ein Textfeld mit dem Inhalt {Input} --> External database archive --> {Orchestra} hier führen Sie nun einen Doppelklick auf [External database archive] aus. 4. Es öffnet sich der Konfigurationsdialog für das External database archive. Angezeigter Name Beschreibung Environment Entry für den Filepath Eigenschaften Abbildung Input-Stream-Filter External database archive - Configure 5. Nach dem Sie die Konfiguration vorgenommen haben, klicken Sie zum Speichern der Änderungen auf [OK]. Achtung: Zur Verwendung der Datenbank- Archivierung müssen die entsprechenden Tabellen in der Orchestra Datenbank angelegt sein. Zum Erstellen der Tabellen benötigen Sie mindestens SQL-Scripte ab Orchestra-Version , die sie auf der Orchestra CD/Database finden. Stand Seite 186 von 470 Version 4.4

187 Umwandlung der Datenstrom Kodierung In allen Channels, welche einen Deserializer zur Verarbeitung der eingehenden Daten verwenden, kann über die Möglichkeit der Input-Stream-Filter die Umwandlung des eingehenden Datenstromes vorgenommen werden. Um das Umwandeln des Datenstroms vorzunehmen, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Channels den Channel, für welchen Sie die Umwandlung des Input-Stream-Filter definieren möchten. 2. Navigieren Sie im geöffneten Channel zum Bereich [Deserializer]. Abbildung Deserializer eines Stream-Channels 3. Unterhalb des gewählten Deserializers sehen Sie ein Textfeld mit dem Inhalt {Input} --> {Orchestra} hier führen Sie nun einen Doppelklick auf den Pfeil [ --> ] aus. 4. Es öffnet sich ein Kontextmenü zur Auswahl des Input-Stream-Filters. Abbildung Input-Stream-Filter Kontext Menü 5. In diesem Kontextmenü wählen Sie nun die gewünschte Funktionalität aus. In diesem Fall wählen Sie abhängig vom gewünschten Kodierungsverfahren [decode Base64 stream] bzw. [translate ebcdic to latin1]. 6. Nach dem Sie Ihre Auswahl getroffen haben, ändert sich der Inhalt des Textfeldes entsprechend der gewählten Funktionalität. {Input} --> [Funktionalität] --> {Orchestra} 7. Nach der Auswahl müssen sie den gewählten Input-Stream-Filter noch konfigurieren. Dazu führen Sie einen Doppelklick auf diesen aus. Hinweis: Es ist ebenfalls möglich mehrere Funktionalitäten hintereinander auszuführen, bevor die Verarbeitung von Orchestra ansetzt. Zum Erweitern klicken Sie jeweils auf den Pfeil [ -->]. Stand Seite 187 von 470 Version 4.4

188 Verfügbare Input-Stream-Filter Im Orchestra Designer stehen Ihnen folgende Input-Stream-Filter zur Verfügung Decode first ZIP entry Erwartet einen ZIP-Stream und extrahiert den ersten Eintrag aus dem Stream. Abbildung Input-Stream-Filter - decode first ZIP entry decode GZIP stream Erwartet einen GZIP komprimierten Input stream und dekomprimiert diesen. Abbildung Input-Stream-Filter - decode GZIP stream decode Base64 stream Erwartet einen Base64 kodierten Input stream und dekodiert diesen. Abbildung Input-Stream-Filter - decode Base64 stream Stand Seite 188 von 470 Version 4.4

189 translate ebcdic to latin1 Erwartet einen Text im EBCDIC-Zeichensatz als input stream und wandelt diesen nach ISO (latin1). Abbildung Input-Stream-Filter translate ebcdic to latin External file archive archiviert den Stream beim Empfang in eine Datei. Abbildung Input-Stream-Filter External file archive External database archive schreibt den Stream beim Empfang nebenbei in eine Datenbank. Abbildung Input-Stream-Filter External database archive Stand Seite 189 von 470 Version 4.4

190 Byte translation filter Übersetzt Bytes in Zeichenfolgen. Zum Beispiel Umlaute in Zeichenfolgen. Abbildung Byte translation filter Collapse newline filter Übersetzt Folgen von Newlines (Zeilentrenner) und fasst diese in ein einziges Newline zusammen. Sinnvoll, wenn man Textdokumente parsen möchte, die unsauber sind. Abbildung Collapse newline filter Output-Stream-Filter Output-Stream-Filter werden auf den ausgehenden Bytestrom eines Orchestra-Stream- Channels angewendet. Diese Verarbeitung wird durchgeführt nachdem die Daten serialisiert wurden und bevor der resultierende Bytestrom geschrieben wird. Im Wesentlichen gibt es drei mögliche Verwendungszwecke der Output Stream Filter. Diese sind: Verpacken von Dateien in ein Zip-Archiv Archivierung des ausgehenden Datenstroms Umwandlung der Datenstrom-Kodierung Stand Seite 190 von 470 Version 4.4

191 Verpacken von Dateien in ein Zip-Archiv In allen Channels, welche einen Serializer zur Verarbeitung der ausgehenden Daten verwenden, kann über die Möglichkeit der Output-Stream-Filter das Verpacken von Daten in ein Zip-Archiv vorgenommen werden. Um das Verpacken vorzunehmen, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Channels den Channel, für welchen Sie den Output-Stream-Filter definieren möchten. 2. Navigieren Sie im geöffneten Channel zum Bereich [Serializer]. Abbildung Serializer eines Stream-Channels 3. Unterhalb des gewählten Serializers sehen Sie ein Textfeld mit dem Inhalt {Orchestra}--> {Output} hier führen Sie nun einen Doppelklick auf den Pfeil [ --> ] aus. 4. Es öffnet sich ein Kontextmenü zur Auswahl des Output-Stream-Filters. Abbildung Output-Stream-Filter Kontext Menü 5. In diesem Kontextmenü wählen Sie nun die gewünschte Funktionalität aus. In diesem Fall [encode with GZIP]. 6. Nach dem Sie Ihre Auswahl getroffen haben, ändert sich der Inhalt des Textfeldes entsprechend der gewählten Funktionalität. {Input} --> [Funktionalität] --> {Orchestra} Hinweis: Es ist ebenfalls möglich mehrere Funktionalitäten hintereinander auszuführen, bevor der Datenausgang an ein externes System von Orchestra vorgenommen wird. Zum Erweitern klicken Sie jeweils auf den Pfeil [ -->]. Stand Seite 191 von 470 Version 4.4

192 Archivierung des ausgehenden Datenstroms In allen Channels, welche einen Serializer zur Verarbeitung der ausgehenden Daten verwenden, kann der ausgehenden Datenstromes mit Hilfe eines Output-Stream-Filters archiviert werden. Die Daten können entweder im FileSystem oder in einer Datenbank archiviert werden. Um das Archivieren des Datenstroms vorzunehmen, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Channels den Channel, für welchen Sie den Output-Stream-Filter definieren möchten. 2. Navigieren Sie im geöffneten Channel zum Bereich [Serializer]. Abbildung Serializer eines Stream-Channels 3. Unterhalb des gewählten Serializers sehen Sie ein Textfeld mit dem Inhalt {Orchestra}--> {Output} hier führen Sie nun einen Doppelklick auf den Pfeil [ --> ] aus. 4. Es öffnet sich ein Kontextmenü zur Auswahl des Output-Stream-Filters. Abbildung Output-Stream-Filter Kontext Menü 5. In diesem Kontextmenü wählen Sie nun die gewünschte Funktionalität aus. In diesem Fall wählen Sie abhängig vom gewünschten Archivierungsverfahren [External file archive] bzw. [External database archive]. 6. Nach dem Sie Ihre Auswahl getroffen habe ändert sich der Inhalt des Textfeldes entsprechend der gewählten Funktionalität. {Orchestra}--> [Funktionalität] --> {Output} 7. Nach der Auswahl müssen sie den gewählten Output-Stream-Filter noch konfigurieren. Dazu führen Sie einen Doppelklick auf diesen aus. Hinweis: Es ist möglich, mehrere Schritte hintereinander auszuführen, bevor die Daten an ein externes System geschrieben werden. Zum Erweitern klicken Sie jeweils auf den Pfeil [ -->]. Stand Seite 192 von 470 Version 4.4

193 External file archive Konfiguration Zur Konfiguration der Archivierungsmethode [External file archive] gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Channels den Channel, für welchen Sie das externe File Archiv konfigurieren möchten. 2. Navigieren Sie im geöffneten Channel zum Bereich [Serializer]. Abbildung Serializer eines Stream-Channels 3. Unterhalb des gewählten Serializers sehen Sie ein Textfeld mit dem Inhalt {Orchestra} --> External file archive --> {Output} hier führen Sie nun einen Doppelklick auf [External file archive] aus. 4. Es öffnet sich der Konfigurationsdialog für das externe File Archive. Angezeigter Name Beschreibung Environment Entry für den Filepath Falls das Verzeichnis auf einem Netzlaufwerk liegt, muss hier u.u. ein Benutzer ausgewählt werden. Unterordner Dateiname Dateicodierung Create/Overwrite = Archivdatei erstellen/ Überschreiben Append if exists = Archivdatei erstellen/ Daten anhängen Write through = Archivdatei während der der Ausgabe schreiben Write on close = Archivdatei schreiben, nachdem die Daten vollständig geschrieben worden sind. Kopfzeile für den Inhalt Abbildung Input-Stream-Filter External file archive - Configure Trennzeile für den Inhalt (nur bei Append if exists) 5. Nach dem Sie die Konfiguration vorgenommen haben, klicken Sie zum Speichern der Änderungen auf [OK]. Stand Seite 193 von 470 Version 4.4

194 External database archive Konfiguration Zur Konfiguration der Archivierungsmethode [External database archive] gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Channels den Channel, für welchen Sie das externe Datenbank Archiv konfigurieren möchten. 2. Navigieren Sie im geöffneten Channel zum Bereich [Serializer]. Abbildung Serializer eines Stream-Channels 3. Unterhalb des gewählten Serializers sehen Sie ein Textfeld mit dem Inhalt {Orchestra} --> External database archive --> {Output} hier führen Sie nun einen Doppelklick auf [External database archive] aus. 4. Es öffnet sich der Konfigurationsdialog für das External database archive. Angezeigter Name Beschreibung Environment Entry für die Datenbank Eigenschaften Abbildung Input-Stream-Filter External database archive - Configure 5. Nach dem Sie die Konfiguration vorgenommen haben, klicken Sie zum Speichern der Änderungen auf [OK]. Achtung: Zur Verwendung der Datenbank- Archivierung müssen die entsprechenden Tabellen in der Orchestra Datenbank angelegt sein. Zum Erstellen der Tabellen benötigen Sie mindestens SQL-Scripte ab Orchestra-Version , die sie auf der Orchestra CD/Database finden. Stand Seite 194 von 470 Version 4.4

195 Umwandlung der Datenstrom-Kodierung In allen Channels, welche einen Serializer zur Verarbeitung der eingehenden Daten verwenden, kann über die Möglichkeit der Output-Stream-Filter die Umwandlung des ausgehenden Datenstromes vorgenommen werden. Um das Umwandeln des Datenstroms vorzunehmen, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Channels den Channel, für welchen Sie die Umwandlung des Input-Stream-Filter definieren möchten. 2. Navigieren Sie im geöffneten Channel zum Bereich [Serializer]. Abbildung Serializer eines Stream-Channels 3. Unterhalb des gewählten Deserializers sehen Sie ein Textfeld mit dem Inhalt {Orchestra}--> {Output} hier führen Sie nun einen Doppelklick auf den Pfeil [ --> ] aus. 4. Es öffnet sich ein Kontextmenü zur Auswahl des Output-Stream-Filters. Abbildung Output-Stream-Filter Kontext Menü 5. In diesem Kontextmenü wählen Sie nun die gewünschte Funktionalität aus. In diesem Fall wählen Sie [encode Base64 stream]. 6. Nach dem Sie Ihre Auswahl getroffen haben, ändert sich der Inhalt des Textfeldes entsprechend der gewählten Funktionalität. {Orchestra} --> [Funktionalität] --> {Output} 7. Nach der Auswahl müssen sie den gewählten Input-Stream-Filter noch konfigurieren. Dazu führen Sie einen Doppelklick auf diesen aus. Hinweis: Es ist ebenfalls möglich mehrere Funktionalitäten hintereinander auszuführen, bevor der Datenausgang an ein externes System von Orchestra vorgenommen wird. Zum Erweitern klicken Sie jeweils auf den Pfeil [ -->]. Stand Seite 195 von 470 Version 4.4

196 Verfügbare Output-Stream-Filter Im Orchestra Designer stehen Ihnen folgende Output-Stream-Filter zur Verfügung encode with GZIP Komprimiert den byte stream mit GZIP. Abbildung Output-Stream-Filter encode with GZIP encode with Base64 Kodiert den Byte stream mit Base64. Abbildung Output-Stream-Filter encode with Base External file archive schreibt den Stream beim Schreiben nebenbei in eine Datei. Der Filter kann genauso konfiguriert werden wie der entsprechende Input-Stream-Filter. Abbildung Output-Stream-Filter external file archive Stand Seite 196 von 470 Version 4.4

197 External database archive schreibt den Stream beim Schreiben nebenbei in eine Datenbank. Der Filter kann genauso konfiguriert werden wie der entsprechende Input-Stream-Filter. Abbildung Output-Stream-Filter external database archive Byte translation Filter Übersetzt Zeichenfolgen in Bytes. Abbildung EDI Message Reader - Configure Stand Seite 197 von 470 Version 4.4

198 3.5.7 File Locking Die Channel File.Inbound, File reader und File.Outbound können so konfiguriert werden, dass die Datei gelockt wird, bevor sie gelesen bzw. geschrieben wird. Kann die Datei nicht gelockt werden, weil ein anderer Prozess die Datei gelockt hat, wird die Aktion abgebrochen. Bei Lesen mit dem File Inbound-Channel bedeutet das, dass der Channel es einfach beim nächsten Mal (abhängig von der Polling period ) wieder versucht. Beim Schreiben mit dem File Outbound -Channel oder beim Lesen mit dem File reader -Channel versucht der Channel mehrfach (momentan 4 mal) den Lock zu bekommen und wartet dazwischen eine kurze Zeit (momentan 100,200,400,800 Millisekunden). Gelingt es nicht den Lock anzuhalten, wird ein Fehler erzeugt. Dazu gibt es verschiedene Locking-Methoden, die man auswählen kann. Welche Methoden zur Verfügung stehen, hängt vom ausgewählten Dateisystem ab. Deshalb sind die möglichen Locking-Methoden in der Orchestra-Konfigurationsdatei config/filesystem.xml konfiguriert Methode lockfile Diese Methode ist für die Dateisysteme LOCAL und SMB. Diese Methode benutzt dateisystemabhängige Methoden um die Datei zu sperren. Beim Lesen wird ein shared lock, beim Schreiben ein exclusive lock gesetzt. Unter UNIX bedeutet dies typischerweise, dass kooperatives Locking verwendet wird, d.h., das funktioniert nur, wenn alle Prozesse, welche die Datei verwenden, das Lock setzen. Unter Windows bzw. SMB wird die Datei so gelockt, dass sie von keinem anderen Prozess geschrieben (bei einem read-lock) oder auch nicht gelesen (bei einem write-lock) werden kann Methode check and create lockfile Diese Methode testet auf das Vorhandensein einer Lockdatei. Sie ist eine betriebssystemübergreifende Form von kooperativen Lockings. Die Lockdatei kann konstant sein (z.b. egate.lck) oder abhängig von dem Namen der zu lockenden Datei (z.b. $(filename)lck) Existiert die Lockdatei, dann heißt das, dass die Datendatei bereits im Zugriff ist und momentan nicht verwendet werden kann. Existiert die Lockdatei nicht, dann wird sie angelegt. Nachdem die Datendatei abgearbeitet (gelesen oder geschrieben) wurde, wird die Lockdatei wieder gelöscht. Stand Seite 198 von 470 Version 4.4

199 Methode lock directory status file Diese Methode wird von SAP beim Lesen von HCM-Dateien vorgeschrieben. Sie verwendet eine globale Lockdatei SS_STAT.dat. Ist die Lockdatei nicht vorhanden, dann wird sie angelegt. Eine Textzeile mit dem Inhalt <workfilename> <zeitstempel> wird in die Datei geschrieben. Danach wird die Datei gelockt (wie beim Schreiben mit der Methode lock file ) Methode script to lock files Mit einem lock script können eigenen Locking-Methoden in Java implementiert werden. Das Skript wird in Java geschrieben. Es handelt sich um die Implementierung der Methode lockfile einer generierten Java-Klasse die von der abstrakten Basisklasse AbstractFileLockFactory erbt. public abstract class AbstractFileLockFactory { public OrchestraFile directory; public boolean exists(string filename) throws IOException { OrchestraFile file = directory.createentry(filename); return file.exists(); } public void delete (String filename) throws IOException { OrchestraFile file = directory.createentry(filename); file.delete(); } abstract protected Lock lockfile (String filename) throws EpiBaseException, IOException; } Das heißt man kann in dem lock script auf das aktuelle Verzeichnis zugreifen und hat die Methoden exists und delete zur Verfügung. Des Weiteren kann man alle Methoden des Interfaces OrchestraFile aufrufen (siehe Anhang). Die Methode lockfile gibt eine Instanz des Interfaces Lock zurück: public interface Lock { void release () throws IOException; } Die Methode release wird aufgerufen, wenn der Channel die Datei wieder freigibt. Momentan gibt es zeit Implementierungen des Interfaces LockFile und StreamLock: public class LockFile implements Lock { private OrchestraFile lockedfile; public LockFile (OrchestraFile locked) { this.lockedfile = locked; } Stand Seite 199 von 470 Version 4.4

200 public void release() throws IOException { lockedfile.delete(); } } public class StreamLock implements Lock { static final private Logger logger = Logger.getLogger("emds.runtime.file"); private final String lockfilename; private final Closeable lockedstream; public StreamLock(String lockfilename, Closeable lockedstream) { this.lockfilename = lockfilename; this.lockedstream = lockedstream; } public void release() throws IOException { logger.fine("close locked stream for " + lockfilename); lockedstream.close(); } } Beispiel Lockscript OrchestraFile lockfile = directory.createentry("xy.lck"); if (!lockfile.createnewfile()) return null; return new LockFile(lockFile);\n Für die generierte Klasse werden folgende default-imports vorgenommen: import emds.epi.impl.landscapedirectory.orchestrafile; import emds.epi.decl.exceptions.epibaseexception; import java.io.ioexception; import emds.epi.impl.adapter.file.lock.lockfile; import emds.epi.impl.adapter.file.lock.lock; Quelltext Nachfolgend der Quelltext des Interfaces OrchestraFile: package emds.epi.impl.landscapedirectory; public interface OrchestraFile { /** * Returns the name of the file */ public String getname(); /** * Returns the absolute path of the file */ Stand Seite 200 von 470 Version 4.4

201 public String getabsolutepath(); /** * Return the file system protocol which is used to access the file. * May return LOCAL, SMB, NFS... * */ public String getfsprotocol (); /** * Return the Parent Directory. * IOException */ public OrchestraFile getparentdirectory() throws IOException; /** * Creates the directory IOException */ public void mkdirs() throws IOException; /** * Creates a path to a subdirectory or a file contained in the directory * identified by this OrchestraFile. * name the name of the subdirectory or file a OrchestraFile identifying a subdirectory * or a file contained in this directory IOException */ public OrchestraFile createentry(string name) throws IOException; /** * Try to create a file in the directory denoted by this OrchestraFile. * If the file already exists this method returns false. * This method is atomic and useful to create lock files. * true if the operation succeeded or false if the file already exists. IOException */ public boolean createnewfile() throws IOException; /** * Checks wether the given file exists IOException */ public boolean exists() throws IOException; /** * Deletes the current file object. * IOException */ public void delete() throws IOException; /** * Returns a listing of all files contained in the given directory if the * current file denotes a directory IOException */ Stand Seite 201 von 470 Version 4.4

202 public OrchestraFile [] listfiles( FilenameFilter filter ) throws IOException; /** * Returns an input stream from the current file object. * input stream IOException */ public InputStream getinputstream() throws IOException; /** * Returns an output stream to the current file object. IOException */ public OutputStream getoutputstream( ) throws IOException; /** * Returns an output stream in append mode for the current file object. IOException */ public OutputStream getoutputstreamforappend( ) throws IOException; /** * Renames the given file. * the renamed file or null if the operation failed * because the file is in use by another process. IOException if rename failed */ public OrchestraFile renamefile( String newfilename ) throws IOException; /** * Move the given file to denote another pathname * IOException */ public void moveto( OrchestraFile newfile ) throws IOException; /** * Returns the filesize */ public long getsize() throws IOException; /** * Returns the time that this pathname was last modified. * Measured in milliseconds since January 1, 1970, 00:00:00 GMT. */ public long getlastmodified() throws IOException; } Stand Seite 202 von 470 Version 4.4

203 3.5.8 Inbound Channels Inbound-Channels erhalten Nachrichten von einem externen System. Sie übersetzen zwischen dem externen und internen Nachrichtenformat. Bei Eingang der Nachricht wird in der Regel eine Instanz eines Prozessmodells erzeugt und gestartet Database Inbound Ein Database Inbound Channel wird verwendet um Datenbankeinträge als Trigger (Auslöser) für einen Prozess zu nutzen. Dabei können Filterbedingungen angegeben werden, welche die Datensätze auswählen, die einen Prozess starten sollen. Hinweis: Werden Datensätze gefunden, die die Filterbedingung erfüllen, werden ein oder mehrere Startevents erzeugt und eine Message mit den entsprechenden Daten generiert. Um einen Database Inbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Database Inbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [Database.Inbound] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie nun Ihren angelegten Channel konfigurieren. Stand Seite 203 von 470 Version 4.4

204 Erwartete Nachrichten -struktur Environment Entry für die Datenbank- Verbindung anlegen / bearbeiten eine Nachricht pro Datensatz / alle Sätze in einer Message Maximale Zahl der Datensätze pro Polling-Intervall Erwarteter Wert der State column Angabe des Pollingintervalls. Primärschlüssel der Quelltabelle Ergänzende Bedingung(en ) zum Wait state Wert der State column nach der Verarbeitung Abbildung Database Inbound Channel Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Environment Entries. Stand Seite 204 von 470 Version 4.4

205 Listener Der -Listener wird verwendet um eingänge als Trigger für einen Prozess zu nutzen. Sobald eine eingeht, wird ein Startevent erzeugt und eine Message mit dem Inhalt der Mail wird generiert. Um einen Listener Inbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Listener Inbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [ .Listener] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie nun Ihren angelegten Channel konfigurieren. Stand Seite 205 von 470 Version 4.4

206 Auswahl des für die - Server Anmeldung. User muss zuvor bei den security settings als credential angelegt werden Angabe des Pollingintervalls. Environment Entry für die Server Verbindung anlegen / bearbeiten Angabe eines Filters (Syntax siehe Anhang) Max. zu verarbeitende s pro Polling Intervall MIME Type des -Bodys MIME Type der -Anhänge Archivpfad Auswahl des Deserialisierers für den - Text Aktion die bei erfolgreicher Verarbeitung angestoßen wird Archivpfad Aktion die bei fehlgeschlagener Verarbeitung angestoßen wird Abbildung Listener Inbound Channel Hinweis: Nähere Informationen über den Deserializer erhalten Sie im Kapitel Deserializer. Stand Seite 206 von 470 Version 4.4

207 FTP Listener Der FTP Listener wird verwendet um Dateieingänge auf einem FTP(S)-Server oder SFTP-Server als Trigger für einen Prozess zu nutzen. Sobald eine Datei gefunden wird, deren Name dem Suchmuster entspricht, wird ein Startevent erzeugt und eine Message mit dem Inhalt der Datei generiert. Um einen FTP Listener Inbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung FTP Listener Inbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [FTP.Listener] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie nun Ihren angelegten Channel konfigurieren. Achtung: Wenn Sie einen FTP Channel verwenden möchten, benötigen Sie zwingend eine Benutzer, mit welchen Sie die Zugriffsrechte auf den entsprechenden FTP-Server haben. Wie Sie Benutzer in Orchestra anlegen können, erfahren Sie in Kapitel 4.1 Credentials / User. Stand Seite 207 von 470 Version 4.4

208 Auswahl des Benutzers für die Server Anmeldung. User muss zuvor bei den security settings als credential angelegt werden Environment Entry für die FTP Server Verbindung anlegen / bearbeiten Angabe des Filename Patterns Max. zu verarbeitenden Anfragen pro Polling Intervall Angabe des Pollingintervalls Endung der erfolgreich verarbeiteten Datei Archivpfad Endung der Datei im aktuellen Zugriff Auswahl des Deserialisierers für die Daten Aktion die bei erfolgreicher Verarbeitung angestoßen wird Aktion die bei fehlgeschlagener Verarbeitung angestoßen wird Endung der fehlerhaft verarbeiteten Datei Abbildung FTP Listener Inbound Channel Archivpfad Stand Seite 208 von 470 Version 4.4

209 File Inbound Wird verwendet um Dateieingänge in einem bestimmten Ordner (local oder remote) als Trigger für einen Prozess zu nutzen. Sobald eine Datei gefunden wird, deren Name dem Suchmuster entspricht, wird ein Startevent erzeugt und eine Message mit dem Inhalt der Datei generiert. Um einen File Inbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung File Inbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [File.Inbound] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 209 von 470 Version 4.4

210 Environment Entry für den Dateipfad anlegen / bearbeiten Authentifizierung (siehe Security Settings) Angabe des Filename Patterns Angabe des Pollingintervalls Endung der Datei im aktuellen Zugriff Kann Streams ins Teilstreams aufsplitten Endung der erfolgreich verarbeiteten Datei Aktion die bei fehlgeschlagener Verarbeitung angestoßen wird Locked Datei um exklusiven Zugriff sicherstellen zu können Angabe der Aktion die bei erfolgreicher Verarbeitung angestoßen wird Archivpfad Archivpfad Abbildung File Inbound Channel Endung der fehlerhaft verarbeiteten Datei Stand Seite 210 von 470 Version 4.4

211 Hier können Sie Sortierungsfunktionen definieren Sort by filename = Sortiert nach Dateiname Sort by filedate = Sortiert nach Dateidatum Sort by filesize = Sortiert nach Dateigröße User defines sort order = Benutzerdefinierte Sortierung Abbildung File Inbound Channel Delivery options File Inbound Filename Wird verwendet um Dateieingänge in einem bestimmten Ordner (local oder remote) als Trigger für einen Prozess zu nutzen. Sobald eine Datei gefunden wird, deren Name dem Suchmuster entspricht, wird ein Startevent erzeugt welches den Namen der Datei enthält. Um einen File Inbound Filename Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Stand Seite 211 von 470 Version 4.4

212 Abbildung File Inbound Filename Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [File.Inbound.Filename] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können den angelegten Channel konfigurieren. Stand Seite 212 von 470 Version 4.4

213 Environment Entry für den Dateipfad anlegen / bearbeiten Angabe des Filename Patterns Authentifizierung (siehe Security Settings) Angabe des Pollingintervalls Endung der Datei im aktuellen Zugriff Endung der erfolgreich verarbeiteten Datei Angabe der Aktion die bei erfolgreicher Verarbeitung angestoßen wird Aktion die bei fehlgeschlagener Verarbeitung angestoßen wird Abbildung File Inbound Filename Channel Endung der fehlerhaft verarbeiteten Datei Archivpfad Archivpfad Hier können Sie Sortierungsfunktionen definieren Sort by filename = Sortiert nach Dateiname Sort by filedate = Sortiert nach Dateidatum Sort by filesize = Sortiert nach Dateigröße Abbildung File Inbound Filename Channels Delivery User Options defines sort order = Benutzerdefinierte Sortierung Stand Seite 213 von 470 Version 4.4

214 WEBDAV Listener Der Channel implementiert einen WEB-DAV-Server. Er bietet zwei Funktionalitäten: Beim Eingang einer neuen Datei per WEB-DAV-PUT wird ein Trigger-Event erzeugt (die Standardfunktion eines Inbound-Channels) Ein externes System kann über das WEB-DAV-Protokoll auf die gesammelten Nachrichten zugreifen. Um einen WEBDAV listener zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung HTTP Message Download Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [WebDAV.Listener] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Environment Entries Stand Seite 214 von 470 Version 4.4

215 Startevent erzeugen, wenn ein Client eine Aktion durchführt http-authentifizierung: - Basic = User/Password - Digest = User/Password - Certificate authentication = Authentifizierung des Clients über ein Zertifikat (X509) WebDAV Zugriffe erlauben Name der Message Collection Superuser darf auf diese Webdav Collection zugreifen Unterverzeichnisse der Collection inklusive Berechtigungen Abbildung HTTP Message Download Channel Auswahl wie die URL zu der WebDAV Collection erzeugt werden soll DEFAULT: Pfad wird aus Scenarioid und Channelid erzeugt SCENARIONAME: Pfad wird aus dem Sceanrioname erzeugt COLLECTIONNAME: Pfad wird aus dem Collectionname erzeugt Aufbau bzw. das Aussehen des Downloadseitenkopfes Aufbau bzw. das Aussehen eines Eintrags auf der Downloadseite Aufbau bzw. das Aussehen des Downloadseitenfooters Stand Seite 215 von 470 Version 4.4

216 HTTP Inbound Get (Parameter) Wird verwendet um einen HTTP GET Request als Trigger für einen Prozess zu nutzen. Sobald ein HTTP GET Request auf einer bestimmten URL eingeht, wird ein Startevent erzeugt und eine Message generiert, die eine Liste von einfachen Kindelementen enthält. Die Namen dieser Kindelemente sind die Namen der Parameter der http-get- Methode. Der Nachrichtentyp für die eingehende Nachricht (Request message) muss dementsprechend aufgebaut sein. Um einen HTTP Inbound Get Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung HTTP Inbound Get Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [HTTP.Inbound.Get(Parameter)] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6. Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer. Stand Seite 216 von 470 Version 4.4

217 http-authentifizierung: - Basic = User/Password - Digest = User/Password - Certificate authentication = Authentifizierung des Clients über ein Zertifikat (X509) Auswahl der Request Nachrichtenstruktur (Message type) Abbildung HTTP Inbound Get (Parameter) Auswahl der Response Nachrichtenstruktur Auswahl des Serialisierers der Response Message Stand Seite 217 von 470 Version 4.4

218 HTTP Inbound Post (Parameter) Wird verwendet um einen HTTP POST Aufruf als Trigger für einen Prozess zu nutzen. Sobald ein HTTP POST Aufruf auf einer bestimmten URL eingeht, wird ein Startevent erzeugt und eine Message aus den gelieferten Daten generiert. Der Channel erwartet, dass die Nachricht eine Menge von Schlüssel/Wert-Paaren enthält, wie sie von einem HTML-Formular geliefert wird. Der Nachrichtentyp für die eingehende Nachricht (Request message) muss dementsprechend eine Liste von einfachen Kindelementen definieren. Die Namen dieser Kindelemente sind die Namen der Parameter die aus der Nachricht extrahiert werden. Um einen HTTP Inbound Post(Parameter) Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung HTTP Inbound Post(Parameter) Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [HTTP.Inbound.Post(Parameter)] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer. Stand Seite 218 von 470 Version 4.4

219 http-authentifizierung: - Basic = User/Password - Digest = User/Password - Certificate authentication = Authentifizierung des Clients über ein Zertifikat (X509) Auswahl der Request Nachrichtenstruktur (Message type) Abbildung HTTP Inbound Post (Parameter) Auswahl der Response Nachrichtenstruktur Auswahl des Serialisierers der Response Message Stand Seite 219 von 470 Version 4.4

220 HTTP Inbound Post (General) Wird verwendet um einen HTTP POST Aufruf als Trigger für einen Prozess zu nutzen. Sobald ein HTTP POST Aufruf auf einer bestimmten URL eingeht, wird ein Startevent erzeugt und eine Message aus den gelieferten Daten generiert. Im Gegensatz zum Channel HTTP Inbound Post (Parameter) kann hier ein beliebiger Deserializer für die eingehende Nachricht angegeben werden. Um einen HTTP Inbound Post(General) Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung HTTP Inbound Post(General) Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [HTTP.Inbound.Post(General)] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6. Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer Stand Seite 220 von 470 Version 4.4

221 http-authentifizierung: - Basic = User/Password - Digest = User/Password - Certificate authentication = Authentifizierung des Clients über ein Zertifikat (X509) Auswahl der Request Nachrichte n-struktur (Message type) Auswahl des Deserialisierers der eingehenden Nachricht. Abbildung HTTP Inbound Post (Parameter) Auswahl der Response Nachrichtenstruktur Auswahl des Serialisierers der Response Message Stand Seite 221 von 470 Version 4.4

222 MLLP Inbound Channel Der MLLP.Inbound Channel ist ein Inbound Channel für das Mini Lower Level Protocol das im Rahmen des Austausches von HL7-Nachrichten verwendet wird. Er dient zum Empfang von HL7-Nachrichten über ein Netzwerk Um einen MLLP Inbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung MLLP Inbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [MLLP.Inbound] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer Stand Seite 222 von 470 Version 4.4

223 Abbildung MLLP Inbound Channel Stand Seite 223 von 470 Version 4.4

224 Synchron oder Asnychron; Der Modus Synchron erlaubt es, eine Antwort auf eine eingehende Nachricht an den Sender zu schicken Automatic Acknowledgement (MLLP-Version 2) oder Without Acknowledgement (MLLP-Version 1) Abbildung MLLP Inbound Channel General settings Wenn "Raise event on client connect or error" ausgewählt wurde, dann meldet Orchestra jede Änderung des Verbindungsstatus als System event. Wenn "Raise event on error" gewählt wurde, dann werden nur Fehler gemeldet. Referenziert einen TCP-Endpoint in welchem der Port definiert wird, an dem die HL7-Nachrichten erwartet werden. Wenn der Modus Synchron ausgewählt wurde, kann hier eine maximale Zeitdauer angegeben werden, innerhalb derer auf einen Nachrichteneingang eine Antwort geschickt werden muss. Schickt das Orchestra- Prozessmodell nicht innerhalb dieser Zeitspanne eine Antwort, dann wird eine Fehlernachricht als HL7-Acknowledgement zurückgeschickt Stand Seite 224 von 470 Version 4.4

225 Als Deserializer sollte in der Regel der "HL7 Message Reader" ausgewählt werden. Abbildung MLLP Inbound Channel Inbound & Outbound processing Wenn der Modus Synchron ausgewählt wurde, dann sollte hier in der Regel der "HL7 Message Writer" ausgewählt werden Hier kann das HL7-Acknowledgement einund ausgeschaltet werden (enabled/disabled) Abbildung MLLP Inbound Channel HL7 acknowledgement Felder zur Definition der Nachricht, welche bei Fehlern bzw. als Erfolg an den Sender zurückgegeben werden sollen, wenn das Acknowledgement eingeschaltet ist Stand Seite 225 von 470 Version 4.4

226 Antwort-Nachrichten anpassen Die generierten Antwort-Nachrichten (Acknowledgements für Success, Error und Rejected) können für jede Channel-Instanz angepasst werden. Die Nachrichten werden als Text angegeben. Innerhalb dieses Textes können Variablen benutzt werden, die durch nachrichtenspezifische Feldwerte ersetzt werden, z.b.: MSH ^~\& $(MSH/MSH.5) $(MSH/MSH.3) $(dt:yyyymmddhhmmss) MSA^$(MSH/MSH.9/MS H.9.1) $(ctrl:counter) P $(MSH/MSH.12) MSA $(MSH/MSH.10) $(ACK.CODE) $(ACK.TEXT) $(ACK.DETAIL) Dann wird jeder Parameter durch einen Text ersetzt. Die folgenden Parameter sind möglich: Tabelle 3-11 MSA-Nachrichten Parameter Parameter $(ACK.CODE) $(ACK.TEXT) $(ACK.DETAIL) $(ctrl:counter) $(dt:<date/time format>) $(msg:id) $(msg:<name>) Beschreibung Wird durch den Acknowledge-Code aus der ersetzt. Konfiguration Wird durch den Beschreibungstext aus der Konfiguration ersetzt Wird durch den Exceptiontext ersetzt (wenn verfügbar) Wird durch einen eindeutigen Bezeichner ersetzt Wird durch einen Datum/Zeittext ersetzt (siehe Kapitel ) Ersetzt durch den message identifier der aktuellen Orchestra Nachricht Ersetzt durch eine message property die in der aktuellen Orchestra Nachricht enthalten ist. Stand Seite 226 von 470 Version 4.4

227 Message Queuing Inbound Der Queuing.Inbound Channel ist ein Inbound Channel mit dem Nachrichten aus einem Message-Queuing-System empfangen werden können. Auf das Message-Queuing- System muss per JMS (Java Message Service) zugegriffen werden können. Um einen Queuing Inbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Message Queuing Inbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [Message.Queing.Inbound] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer Stand Seite 227 von 470 Version 4.4

228 Environment Entry für die JMS-Configuration definiert die Adresse des Servers. Publish/Subscribe: Registriert sich am Publisher Point to Point: Nur ein Empfänger JMS Provider Benutzer Zeitraum in dem eine Message für den Consumer ankommen muss Nachrichtenspezifikation Angabe des Timings Abbildung Message Queuing Inbound Auswahl der Nachricht zu einem Thema / Queue Stand Seite 228 von 470 Version 4.4

229 JMS Messagetypen Der Channel generiert je nach JMS Messagetyp unterschiedliche Eingangsnachrichten: Tabelle 3-12 JMS Messagetypen Parameter TextMessage BytesMessage StreamMessage Beschreibung Abhängig vom verwendeten Deserializer wird eine Orchestra Message aus der eingehenden JMSMessage erzeugt. Abhängig vom verwendeten Deserializer wird eine Orchestra Message aus der eingehenden JMSMessage erzeugt. Aus der eingehenden JMSMessage wird eine Orchestra Message erzeugt die in einem Feld <value> den eingehenden Stream enthält. Erzeugt eine Orchestra Message die alle Key Value Paare der eingehenden JMSMessage enthält MapMessage <messagexyz> <propertyname1>value1</propertyname1> <propertyname2>value2</propertyname2> </messagexyz> ObjectMessage Für die eingehenden JMSMessage wird eine Orchestra Message ohne Inhalt erzeugt. Zusätzlich wird ein Eingangsobjekt vom Typ any erzeugt welches das eingehende Objekt beinhaltet (muss entsprechend gecastet werden um es zu verwenden) Stand Seite 229 von 470 Version 4.4

230 Orchestra Object Input Dieser Channel wird für die direkte Anbindung beliebiger Java-Programme an Orchestra verwendet. Über den Channel wird konfiguriert, welche Daten der Channel erwartet und in welchem Format die Daten übergeben werden müssen. Um einen Orchestra Object Input Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Orchestra Object Input Inbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [Orchestra.Object.Input] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 230 von 470 Version 4.4

231 http-authentifizierung: - Basic = User/Password - Digest = User/Password - Certificate authentication = Authentifizierung des Clients über ein Zertifikat (X509) Abbildung Orchestra Object Input Inbound Channel Synchron = Der Channel gibt an den Aufrufer eine Antwort zurück(request/response) Asynchron = Der Channel quittiert nur die korrekte Übernahme des Requests Achtung: Damit ein Programm Nachrichten an Orchestra verschicken kann ist die Datei orchestra_service_client.jar mit einzubinden. Darin sind alle notwendigen Funktionen und Klassen enthalten. Der Service-Client ist ein Modul, welches die Kommunikation beliebiger Java-Applikationen mit Orchestra erlaubt. Stand Seite 231 von 470 Version 4.4

232 Orchestra Object Input Beispiel Nachfolgend ist ein Beispielprogramm aufgezeigt welches eine Datei an Orchestra schickt. Die Parameter die an Orchestra übergeben können hierbei frei gewählt werden: package test; import java.io.file; import java.io.fileinputstream; import java.io.ioexception; import java.io.inputstream; import java.io.outputstream; import java.util.map; import emds.orchestra.service.servicecall; public class OrchestraClient { static String ORCHESTRA_URL = ""; final static String PARAM_FILENAME = "FILENAME"; final static String PARAM_CONTENT = "CONTENT"; final static String PARAM_STATE = "STATE"; public static void main( String [] args ) { if( args.length!= 4 ) { System.out.println( "Usage: OrchestraClient <Orchestra-URL> <FileToOrchestra> <mimetype> <tries>" ); } System.exit(1); try { ORCHESTRA_URL = args[0]; int tries = Integer.parseInt( args[3] ); for( int i = 0; i < tries; i++ ) { /* ******************************************************* * Prepare the orchestra service call * *******************************************************/ ServiceCall service = new ServiceCall( ORCHESTRA_URL ); service.prepare(); /* ******************************************************* * Add call parameters to the service-call object * *******************************************************/ service.addparameter( PARAM_FILENAME, args[1] ); service.addstreamparameter( PARAM_CONTENT, args[2] ); /* ******************************************************* * Write the file-content to the orchestra data stream * *******************************************************/ writefiletostream( args[1], service.getstream() ); /* ******************************************************* * Submit the service call to orchestra and receive * the result data * *******************************************************/ Stand Seite 232 von 470 Version 4.4

233 Map<String,Object> result = service.submit(); /* ******************************************************* * Check the result data if a parameter PARAM_SATE is * available * *******************************************************/ if( result.containskey( PARAM_STATE ) ) { System.out.println( i + ". Orchestra-State: " + result.get( PARAM_STATE ) ); } } } catch (IOException e) { e.printstacktrace(); } } /** * Write the given file to the output stream * file out IOException */ public static void writefiletostream( String file, OutputStream out ) throws IOException { } InputStream in = new FileInputStream( new File( file ) ); int datax = 0; while( ( datax = in.read() )!= -1 ) { out.write( datax ); } out.close(); in.close(); } Als Eingabe werden die Parameter FILENAME und CONTENT übergeben. Bei dem Parameter Content handelt es sich um einen Stream-Parameter welcher eine externe Nachricht überträgt. Bei dieser Nachricht kann es sich sowohl um eine strukturierte Nachricht (XML) als auch um eine binäre Nachricht handeln. Der Typ der Nachricht wird durch den Content-Type definiert, welcher bei der Funktion addstreamparameter mit übergeben wird. Soll dieses Programm um die Möglichkeit der Authentifizierung bzw. HTTPS- Kommunikation erweitert werden sind nachfolgende Hinweise zu beachten: Stand Seite 233 von 470 Version 4.4

234 Preemptive Authentifizierung über Username/Password ServiceCall service = new ServiceCall( ORCHESTRA_URL ); /* *************************************************************************************** * Use the following lines to enable preemptive authentication. This method can be used * if user/password authentification is required * ***************************************************************************************/ service.setpasswordauthentication( <username>, <password> ); service.prepare();.. Authentifizierung über Java-Standard Authenticator: Für Übergabe der Authentifizierungsinformation kann auf den Java-Standard- Mechanismus java.net.authenticator zurückgegriffen werden. Siehe hierzu Java- Dokumentation. Die Aktivierung dieses Mechanismus ist in nachfolgendem Codeblock demonstriert: /* *************************************************************************************** * Use the following line to add a systemwide authenticator. This method is required * if the orchestra service channel requires digest authentication. * ***************************************************************************************/ Authenticator.setDefault( new SimpleAuthenticator(<username>, <password> ) );.. Die Klasse SimpleAuthenticator ist eine Beispiel-Implementierung eines Authenticators. Die Klasse ist wie folgt aufgebaut: import java.net.authenticator; import java.net.passwordauthentication; public class SimpleAuthenticator extends Authenticator { private String user; private char [] password; /** user password */ public SimpleAuthenticator(String user, char[] password) { this.user = user; this.password = password; } protected PasswordAuthentication getpasswordauthentication() { return new PasswordAuthentication( user, password ); } Stand Seite 234 von 470 Version 4.4

235 Authentifizierung über Zertifikat Für die Authentifizierung per Zertifikat stehen zwei Möglichkeiten zur Verfügung. Möglichkeit 1 setzt auf die Java-Standard-Mechanismen. D.h. wenn folgende System- Properties beim Start des Programms gesetzt werden Djavax.net.ssl.trustStore=<Pfad zum Truststore> Djavax.net.ssl.trustStorePassword=<Truststore Password> Djavax.net.ssl.keyStore=<Pfad zum Keystore> Djavax.net.ssl.keyStorePassword=<Keysstore Password> Erfolgt automatisch eine Anmeldung per HTTPS und Zertifikat, vorausgesetzt die Gegenstelle fordert diese Zertifizierungsart an. Sollte die erste Möglichkeit nicht ausreichend sein, erlaubt Orchestra die Zuweisung einer benutzerdefinierten SSL-Socket-Factory. Dadurch erhält die Applikation volle Kontrolle über alle SSL- und Authentifizierungsrelevanten Einstellungen. Der Aufruf hierfür ist in nachfolgendem Codeblock dargestellt: ServiceCall service = new ServiceCall( ORCHESTRA_URL ); /* *************************************************************************************** * Use the following lines to enable certificate authentication. With your own * ssl socket-factory * ***************************************************************************************/ service.setcertificateauthentification( <your ssl socket factory> ); service.prepare();.. Stand Seite 235 von 470 Version 4.4

236 SAP Inbound Dieser Channel meldet sich als externes Subsystem bei einem SAP/R3-System an. SAP kann dann dem Channel per RFC (Remote Function Call) Daten übergeben. Der Channel erzeugt daraufhin eine Orchestra-Prozessinstanz. An diese werden die Daten (Parameter des RFCs) als Message übergeben. Um einen SAP-Inbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung SAP Inbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Inbound] Ihren benötigten Typ [SAP.Inbound] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Stand Seite 236 von 470 Version 4.4

237 Environment Entry für die SAP-Configuration definiert die Adresse des Servers. Abbildung SAP Inbound Channel Auswahl der Message Types der Request Message Auswahl der Message Types der Response Message Stand Seite 237 von 470 Version 4.4

238 3.5.9 Outbound Channels Outbound Channels werden von einer Prozess-Instanz aus aufgerufen. Ein Outbound- Channel kann Parameter übernehmen und zurückliefern. Insbesondere kann er Messages übernehmen und zurückliefern Database Source Reader Der Database Source Reader wird verwendet um hierarchisch strukturierte Daten aus einer Datenbank auszulesen. Er stellt eine Erweiterung des Database Readers dar. Um einen Database Source Reader Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Database Source Reader Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [Database.Source Reader] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 238 von 470 Version 4.4

239 Hier können Sie eine neue Datenbank verbindung anlegen und bearbeiten Durch einen Klick in das entsprechende Feld kann der Wert verändert werden. (zb. Type auswählen) Über add können Sie neue Datentypen hinzufügen. Abbildung Database Source Reader Channel Stand Seite 239 von 470 Version 4.4

240 Database Target Der Channel dient zum Mapping von Daten auf eine Datenbank. Der Channel führt implizit ein Mapping aus. Während der Ausführung des Mappings werden die Elemente direkt in eine Datenbank geschrieben. Hinweis: Der Zieldatentyp des Mappings wird deshalb in der Regel direkt aus einem Database- Dictionary oder aus einem Valuemation-Repository importiert. Man wählt dazu im Orchestra-Designer im Menü File/Import den Eintrag Message type from database oder Message type from valuemation aus (siehe Kapitel Import from database). Um einen Database Target Outbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Database Target Outbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [Database Target] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 240 von 470 Version 4.4

241 Art der Key-Generierung: OracleSequence= Auf dem Zieldatenbankschema muss eine Sequence mit Namen ORCH_SEQUENCE vorhanden sein. Der nächste Wert der Sequence wird verwendet. MaxId= Ermittelt den Schlüssel indem der maximale Wert für alle Sätze in der Tabelle geholt und eins addiert wird. VMHighestKey= Ermittelt den Schlüssel wie in Valuemation. Environment Entry für die Database- Connection. Auswahl des gewünschten Datenbankmappings Elemente des Zieldaten-typs; diese entsprechen Tabellen bzw. Spalten der Zieldatenbank, in welche Daten geschrieben werden sollen. Before-change-Trigger, einen Afterenter-Trigger und einen Beforeleave-Trigger in Skript-Sprache. Es kann für jedes Element des Zieldatentyps ein Trigger definiert werden. Schreibmodus der Tabelle: Replicate = Insert oder Update (wenn Datensatz exisitert) Insert = Datensatz anlegen Update = Datensatz aktualisieren Insert new = Datensatz anlegen wenn er nicht exisitert. ACHTUNG: Abbildung Database Target Outbound Channel Die Modi Replicate, Update und Insert new erfordern zwingend ein Schlüsselfeld auf der Datenbank-Tabelle. Dieser wird ebenfalls im zugehörigen Message Mapping angeben. Ist kein Schlüsselfeld definiert, so führen diese Modi bei der Ausführung zu einem Fehler. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Für Informationen über Mappings lesen Sie Kapitel Message Mappings Stand Seite 241 von 470 Version 4.4

242 Skript-Sprache des DB-Target Channels Im DB-Target Channel wird eine speziell auf diesen Channel ausgelegte Skriptsprache verwendet. In diesem Kapitel wird diese Sprache erläutert Verarbeitungsreihenfolge Generell werden die Statements beim Anlegen eines Elementes im DBTarget-Channel in folgender Reihenfolge ausgeführt: Der Before-change - Trigger wird ausgeführt (wenn vorhanden). Der Trigger kann alle gemappte Attribute referenzieren (in der Form $(attributname) ) Ein select auf der Zieltabelle wird ausgeführt, wenn der Mapping-Modus auf Replicate oder Insert new gestellt ist. Die Attribut-Ausdrücke werden ausgeführt und ihre Werte den entsprechenden Attributen zugewiesen. Diese haben Zugriff auf die gemappte Attribute, sowie auf alle Variablen die vom Before-Trigger gesetzt wurden. Hinweis: Die Ausführung eines Attribut-Ausdrucks wird vorzeitig erzwungen, wenn das Zielattribut in einem Before-Trigger referenziert wird. select und insert oder update auf der Zieltabellen wird ausgeführt der After-enter-Trigger wird ausgeführt (wenn vorhanden). Die Kindelemente werden angelegt Der Before-leave-Trigger wird ausgeführt (wenn vorhanden). Hinweis: Mit einem Before-change-Trigger kann zum Beispiel vor insert bzw. update die Gültigkeit eines Satzes geprüft werden. Stand Seite 242 von 470 Version 4.4

243 Sprachelemente In den folgenden Unterkapiteln erhalten Sie eine Übersicht über die Sprachelemente im Database-Target-Channel Attribut-Ausdrücke Expression ::= AddExpression { "or" AddExpression } AddExpression ::= StringConcatenation NumericExpression StringConcatenation ::= PrimaryExpression "+" AddExpression NumericExpression ::= MultiplyExpression { "+" MultiplyExpression } MultiplyExpression "-" MultiplyExpression MultiplyExpression ::= PrimaryExpression { "*" PrimaryExpression } PrimaryExpression ::= "(" Expression ")" Literal VariableExpression FunctionCall SelectExpression VariableExpression ::= "$(" Varname ")" "$(" "../" Varname ")" "$(""/" Varname")" FunctionCall ::= Name "(" [ Expression { "," Expression } ] ")" SelectExpression ::= "select" SQLRest Werte Literal ::= NumericLiteral StringLiteral BooleanLiteral "null" "NULL" NumericLiteral ::= Digits [ "." Digits ] StringLiteral ::= "'" char... "'" BooleanLiteral ::= "true" "false" "TRUE" "FALSE" Stand Seite 243 von 470 Version 4.4

244 Globale Variablen $(/dbschemaname), Funktionen date today () date yesterday () date todate (string stringdate, string dateformat?) // Default für dateformat ist 'dd.mm.yyyy' date daybefore (date date, int days?) // Default für days ist 1 string substring (string str, int startindex, int length?) // Default Wert für length ist 256 int newid (string tablename, string columnname) string newkey (string client, string boname, string attrname) // z.b.: newkey ($(client), 'Item', 'item') Trigger Trigger ::= Block Block ::= Statement { ";" Statement } Stand Seite 244 von 470 Version 4.4

245 Statements Statement ::= IfStatement Assignment SelectIntoStatement CountLoop SelectLoop SQLStatement CancelStatement RollbackStatement ResultOperation IfStatement ::= "if" Condition "then" Block [ "else" Block ] "end" Assignment ::= VariableRef "=" Expression VariableRef ::= "$(" Varname ")" SelectIntoStatement ::= "select" SQL-Expressionlist "into" VariableRef { "," VariableRef } "from" Tablename [ "where" SQLRest ] CountLoop ::= "for" VariableRef "from" Expression to Expression do Block end SelectLoop ::= loop "select" SQL-Expressionlist "into" VariableRef { "," VariableRef } from SQLRest do Block end Tablename ::= Name [ "." Name ] CancelStatement ::= "cancel" "operation" RollbackStatement ::= "rollback" "transaction" ResultOperation ::= "RESULTMSG" "." ( "failure" "error" "warning" "info" ) [ Name ] AddExpression SQLStatement ::= ( "update" "insert" "delete" ) SQLRest Stand Seite 245 von 470 Version 4.4

246 Bedingungen Condition ::= AndCondition { "or" AndCondition } AndCondition ::= PrimaryCondition { "and" PrimaryCondition } PrimaryCondition ::= "(" Condition ")" "not" Condition ExistsCondition EqualCondition CompareCondition "is" "canceled" ExistsCondition ::= "exists" Tablename "where" SQLRest EqualCondition ::= AddExpression ( "=" "!=" "<>" ) AddExpression CompareCondition ::= NumericExpression ( "<" "<=" ">" ">=" ) NumericExpression Kommentare Kommentare werden wie in Java angegeben, d.h. Zeilenkommentare werden mit // eingeleitet, mehrzeilige Kommentare mit /* */ geklammert. Stand Seite 246 von 470 Version 4.4

247 Die Statements RESULTMSG, cancel operation und rollback transaction Das Statement RESULTMSG.<category> [<childname>] <expr> schreibt Informationen in die Rückgabenachricht und beeinflusst den Output-Parameter RESULTSTATE des Channel-Aufrufs. <category> kann failure, error, warning oder info sein. Der RESULTSTATE des Aufrufs ist der höchste Fehlerwert, der während der Ausführung gesetzt wurde. Wird z.b. während der Ausführung RESULTMSG.error und RESULTMSG.warning ausgeführt, dann ist der RESULTSTATE des Channels vom Typ ERRORS. Der RESULTSTATE kann die Werte failed, errors, warnings oder success annehmen. RESULTMSG schreibt den Wert des Ausdrucks wie folgt in die Ausgabemessage: Wenn der childname angegeben wurde, dann wird die category als XML-Attribut an das entsprechende Kind-Element des aktuellen Knotens der Result-Message angehängt. z.b. setzt RESULTMSG.error size "invalid length" im Element <size> einen XML-Attribut error z.b.: <size error="invalid length">0</size> Achtung: Der Parameter childname ist nur in einem Before Trigger erlaubt. Ansonsten wird ein Kind-Element mit der <category> und dem Wert des Ausdrucks in den aktuellen Zielknoten eingefügt. z.b. erzeugt RESULTMSG.<warning> "ungültiger Wert" ein Element <warning>ungültiger Wert</warning> Am Besten sieht man das, wenn man sich einen Channel für Valuemation erzeugen lässt und sich die Rückgabenachricht anschaut. RESULTMSG.<error> ruft implizit "cancel operation" auf, d.h. die aktuelle Operation wird abgebrochen. Gleichwohl werden aber weitere Datenbankstatements für nachfolgende Sätze ausgeführt, aber nicht für Kindsätze des aktuellen Knotens. Stand Seite 247 von 470 Version 4.4

248 RESULTMSG.failure setzt genauso wie das Statement "rollback transaction" den RESULTSTATE auf failed und führt einen rollback der gesamten Datenbanktransaktion durch. RESULTMSGfailure setzt zusätzlich im Adapter-Status das AdapterDetail: ( "ERROR", "Last error", <fehlertext>) und erhöht den Fehlerzähler (AdapterDetail: "Info", "Errors", <fehlerzähler> ) Und natürlich wird -wie immer bei RESULTMSG- noch eine Information in die Rückgabenachricht geschrieben. Wenn cancel operation aufgerufen wurde, dann wird ein Flag gesetzt, dass dafür sorgt, dass: werden keine weiteren Skripte (after enter, before leave) für diesen Knoten und seine Kindknoten mehr aufgerufen. Alle nachfolgenden Statements innerhalb des Skripts werden aber noch ausgeführt! keine Datenbankoperationen für diesen Knoten und seine Kindknoten mehr ausgeführt.. Das Statement "rollback transaction; dient dazu einen Rollback auszuführen. Stand Seite 248 von 470 Version 4.4

249 Beispiele für Skripte Zuweisung: $key = newkey ('Schema', 'boname', 'attrname'); SelectIntoStatement: select a, b into $(a), $(b) from tab where... ResultOperation: RESULTMSG.failure ( 'sysperfgrp ' + $(sysperfgrpno) + ' not found' ); RESULTMSG.error ident 'missing key value'; Sonstiges: cancel operation; rollback transaction; IfStatement: if $(systemtypeid) = null then RESULTMSG.warning systemtypeid 'no Systype found for' + ' systype [' + $(systype) + ']' + ' and client [' + $(client) + ']'; end if $(sysperfgrpid) = null then RESULTMSG.failure sysperfgrpid 'no Sysperfgrp found for' + ' sysperfgrpno [' + $(sysperfgrpno) + ']' + ' and client [' + $(client) + ']'; // failure causes rollback transaction end Stand Seite 249 von 470 Version 4.4

250 Komplexes Beispiel: $(today) = today(); // check if a record exists within the relation table if not exists AMA_COMPSYSTEM where COMPONENT_ID = $(componentid) and SYSTEM_ID = $(../systemid) and VALIDTO > $(today) then $(yesterday) = yesterday(); // if the Component is already assigned, set its VALIDTO date update AMA_COMPSYSTEM set VALIDTO = $(yesterday), USERCHG = $(USERCHG), DATCHG = $(DATCHG) where COMPONENT_ID = $(componentid) and VALIDTO > $(today); delete FROM AMA_COMPSYSTEM where COMPONENT_ID = $(componentid) and VALIDTO < VALIDFROM; // generate a new id using AMT_HIGHESTKEY $(relationid) = newid('ama_compsystem', 'COMPSYSTEM_ID'); $(usumaxdate) = todate(' '); insert into AMA_COMPSYSTEM (COMPSYSTEM_ID, SYSTEM_ID, COMPONENT_ID, VALIDFROM, VALIDTO, CLIENT, USERCRE, DATCRE, USERCHG, DATCHG) values ($(relationid), $(../systemid), $(componentid), $(today), $(usumaxdate), $(client), $(USERCRE), $(DATCRE), $(USERCHG), $(DATCHG)); end Stand Seite 250 von 470 Version 4.4

251 Database BLOB Reader Wird verwendet, um BLOB Daten aus einer Datenbank zu lesen. Um einen Database BLOB Reader Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Database BLOB Reader Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [Database BLOB Reader] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 251 von 470 Version 4.4

252 Abbildung Database BLOB Reader Channel Stand Seite 252 von 470 Version 4.4

253 Database Outbound Wird verwendet, um SQL-Statements direkt auf einer Datenbank auszuführen und/oder Messages mit Hilfe von Datenbankselects zu erzeugen. Um einen Database Outbound Channel zu verwenden, gehen Sie wie folgt vor: 6. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 7. Wählen Sie den Eintrag [create channel]. 8. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Database Outbound Channel Select channel type 9. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [Database Outbound] aus und klicken Sie auf [finish]. 10. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 253 von 470 Version 4.4

254 Variablen, welche an den Channel übergeben bzw. vom Channel zurückgeliefert werden Environment Entry für die Database- Connection. Orchestra SQL Skriptsprach-Feld Abbildung Database Outbound Channel Hinweis: Benötigen Sie Informationen über Environment Entries, so lesen Sie im Kapitel 3.6 Environment Entries. Für Informationen über Mappings lesen Sie Kapitel Message Mappings Stand Seite 254 von 470 Version 4.4

255 Skriptsprache des Database outbound channels If-Anweisung Statement if <ausdruck> then <statements> end Beispiel if intval == 1 then System.out.println( intval ); end Statement if <ausdruck> then <statements> else <statements> end Beispiel if intval == 1 then System.out.println( intval ); else System.out.println( intval ); end while-anweisung Statement while ( <ausdruck> ) <statements> end Beispiel while ( intval > 1 ) System.out.println( intval ); intval = intval -1; end Stand Seite 255 von 470 Version 4.4

256 Einfache SQL-Anweisung Neben den Standard-Java-Ausdrücken stellen auch SQL-Anweisungen gültige Statements dar. D.h. in den Skript-Code dürfen direkt SQL-Befehle mit integriert werden. Folgende Anweisungen werden unterstützt: insert update delete create drop Beispiel: if intval == 1 then delete from table where field = 1; end Sollen an ein Statement Parameter übergeben werden, bietet der Channel folgenden Mechanismus an: <sql-anweisung> ":(" <Ausdruck> ")" Das obige Beispiel erweitert um einen Parameter lautet dann wie folgt: if intval == 1 then end delete from table where field = :( intval ); Als Parameter können neben einfachen Variablen auch ganze Ausdrücke übergeben werden. if intval == 1 then end delete from table where field = :( intval + 1 ); Stand Seite 256 von 470 Version 4.4

257 Auslesen von Nachrichten Neben der Modifikation von Tabelleninhalten bietet der Channel auch die Möglichkeit Messages aus einer Datenbank auszulesen. Hierfür steht folgendes Kommando zur Verfügung: <message variable> = "create" "message" <name> "in" "namespace" <namespace> "from" { } select into <NAME>: <projektonsliste> from <tabelle(n)>; MSG = create message "DEMO" in namespace "urn:emds:db" { } select into DUAL: sysdate from dual; Darüber hinaus bietet der Channel die Möglichkeit, hierarchische Strukturen über verschachtelte Select-Anweisungen auszulesen. Das nachfolgende Beispiel demonstriert diese Möglichkeit: Hierbei wird für jede Zeile des Parents das angegebene Select-Statement des Kindes ausgeführt. MSG = create message "DEMO" in namespace "urn:emds:db" { select into DUAL: sysdate from dual { select into DUALCHILD: sysdate from dual; } } Wie bereits bei den einfachen Kommandos demonstriert können auch an die Select- Anweisungen Parameter übergeben werden. Dadurch ist es möglich genau einen Datensatz auszulesen. MSG = create message "DEMO" in namespace "urn:emds:db" { select into PARENT: * from PARENT where P_ID = :( EXT_ID ); } Stand Seite 257 von 470 Version 4.4

258 Soll bei einem mehrstufigen Select die Auswahl der Kind-Sätze über einen Schlüssel mit dem Parent verknüpft werden, bietet Orchestra die Möglichkeit eines Joins. Dieser wird wie im nachfolgenden Beispiel gezeigt definiert: Das Argument des JOIN- Operators ist der Name einer Spalte des Parent-Selects: MSG = create message "DEMO" in namespace "urn:emds:db" { select into PARENT: * from PARENT { Select * from child where P_ID = :Join(ID); } } Für die Anweisung create message existieren noch weitere Variationen. Dies sind: create temporary message Erzeugt eine Nachricht, welche nur innerhalb der aktuellen Skriptausführung gültig ist. Nach der Ausführung wird die Nachricht verworfen. create external message Erzeugte eine Nachricht, welche erst beim Zugriff aus der Datenbank gelesen wird. D.h. die Nachrichteninhalte verbleiben komplett in der externen Datenbank. Erst beim Zugriff (z.b. bei einem Mapping) werden die Daten gelesen. Stand Seite 258 von 470 Version 4.4

259 Direkter Zugriff per ResultSet Um Daten direkt aus der Datenbank zu lesen bietet der Channel noch das Statement create resultset an. Dieses erzeugt als Ergebnis ein Objekt vom Typ java.sql.resultset. Auf diesem Objekttyp sind alle Operationen möglich, die im Java-Standard definiert sind. Über die methode next kann schrittweise über die Ergebnismenge iteriert werden. Die Verwendung dieser Anweisung wird nachfolgend demonstriert: <resultset variable> = "create" "resultset" <select anweisung>; /* *************************************************************** * Load data from database. Store the data into the internal message * *************************************************************** */ cursor = create resultset select * from TEST; /* **************************************************************** * Iterate over the resultset and print the content * ************************************************************** */ while( cursor.next() ) System.out.println( cursor.getstring( 1 ) ); System.out.println( cursor.getstring( 2 ) ); end cursor.close(); Um ein korrekte Freigabe der Ressourcen zu gewährleisten ist sicherzustellen, dass das ResultSet mit close (cursor.close()) geschlossen wird. Stand Seite 259 von 470 Version 4.4

260 Erweiterte Eigenschaften Alle Ausdrücke und Anweisungen welche innerhalb der Skripte verwendet werden können, basieren aktuell auf der Sprache Java. Als Alternative hierfür können auch XPath-Ausdrücke verwendet werden. Um einen Ausdruck im XPath-Format zu kennzeichnen, wird folgende Schreibweise verwendet: XPath( <XPath-Ausdruck> ) Das nachfolgende Beispiel verdeutlicht die Verwendung von XPath-Ausdrücken: /* ************************************************************************ * Load data from database. Store the data into the internal message * *********************************************************************** */ cursor = create resultset select * from TEST; /************************************************************************* * Iterate over the resultset and store the data to the table * target ************************************************************************ */ while( cursor.next() ) i = i + 1; a = XPath( $cursor/a ); b = XPath( $cursor/b ); System.out.println( ":" + i + ">>>" + a ); System.out.println( ":" + i + ">>>" + b ); end insert into target( a ) values( :XPath( $cursor/a ) ); cursor.close(); Stand Seite 260 von 470 Version 4.4

261 Nachfolgend ist ein weiterführendes Beispiel für die Verwendung von XPath- Ausdrücken dargestellt. In diesem Beispiel wird eine Nachricht traversiert und einzelne Element der Nachricht auf dem Bildschirm ausgegeben. MSG Message Eingabenachricht currentnode Node Aktueller Knoten PARENT über den iteriert wird detailnode Node Aktueller Knoten CHILD über den iteriert wird valparent String String-Variable. Speichert den Wert des ID-Feldes detailvalue String String-Variable. Speichert den Wert des ID-Feldes. /************************************************************************* * Iterate over the resultset and store the data to the table * parent_child ************************************************************************ */ for ( currentnode in XPath( $MSG/PARENT ) ) valparent = XPath( $currentnode/id/text() ); System.out.println( "[" + valparent + "]" ); for( detailnode in XPath( $currentnode/child ) ) detailvalue = XPath( $detailnode/id/text() ); System.out.println( valparent + "/" + detailvalue ); end end insert into parent_child( name, vorname) values( :(valparent), :(detailvalue ) ); Stand Seite 261 von 470 Version 4.4

262 Folgende Ausgabe wird erzeugt, wenn man dieses Skript auf die nachfolgend dargestellte Eingabenachricht anwendet: Beispiel-Nachricht: <DATA> <PARENT> <ID>PA1</ID> <CHILD> <ID>C1.1</ID> </CHILD> <CHILD> <ID>C2.1</ID> </CHILD> </PARENT> <PARENT> <ID>PA2</ID> <CHILD> <ID>C1.2</ID> </CHILD> <CHILD> <ID>C2.2</ID> </CHILD> </PARENT> </DATA> Ausgabe: [PA1] PA1/C1.1 PA1/C2.1 [PA2] PA2/C1.2 PA2/C2.2 Stand Seite 262 von 470 Version 4.4

263 In diesem Beispiel wurde die Verwendung der Iterations-Anweisung demonstriert. Die Syntax hierfür lautet wie folgt: for( <node-variable> "in" <nodelist> ) <statement(s)> end Stand Seite 263 von 470 Version 4.4

264 Database Reader Der Database Reader Channel wird verwendet um Datensätze aus einer Hierarchie von Datenbanktabellen zu lesen (ähnlich wie Database Inbound). Der Channel liefert eine Message als Wert. Die Struktur dieser Message spiegelt die Struktur der Daten in der Datenbank. Um einen Database Reader Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Database Reader Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [Database Target] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 264 von 470 Version 4.4

265 Variablen, welche an den Channel übergeben bzw. vom Channel zurückgeliefert werden Environment Entry für die Database- Connection. Auswahl der erwarteten Nachrichtenstruktur Zusätzliche SQL- WHERE Statements Abbildung Database Reader Channel Fremdschlüssel Beziehungen für Untergeordnete Sätze Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6. Für Informationen über Message Types lesen Sie Kapitel 3.2 Message Types. Stand Seite 265 von 470 Version 4.4

266 Sender Wird verwendet um s an einen Mailserver zu versenden. Um einen Sender Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Sender Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [ Sender] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 266 von 470 Version 4.4

267 Auswahl des Benutzers für die Server Anmeldung. User muss zuvor bei den security settings als credential angelegt werden Environment Entry für den Mailserver. Simple = body wird manuell erstellt Complex: = body besteht aus einer Message MIME Type des Body Absender Empfänger Empfänger einer Kopie Betreff MIME Type des Anhangs Abbildung Sender Channel Select channel type Hinweis: Hinweis: Es können hier auch Variablen verwendet werden. Diese können dann von außen an den Channel übergeben werden. Dazu geben Sie einfach in das Feld für welches die Variable verwendet werden soll $(Variablename) ein. Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer. Nähere Informationen über den Deserializer erhalten Sie im Kapitel Deserializer. Stand Seite 267 von 470 Version 4.4

268 External Command Wird verwendet um externe Programme aufzurufen bzw. zu starten. An das aufgerufene Programm können Daten über seinen Standard-Input-Kanal übergeben werden; die Daten, welche das aufgerufene Programm in seinen Standard- Output- bzw. seinen Standard-Error-Kanal schreibt, können gelesen und von Orchestra weiterverwendet werden. Um einen External Command Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung External Command Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [External Command] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 268 von 470 Version 4.4

269 Variablen, welche an den Channel übergeben bzw. vom Channel zurückgeliefert werden Environment Entry für den Folderpath Name des ausführbaren Programms bzw. Commands Parameter die an das externe Programm übergeben werden sollen Abbildung External Command Channel Standard Eingabe. Kann verwendet werden um eine Nachricht über Standard input an das externe Programm zu übergeben. Standard-Output-Kanal. Wird verwendet um die Ausgabe des Programms als Orchestra-Nachricht einzulesen. Standard-Error-Kanal. Wird verwendet um die Fehlerausgabe des Programms als Orchestra- Nachricht einzulesen. Hinweis: Benötigen Sie Informationen über Environment Entries so lesen Sie im Kapitel 3.6 Environment Entries. Stand Seite 269 von 470 Version 4.4

270 In dem Feld Parameter kann mit Variablen gearbeitet werden. Zugriff auf unter Properties definierte Variablen erfolgt mit $(<variable>). Es besteht die Möglichkeit die Standard-Streams umzuleiten. Über stdin kann man dem aufgerufenen Programm (sofern es stdin ausliest) Daten übergeben. Dazu muss der Haken bei stdin gesetzt werden und die Variable MSG von den Request parameters entsprechend gefüllt werden. Da das aufgerufene Kommando hier einen Bytestream erwartet, wird ein Serializer benötigt, der die Message (Wert der Variablen MSG) in einen Bytestream verwandelt. Befüllt das aufgerufene Programm stdout oder stderr, können diese Streams aufgefangen und in Orchestra weiterverarbeitet werden. Da das aufgerufene Kommando hier eine Message erwartet, wird ein Serializer benötigt, der den Bytestream in eine Message umwandelt. Wird stdout ausgelesen so gibt es bei den Response parameters die Variable MSG, welche den Output des aufgerufenen Programms enthält. Wird stderr ausgelesen, wird das in der Variable ERRMSG aufgefangen. Über die Variable ExitCode kann der Status des Programm-Endes abgefragt werden. Dazu muss aber auch das aufgerufene Programm einen Returnwert liefern. Stand Seite 270 von 470 Version 4.4

271 Abbildung External Command Channel Der Aufruf dieses Skriptes soll als External Command aufgerufen werden: /opt/ /doany.sh test5 test6 "mit space" "<dynamischer text>" Das Skript (für Linux) sieht folgendermaßen aus: #!/bin/sh echo hallo! echo >> /temp/ /hallo1.txt Stand Seite 271 von 470 Version 4.4

272 Abbildung External Command Channel Der Pfad /opt/ / wird im Parameter Path als Environment Entry (ee_dircmd) hinterlegt. Das Feld Executable wird mit doany.sh gefüllt. Die Parameter werden in das Feld Parameter übernommen (wenn Leerzeichen vorkommen können, dann den Parameter in Anführungszeichen angeben!) test5 test6 "mit space" "<dynamischer text>" Der letzte Parameter im Aufruf ("<dynamischer text>") soll dem Kanal als Property übergeben werden. Deshalb wird eine Variable vom Typ string unter Properties hinzugefügt (var0). Der Zugriff auf die Variable im Feld Parameter passiert mit "$(var0)". Die Anführungszeichen sind notwendig wenn der übergebene String Leerzeichen enthalten kann. Beim Testen des Kanals wird der Variable var0 noch ein Test zugewiesen. Stand Seite 272 von 470 Version 4.4

273 Abbildung External Command Channel Mit dem Button [test] wird das konfigurierte Executable aufgerufen. Nachdem stdout und stderr aufgefangen werden sollen (entsprechende Haken sind gesetzt) wurden auch die Variablen MSG und ERRMSG gefüllt. Der ExitCode 0 bedeutet, dass das Skript erfolgreich ausgeführt wurde (dies ist aber vom ausgeführten Programm abhängig!). Das Skript doany.sh füllt die stdout durch die echo-anweisung mit "hallo!". Diesen Text findet man auch in der Variable MSG wieder. Stand Seite 273 von 470 Version 4.4

274 Abbildung External Command Channel Stand Seite 274 von 470 Version 4.4

275 FTP Channel Wird verwendet um FTP Commands auf einem (S)FTP(S) Server auszuführen. Um einen FTP Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung FTP Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [FTP Channel] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Achtung: Wenn Sie einen FTP Channel verwenden möchten, benötigen Sie zwingend eine Benutzer, mit welchen Sie die Zugriffsrechte auf den entsprechenden FTP-Server haben. Wie Sie Benutzer in Orchestra anlegen können, erfahren Sie in Kapitel 4.1 Credentials / User. Stand Seite 275 von 470 Version 4.4

276 Auswahl des Benutzers für die Server Anmeldung. User muss zuvor bei den security settings als credential angelegt werden Environment Entry für die FTP- Connection. Abbildung FTP Channel Variablen, welche an den Channel übergeben bzw. vom Channel zurückgeliefert werden Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer Stand Seite 276 von 470 Version 4.4

277 FTP Command einfügen Um ein FTP-Kommando in den FTP Channel aufzunehmen, gehen Sie wie folgt vor: 1. Öffnen Sie den FTP Channel, für welchen Sie ein FTP Command einfügen möchten. 2. Wählen Sie den Eintrag [add]. 3. Es erscheint der Dialog [Add new FTP Command]. Hier wählen Sie Ihr gewünschte Command aus. Anschließend klicken Sie auf [next]. Abbildung FTP Channel Add new FTP Command 4. Im folgenden Dialog müssen Sie nun Ihr ausgewähltes Command konfigurieren. Nach dem Sie Ihre Angaben gemacht haben, klicken Sie auf [finish]. Stand Seite 277 von 470 Version 4.4

278 FTP Commands Im FTP Channel stehen folgende Kommandos zur Verfügung: Tabelle 3-13 FTP Commands Command Change_EXT_UNIQUE GET MGET MKDIR MOVE MOVE_CHANGE_EXT PUT REMOVE RENAME RENAME_UNIQUE RMDIR Beschreibung Ändere die Dateiendung und stelle sicher, dass es ein eindeutiger Name ist (durch Anhängen einer Zahl an den Namen, z.b. File42.txt statt File.txt) Datei von einem FTP-Server einlesen mehrere Dateien anhand eines Filepatterns als MessageList vom FTP-Server lesen Erstelle Ordner auf einem FTP-Server Verschiebe eine Datei in einen anderen Ordner Verschiebe eine entfernte Datei zu einem anderen Ordner und stelle sicher das der Dateiname eindeutig ist (durch Anhängen einer Zahl an den Namen, z.b. File42.txt statt File.txt) Erstelle eine Datei auf einem FTP-Server Lösche eine Datei auf einem FTP-Server Benenne eine Datei auf einem FTP-Server um Benenne eine Datei auf einem FTP-Server um und stelle sicher das der Name eindeutig ist (durch Anhängen einer Zahl an den Namen, z.b. File42.txt statt File.txt) Lösche einen Ordner auf einem FTP-Server Stand Seite 278 von 470 Version 4.4

279 Stream-Filter im FTP Channel Im FTP Channel ist die Verwendung der Stream-Filter ebenfalls möglich, jedoch weicht hier die Vorgehensweise für das Verwenden der Stream-Filter von der Vorgehensweise in anderen Channels etwas ab. Die Stream-Filter sind für folgende FTP Commands möglich: GET MGET PUT Um einen Stream-Filter im FTP Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie den FTP Channel, für welchen Sie einen Stream-Filter einfügen möchten. 2. Wählen Sie den FTP Command für welchen Sie den Stream-Filter definieren möchten, und klicken Sie auf [Edit]. Abbildung FTP Channel Command Editieren 3. Es erscheint der Dialog [Edit FTP Command ]. Hier können Sie nun wie gewohnt die Stream-Filter konfigurieren. Abschließend klicken Sie auf [OK]. Abbildung FTP Channel Command Stream Filter Stand Seite 279 von 470 Version 4.4

280 File Reader Wird verwendet, um eine Message aus dem Inhalt einer bestimmten Datei zu erzeugen. Der genaue Dateiname wird diesem Channel als Inputparameter übergeben. Um einen File Reader Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung File Reader Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [File Reader] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 280 von 470 Version 4.4

281 Auswahl des Benutzers für die Server Anmeldung. (Optional) User muss zuvor bei den security settings als credential angelegt werden Kann Streams in Teilstreams aufsplitten Environment Entry für den Filepath Abbildung File Reader Channel Art des Lockfiles Kann über [ ] beliebig eingestellt werden MIME Type des Dateiinhaltes Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer Stand Seite 281 von 470 Version 4.4

282 File Outbound Wird verwendet um eine Message in eine bestimmte Zieldatei zu schreiben. Dies kann lokal bzw. remote geschehen. Es können verschiedene Serialisierer verwendet werden um das gewünschte Format zu erzeugen. Um einen File Outbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung File Outbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [File Outbound] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 282 von 470 Version 4.4

283 Environment Entry für den Filepath Verhalten des Channels: - Datei kann erzeugt oder überschrieben werden - Dateiinhalt kann an existierende angehängt werden - Es kann ein Fehler erzeugt werden wenn die Datei vorhanden ist Endung der Datei im aktuellen Zugriff Auswahl des Benutzers für die Server Anmeldung. (Optional) User muss zuvor bei den security settings als credential angelegt werden Im Appendmodus kann er hier Zeichenfolge angegeben werden, die die einzelnen Nachrichten in der Zieldatei separiert. Abbildung File Outbound Channel Die Quellnachricht wird vor der Ausgabe durch das Mapping transformiert und das Ergebnis mittels des Serializers in die Datei geschrieben. Dies kann bei sehr großen Nachrichten, abhängig vom Deserializer, Effizenzvorteile bieten. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer Stand Seite 283 von 470 Version 4.4

284 HTTP.General.Output Wird verwendet um die verschiedenen HTTP-Requests abzusetzen mit allen verfügbaren HTTP-Methoden. Um einen http.general Outbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung HTTP General Outbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [http.general.output] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer Stand Seite 284 von 470 Version 4.4

285 Environment Entrie Autorisierungseinstellung Abbildung HTTP General Outbound Channel Stand Seite 285 von 470 Version 4.4

286 HTTP Outbound Wird verwendet um HTTP Requests (GET/POST) an eine URL abzusetzen. Um einen HTTP Request Outbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung HTTP Outbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [HTTP.Outbound] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer Stand Seite 286 von 470 Version 4.4

287 Übertragungsmethode GET: der HTTP Request wird über HTTP GET übertragen (query string) POST: der HTTP Request wird über HTTP POST übertragen (body) http-authentifizierung: - Basic = User/Password - Digest = User/Password - Certificate authentication = Authentifizierung des Clients über ein Zertifikat (X509) Environment Entry für die Service-URL Auswahl der Message Types der Request Message Auswahl der Message Types der Response Message Abbildung HTTP Outbound Channel Auswahl des Benutzers für die Server Anmeldung. (Optional) User muss zuvor bei den security settings als credential angelegt werden Zusätzliche Parameter für den http Aufruf Stand Seite 287 von 470 Version 4.4

288 HTTP Post Message Wird verwendet um HTTP Requests (POST) an eine URL abzusetzen. Um einen http.general Outbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung HTTP Post Message Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [HTTP Post Message] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Benötigen Sie Informationen über Environment Entries so lesen Sie Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer Stand Seite 288 von 470 Version 4.4

289 Abbildung HTTP Post Message Channel Stand Seite 289 von 470 Version 4.4

290 Java Outbound Wird verwendet um Java zur internen Verarbeitung zu nutzen. Damit kann ein Skript in Java definiert werden, das durch den Channel ausgeführt wird. Das Skript kann auf ein Java-Archiv (Jar) zugreifen, das als Szenario-Element (External Archive) importiert worden ist. Um einen Java Outbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Java Outbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [Java Outbound] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis : Benötigen Sie Information über die Verwendung von Variablen in einem Channel, so lesen Sie im Kapitel Verwenden von Variablen Näheres zur Serializern erfahren Sie in Kapitel Serializer und für Informationen über Deserializer lesen Sie Kapitel Deserializer. Stand Seite 290 von 470 Version 4.4

291 Variablen, welche an den Channel übergeben bzw. vom Channel zurückgeliefert werden Archives & Import Declarations: Import Anweisungen um die im Quelltext verwendeten Klassen bzw. Packages zu importieren Eingabe des Quelltexts Abbildung Java Outbound Channel Stand Seite 291 von 470 Version 4.4

292 LDAP Reader Wird verwendet um Daten aus einem LDAP-Verzeichnis (Lightweight Directory Access Protocol) zu lesen. Um einen LDAP Reader Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung LDAP Reader Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [LDAP Reader] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Benötigen Sie Informaionen über Environment Entries so lesen Sie im Kapitel 3.6 Environment Entries. Stand Seite 292 von 470 Version 4.4

293 Variablen, welche an den Channel übergeben bzw. vom Channel zurückgeliefert werden Auswahl des Benutzers für die Server Anmeldung. User muss zuvor bei den security settings als credential angelegt werden Environment Entry für den LDAP Server Anzahl der Sätze die zurückgegeben werden follow, ignore oder throw LDAP Einstiegspunkt Weiterverfolgung von distinguished names. Verfügbaren LDAP Objektklassen und die dazugehörigen Attribute Hierarchie von Abfragen aus deren Ergebnis die Message ensteht. Subknoten durchsuchen Abbildung LDAP Reader Channel Aktuell ausgewähles LDAP Objekt Abfrage Abfragen mit begrenzter Anzahl von Sätzen pro Query Auswahl des Attributes um die gelieferten DNs (distinguished names) aufzulösen LDAP-Objekt welches vom ref attribute refrenziert wird Stand Seite 293 von 470 Version 4.4

294 LDAP Writer Wird verwendet um Objekte in ein LDAP Verzeichnis zu schreiben bzw. diese zu ändern. Um einen LDAP Reader Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung LDAP Writer Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [LDAP Writer] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 294 von 470 Version 4.4

295 Auswahl des Benutzers für die Server Anmeldung. User muss zuvor bei den security settings als credential angelegt werden Environment Entry für den LDAP Server LDAP Einstiegs punkt Auswahl der Message Types der Request Message Abbildung LDAP Writer Channel Hierarchie der Objektklassen Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Stand Seite 295 von 470 Version 4.4

296 MLLP Outbound Channel Der MLLP.Outbound Channel ist ein Outbound Channel für das Mini Lower Level Protocol das im Rahmen des Austausches von HL7-Nachrichten verwendet wird. Er dient zum Versenden von HL7-Nachrichten über ein Netzwerk. Um einen MLLP Outbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung MLLP Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [MLLP Outbound] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 296 von 470 Version 4.4

297 Synchron oder Asnychron Automatic Acknowledgement (MLLP-Version 2) oder Without Acknowledgement (MLLP- Version 1) Auswahl des Serializers der Request Message Auswahl des Deserializers der Response Message Abbildung MLLP Channel Temporary: Bei jedem Aufruf des Channels wird eine Verbindung aufgebaut. Durable: Die Verbindung bleibt zwischen den Aufrufen des Channels bestehen TCP-Connection zum Empfänger: Hostname (oder die IP-Adresse) und Port des Empfängers Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer Stand Seite 297 von 470 Version 4.4

298 Message Queuing Outbound Dieser Channel wird verwendet um Messages über eine Message oriented Middelware (MOM) zu übertragen. Hierzu verwendet Orchestra das Java-Standard-API JMS. Um einen Message Queuing Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Message Queuing Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [Message Queuing Outbound] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Stand Seite 298 von 470 Version 4.4

299 Publish/Subscribe: Registriert sich am Publisher Point to Point: Nur ein Empfänger Environment Entry für die JMS- Configuration definiert die Adresse des Servers. JMS Provider Benutzer Priorität der Nachricht Art der Übertragung Volatile: flüchtig (Speicher) Persistent: Persistent (Datenbank) Angabe des Timings JMS- Messagetyp Abbildung Message Queuing Channel Stand Seite 299 von 470 Version 4.4

300 JMS Messagetypen Der Channel generiert je nach JMS Messagetyp unterschiedliche Eingangsnachrichten: Tabelle 3-14 JMS Messagetypen Parameter TextMessage BytesMessage StreamMessage Beschreibung Abhängig vom verwendeten Deserializer wird eine Orchestra Message aus der eingehenden JMSMessage erzeugt. Abhängig vom verwendeten Deserializer wird eine Orchestra Message aus der eingehenden JMSMessage erzeugt. Aus der eingehenden JMSMessage wird eine Orchestra Message erzeugt die in einem Feld <value> den eingehenden Stream enthält. Erzeugt eine Orchestra Message die alle Key Value Paare der eingehenden JMSMessage enthält MapMessage <messagexyz> <propertyname1>value1</propertyname1> <propertyname2>value2</propertyname2> </messagexyz> ObjectMessage Für die eingehenden JMSMessage wird eine Orchestra Message ohne Inhalt erzeugt. Zusätzlich wird ein Eingangsobjekt vom Typ any erzeugt welches das eingehende Objekt beinhaltet (muss entsprechend gecastet werden um es zu verwenden) Stand Seite 300 von 470 Version 4.4

301 Multi File Reader Der Multi File Reader ist ein Outbound Channel, der es erlaubt mehrere Dateien auf einmal von einem Dateisystem zu lesen. Dient zum Lesen aller Dateien deren Namen einem bestimmten Muster entsprechen. Die Dateien werden als Messagelist in der Variablen MSGLIST zurückgeliefert. Um einen Multi File Reader Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Multi File Reader Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [Multi File Reader] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Stand Seite 301 von 470 Version 4.4

302 Environment Entry für den Filepath Auswahl des Benutzers für die Server Anmeldung. (Optional) User muss zuvor bei den security settings als credential angelegt werden Auswahl des Deserializers Auswahl des MIME-Typen Angabe des Filename Patterns Abbildung Multi File Reader Channel Hinweis: Im Name Pattern können auch Variablen angegeben werden. Wenn man dort z.b. $(prefix)*.* angibt, dann hat der Channel einen Input-Parameter prefix. Auch für Unterverzeichnisse kann man Variablen im Suchmuster angeben. Wenn man z.b. $(customerid)/$(year)/$(prefix)*.* angibt, dann hat der Channel drei Input- Parameter customerid, year und prefix. Stand Seite 302 von 470 Version 4.4

303 PGP Outbound Dieser Channel fungiert als Adapter zwischen Orchestra und dem Tool Pretty good privacy. D.h. über diesen Channel besteht die Möglichkeit folgende Funktionen auf Messages anzuwenden: Signieren Signieren im Klartext Signieren und Verschlüsseln Verschlüsseln Entschlüsseln PGP ist ein Werkzeug welches zum sicheren Austausch von Nachrichten verwendet wird. Hierzu stütz sich PGP auf ein Public-Key-Verschlüsselung ab. Die Verwaltung der öffentlichen und privaten Schlüssel erfolgt extern durch das Werkzeug PGP. Um einen PGP Outbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung PGP Outbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [PGP Outbound] aus und klicken Sie auf [finish]. Stand Seite 303 von 470 Version 4.4

304 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Technischer User mit dessen Identität Daten verschlüsselt/ signiert werden. User muss zuvor bei den security settings als credential angelegt werden Environment Entry für das Directory des Kommandozeilen Programs gpg Verzeichnis indem PGP seine Key- Ring-Dateien ablegt. Wird dieser Eintrag im Default belassen wird das Standard-PGP- Verzeichnis verwendet. Definiert welche PGP-Operation ausgeführt werden soll. Abbildung PGP Outbound Channel Auswahl des Serializers Auswahl des Deserializers Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Benötigen Sie Information über Serializer so lesen Sie im Kapitel Serializer Stand Seite 304 von 470 Version 4.4

305 SAP Outbound Dieser Channel wird verwendet um sog. Remote-Function-Calls (RFC) zu einem SAP- System zu senden. Über den Channel sind folgende Übertragungswege (Parameter MODE) möglich: Synchroner RFC srfc Der synchrone RFC (srfc) führt einen Funktionsaufruf direkt aus und wartet auf die Rückantwort des gerufenen Funktionsbausteins Asynchroner RFC( Transactional RFC ) trfc Asynchrone Kommunikationsmethode, die den gerufenen Funktionsbaustein im RFC-Server genau einmal ausführt (Service-Eigenschaft: Exactly Once) Queued RFC qrfc Mit dem queued RFC (qrfc) ist eine festgelegte Verarbeitungsreihenfolge realisierbar Um einen SAP Outbound Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung SAP Outbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [SAP Outbound] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 305 von 470 Version 4.4

306 Environment Entry für die SAP-Client Connection Aufrufmodus: Synchron, Asynchron oder T-RFC Abbildung SAP Outbound Channel Datentyp, der den Funktionsbaustein und seine Parameter definiert oder dynamisch. Werden die Parameter Request und Response message auf Dynamically belassen erkennt der Channel anhand der übergebenen Nachricht welcher Funktionsbaustein aufgerufen werden soll. Andernfalls können nur solche Aufrufe mit dem definierten Messagetyp abgesetzt werden. Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Nähere Informationen über den Message Types erhalten Sie im Kapitel 3.2 Message Types. Stand Seite 306 von 470 Version 4.4

307 Valuemation Workflow Outbound Direkter Aufruf von Valuemation Workflows. Um einen Valuemation Workflow Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Valuemation Workflow Outbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [VM Workflow Outbound] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 307 von 470 Version 4.4

308 Name des aufzurufenden Valuemations workflows Environment Entry für den Server Broker Technischer User welcher für das Login von Valuemation verwendet wird. User muss zuvor bei den security settings als credential angelegt werden Valuemation Mandat Abbildung Valuemation Workflow Outbound Channel Variablen, welche an den Channel übergeben bzw. vom Channel zurückgeliefert werden Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Benötigen Sie Information über die Verwendung von Variablen in einem Channel, so lesen Sie im Kapitel Verwenden von Variablen Stand Seite 308 von 470 Version 4.4

309 Table Mapper Wird verwendet um Mappings auf einer Datenbank durchzuführen. Als Quelle kann Datenbank, Message oder LDAP verwendet werden. Um einen Table Mapper Channel zu verwenden, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Channels über einen Rechtsklick auf Channels. 2. Wählen Sie den Eintrag [create channel]. 3. Es erscheint der Dialog [create new channel]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Abbildung Table Mapper Outbound Channel Select channel type 4. Nun bekommen Sie eine Auflistung aller möglichen Channel-Typen. Wählen Sie im Tab [Outbound] Ihren benötigten Typ [Table Mapper] aus und klicken Sie auf [finish]. 5. Der Orchestra Designer legt nun Ihren neuen Channel an und öffnet diesen in der Working Area. Hier können Sie den angelegten Channel konfigurieren. Stand Seite 309 von 470 Version 4.4

310 Environment Entry für die Datenbankverbindung Konfiguration der Datenquelle Angabe des Loglevels für den Table Mapper Variablen, welche an den Channel übergeben bzw. vom Channel zurückgeliefert werden Angabe wie mit externen LDAP Links zu verfahren ist Abbildung Table Mapper Outbound Channel Select channel type - MCF Files um das eigentliche Mapping durchzuführen - SQL Files um SQL Statement einzubinden - Command File zur Steuerung des Ablaufs Hinweis: Benötigen Sie Information über Environment Entries so lesen Sie im Kapitel 3.6 Benötigen Sie Information über die Verwendung von Variablen in einem Channel, so lesen Sie im Kapitel Verwenden von Variablen Stand Seite 310 von 470 Version 4.4

311 Data Source Konfiguration Um für einen Table Mapper die Data Source Konfiguration vorzunehmen, gehen Sie wie folgt vor: 1. Öffnen Sie den Table Mapper, für welchen Sie die Data Source konfigurieren möchten im Bereich Scenario Elements > Channels. 2. Klicken Sie auf die Schaltfläche [ ] hinter dem Eintrag Data Source]. 3. Es erscheint der Dialog [select source connections]. Hier geben Sie Ihrem Channel eine treffenden Namen und ggf. eine Beschreibung. Anschließend klicken Sie auf [next]. Environment Entry für die Datenbankverbindung Environment Entry für die LDAPverbindung User welcher für den LDAP- Login verwendet wird. User muss zuvor bei den security settings als credential angelegt werden Auswahl des Source Message Types Source Namespaces Abbildung Table Mapper Outbound Channel Data Source Konfiguration 4. Nun bekommen Sie Ihre Konfiguration bearbeiten. 5. Nachdem Sie Ihre Konfiguration vorgenommen haben, klicken Sie auf [OK]. Stand Seite 311 von 470 Version 4.4

312 Table Mapper - Mapping Ein Mapping für den Table Mapper Channel wird in einer Konfigurationsdatei beschrieben. Diese Dateien werden in der Regel mit der Endung mcf (Mapping Control File) versehen. Beispiel für eine MCF-Datei: Nachfolgend als Beispiel die Datei AMA_COMPONENT.MCF die die Abbildung der Daten von der Tabelle KOMP in die Tabelle AMA_COMPONENT beschreibt. # Mapping von Komponenten.SOURCETABLE = KOMP.DESTTABLE = AMA_COMPONENT.KEYCOLUMNS = R_IDENT.PREFETCH = COMPONENT_ID, R_IDENT = COPY,IDENT COMPONENT_ID = AUTO CLIENT = INIT,'01' IDENT = COPY,IDENT TYPE_ID = YERQ,AMA_TYPE,TYPE_ID,R_TYP = TYP,R_HERST = HERST STATUS = CASE,STATUS,ACT=VH,NIS=NB,OFF=AH,RET=ST,* TECH_STATUS = COPY,TZUST SERIAL_NO = COPY,SERIEN_NR FIXED_ASSET_ID = COPY,INVENTAR WARRANTY_DATE = COPY,GARANTBIS SEGMENT_ID = COPY,SEGMENT_ID ACQUISITIONMODE = COPY,ACQUISITIONMODE DATCRE = CPTS,DATCRE DATCHG = CPTS,DATCHG USERCRE = COPY,USERCRE USERCHG = INIT,'MIG' MCFs können Kommentare enthalten. Dies sind Zeilen, die mit einem Doppelkreuz (#) eingeleitet werden. MCFs bestehen aus einem Kopf und einer Folge von Spaltenabbildungen. Der Kopf beschreibt die Quelle und die Zieltabelle. Als Datenquelle kann eine Datenbanktabelle oder -view oder eine LDAP-Abfrage dienen. Stand Seite 312 von 470 Version 4.4

313 Der Kopf der Tabelle besteht aus einer Folge von Schlüssel-Wert Paaren, wobei der Schlüssel immer mit einem Punkt beginnt. In unserer Beispieldatei besteht er aus den folgenden Zeilen:.SOURCETABLE = KOMP.DESTTABLE = AMA_COMPONENT.KEYCOLUMNS = R_IDENT Der Name der Quell- und der Zieltabelle stehen immer am Anfang. Weiter muss angegeben werden, welche Spalten in der Zieltabelle einen Satz eindeutig identifizieren. Hinweis: Im Default-Modus schreibt der Table Mapper die Datensätze nicht einfach per insert in die Zieltabelle, sondern versucht zuerst, einen bestehenden Satz per update zu ändern. Erst wenn kein Satz im Ziel vorhanden ist wird der Satz per insert eingefügt. Um ein update durchzuführen, muss bekannt sein, wie ein Satz im Ziel identifiziert wird; zu diesem Zweck muss in einer KEYCOLUMNS-Zeile eine oder mehrere Schlüsselspalten angegeben werden. Nach dem Kopf folgt in einer MCF eine Liste von Spaltenabbildungen. Jede Zeile entspricht dabei dem Muster '<Zielspalte> = <Kommando>,<Parameter>,...' In unserer Beispieldatei sind hier unter anderem folgenden Zeilen vorhanden: COMPONENT_ID = AUTO CLIENT = INIT,'01' R_IDENT = COPY,IDENT COMPONENT_ID = AUTO legt fest, dass die Zielspalte COMPONENT_ID mit einem eindeutigen Wert versehen werden soll. Dieser Wert wird aus der Spalte HIGHKEY der Tabelle AMT_HIGHESTKEY in der Zieldatenbank entnommen; danach wird der Wert dieser Spalte erhöht. CLIENT = INIT,'01' legt fest, dass für jeden neue Satz in der Zieltabelle die Spalte CLIENT mit dem Wert 01 initialisiert werden soll. R_IDENT = COPY,IDENT schließlich definiert, dass die Zielspalte R_IDENT mit dem Wert aus der Quellspalte IDENT befüllt werden soll. Stand Seite 313 von 470 Version 4.4

314 Neben diesen relativ einfachen Kommandos gibt es kompliziertere, z.b.: STATUS = CASE,STATUS,ACT=VH,NIS=NB,OFF=AH,RET=ST,* TYPE_ID = YERQ,AMA_TYPE,TYPE_ID,R_TYP = TYP,R_HERST = HERST Das CASE-Kommando dient zum Umschlüsseln von Werten aus einer Quellspalte in zugeordnete Werte im Ziel. Das Beispiel definiert, dass in die Zielspalte STATUS der Wert ACT geschrieben werden soll, wenn in der Quellspalte STATUS der Wert VH gefunden wird, der Wert NIS, wenn in der Quelle NB gefunden wird, usw. Der abschließende Stern bewirkt, dass alle anderen Werte unverändert kopiert werden. Fehlte der Stern, dann würden andere Werte ignoriert und stattdessen nichts (NULL) ins Ziel geschrieben werden. Die Übertragung von Werten von der Quelle ins Ziel kann mit Hilfe von Testausdrücken gesteuert werden: FARBE = COND, ATTR = 'COLOUR', VALUE LEISTUNG = COND, ATTR like 'PO.*', VALUE LENGTH = COND, ATTR between 'SIZ1' and 'SIZ4', VALUE Das COND-Kommando dient zur bedingten Übertragung von Werten aus einer Quellspalte in eine Zielspalte. Das obige Beispiel zeigt alle drei möglichen Formen dieses Kommandos. Eine Bedingung kann den Wert einer Testspalte auf drei verschiedene Weisen prüfen: o durch Vergleich mit einem Stringwert o durch Vergleich mit einem Muster. Das Muster wird als regulärer Ausdruck angegeben. o durch lexikalischen Vergleich mit einem Wertebereich. Der Wert der Spalte muss größer oder gleich der unteren Grenze und kleiner oder gleich der oberen Grenze sein. Stand Seite 314 von 470 Version 4.4

315 Neben Datenbankfunktionen können auch statische Java-Methoden aufgerufen werden: ILEISTUNG = COND, ATTR = 'PO.*', java.lang.integer.parseint(value) DZULASSUNG = JEXPR, com.emds.format.parsedate(zulassung, 'dd.mm.yyyy') Das Beispiel zeigt, dass man Java-Methoden sowohl durch Verwendung des Kommandos JEXPR als auch innerhalb eines COND-Kommandos aufrufen kann. Die Methoden müssen public static definiert sein. Sie müssen mit dem vollständigen Klassennamen angegeben werden. Als Argument eines Methodenaufrufes sind Spaltennamen, String- und Integer- Literale erlaubt. Hinweis: Auch weitere Methodenaufrufe können als Argument angegeben werden, d.h. Methodenaufrufe können geschachtelt sein. Die Werte aller Argumente müssen einen der Typen String, Integer oder Object haben. Man beachte, dass String-Literale, anders als in Java, durch einfache Anführungszeichen angegeben werden. TYPE_ID = YERQ,AMA_TYPE,TYPE_ID,R_TYP = TYP,R_HERST = HERST Das YERQ-Kommando definiert eine Lookup-Operation auf einer Zieltabelle. Die Beispielzeile legt fest, dass in die Zielspalte TYPE_ID der Wert der Spalte TYPE_ID aus derjenigen Zeile der Tabelle AMA_TYPE geschrieben werden soll, für die die Spalte R_TYP den Wert aus der Quellspalte TYP und die Spalte R_HERST den Wert aus der Quellspalte HERST hat. Angenommen die aktuelle Zeile der Quelltabelle KOMP hätte die Werte VISIO STANDARD und MICROSOFT in den Spalten TYP und HERST. Dann würde das obige YERQ-Kommando folgende SQL-Abfrage auf der Tabelle AMA_COMPONENT ausführen: select TYPE_ID from AMA_TYPE where R_TYP = 'VISIO STANDARD' and R_HERST = 'MICROSOFT' Stand Seite 315 von 470 Version 4.4

316 Statt einer Quellspalte kann auch ein Literal angegeben werden, z.b. könnte obiges Kommando auch lauten: TYPE_ID = YERQ, AMA_TYPE, TYPE_ID, R_TYP = TYP, R_HERST = 'MICROSOFT' Verschiedene Arten der Datenübertragung Normalerweise versucht der Table Mapper zuerst ein Update auf dem Zielsatz. Findet der UPDATE keinen Satz, so wird anschließend ein INSERT durchgeführt. Dieses Verhalten kann mit dem Parameter.MODE angepasste werden; folgende Werte sind möglich: updateonly: Auf dem Ziel wird ein UPDATE durchgeführt. insertonly: Im Ziel wird ein INSERT durchgeführt. insertnew: Zuerst wird anhand des Schlüssels geprüft, ob der Satz im Ziel existiert. Wenn nicht, wird ein INSERT durchgeführt. delete: Der Satz wird im Ziel gelöscht. Stand Seite 316 von 470 Version 4.4

317 Referenz für die Beschreibungsdateien für Table Mappings Nachfolgend werden in tabellarischer Form alle Kommandos beschrieben, die in MCF- Dateien erlaubt sind Kopfzeilen In den Kopfzeilen werden grundlegende Eigenschaften wie Datenquelle, Datenziel oder Übertragungsmodus beschrieben. Einige Kommandos sind erforderlich. Tabelle 3-15 MCF Table Mapping - Kopfzeilen Schlüssel Beschreibung erforderlich.desttable Name der Zieltabelle ja.keycolumns.prefetch Schlüsselspalten auf der Zieltabelle; um einen Datensatz eindeutig zu identifizieren; wird zum update benötigt Lädt die Zuordnung Fachschlüssel -> ID in den Hauptspeicher; damit läuft ein lookup (YERQ und select) einer Tabelle auf diese Tabelle schneller. Achtung: Für eine Zieltabelle sind mehrere Mappings möglich, solange sie denselben Schlüssel verwenden; allerdings darf nur in einem davon.prefetch verwendet werden..mode Erlaubte Werte sind insertonly, insertnew, updateonly und delete. Hinter updateonly kann noch, durch Komma getrennt, ErrorIfNotFound oder WarningIfNotFound stehen. Dann werden die Schlüssel dieser Sätze mit dem entsprechenden Loglevel in die Logdatei geschrieben..loglevel.commitcount Erlaubt Werte von 1 bis 9. Default ist der Wert des Prozessparameters gleichen Namens. Je niedriger der Loglevel, desto detaillierter ist die Ausgabe. Mehr dazu im folgenden Kapitel. Anzahl der Sätze nach denen in der Zieldatenbank ein COMMIT ausgeführt wird. Default ist der Wert des Prozessparameters COMMIT.COUNT. Mehr dazu im folgenden Kapitel. außer beim Modus insertonly nein nein nein nein Stand Seite 317 von 470 Version 4.4

318 .MAXERRORS.SOURCETABLE.ORDERBY.SOURCEFILTER.SOURCECONTE XT.SEARCHSCOPE.COUNTLIMIT.DEREF Anzahl der Fehler die der USUMapper für dieses Mapping ignoriert bis der Prozess abbricht. Default ist der Wert des Prozessparameters MAX.ERROR.COUNT. Mehr dazu im folgenden Kapitel. Name der Quelltabelle. Ist nur relevant, wenn die Quelle eine Datenbank ist. Optionale Liste von Spaltennamen für die Sortierung der Quelldaten. Hinter den Spaltennamen kann optional ASC oder DESC stehen. Ist nur erlaubt, wenn die Quelle eine Datenbank ist. Filter für die Quelldaten. Ist die Quelle eine Datenbank, dann entspricht dies einer WHERE- Bedingung der entsprechenden SQL-Anfrage. Ist die Quelle ein LDAP-Server, dann muss der Filter in der Syntax von RFC 2254 The String Representation of LDAP Search Filters angegeben werden. Kontext für die LDAP-Quelle. Suchbereich für LDAP; Default ist flat. Erlaubt sind flat, deep und object Maximalzahl der LDAP-Einträge die ausgelesen werden. Wert kann true oder false sein. Legt fest ob LDAP- Aliases gefolgt werden soll. nein Bei Datenbanke n nein nein Bei LDAP nein nein nein Stand Seite 318 von 470 Version 4.4

319 Spaltenkommandos Für Jede Zielspalte muss angegeben werden, wie der Wert ermittelt wird; dies wird den Spaltenkommandos festgelegt. Tabelle 3-16 MCF Table Mapping - Spaltenkommandos Kommando INIT,<literal> SET,<literal> AUTO AUTO,<sequence name> NEWID, <client> COPY,<column> CPTS,<column> DBEXPR, <DB- Ausdruck> JEXPR, <Java- Ausdruck> Beschreibung Ein konstanter Wert wird in die Zielspalte geschrieben. Nur für Inserts. Statt einem Literal ist hier auch ein Variablenname aus dem Flow-Kontext erlaubt. Ein konstanter Wert wird in die Zielspalte geschrieben. Für Insertund Update-Operationen. Statt einem Literal ist hier auch ein Variablenname aus dem Flow-Kontext erlaubt. Bei Insert wird die Zielspalte mit einem neuen Wert aus der Tabelle AMT_HIGHESTKEY befüllen. Der Wert in AMT_HIGHESTKEY wird erhöht. Bei Insert wird die Zielspalte mit einem neuen Wert aus der Oracle- Sequence befüllt. Die Sequence wird im Zielschema erwartet. Bei Insert wird ein Fachschlüssel laut der Beschreibung in AMT_KEYGEN generieren und in die Zielspalte geschrieben. Es wird ein Wertebereich in AMT_KEYGENRES reserviert. Die Zielspalte wird mit dem Wert aus der Quellspalte befüllt. Die Zielspalte wird mit dem Timestamp-Wert aus der Quellspalte befüllt Der Ausdruck wird auf der Quelldatenbank ausgewertet. Der Wert des Ausdruckes wird in die Zielspalte geschrieben. Im Gegensatz zur COPY-Anweisung wird hier nicht überprüft, ob die referenzierten Spalten auf der Quelle tatsächlich existieren. Der Ausdruck muss ein Java-Methodenaufruf sein. Die Methode muss public static definiert sein. Sie muss mit dem vollständigen Klassennamen angegeben werden. Als Argument sind Spaltennamen, String- und Integer-Literale, Variablenreferenzen und Java-Methodenaufrufe erlaubt. Integer-Variablen werden als 0$(name) angegeben, Stringvariablen als '$(name)'. Die Werte aller Argumente müssen einen der Typen String, Integer oder Object haben. Man beachte, dass String-Literale, anders als in Java, durch einfache Anführungszeichen angegeben werden. Stand Seite 319 von 470 Version 4.4

320 CASE, <column>, <new> <= <old>,... [, <default> *] COND, <testcol> like '<rexpr>', <ausdruck> COND, <tstcol> = '<val>', <ausdruck> COND, <testcol> between '<low>' and '<high>', <ausdruck > select <spalte> from [<schemaref>.] <tabelle> where <lcol> = <expr> and... YERQ,<tab>,<rcol >, <fcol> = <lcol>,... ENUM,<column> Die Parameter bestehen aus einer Liste von Wertepaaren. Wird in der Quellspalte ein Wert <old> gefunden, dann wird in die Zielspalte der zugehörige Wert <new> geschrieben. Am Ende der Liste kann ein Defaultwert vorhanden sein. Alle Werte, die nicht in der Liste vorhanden sind, werden durch diesen ersetzt. Steht statt des Defaultwertes ein Stern (*), dann wird der Werte der Quellspalte als Defaultwert verwendet. Fehlt der Defaultwert, dann wird nichts ins Ziel übertragen. Der Wert des Ausdrucks wird in die Zielspalte kopiert, wenn der Wert der Quellspalte <testcol> zu dem regulären Ausdruck <rexpr> passt. Der Ausdruck kann ein Literal, ein Spaltenname oder der Aufruf einer statischen Java-Methode sein. Der Wert des Ausdrucks wird in die Zielspalte kopiert, wenn der Wert der Quellspalte <testcol> gleich dem Wert <val> ist. Der Ausdruck kann ein Literal, ein Spaltenname oder der Aufruf einer statischen Java-Methode sein. Der Wert des Ausdrucks wird in die Zielspalte kopiert, wenn der Stringwert der Quellspalte <testcol> lexikalisch größer oder gleich <low> und kleiner oder gleich <high> ist. Der Ausdruck kann ein Literal, ein Spaltenname oder der Aufruf einer statischen Java- Methode sein. Der Wert der Spalte spalte desjenigen Satzes aus der Lookup-Tabelle tabelle, der durch die angegebenen Werte identifiziert wird, wird in die Zielspalte geschrieben. <expr> kann ein Spaltenname der Quelltabelle, ein literaler Wert oder ein Variablenname des Flow-Kontextes sein. Vor tabelle kann $(SOURCESCHEMA) oder $(TARGETSCHEMA) stehen. Damit wird angegeben, ob die Tabelle im Ziel- oder im Quellschema selektiert wird. Fehlt schemaref, dann wird im Quellschema gesucht. Der Wert der Spalte rcol desjenigen Satzes aus der Lookup- Tabelle tab im Zielschema, der durch die angegebenen Werte identifiziert wird, wird in die Zielspalte geschrieben. <lcol> kann ein Spaltenname der Quelltabelle, ein literaler Wert oder ein Variablenname des Flow-Kontextes sein. Im Gegensatz zum select-kommando wird bei YERQ geprüft, ob die Spalten fcol existieren und ob für tab ein Mapping definiert ist, das bereits ausgeführt wurde. Dieses Kommando liefert die Folge aller Werte eines Attributes mit mehreren Werten (multivalued Attribute) einer LDAP-Quelle. Für jeden dieser Werte wird im Ziel ein Satz erzeugt. In einem Mapping ist nur ein ENUM-Kommando erlaubt. Stand Seite 320 von 470 Version 4.4

321 SPLIT,<column>,< del> INDEX Dieses Kommando dient zum Zerlegen eines sehr langen Quellwertes anhand eines Begrenzungszeichens oder Begrenzungstextes. Das Kommando liefert, ähnlich wie das Kommando ENUM, eine Folge der Teilstrings. Für jeden dieser Werte wird im Ziel ein Satz erzeugt. In einem Mapping ist genau ein SPLIT-Kommando erlaubt. Dieses Kommando ist nur im Zusammenhang mit einem ENUM oder SPLIT-Kommando erlaubt. Es zählt, beginnend ab 0, die Werte des zugehörigen ENUM- oder SPLIT-Kommandos durch SQL-Skripte Ein SQL-Skript enthält eine Folge von SQL-Befehlen, die mit der JDBC-Methode executeupdate des Java-Interfaces java.sql.preparedstatement ausgeführt werden können. Das sind laut Java-Dokumentation die Statements INSERT, UPDATE oder DELETE, oder SQL-Statements, die nichts zurückgeben, wie z.b. DDL-Statements. Ein SQL-Skript muss mit der Endung sql versehen sein. Jedes SQL-Skript enthält eine Folge von SQL-Befehlen, die durch Semikolon abgeschlossen werden. Innerhalb eines SQL-Befehls können ANSI-Zeilenkommentare enthalten sein. Sie beginnen mit zwei Minus-Zeichen und erstrecken sich bis zum Zeilenende. Zwischen den SQL-Befehlen sind auch mehrzeilige Kommentare im Stil von C erlaubt. Nachfolgend als Beispiel ein SQL-Skript das mehrere Dateien löscht: delete from dest.buchung; delete from dest.project; update dest.abteilung -- damit fk_abt_leiter nicht verletzt wird set leiter_id = null; delete from dest.person; delete from dest.abteilung; delete from dest.firma; Der Aufrufer des Skriptes gibt an, auf welchem Datenbankschema die SQL-Befehle ausgeführt werden. Siehe dazu die Beschreibung im nächsten Kapitel. Stand Seite 321 von 470 Version 4.4

322 Kommandodateien Eine Kommandodatei enthält in ihrer einfachsten Form eine Folge von Kommandos. Ein Kommando startet ein Mapping, welches in einer MCF-Datei beschrieben wird (TRANSFER-Kommando) oder führt eine SQL-Skriptdatei im Zielschema aus (EXECUTE-Kommando). Nachfolgend ein Beispiel für eine einfache Kommandodatei: # Zwischentabellen löschen execute on target delete_amx_ads.sql # Mappings: transfer AMX_ADS_S3GROUP.MCF transfer AMX_ADS_UGROUPMAP.MCF transfer AMX_ADS_S3USER.MCF In Kommandodateien sind Kommentare erlaubt. Zeilenkommentare werden mit einem Doppelkreuz (#) am Zeilenanfang gekennzeichnet. Auch ANSI-Zeilenkommentare sind erlaubt; sie beginnen mit zwei Minus-Zeichen (--) und erstrecken sich bis zum Zeilenende. Mehrzeilige Kommentare werden wie in der Programmiersprache C in /* */ geklammert. Es gibt verschiedene Kommandos: TRANSFER: erwartet den Namen einer MCF-Datei als Parameter EXECUTE: erwartet den Namen eines SQL-Skripts als Parameter. Die Skriptdatei muss die Endung.SQL haben! Nach execute kann man optional on target oder on source schreiben, um anzugeben, ob das Skript auf der Quelloder der Zieldatenbank auszuführen ist. SKIP: überspringt die Ausführung des Kommandos. Wenn man stattdessen die Zeile auskommentiert, und andere MCF-Dateien sich per YERQ-Kommando auf diese Datei beziehen, dann wird die Ausführung mit einer Fehlermeldung abgebrochen, weil die referenzierte Datei nicht bekannt ist. YERQ setzt nämlich voraus, dass die Daten der referenzierten Tabelle übertragen worden sind, bevor die Kommandos ausgeführt werden, damit keine Fremdschlüssel-Constraints verletzt werden. Darüber hinaus wird die Gültigkeit der Fremdschlüssel in YERQ -Kommandos mit den KEYCOLUMNs in der referenzierten Datei verglichen; auch dazu muss die referenzierte Datei bekannt sein. Stand Seite 322 von 470 Version 4.4

323 In obigem Beispiel wird während der Ausführung regelmäßig nach einer festen Anzahl von übertragenen Sätzen ein COMMIT ausgeführt. Dies wird durch den Parameter COMMIT.COUNT gesteuert; der Wert kann innerhalb einer MCF-Datei durch das Kopfkommando.COMMITCOUNT überschrieben werden. Will man die Daten in einer einzigen Transaktion übertragen, dann kann man die Kommandos durch begin end in einem Block klammern: begin # Zwischentabellen löschen execute delete_amx_ads.sql # Mappings: transfer AMX_ADS_S3GROUP.MCF transfer AMX_ADS_UGROUPMAP.MCF transfer AMX_ADS_S3USER.MCF end Das kann insbesondere dann sinnvoll sein, wenn die Kommandodatei vom Flow aufgerufen wird, und die Datenmenge durch eine Filterbedingung eingeschränkt wird. In einer MCF-Datei steht dann z.b. folgender Filter:.SOURCEFILTER = DOCNUM = '$(tid)' Der Flow muss dann einen Parameter tid übergeben und kann damit sicherstellen, dass nur Daten mit dieser Transaktions-ID übertragen werden. Zusätzlich kann ein Block auch mehrfach in einer Schleife ausgeführt werden, z.b.: # Schleife über alle Transaktionen loop select distinct TID, POS into tid, pos from source.invoice where state = 0 begin transfer Automobil.mcf execute on source marksourceastransfered.sql end commit after 1 records Nach dem Schlüsselwort loop muss ein select-statement kommen. Stand Seite 323 von 470 Version 4.4

324 Nach der Liste der Quellausdrücke folgt zwingend das Schlüsselwort into und eine Liste von Variablennamen, für jeden select-ausdruck einer. Sowohl das execute-statement als auch das Mapping können die Variablen als Parameter in der bekannten Dollar-Notation referenzieren. Auch das select-statement in der loop kann Parameter referenzieren, die ihm vom Flow übergeben werden. Achtung: Parameter mit String-Wert müssen in MCF-Dateien in einfache Anführungszeichen gesetzt werden, z.b. SOURCEFILTER = substr(key, 1,8) = '$(tid)'. In SQL-Skripten und im Loop-Statement ist das nicht erlaubt, d.h. dort werden Parameter alleine stehen. Ein Loop-Statement kann mit "commit after <n> records" abgeschlossen sein, <n> gibt die Anzahl der Iterationen bis zum Commit an; fehlt diese Klausel, dann wird der Wert der Variablen COMMIT.COUNT benutzt! Daneben gibt es noch eine weitere Form der Wiederholung. Innerhalb eines Blockes kann ein For-Schleife stehen, mit der ein Block mehrfach wiederholt werden kann, z.b.: loop select SYSTEMNAME, PROZESSORANZAHL into Systemname, ProzAnz from SOURCE.ForLoopTest1 begin transfer FORLOOPTEST1.MCF # FORLOOPTEST2.MCF wird $(ProzAnz) mal ausgeführt # Die Variable ProzCounter kann in FORLOOPTEST2.MCF verwendet werden for ProzCounter from 1 to $(ProzAnz) begin end transfer FORLOOPTEST2.MCF end commit after 1 records Im obigen Beispiel wird das Mapping FORLOOPTEST2.MCF $(ProzAnz) mal ausgeführt. Die Variable ProzCounter kann in FORLOOPTEST2.MCF verwendet werden. Stand Seite 324 von 470 Version 4.4

325 3.6 Environment Entries Environment Entries beschreiben logische Adressen z.b. eine Datenbankverbindung oder ein Dateiverzeichnis. Hinweis: Ein Channel bezieht sich nur auf logische Adressen nicht auf physikalische. Damit kann ein Prozess Modell einfach zwischen verschiedenen Umgebungen transportiert werden. Deren Environment Entries verweisen dann auf verschiedene physikalische Adressen. Folgende Environment Entries können angelegt werden: Database Connection Server Connection Filepath FTP Connection Global Variable LDAP Connection Message queue endpoint Naming and Directory Services (JNDI) Proxy Server SAP Client Connection SAP Server Connection TCP/IP Connection TCP/IP Endpoint Uniform Resource Locator (URL) Stand Seite 325 von 470 Version 4.4

326 3.6.1 Environment Entries Kontextmenü Im Bereich Environment Entries der Szenario Elemente befinden sich alle zu diesem Szenario gehörigen Environment Entries. Hier können Sie über einen Rechtsklick auf das Element ein Menü öffnen (siehe Abbildung). In diesem Menü erhalten Sie die Möglichkeit neue Environment Entries zu erstellen, eine neu Dokumentation anzulegen und die Environment Entry Elemente innerhalb der Baumstruktur zu gruppieren. Haben Sie einen Rechtsklick auf einen vorhandenes Environment Entry ausgeführt, so erhalten Sie zusätzlich die Möglichkeit dieses zu öffnen, die Eigenschaften des Elements zu bearbeiten oder es zu löschen. Abbildung Environment Entries (Szenario Element) Stand Seite 326 von 470 Version 4.4

327 3.6.2 Database Connection Eine Database Connection repräsentiert eine Verbindung zu einer Datenbank über JDBC; hier werden die Verbindungsparameter inklusive Benutzer und Passwort angegeben. Zum Anlegen eines Environment Entries für eine Database Connection gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries Database Connection - Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [database connection] und klicken auf [next]. Abbildung Environment Entries Database Connection Stand Seite 327 von 470 Version 4.4

328 5. Im folgenden Dialogfenster können Sie nun Ihre Datenbankverbindung einrichten. Dazu wählen Sie zunächst über [Select database driver] die gewünschte Datenbank aus und klicken auf [OK]. Abbildung Environment Entries Database Connection Treiber auswählen 6. Nun werden die Felder JDBC-Driver und JDBC- URL für die gewählte Datenbank vorinitialisiert. Abbildung Environment Entries Database Connection Vorinitialisierte Felder 7. Als nächsten Schritt müssen Sie nun die einzelnen Felder an Ihr lokales System anpassen. Anschließen können Sie Ihre Verbindungsangaben über die Schaltfläche [test] auf ihre Richtigkeit überprüfen lassen. Sind Ihre Angaben korrekt, so erscheint die Meldung [Test successful] Abbildung Environment Entries Database Connection Test successful. Stand Seite 328 von 470 Version 4.4

329 8. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab Server Connection Eine Server Connection repräsentiert eine Verbindung zu einem Server über JDBC; hier werden die Verbindungsparameter inklusive Benutzer und Passwort angegeben. Hinweis: Wird zum Senden und zum Empfangen benutzt; beim Empfang sind die Protokolle POP3 und IMAP sowie ihre SSL-Pendants POP3S und IMAPS möglich. Zum Anlegen eines Environment Entries für eine Server Connection gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries Server - Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [ server connection] und klicken auf [next]. Stand Seite 329 von 470 Version 4.4

330 Abbildung Environment Entries Server 5. Im folgenden Dialogfenster können Sie nun Ihre Server Verbindung einrichten. Dazu definieren Sie Ihre HostIP, Ihren Postausgang und Ihren Posteingang. HostIP Posteingang Postausgang Abbildung Environment Entries Server - Verbindungsparameter 6. Abschließen können Sie Ihre Verbindungsangaben über die Schaltfläche [test] auf ihre Richtigkeit überprüfen lassen. Sind Ihre Angaben korrekt, so erscheint die Meldung [Test successful] Abbildung Environment Entries Server Test successful. 7. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Stand Seite 330 von 470 Version 4.4

331 3.6.4 Filepath Ein Filepath repräsentiert eine Verbindung zu einem Ordner oder einer Datei in einem Dateisystem; hier werden die Verbindungsparameter inklusive Benutzer und Passwort angegeben. Hinweis: Als Dateisystem kann Local file system ausgewählt werden oder die Netzwerkprotokolle CIFS (Microsofts Common Internet Filesystem; auch als SMB bezeichnet) und NFS (Network Filesystem). Zum Anlegen eines Environment Entries für einen Filepath gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries Filepath - Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [database connection] und klicken auf [next]. Abbildung Environment Entries Filepath Stand Seite 331 von 470 Version 4.4

332 5. Im folgenden Dialogfenster können Sie nun Ihre Filepath-Verbindung einrichten. Dazu definieren Sie Ihr gewünschtes Protocol und wählen Ihren Pfand aus. Protokoll Pfad Abbildung Environment Entries Filepath - Verbindungsparameter 6. Abschließen können Sie Ihre Verbindungsangaben über die Schaltfläche [test] auf ihre Richtigkeit überprüfen lassen. Sind Ihre Angaben korrekt, so erscheint die Meldung [Test successfull] Abbildung Environment Entries Filepath Test successful. 7. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Stand Seite 332 von 470 Version 4.4

333 3.6.5 FTP Connection Eine FTP Connection repräsentiert eine Verbindung zu einem Fileserver; hier werden die Verbindungsparameter inklusive Benutzer und Passwort angegeben. Hinweis: Als Protokoll kann FTP, FTPS (FTP über SSL) und SFTP (basiert auf SSH) ausgewählt werden. Zum Anlegen eines Environment Entries für eine FTP Connection gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries FTP Connection - Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [FTP connection] und klicken auf [next]. Abbildung Environment Entries FTP Connection Stand Seite 333 von 470 Version 4.4

334 5. Im folgenden Dialogfenster können Sie nun Ihre FTP Verbindung einrichten. Dazu definieren Sie Ihr gewünschtes Protocol und wählen Ihren Host sowie den Port aus. Protokoll Host Port Abbildung Environment Entries FTP Connection - Verbindungsparameter 6. Abschließen können Sie Ihre Verbindungsangaben über die Schaltfläche [test] auf ihre Richtigkeit überprüfen lassen. Sind Ihre Angaben korrekt, so erscheint die Meldung [Test successful] Abbildung Environment Entries FTP Connection - Test successful. 7. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Achtung: Für einen Connection-Test, benötigen Sie zwingend eine Benutzer, mit welchen Sie die Zugriffsrechte auf den entsprechenden FTP-Server haben. Wie Sie Benutzer in Orchestra anlegen können, erfahren Sie in Kapitel 4.1 Credentials / User. Stand Seite 334 von 470 Version 4.4

335 3.6.6 Global Variable Werte die zwischen verschiedenen Ausführungsumgebungen unterschiedlich sein können (z.b. -Adressen) können hiermit als Environment Entry modelliert werden. Zum Anlegen eines Environment Entries für eine globale Variable gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries globale Variable Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [Global variable] und klicken auf [next]. Abbildung Environment Entries globale Variable Stand Seite 335 von 470 Version 4.4

336 5. Im folgenden Dialogfenster können Sie nun Ihre globale Variable definieren. Dazu definieren Sie Ihren gewünschten Variablen Typ sowie deren Wert aus. Variablen Typ Variablen Wert Abbildung Environment Entries globale Variable - Definition 6. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Stand Seite 336 von 470 Version 4.4

337 3.6.7 LDAP Connection Eine LDAP Connection repräsentiert einen Host und einen Port eines LDAP-Servers. Hinweis: Hier kann auch ein Trusted-Server-Name ausgewählt werden, mit dem sich der Server bei Orchestra authentifiziert. Dieser Trusted Server muss in den Orchestra Security Settings (Menü File) angelegt worden sein. Zum Anlegen eines Environment Entries für eine LDAP Connection gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries LDAP Connection Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [LDAP connection] und klicken auf [next]. Abbildung Environment Entries LDAP Connection Stand Seite 337 von 470 Version 4.4

338 5. Im folgenden Dialogfenster können Sie nun Ihre LDAP Verbindung einrichten. Dazu definieren Sie Ihre gewünschte Factory Class, die HostID, den Port und wählen Ihre Security Protocol sowie ggf. den Trusted Server aus. Host IP Factory class Port Security Protocol Trusted Server Abbildung Environment Entries LDAP Connection - Verbindungsparameter 6. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Stand Seite 338 von 470 Version 4.4

339 3.6.8 Naming and Directory Services (JNDI) Eine Naming and Directory Services Connection repräsentiert Verbindungsinformationen zu einem Naming Service. Hinweis: LDAP ist eine besondere Form eines solchen Service. U.U. will man auch auf andere Namensdienste (z.b. DNS oder NIS) zugreifen, die Parameter dieser Dienste können zusammen mit dem verwendeten JNDI-Provider (einer Java-Klasse) hier angegeben werden. Zum Anlegen eines Environment Entries für eine JNDI Connection gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries JNDI Connection Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [Naming and Directory Services (JNDI)] und klicken auf [next]. Abbildung Environment Entries JNDI Connection Stand Seite 339 von 470 Version 4.4

340 5. Im folgenden Dialogfenster können Sie nun Ihre LDAP Verbindung einrichten. Dazu definieren Sie Ihre gewünschte Context Factory, die Service URL, das Service Protokoll und Ihre Zugriffsdaten. Context Factory Service URL Authentication Security Protocoll Username Password Abbildung Environment Entries JNDI Connection - Verbindungsparameter 6. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Stand Seite 340 von 470 Version 4.4

341 3.6.9 Proxy Server Eine Proxy Server Connection repräsentiert Verbindungsinformationen zu einem entfernten Proxy Server. Zum Anlegen eines Environment Entries für einen Proxy Server gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries Proxy Server Connection Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [Proxy Server] und klicken auf [next]. Abbildung Environment Entries Proxy Server Connection 5. Im folgenden Dialogfenster können Sie nun Ihre Proxy Server Verbindung einrichten. Dazu definieren Sie Ihre gewünschte HostIP, den Port, den Typ des Proxy Servers und Ihre Zugriffsdaten. Stand Seite 341 von 470 Version 4.4

342 Zugangsport Service URL Authentication Password Zugriffstyp Abbildung Environment Entries Proxy Server Connection - Verbindungsparameter 6. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Stand Seite 342 von 470 Version 4.4

343 SAP Client Connection Eine SAP Client Connection repräsentiert Parameter zur Anmeldung an ein SAP- System. Hinweis: Diese Information wird vom SAP-Outbound-Channel benötigt Zum Anlegen eines Environment Entries für eine SAP Client Connection gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries SAP Client Connection Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [SAP Client connection] und klicken auf [next]. Abbildung Environment Entries SAP Client Connection Stand Seite 343 von 470 Version 4.4

344 5. Im folgenden Dialogfenster können Sie nun Ihre SAP Client Verbindung einrichten. Dazu definieren Sie Ihren gewünschten Application host, die System Nr, den Client und Ihre Zugriffsdaten. Application host System Nr User Client Password Sprache Abbildung Environment Entries SAP Client Connection - Verbindungsparameter 6. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Stand Seite 344 von 470 Version 4.4

345 SAP Server Connection Eine SAP Server Connection repräsentiert die Parameter Gateway Host, Gateway Service und Programm-ID für einen SAP Server. Weiter muss eine SAP Client Connection ausgewählt werden, damit Orchestra sich beim SAP-System als Subsystem registrieren kann. Hinweis: Diese Information wird vom SAP-Inbound-Channel benötigt Zum Anlegen eines Environment Entries für eine SAP Server Connection gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries SAP Server Connection Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [SAP Client connection] und klicken auf [next]. Abbildung Environment Entries SAP Server Connection Stand Seite 345 von 470 Version 4.4

346 5. Im folgenden Dialogfenster können Sie nun Ihre SAP Client Verbindung einrichten. Dazu definieren Sie Ihren gewünschten Gateway host, den Gateway Service, die Programm-ID, den Connection Count sowie Ihre SAP Client Connection Environment Entry. Gateway Service Connection Count Gateway host Programm-ID Repository (SAP Client Connection) Abbildung Environment Entries SAP Server Connection - Verbindungsparameter 6. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Stand Seite 346 von 470 Version 4.4

347 TCP/IP Connection Eine TCP/IP Connection repräsentiert einen Rechner (host) und ein Port über welchen auf diesen zugegriffen wird. Hinweis: Channels die sich über das TCP-Protokoll eine Verbindung aufbauen wollen, benötigen diese Information. Viele Channels arbeiten auf Protokollen die auf TCP aufsetzen, in den zugehörigen Environment Entries werden dann ebenfalls diese Adressinformationen angegeben, z.b. bei Datenbank- oder FTP-Verbindungen. Die TCP Connection wird von Channels benutzt, die keine weiteren Informationen benötigen, z.b. der MLLP-Outbound- Channel oder der TCP message sender. Zum Anlegen eines Environment Entries für eine TCP/IP Connection gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries TCP/IP Connection - Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [TCP/IP connection] und klicken auf [next]. Stand Seite 347 von 470 Version 4.4

348 Abbildung Environment Entries TCP/IP Connection 5. Im folgenden Dialogfenster können Sie nun Ihre TCP/IP Verbindung einrichten. Dazu definieren Sie Ihren gewünschten Host sowie den Port. Host IP Port Abbildung Environment Entries TCP/IP Connection - Verbindungsparameter 6. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Stand Seite 348 von 470 Version 4.4

349 TCP/IP Endpoint Ein TCP/IP Endpoint repräsentiert einen Rechner (host) und ein Port über welchen auf diesen zugegriffen wird. Hinweis: Diese Information wird von Inbound-Channels verwendet, die auf TCP-Connections warten, z.b. dem MLLP-Inbound-Channel. Zum Anlegen eines Environment Entries für eine TCP/IP Endpoint gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries TCP/IP Endpoint - Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [TCP/IP endpoint] und klicken auf [next]. Abbildung Environment Entries TCP/IP Endpoint Stand Seite 349 von 470 Version 4.4

350 5. Im folgenden Dialogfenster können Sie nun Ihre TCP/IP Verbindung einrichten. Host IP Port Abbildung Environment Entries TCP/IP Endpoint - Verbindungsparameter 6. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Stand Seite 350 von 470 Version 4.4

351 Uniform Ressource Locator (URL) Ein Uniform Ressource Locator (URL) kann als Environment Entry spezifiziert werden, weil eine URL eine Adressinformation ist, die in einem Testsystem verschieden von einem Produktivsystem sein kann. Zum Anlegen eines Environment Entries für eine URL gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries URL - Benennung 4. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [Uniform Resource Locator] und klicken auf [next]. Abbildung Environment Entries URL Endpoint Stand Seite 351 von 470 Version 4.4

352 5. Im folgenden Dialogfenster können Sie nun Ihre URL angeben. Abbildung Environment Entries URL - Verbindungsparameter 6. Abschließen können Sie Ihre URL-Angabe über die Schaltfläche [test] auf ihre Richtigkeit überprüfen lassen. Sind Ihre Angaben korrekt, so erscheint die Meldung [Test successful] Abbildung Environment Entries URL - Test successful. 7. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Stand Seite 352 von 470 Version 4.4

353 Message Queue Endpoint Ein Endpunkt zum Versenden und Abholen von Messages über Standard JMS konforme Message Queuing Systeme. Zum Anlegen eines Environment Entries für eine Message Queue Endpoint gehen Sie wie folgt vor: 1 Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Environment Entries über einen Rechtsklick auf Environment Entries. 8. Wählen Sie den Eintrag [create]. 9. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Environment Entries Message Queue Endpoint - Benennung 10. Nun wählen Sie den Typ Ihres Environment Entries aus, hier [message queuing endpoint] und klicken auf [next]. Abbildung Environment Entries Message Queue Endpoint Stand Seite 353 von 470 Version 4.4

354 11. Im folgenden Dialogfenster können Sie nun Ihre Verbindung auswählen. Dazu wählen Sie zunächst über [Select jms driver] die gewünschte Verbindungsart aus und klicken auf [OK]. Abbildung Environment Entries Message Queue Endpoint Treiber auswählen 12. Nun werden die Felder für die gewählte Verbindung vorinitialisiert. Abbildung Environment Entries Message Queue Endpoint Vorinitialisierte Felder 13. Als nächsten Schritt müssen Sie nun die einzelnen Felder an Ihr lokales System anpassen. User und Password werden im Regelfall leer gehalten. Diese Einstellung ist dann notwendig, wenn der Zugriff auf JMS eine zweistufige Anmeldung erfordert. (JNDI) Anschließend können Sie Ihre Verbindungsangaben über die Schaltfläche [test] auf ihre Richtigkeit überprüfen lassen. Sind Ihre Angaben korrekt, so erscheint die Meldung [Test successful] Abbildung Environment Entries Message Queue Endpoint Test successful. 14. Nach dem Sie Ihre Einstellungen vorgenommen haben, schließen Sie Ihren Environment Entry mit [finish] ab. Stand Seite 354 von 470 Version 4.4

355 3.7 Parser descriptions Parser wandeln die Elemente einer Textes-Struktur in eine XML-Nachricht um. Der Stream Parser ist ein Deserializer der in jedem Channel der Datenströme einliest (z.b. dem FileReader) verwendet werden kann. Der Stream Parser greift auf eine sogenannte Parser Description zurück. Eine Parser Description ist ein Orchestra- Szenario-Element, welches die Struktur des einzulesenden Textes definiert. Diese Struktur wird in einer speziellen funktionalen und deklarativen Programmiersprache beschrieben Parser Descriptions Kontextmenü Im Bereich Parser Descriptions der Szenario Elemente befinden sich alle zu diesem Szenario gehörigen Parser Descriptions. Hier können Sie über einen Rechtsklick auf das Element ein Menü öffnen (siehe Abbildung). In diesem Menü erhalten Sie die Möglichkeit neue Parser Descriptions anzulegen und die Szenario Elemente innerhalb der Baumstruktur zu gruppieren. Haben Sie einen Rechtsklick auf eine vorhandene Parser Description ausgeführt, so erhalten Sie zusätzlich die Möglichkeit diese zu öffnen, die Eigenschaften des Elements zu bearbeiten oder es zu löschen. Abbildung Parser Descriptions (Szenario Element) Stand Seite 355 von 470 Version 4.4

356 3.7.2 Konfiguration des Deserializers eines Stream - Channels Innerhalb eines stream-orientierten Channels (z.b. einem FileReader) kann ein Deserializer ausgewählt werden. Wählt man den Stream-Parser aus, dann muss in der Konfiguration desselben eine Parser-Description ausgewählt werden. Zum Verwenden eines selbst definierten Parsers in eine Stream Channel gehen Sie wie folgt vor: 1. Öffnen Sie den Stream-Channel für welchen Sie eine selbst definierten Stream Parser verwenden möchten. 2. Wählen Sie im Drop-Down-Menü für die [Deserializer] Auswahl den Eintrag [stream parser]. Abbildung Auswahl des Deserializers im Stream-Channel 3. Klicken Sie nun auf die Schaltfläche [ ]. 4. Es erscheint der Dialog [configure stream parser]. Hier können sie die Angaben für die Encoding-Konventionen vornehmen, Ihren Parser sowie den Startpunkt in der Parser Description auswählen. Abbildung Konfiguration des Stream Parsers 5. Nachdem Sie Ihre Einstellungen vorgenommen haben, klicken Sie abschließen auf [OK] und speichern Ihre Änderungen für den Stream Channel. Stand Seite 356 von 470 Version 4.4

357 3.7.3 Parser Description erstellen Zum Erstellen einer Parser Description gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Parser Descriptions über einen Rechtsklick auf Parser Descriptions. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster [create new Parser Description] geben Sie den Namen und ggf. eine Beschreibung für Ihre Parser Description ein und klicken auf [finish]. Abbildung Parser Description erstellen. 4. Nun legt Orchestra eine neue Parser Description an und öffnet diese in der Working Area. Stand Seite 357 von 470 Version 4.4

358 3.7.4 Hierarchische Parser Description erstellen Zum Erstellen einer hierarchischen Parser Description gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Parser Descriptions über einen Rechtsklick auf Parser Descriptions. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster [create new Parser Description] geben Sie den Namen, ggf. eine Beschreibung für Ihre Parser Description. Markieren Sie für die Erstellung einer hierarchischen Parser Description das Selektionsfeld [Hierarchical]. Abbildung Parser Description erstellen. 4. Nun legt Orchestra eine neue hierarchische Parser Description an und öffnet diese in der Working Area. Stand Seite 358 von 470 Version 4.4

359 3.7.5 Einfaches Beispiel für eine Parser Descripion Eine Parser-Description ist ein Szenario-Element, das die Struktur eines Character- Streams (eines Textes) beschreibt. Sie wird mit einem Text-Editor innerhalb des Orchestra-Designers erstellt. Zur Erläuterung beginnen wir mit einem minimalen Beispiel: Gegeben sei folgender Eingabetext: Hans/Maier/Augsburg Willi/Winkler/München Gerda/Bauer/Stuttgart Wir erzeugen eine neue Parser Description mit folgendem Inhalt: Abbildung Parser Script Damit wird die Eingabenachricht so beschrieben, wie sie aufgebaut ist. Um die Description zu testen klicken wir auf den Testbutten (Blitzsymbol) und kopieren den Eingabetext in das linke Eingabefeld. Achtung: Nach der letzten Zeile muss genau ein Zeilenumbruch eingegeben werden!. Stand Seite 359 von 470 Version 4.4

360 Abbildung Parsers Script testen 1 Nach Klick auf den Button parse erscheint unten der Hinweistext: input txt matched: context at line4, column 0 Wenn wir einen Zeilenumbruch zuviel eingeben oder das letzte Zeilenende fehlt, kommt die Fehlermeldung parse failed Wir haben nun den Eingabetext korrekt geparst, aber im Ausgabefenster auf der rechten Seite des Testpanels erscheint nur die leere Nachricht <adressen>. Um die gelesenen Daten auszugeben erweitern wir unsere Parser Description wie folgt: define adressen: repeat: Name, "/", Vorname, "/", Adresse, newline, openelement!("datensatz"), addelement!("name", Name), addelement!("vorname", Vorname), addelement!("adresse", Adresse), closeelement! end endoffile end Klicken wir nun parse : Stand Seite 360 von 470 Version 4.4

361 Abbildung Parsers Script testen 2 Wir sehen, dass die Variablen Name, Vorname und Adresse mit der Prozedur addelement! In eine XML-Baum eingefügt werden können. Wenn wir uns unsere Parser Description genauer anschauen, stellt sich sofort die Frage woran der Parser erkennt, dass Adresse eine Variable ist, während newline offensichtlich keine Variable ist, vielmehr den Zeilenumbruch einliest. Achtung: Variablenamen beginnen immer mit einem Großbuchstaben, während Namen von Prozeduren, Funktionen und Definitionen (wie z.b. adressen ) mit einem Kleinbuchstaben beginnen müssen. Nun machen wir ein kleines Experiment: wir entfernen die Zeile endoffile aus der Description. Nach Klick auf parse erscheint folgendes: Abbildung Parsers Script testen 3 Stand Seite 361 von 470 Version 4.4

362 D.h. die Daten konnten erfolgreich gelesen werden, aber die Ausgabe ist leer. Tatsächlich liest der Parser nicht bis zum Ende des Eingabetextes. Der Parser ist vielmehr immer noch am Anfang der Datei, wie er auch deutlich sagt: input txt matched: context at line1, column 0 Er liest also 0 Zeichen und diese leere Zeichenfolge passt hervorragend zu unserer Description, die Anzahl der Wiederholungen in der Schleife ist 0. Wenn wir allerdings explizit am Schluss endoffile schreiben, kann die Beschreibung nur erfüllt werden, wenn er tatsächlich 3 Zeilen einliest. Alternativ können wir statt repeat auch repeat greedy schreiben. Dann versucht der Parser so viele Zeilen wie möglich zu lesen; in diesem Fall erhalten wir wieder alle Daten in der Ausgabe. Der weitere Vorteil hier ist, dass am Ende der Datei ach beliebige Abschlusszeichen stehen können. Wenn die nicht gelesen werden können, weil sie nicht der Beschreibung entsprechen, ist das kein Fehler, weil wir ja nicht verlangen, dass er bis zum endoffile lesen soll. define adressen(anzahl): repeat greedy Anzahl: Name, "/", Vorname,"/", Adresse, newline, openelement!("datensatz"), addelement!("name", Name), addelement!("vorname", Vorname), addelement!("adresse", Adresse), closeelement! end end Testen wir obige Definition mit Eingabedaten an deren Ende zwei Zeilentrenner und drei Sternchen stehen: Stand Seite 362 von 470 Version 4.4

363 Abbildung Parsers Script testen 4 An dem Beispiel sehen wir, dass man bei einem repeat auch eine Variable angeben kann. Diese können wir z.b. als Parameter unserer Definition adressen zurückgeben. Der Aufruf der Definition im Testpanel zeigt, dass er bis Zeile 4 gelesen hat und bis dahin drei Datensätze gelesen wurden. Unsere Parser Description ist allerdings nicht eindeutig. Geben wir testweise den folgenden Eingabetext ein: Hans/Maier Willi/Winkler Gerda/Bauer Georg/Schneider Drücken wir den parse -Button, so erscheint: Abbildung Parsers Script testen 5 Stand Seite 363 von 470 Version 4.4

364 Auch dieser Text kann geparst werden, da er mit unserer Beschreibung übereinstimmt. Die Elemente vorname in der erzeugten Nachricht enthalten übrigens den Zeilentrenner. In dem Testpanel sieht man das nicht, wenn Sie aber auf den Button rechts oben klicken, dann können Sie die Nachricht als XML-Datei abspeichern. Die Datei hat dann folgenden Inhalt: <?xml version="1.0" encoding="iso "?> <adressen> <Datensatz> <name>hans</name> <vorname>maier Willi</vorname> <Adresse>Winkler</Adresse> </Datensatz> <Datensatz> <name>gerda</name> <vorname>bauer Georg</vorname> <Adresse>Schneider</Adresse> </Datensatz> </adressen> Tatsächlich ist die folgende ParserDescription semantisch gleich zu unserer ursprünglichen Beschreibung: define adressen: repeat: read(name), expect("/"), read(vorname), expect("/"), read(adresse), newline end endoffile end Achtung: Eine alleinstehende Variable ist also nur eine syntaktische Abkürzung für read(<variablenname>) und ein alleinstehender literaler String ist eine Abkürzung für expect(<stringliteral>) Wir wollen nun sicherstellen, dass innerhalb eines eingelesenen Elementes kein Zeilenumbruch auftreten darf, d.h. unser zweiter Eingabetext soll nicht eingelesen werden. Stand Seite 364 von 470 Version 4.4

365 Dazu definieren wir eine sogenannte character class, d.i. eine Menge von Zeichen. Wir benutzen dann die Funktion readuntil um die Werte der Felder einzulesen: character class text: not [/\r\n] define adressen: repeat greedy: Name = readuntil(text,"/"), Vorname = readuntil(text,"/"), Adresse = readstring(text), newline, cut, openelement!("datensatz"), addelement!("name", Name), addelement!("vorname", Vorname), addelement!("adresse", Adresse), closeelement! end end Wir legen damit fest, dass die Zeichenklasse text alle Zeichen außer Zeilentrenner und dem Schrägstrich gehören. Die Funktion readuntil liest den Eingabetext solange die Eingabezeichen zu der Zeichenklasse gehören und bis der angegebene Feldtrenner erreicht ist. Der Feldtrenner, ein beliebiger Text, wird überlesen. Der eingelesene Wert wird zurückgegeben. In obigem Beispiel benutzen wir noch eine andere Funktion nämlich readstring. Diese arbeitet ähnlich wie readuntil, hat aber kein Feldtrenner als Parameter. Das ist deshalb sinnvoll, weil der Zeilentrenner unter Unix linefeed (das Ascii-Zeichen mit dem Code 10) ist während unter Windows zwei Zeichen nämlich carriage return und linefeed benutzt werden. Hat man immer Windows-Dateien als Eingabe, dann könnte man alternativ zu readstring(text), newline auch readuntil(text, \r\n ) schreiben. readuntil und readstring sind Funktionen d.h. sie liefern einen Wert zurück. In unserem ersten Beispiel haben wir read benutzt, das den eingelesenen Wert an die übergebene Variable bindet. D.h. bei read handelt es sich nicht um eine Funktion. In obigem Beispiel ist noch eine weitere Besonderheit enthalten, der Aufruf von cut. Damit wird der Eingabestrom abgeschnitten. Der Parser kann nie mehr zurückgehen um alternative Definitionen auszuführen. Cut ist insbesondere sinnvoll, wenn man sehr große Eingabedateien hat. Damit muss der Parser nicht die ganze Datei im Speicher halten, sondern nur den Teil, der momentan gelesen wird. Stand Seite 365 von 470 Version 4.4

366 Hinweis: Die Bedeutung von Cut kann tatsächlich erst verstanden werden, wenn man weitergehende Möglichkeiten der Parsersprache nutzt, die später erklärt werden. Für den ambitionierten Benutzer sei nur gesagt, dass die Parsersprache Prolog ähnelt und mit Backtracking arbeitet um die Eingabedaten mit einem Muster in Deckung zu bringen. Cut hat hier dieselbe Bedeutung wie das entsprechende Prolog-Ziel Komplexes Beispiel Wir nehmen an, dass wir typische Property-Dateien einlesen wollen. Nachfolgend ein Beispiel für eine solche Datei: ############################################################ # Global properties ############################################################ # "handlers" specifies a comma separated list of log Handler # classes. These handlers will be installed during VM startup. # Note that these classes must be on the system classpath. # By default we only configure a ConsoleHandler, which will only # show messages at the INFO and above levels. # handlers= java.util.logging.consolehandler # handlers= java.util.logging.filehandler handlers=java.util.logging.filehandler java.util.logging.filehandler.pattern = C:/temp/orchestra/log/orchestra%g.log java.util.logging.filehandler.limit = java.util.logging.filehandler.count = 2 java.util.logging.filehandler.formatter = java.util.logging.simpleformatter # Default global logging level. # This specifies which kinds of events are logged across # all loggers. For any given facility this global level # can be overriden by a facility specific level # Note that the ConsoleHandler also has a separate level # setting to limit messages printed to the console..level= INFO D.h. eine Datei besteht aus einer Folge von Zeilen. Eine Zeile wiederum tritt in drei Varianten auf: Leerzeilen die nur aus Leerzeichen bestehen Kommentarzeilen die mit einem # beginnen Schlüssel-Wert-Paare Stand Seite 366 von 470 Version 4.4

367 Das können wir wie folgt beschreiben: character class linetext: not [\r\n] character class name: [A-Za-z_0-9.] character class blanks: [ \t] define propertyfile: repeat greedy: line end end define line: "#", linetext*, newline end define line: blanks*, newline end define line: blanks*, Key = readstring(name), blanks*, "=", blanks*, Value, blanks*, newline cut, openelement! ("Record"), addelement!("key", Key), addelement!("value", Value), closeelement! end Im Gegensatz zu unserem ersten Beispiel haben wir hier mehrere Definitionen. Welche der Definitionen den gesamten Eingabetext beschreiben soll, wird im Testpanel oder bei der Konfiguration des Deserializers ausgewählt. Defaultmäßig ist dies die erste Definition im Programmtext, in unserem Beispiel also propertyfile. Stand Seite 367 von 470 Version 4.4

368 Wie man auch sieht, haben wir line dreimal definiert. In der Terminologie der Parsersprache spricht man (wie in der Programmiersprache Prolog) hier von einem Ziel. Durch die Definition define propertyfile: repeat greedy: line end end versucht der Parser das Ziel line mehrfach, nämlich so oft wie möglich zu erfüllen. Der Parser probiert zur Erfüllung des Zieles line der Reihe nach alle Definitionen von line. D.h. wenn die Zeile mit # beginnt, dann wird die erste Definition erfüllt, enthält die Zeile nur Leerzeichen oder Tabs dann wird die zweite Definition erfüllt, ansonsten muss an der aktuellen Position des Eingabetextes eine Zeile der Form blanks*, Key, blanks* = blanks*, Value, blanks*, newline vorhanden sein. Die Zeile Value, blanks*, newline bedarf noch einer Erläuterung: Alternativ zu dieser Zeile könnte man auch schreiben: Value = readstring(linetext), newline Allerdings würde in diesem Fall auch Leerraum am Ende der Zeile mit in den Rückgabewert aufgenommen werden, da die Zeichenklasse linetext auch Leerzeichen enthält. Schreibt man dagegen Value, blanks*, newline oder, was auf dasselbe hinausläuft, read(value), readstring(blanks), newline dann wird readvalue mehrfach probiert, nämlich so lange bis alle nachfolgenden Ziele, in diesem Fall blanks*, newline, erfüllt werden können, d.h. dass in diesem Fall Value keinen Leerraum am Ende enthalten kann. Dies ist der der entscheidenden Unterschied zwischen Funktionsaufruf und Erfüllung eines Zieles: Ein Ziel kann u.u. mehrfach probiert werden, wenn die nachfolgenden Ziele nicht erfüllt werden können; dies nennt man Backtracking. Allerdings muss man darauf hinweisen, dass die Verwendung von Funktionen wesentlich effizienter ist, als die Verwendung von allgemeinen Zielen wie z.b. read. Stand Seite 368 von 470 Version 4.4

369 Um auszuschließen, dass Werte Leerzeichen am Ende enthalten kann man auch einfach die Funktion trim verwenden: Value = trim(readstring(linetext)), newline Diese Lösung mag nicht ganz so elegant aussehen wie unsere erste Lösung, sie ist aber effizienter. Abbildung Parsers Script testen 6 Stand Seite 369 von 470 Version 4.4

370 3.7.7 Beschreibung der Parsersprache Im folgenden Kapitel erhalten Sie detaillierte Informationen zur Beschreibungssprache des Stream Parsers Semantik Die Parsersprache ist eine funktionale und deklarative Programmiersprache. Funktional ist die Sprache, weil es keine Statements gibt, die den internen Zustand des Parsers ändern, insbesondere gibt es keine Zuweisung. Ein Statement der Form x = y ist eine Unifizierung, d.h. es wird sichergestellt, dass der Ausdruck auf der linken Seite denselben Wert hat wie der Ausdruck auf der rechten Seite. Wenn z.b. x eine Variable ist, die noch nicht gebunden ist, dann hat sie nachher den Wert des Ausdrucks auf der rechten Seite, der Wert der Variablen kann aber nie mehr geändert werden. Die Sprache ist deklarativ, weil die Struktur des Eingabetextes beschrieben wird, aber nicht explizit dargestellt wird, wie die Struktur abgearbeitet wird. Der Parser versucht vielmehr diese Struktur mit dem Eingabetext in Deckung zu bringen. Ist dies gelungen, dann ist der Parser erfolgreich. Als Nebeneffekt dieses Pattern matchings wird ein Ausgabedokument erzeugt. Die Struktur des Eingabetextes wird durch eine Hierarchie von Definitionen beschrieben, z.b. define file: repeat: record end end define record: Field1, ;, Field2, newline end define record: Field1, ;, Field2, ;, Field3, newline end Kann eine dieser Definitionen nicht zur Deckung gebracht werden, dann geht der Parser im Eingabetext zurück und versucht eine andere passende Definition. Dabei werden auch alle Variablenbindungen wieder zurückgenommen; dieses Verfahren ist unter dem Namen Backtracking bekannt. Stand Seite 370 von 470 Version 4.4

371 Die einzigen Statements mit Nebeffekt sind Prozeduraufrufe. Sie ändern immer die Ausgabe des Parsers also das XML-Dokument, das er erzeugt. Die Namen aller dieser Prozeduren enden mit Ausrufezeichen, z.b. openelement! oder closeelement!, siehe dazu den entsprechenden Abschnitt in diesem Kapitel. Die meisten Funktionen der Sprache haben einen impliziten Eingabe- und einen impliziten Ausgabeparameter, die Position innerhalb des Eingabetextes. Stand Seite 371 von 470 Version 4.4

372 Syntax Nachfolgend die Syntax der Parsersprache in EBNF (Extended Backus Naur Form): Script ::= {Definition } Definition ::= CharacterClassDefinition ClauseDefinition CharacterClassDefinition ::= "character" "class" charclassname ":" CharacterClass { ( "or" "and" ) CharacterClass } CharacterClass ::= [ "not" ] ( "[" Range "]" charclassname ) Range ::= { char "-" char "\n" "\r" "\t" char } ClauseDefinition ::= "define" ClauseSignature ":" Executable { "," Executable } "end" ClauseSignature ::= name [ "(" ParameterDef { "," ParameterDef } ")" ] ParameterDef ::= [ TypeName ] parname TypeName ::= "Value" "List" "Atom" "Boolean" "String" "Number" "Integer" "Charset" "Constructor" Executable ::= LiteralString ParameterName Unify charclassname "*" ProcedureCall FunctionCall Goal Loop Try Unify ::= ParameterName "=" Expression ProcedureCall ::= procedurename [ "(" Expression { "," Expression } ")" ] FunctionCall ::= functionname [ "(" Expression { "," Expression } ")" ] Goal ::= goalname [ "(" Expression { "," Expression } ")" ] Loop ::= "repeat" [ "greedy" ] [ Expression ] ":" Executable { "," Executable } "end" Try ::= "try" Executable { "," Executable } "end" Expression ::= Literal ParameterName FunctionCall ListConstructor charclassname Literal ::= "[" "]" LiteralString LiteralInteger ParameterName ::= <name starting with upper case> ListConstructor ::= "list" "(" [ Expression { "," Expression } ] ")" Stand Seite 372 von 470 Version 4.4

373 Syntaktische Abkürzungen: Ein literaler String als Ziel ist eine Abkürzung für das expect-ziel. Z.B. ist ";" eine verkürzte Schreibweise für expect(";"). Ein Zeichenklassenname gefolgt von "*" ist eine Abkürzung für den Aufruf der Funktion readstring(charset). Z.B. ist space * eine verkürzte Schreibweise für readstring(space). Ein Parametername als Ziel ist eine Abkürzung für das read-ziel. Z.B. ist Varname eine verkürzte Schreibweise für read(varname) Vordefinierte Goals, Funktionen und Prozeduren Grundlegende Ziele (Goals) endoffile newline expect(string value) read(string Var) unify(value left, Value right) bound(value value) cut fail succeed Stand Seite 373 von 470 Version 4.4

374 Funktionen Parserfunktionen String readfixed(charset charset, Integer count) String readuntil(string terminator) String readuntil(charset charset, String terminator) String readstring(charset charset) Grundfunktionen Integer currentline Integer parseint(string digits) Integer add(integer first, Integer second) Integer subtract(integer first, Integer second) Boolean lower(integer first, Integer second) String concat(string first, String second) Integer strlen(string string) String substring(string string, Integer beginpos, Integer endpos) String trim(string string) Integer parseint(string digits) Stand Seite 374 von 470 Version 4.4

375 Listenfunktionen List cons(value first, List rest) Boolean isempty(list list) Boolean contains(list list, Value value) Value first(list list) List rest(list list) Value nth(list list, Integer index) List reverse(list list) Prozeduren openelement!(string name) addcontent!(value value) addattribute!(string name, value) closeelement!() addelement!(string name, value) log!(value value) Stand Seite 375 von 470 Version 4.4

376 3.8 External archives Mit External Archives können einem Szenario zusätzliche Funktionen und Mappings hinzugefügt werden. Es gibt folgende externe Archive: Function archives Mapping archives External Archives Kontextmenü Im Bereich External Archives der Szenario Elemente befinden sich alle zu diesem Szenario gehörigen External Archives. Hier können Sie über einen Rechtsklick auf das Element ein Menü öffnen (siehe Abbildung). In diesem Menü erhalten Sie die Möglichkeit neue External Archives zu importieren und die External Archive Elemente innerhalb der Baumstruktur zu gruppieren. Haben Sie einen Rechtsklick auf einen vorhandenes External Archive ausgeführt, so erhalten Sie zusätzlich die Möglichkeit dieses zu öffnen, die Eigenschaften des Elements zu bearbeiten oder es zu löschen. Abbildung External Archives (Szenario Element) Stand Seite 376 von 470 Version 4.4

377 3.8.2 Function archive Ein Function Archive ist ein externes Java-Archiv, welches Funktionen (statische Methoden) enthält, die von einem Message-Mapping verwendet werden können. Um ein Function Archive anzulegen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > External Archives über einen Rechtsklick auf External Archives. 2. Wählen Sie den Eintrag [create archive]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung External Archives Function Archive - Benennung 4. Nach dem Sie die Benennung des Function Archive bestätigt haben, wählen Sie im folgenden Dialog den Archive Typ aus. Hier [Function archive]. Abbildung External Archives Function Archive Stand Seite 377 von 470 Version 4.4

378 5. Nach dem Sie den Archive Typ ausgewählt haben, wählen Sie im folgenden Dialog die jar Datei aus, welche das Archiv enthält. Abbildung External Archives jar Datei auswählen Stand Seite 378 von 470 Version 4.4

379 3.8.3 Mapping archive XSLT- und Java-Mappings werden in Form von Archiven (ZIP- bzw. JAR-Dateien) in Orchestra importiert. Mapping archives können auch Klassen enthalten die von einem Skript innerhalb eines Prozess Modells oder von einem Java-Outbound Channel verwendet werden können. Um ein Mapping Archiv anzulegen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > External Archives über einen Rechtsklick auf External Archives. 2. Wählen Sie den Eintrag [create archive]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung External Archives Mapping Archive - Benennung 4. Nach dem Sie die Benennung des Archivs bestätigt haben, wählen Sie im folgenden Dialog den Archive Typ aus. Hier [Mapping archive]. Stand Seite 379 von 470 Version 4.4

380 Abbildung External Archives Mapping Archive 5. Nach dem Sie den Archive Typ ausgewählt haben, wählen Sie im folgenden Dialog die jar Datei aus, welche das Archiv enthält. Abbildung External Archives jar Datei auswählen Stand Seite 380 von 470 Version 4.4

381 3.8.4 Standard Java Archive Alle Klassen die im Standard Java Archiv definiert sind, können im Scenario dirket verwendet werden. Um ein Standard Java Archiv anzulegen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > External Archives über einen Rechtsklick auf External Archives. 2. Wählen Sie den Eintrag [create archive]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Environment Entry ein und klicken auf [next]. Abbildung Standard Java Archive Benennung 4. Nach dem Sie die Benennung des Archivs bestätigt haben, wählen Sie im folgenden Dialog den Archive Typ aus. Hier [Mapping archive]. Stand Seite 381 von 470 Version 4.4

382 Abbildung Standard Java Archive Auswahl 5. Nach dem Sie den Archive Typ ausgewählt haben, wählen Sie im folgenden Dialog die jar Datei aus, welche das Archiv enthält. Abbildung Standard Java Archive Dateiauswahl Stand Seite 382 von 470 Version 4.4

383 3.9 Signals Signale beschreiben das Eintreten eines abstrakten Ereignisses. Sie werden auf dem Orchestra Signal-Bus abgelegt. Szenarien werden im Allgemeinen verwendet, um Prozesse lose zu koppeln. Z.B. kann man das Eintreten eines Signales als Startevent für einen Prozess verwenden Signals Kontextmenü Im Bereich Signals der Szenario Elemente befinden sich alle zu diesem Szenario gehörigen Signals. Hier können Sie über einen Rechtsklick auf das Element ein Menü öffnen (siehe Abbildung). In diesem Menü erhalten Sie die Möglichkeit neues Signal zu erstellen, eine neue Dokumentation anzulegen und die Signal Elemente innerhalb der Baumstruktur zu gruppieren. Haben Sie einen Rechtsklick auf ein vorhandenes Signal ausgeführt, so erhalten Sie zusätzlich die Möglichkeit dieses zu öffnen, die Eigenschaften des Elements zu bearbeiten oder es zu löschen. Abbildung Signals (Szenario Element) Stand Seite 383 von 470 Version 4.4

384 3.9.2 Signale definieren Um ein Signal zu definieren, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > signals über einen Rechtsklick auf signals. 2. Wählen Sie den Eintrag [create]. Abbildung Signals Signal definieren 3. Geben Sie nun einen Namen und ggf. eine Beschreibung für Ihr Signal ein und klicken sie auf [finish]. 4. Nach dem Sie Ihr Signal definiert haben, wird das Signal zur Bearbeitung geöffnet. Hier haben Sie u.a. die Möglichkeit Parameter für Ihr Signal zu definieren Namen, Beschreibung und Namespace des Signals Parameter des Signals Abbildung Signals Signal bearbeiten Parameter -Hinzufügen -Löschen Stand Seite 384 von 470 Version 4.4

385 3.9.3 Signale senden Nachdem Sie ein Signal definiert haben, können Sie dieses im Prozess Modell an verschiedenen Stellen absetzen. Hinweis: Hierzu können folgende Elemente der BPMN verwendet werden Tabelle 3-17 Prozess Modell Elemente zum Senden von Signalen Element Typ Beschreibung Intermediate Event Erlaubt dem aktuellen Prozess eine Benachrichtigung abzusetzen. End Event Beendet den Prozess und verschickt eine Benachrichtigung (Notify) Um ein Signal zu senden, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozess Modell welches Sie bearbeiten möchten. 2. Markieren Sie im Bereich Scenario Elements das Element (siehe Tabelle 3-17 Prozess Modell Elemente zum Senden von Signale) mit welchem Sie Ihr Signal absetzen möchten. Klicken Sie nun in den Process Modell Designer um das Element einzufügen Achtung: Alle Scenario Elemente, ausgenommen Message Mappings, benötigen eine Activity um angesprochen werden zu können. Hinweis: Jedes Prozess Modell benötigt zwingend ein Start- so wie ein End- Event um den Einstiegs- bzw. den Endpunkt eines Prozess Modells zu definieren. (Wie Sie Startevents in einem Prozess Modell verwenden können, entnehmen Sie dem Kapitel Start Events im Prozessmodell verwenden.) 3. Nach dem Sie das notwendigen Elemente in das Prozess Modell eingefügt haben, können Sie die Elemente nun über das Edge -Werkzeug mit einander verbinden. Stand Seite 385 von 470 Version 4.4

386 Abbildung Signals Element zum Absetzen von Signalen 4. Nach dem Sie das notwendige Event in das Prozess Modell eingefügt haben, können Sie nun das Signal für das Event definieren. Dazu führen Sie einen Doppelklick auf das Event aus. Es öffnet sich das Fenster [Configure Signal Event]. Auswahl des abzusetzenden Signals Abbildung Signals Signal für das Element definieren 5. Wählen Sie nun Ihr [Process signal], welches Sie definiert haben aus. 6. Sollten Sie für Ihr Signal einen Parameter definiert haben, so müssen Sie diesen im Register [Input Assignments] noch befüllen, dazu wählen Sie Ihre Variable aus und machen im Bereich [Assignment] Ihre Java- od. XPath-Zuweisung. 7. Nach dem Sie Ihre Zuweisung vorgenommen haben, klicken Sie auf [validate] um Ihre Zuweisung auf Korrektheit zu überprüfen, 8. Zum Abschließen klicken Sie auf [ok]. Stand Seite 386 von 470 Version 4.4

387 3.9.4 Signal empfangen Nachdem Sie ein Signal definiert haben, können Sie dieses im Prozess Modell an verschiedenen Stellen empfangen. Dazu gibt es verschiedene Elemente, welche auf das Eintreffen eines Signales lauschen. Hinweis: Hierzu können folgende Elemente der BPMN verwendet werden Tabelle 3-18 Prozess Modell Elemente zum Empfangen von Signalen Element Typ Beschreibung Startevent Startet einen Prozess, wenn ein bestimmtes Signal empfangen wird. Die Detaileinstellungen werden in den Eigenschaften des Events vorgenommen. Intermediate Event Wartet während der Prozessausführung auf das Eintreffen eines Signals. Um in einem Prozess Modell auf das Eintreten eines Signals zu lauschen, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Process Models das Prozess Modell welches Sie bearbeiten möchten. 2. Markieren Sie im Bereich Scenario Elements das Event (siehe Tabelle 3-18 Prozess Modell Elemente zum Empfangen von Signalen) mit welchem Sie Ihr Signal empfangen möchten. Klicken Sie nun in den Process Modell Designer um das Element einzufügen Achtung: Alle Scenario Elemente, ausgenommen Message Mappings, benötigen eine Activity um angesprochen werden zu können. Hinweis: Jedes Prozess Modell benötigt zwingend ein Start- so wie ein End- Event um den Einstiegs- bzw. den Endpunkt eines Prozess Modells zu definieren. (Wie Sie Startevents in einem Prozess Modell verwenden können, entnehmen Sie dem Kapitel Start Events im Prozessmodell verwenden.) 3. Nach dem Sie das notwendigen Event in das Prozess Modell eingefügt haben, können Sie die Elemente nun über das Edge -Werkzeug mit einander verbinden. Stand Seite 387 von 470 Version 4.4

388 Abbildung Signals Element zum Empfange von Signalen 4. Nach dem Sie das notwendigen Event in das Prozess Modell eingefügt haben, können Sie nun das Signal für das Event definieren. Dazu führen Sie einen Doppelklick auf das Event aus. Es öffnet sich das Fenster [Configure Signal Event]. Subscription Persistent (Signal wird in der Orchestra Datenbank gespeichert) Transient (Signal wird auf dem Orchestra Service Bus gespeichert) Auswahl des Signals auf welches gelauscht wird Abbildung Signals Signal für das Element definieren 5. Wählen Sie nun im Bereich [Catch process signal] Ihr Signal, auf welches das Prozess Model lauschen soll aus. 6. Zum Abschließen klicken Sie auf [ok]. Stand Seite 388 von 470 Version 4.4

389 3.10 Document Library Der Bereich Document Library ist dazu gedacht, Textdokumente für das Szenario abzulegen. Sie haben die Möglichkeit mittels eines eingebauten Text-Editors Dokumente zu erstellen Document Library Kontextmenü Im Bereich Document Library der Szenario Elemente befinden sich alle zu diesem Szenario gehörigen Textdokumente. Hier können Sie über einen Rechtsklick auf das Element ein Menü öffnen (siehe Abbildung). In diesem Menü erhalten Sie die Möglichkeit eine neue Dokumentation anzulegen und die Document Library Elemente innerhalb der Baumstruktur zu gruppieren. Haben Sie einen Rechtsklick auf einen vorhandenes Document Library ausgeführt, so erhalten Sie zusätzlich die Möglichkeit dieses zu öffnen, die Eigenschaften des Elements zu bearbeiten oder es zu löschen. Abbildung Document Library (Szenario Element) Stand Seite 389 von 470 Version 4.4

390 Document Designer Im Orchestra Designer steht Ihnen eine grafische Oberfläche zur Verfügung, welche es Ihnen ermöglicht ein Textdokument zu erstellen und zu bearbeiten. Document Designer Menu Document Designer Werkzeug Dokumentinhalt Dokumentansicht Abbildung Process Model Designer Stand Seite 390 von 470 Version 4.4

391 Document Designer - Menü Im Document Designer - Menü finden Sie grundlegende Operationen zur Bedienung des Orchestra Document Designers. Abbildung Document Designer - Menü Edit Bearbeitung rückgänig / wiederholen Copy & Paste Funtionalität Abbildung View-Menü Color Hier können Sie die Textfarbe des markierten Textes ändern. Abbildung View-Menü Stand Seite 391 von 470 Version 4.4

392 Font Hier können Sie die Textart und Größe des markierten Textes ändern. Abbildung View-Menü Style Hier können Sie die Textstyle des markierten Textes ändern. Abbildung View-Menü Align Hier können Sie die Ausrichtung des markierten Textes ändern. Abbildung View-Menü Help Hier erhalten sie nützliche Information zur Textbearbeitung. Abbildung View-Menü Stand Seite 392 von 470 Version 4.4

393 Document Designer Werkzeuge Elemente eines Prozess Modells wie z.b. Mappings, Channels, Aktivitäten, Events oder Gateways werden mittels Click & Click in die Editoroberfläche eingefügt. Mit dem Auswahlwerkzeug können Sie dort verschoben und editiert werden. Kopieren / Einfügen Textformatierung Zeilenformat Vorgang rückgängig / wiederholen Abbildung Document Designer Werkzeuge Document Designer View Dokument als Quelltext anzeigen Dokument in HTML anzeigen Dokument Links verwalten Abbildung Document Designer View HTML: Hier sehen Sie die normale Textansicht. Source: Hier sehen Sie den HTML Quelltext. Links: Hier können Sie die Dokumentation einzelnen Elementen zuordnen. o Referenced element Das Element auf das sich die Dokumentation bezieht. o Role Die Art der Dokumentation. Mit Add können Sie weitere Verweise erstellen. Stand Seite 393 von 470 Version 4.4

394 Document erstellen Um ein neues Dokument für die Document Library anzulegen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Document Library über einen Rechtsklick auf Document Library. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster geben Sie den Namen und ggf. eine Beschreibung für Ihr Dokument ein und klicken auf [finish]. Abbildung Document Library Dokument erstellen 4. Nach dem Sie Ihre Eingaben vorgenommen haben, schließen Sie Ihre Dokument Definition mit [finish] ab. 5. Anschließend wird Ihr neues Dokument im Document Designer zum Bearbeiten geöffnet. Abbildung Document Library Dokument bearbeiten Stand Seite 394 von 470 Version 4.4

395 Dokumentation erstellen Der Orchestra Designer bieten Ihnen die Möglichkeit für jedes Szenario Element eine Dokumentation zu erstellen. Um eine Dokumentation zu erstellen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements über einen Rechtsklick auf Document Library oder das Szenario Element, welches Sie dokumentieren möchten. 2. Wählen Sie den Eintrag [create documentation]. Abbildung Document Library Dokumentation erstellen 3. Wählen Sie hier nun Ihr Szenario Element, welches Sie dokumentieren möchten. Wählen Sie wie die [Role] der Dokumentation aus und klicken Sie auf [finish]. 4. Anschließend wird Ihr neues Dokument im Document Designer zum Bearbeiten geöffnet. Abbildung Document Library Dokumentation bearbeiten Stand Seite 395 von 470 Version 4.4

396 Dokumentation exportieren Orchestra bietet Ihnen die Möglichkeit, alle Dokumentationen die Sie innerhalb der einzelnen Elemente angelegt haben, automatisch zusammenzuführen, mit entsprechenden Bildern zu versehen und zu exportieren. Um eine Dokumentation zu exportieren, gehen Sie wie folgt vor: 1. Öffnen Sie das Orchestra Menü und wählen Sie den Eintrag [export documentation] aus. Nun bekommen Sie den Dialog zum Dokumentationsexport angezeigt. Abbildung Dokumentation exportieren 2. Hier wählen Sie die Dokumentationsart aus und klicken auf [next]. 3. Nun müssen Sie nur noch einen Ort in Ihrem Dateisystem auswählen und die Dokumentation wird automatisch generiert. Die Dokumentation wird im Dateisystem in eine.xml Datei zusammengeführt. Diese können Sie mit Ihrem Internetbrowser öffnen. Stand Seite 396 von 470 Version 4.4

397 3.11 Services Die Grundidee der serviceorientierten Architektur (SOA) besteht darin, eine Systemlandschaft abstrakt mit Hilfe von sogenannten Services zu modellieren. Ein Service ist hierbei eine Abstraktion für ein technisches System, welche eine definierte Aufgabe zu erfüllen hat. Art und Umfang dieser Aufgabe wird über eine Schnittstelle beschrieben. Diese definiert die Methoden, welche ein Service nach außen anbietet. Andere Services bzw. Prozesse können nun auf diese Methoden zurückgreifen um eine Gesamtaufgabe zu erfüllen. Bei der Modellierung mit Hilfe von Services wird bewusst darauf verzichtet, Aussagen über die spätere Implementierung dieser Dienstleistung zu machen. Dadurch ist gewährleistet, dass die so modellierte SOA flexibel erweiterbar und wartbar bleibt. Die Implementierung eines Services wird versteckt, so dass jederzeit ein Austausch bzw. Anpassung und Weiterentwicklung möglich ist. Orchestra bietet die Möglichkeit, gesamte Landschaften serviceorientiert zu gestalten. Die Basis für diese Modellierung bilden folgende Scenario-Elemente. Service-Operation Definiert eine Methode, welche ein Service nach außen hin anbietet. Service-Declaration Definiert eine gesamtheitlich Sicht auf einen Service. Hierzu werden alle Service-Operationen zusammengefasst, welche dieser Service unterstützen muss. Service-Provider Dies stellt die tatsächliche technische Implementierung eines Services dar. D.h. für jede Operation die in der Service-Declaration vorhanden ist, muss spezifiziert werden, wie die Implementierung aussieht. Hier kommen die technischen Elemente wie z.b. Prozesse, Channels und Mappings zum Einsatz. Das nachfolgend dargestellt Schaubild soll das Prinzip der Serviceorientierung verdeutlichen: Stand Seite 397 von 470 Version 4.4

398 Kunden Migration Warenwirtschaft Service Provider Service Provider Service Schnittstelle Service Schnittstelle Channel/Mappp Channel/Mappp ing/prozessmo ing/prozessmo dell dell Channel/Mappp Channel/Mappp ing/prozessmo ing/prozessmo dell dell Abbildung Service-Deklaration Stand Seite 398 von 470 Version 4.4

399 Service-Provider In Orchestra haben Sie die Möglichkeit einen Webservice für die externe Verwendung zur Verfügung zu stellen. Ein Service-Provider implementiert eine Service-Schnittstelle indem jede Operation auf eine technische Orchestra-Komponente abgebildet wird. Die einzelnen Service-Operationen werden auf konkrete technische Orchestra- Komponenten wie z.b. Channel, Prozessmodelle oder Mappings abgebildet Service Provider Kontextmenü Im Bereich Service Provider der Szenario Elemente befinden sich alle zu diesem Szenario gehörigen Service Provider. Hier können Sie über einen Rechtsklick auf das Element ein Menü öffnen (siehe Abbildung). In diesem Menü erhalten Sie die Möglichkeit neue Service Provider zu erstellen, eine neue Dokumentation anzulegen und die Service Provider Elemente innerhalb der Baumstruktur zu gruppieren. Haben Sie einen Rechtsklick auf einen vorhandenen Service Provider ausgeführt, so erhalten Sie zusätzlich die Möglichkeit diesen zu öffnen, die Eigenschaften des Elements zu bearbeiten oder es zu löschen. Abbildung Service Provider (Szenario Element) Stand Seite 399 von 470 Version 4.4

400 Webservice Provider anlegen Wenn Sie einen Webservice Provider in Orchestra anlegen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Service Provider über einen Rechtsklick auf Service Provider. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster [create new service provider] geben Sie den Namen und ggf. eine Beschreibung für Ihren Service Provider ein und klicken auf [next]. 4. Jetzt müssen Sie Ihre Service Spezifikation vornehmen. Functional service = Die Funktionalität des Web Services durch Abbildung auf ein Szenarioelement definiert (z.b. Aufruf eines Channels). Process service = Die Funktionalität des Web Services wird durch ein Prozessmodell definiert (für komplexere Interakationsmuster) Abbildung Service-Implementation Service implementation (Server) = Implementiert einen Webservice (Request/ Response Muster); Normalfall Service subscriber (Client) = Implementierung eines Callback-Interfaces; selten benutzt 5. Abschließend klicken Sie auf [finish] um Ihren Webservice Provider anzulegen. Stand Seite 400 von 470 Version 4.4

401 Webservice Provider / Operationen Eine Service-Operation definiert eine Methode bzw. Ereignis welche durch einen Service angeboten wird. Eine Operation wird durch einen Namen und einen Namespace exakt identifiziert. Hier werden unter anderem die Übergabeparameter im Orchestra-Typsystem definiert. Hinweis: Zwei Operationen sind gleich, wenn sie im Namen und Namespace übereinstimmen Operation anlegen Wenn Sie für Webservice Provider Operation anlegen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Provider Ihren Service Provider, für welchen Sie eine Operation definieren möchten. 2. Öffnen Sie das Kontextmenü Service > Operations des Service Providers und klicken Sie auf [Create operation]. Abbildung Webservice Provider / Operations anlegen 3. Jetzt fügt Orchestra Ihrem Service Provider eine neue Operation hinzu. Anschließend können Sie Ihre Service Operation definieren. Stand Seite 401 von 470 Version 4.4

402 Operation definieren Wenn Sie für einen Webservice Provider die Definition für eine Operation vornehmen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Provider Ihren Service Provider, für welchen Sie die Definition einer Operation vornehmen möchten. 2. Selektieren Sie im Bereich Service > Operations des Service Providers die entsprechende Operation. Variablen, welche an den Service Provider übergeben bzw. vom Service Provider zurückgeliefert werden Not defined = Nicht definiert Request = Asynchrone Anfrage (Keine Antwort) Request/Response = Synchrone Anfrage (Antwort erwartet); der häufigste Anwendungsfall Notify = Implementierung eines Requests als Callback Solicit/Response = Implementierung eines Callbacks Abbildung Webservice Provider / Operation definieren 3. Jetzt können Sie Ihre Operation definieren. 4. Wählen Sie das entsprechende [Exchange Pattern] und definieren Sie Ihre Paramater für den Dateneingang, bzw Datenausgang. Hinweis: Die Verwendung der Parameter ist analog zur Verwendung von Parametern in Channels. Möchten Sie hierzu näheres erfahren lesen Sie Kapitel 3.5 Channels. Stand Seite 402 von 470 Version 4.4

403 Webservice Provider / Implementierung Im Bereich Webservice Provider > Implementation wird die Definition des im Orchestra ausgeführten Mappings für eine Service Operation vorgenommen Implementierung anlegen Wenn Sie für Webservice Provider eine Implementierung vornehmen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Provider Ihren Service Provider, für welchen Sie eine Implementierung vornehmen möchten. 2. Öffnen Sie das Kontextmenü im Bereich Service > Operations, in dem Sie einen Rechtsklick auf die zu implementierende Operation des Service Providers ausführen. 3. Im geöffneten Kontextmenü klicken Sie jetzt auf [Create implementation]. Abbildung Webservice Provider / Implementierung anlegen 4. Jetzt fügt Orchestra Ihrem Service Provider eine neue [Implementation] hinzu. Anschließend können Sie Ihre Service Implementierung definieren. Stand Seite 403 von 470 Version 4.4

404 Implementierung definieren Wenn Sie für einen Webservice Provider die Definition für eine Implementation vornehmen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Provider Ihren Service Provider, für welchen Sie eine Implementierung definieren möchten. 2. Selektieren Sie im Bereich Service > Implementation des Service Providers die entsprechende Implementierung. Abbildung Webservice Provider / Implementierung definieren 3. Jetzt können Sie Ihre Implementierung definieren. Dazu klicken Sie auf die Schaltfläche [Edit mapping]. Nun erscheint das Fenster [configure service operation]. Technische Komponente welche für die Implementation verwendet werden soll (Channel, Mapping od. Prozessmodell) Abbildung Webservice Provider / Implementierung definieren Stand Seite 404 von 470 Version 4.4

405 4. Wählen Sie nun im Register [Technical Mapping] die gewünschte technische Komponente für die Implementierung aus. Hinweis: Ggf. können Sie hier noch auf den Registern Request mapping, und Response mapping noch Zuweisungen für Request/Response- Variablen vornehmen. Die Vorgehensweise hierfür ist analog zum Request/Response- Mapping im Prozessmodell. Für nähere Informationen lesen Sie Kapitel Prozess- und Request-Variablen. 5. Zum Abschließen Ihrer Änderungen klicken Sie nun auf [OK]. Abbildung Webservice Provider / Implementierung Stand Seite 405 von 470 Version 4.4

406 Webservice Provider / Binding Im Orchestra gibt es verschiedene Arten von Webservice Provider Bindings. Diese Arten sind: SoapBinding (WebService Implementierung via SOAP) OrchestraService (Implementierung mittels eines spezifischen Orchestra- Protokolls) NotSupportedBinding In den folgenden Unterkapiteln erfahren Sie wie Sie die verschiedenen Binding Arten verwenden können. Stand Seite 406 von 470 Version 4.4

407 SOAP Binding Die SOAP Bindung wird verwendet um einen Service Provider für externe Systeme verfügbar zu machen SOAP Binding anlegen Wenn Sie für Webservice Provider eine Bindung vornehmen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Provider Ihren Service Provider, für welchen Sie eine Bindung vornehmen möchten. 2. Öffnen Sie das Kontextmenü im Bereich Service > Binding, in dem Sie einen Rechtsklick auf Binding ausführen. 3. Im geöffneten Kontextmenü klicken Sie jetzt auf [Add binding]. Abbildung Webservice Provider / Bindung anlegen 4. Im folgenden Dialog müssen Sie die entsprechende Bindungsart [SoapBinding] auswählen. SoapBinding = WebService Implementierung via SOAP OrchestraService = Interne Verwendung im Orchestra (keine SOAP Kommunikation) NotSupportedBinding Abbildung Webservice Provider / Bindungsart wählen 5. Jetzt fügt Orchestra Ihrem Service Provider eine neue [Binding] hinzu. Anschließend können Sie Ihre Binding definieren. Stand Seite 407 von 470 Version 4.4

408 SOAP Binding definieren Wenn Sie für einen Webservice Provider die Definition für eine Binding vornehmen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Provider Ihren Service Provider, für welchen Sie eine Binding definieren möchten. 2. Selektieren Sie im Bereich Service > Binding des Service Providers die entsprechende Binding. Abbildung Webservice Provider / Implementierung definieren 3. Jetzt können Sie Ihre Implementation definieren. Dazu klicken Sie auf die Schaltfläche [Edit mapping]. Nun erscheint das Fenster [configure service operation]. Technische Komponente welche für die Implementation verwendet werden soll (Channel, Mapping od. Prozessmodell) Abbildung Webservice Provider / Implementierung definieren 4. Wählen Sie nun im Register [Technical Mapping] die gewünschte technische Komponente für die Implementation aus. Stand Seite 408 von 470 Version 4.4

409 Hinweis: Ggf. können Sie hier noch auf den Registern Request mapping, und Response mapping noch Zuweisungen für Request/Response- Variablen vornehmen. Die Vorgehensweise hierfür ist analog zum Request/Response- Mapping im Prozessmodell. Für nähere Informationen lesen Sie Kapitel Prozess- und Request-Variablen. 5. Zum Abschließen Ihrer Änderungen klicken Sie nun auf [OK]. Abbildung Webservice Provider / Implementierung Stand Seite 409 von 470 Version 4.4

410 Orchestra Binding Das Orchestra Binding wird verwendet um einen Service Provider für andere Orchestra Szenarien verfügbar zu machen Binding anlegen Wenn Sie für Webservice Provider eine Bindung vornehmen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Provider Ihren Service Provider, für welchen Sie eine Bindung vornehmen möchten. 2. Öffnen Sie das Kontextmenü im Bereich Service > Binding, in dem Sie einen Rechtsklick auf Binding ausführen. 3. Im geöffneten Kontextmenü klicken Sie jetzt auf [Add binding]. Abbildung Webservice Provider / Bindung anlegen 4. Im folgenden Dialog müssen Sie die entsprechende Bindungsart auswählen. SoapBinding = WebService Implementierung via SOAP OrchestraService = Interne Verwendung im Orchestra (keine SOAP Kommunikation) NotSupportedBinding Abbildung Webservice Provider / Bindungsart wählen 5. Jetzt fügt Orchestra Ihrem Service Provider eine neue [Binding] hinzu. Anschließend können Sie Ihre Binding definieren. Stand Seite 410 von 470 Version 4.4

411 Binding definieren / SOAP Binding Wenn Sie für einen Webservice Provider die Definition für eine Binding vornehmen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Provider Ihren Service Provider, für welchen Sie eine Bindung definieren möchten. 2. Selektieren Sie im Bereich Service > Binding des Service Providers die entsprechende Bindung. Abbildung Webservice Provider / Implementierung definieren 3. Jetzt können Sie Ihre Implementation definieren. Dazu klicken Sie auf die Schaltfläche [Edit mapping]. Nun erscheint das Fenster [configure service operation]. Technische Komponente welche für die Implementation verwendet werden soll (Channel, Mapping od. Prozessmodell) Abbildung Webservice Provider / Implementierung definieren Stand Seite 411 von 470 Version 4.4

412 4. Wählen Sie nun im Register [Technical Mapping] die gewünschte technische Komponente für die Implementation aus. Hinweis: Ggf. können Sie hier noch auf den Registern Request mapping, und Response mapping noch Zuweisungen für Request/Response- Variablen vornehmen. Die Vorgehensweise hierfür ist analog zum Request/Response- Mapping im Prozessmodell. Für nähere Informationen lesen Sie Kapitel Prozess- und Request-Variablen. 5. Zum Abschließen Ihrer Änderungen klicken Sie nun auf [OK]. Abbildung Webservice Provider / Implementierung Stand Seite 412 von 470 Version 4.4

413 Service Declaration In Orchestra haben Sie die Möglichkeit einen Webservice eines externen Systems oder eines Orchestra Service Providers aufzurufen. Eine Service-Declaration beschreibt eine Service-Schnittstelle Service Declaration Kontextmenü Im Bereich Service Declaration der Szenario Elemente befinden sich alle zu diesem Szenario gehörigen Service Declarations. Hier können Sie über einen Rechtsklick auf das Element ein Menü öffnen (siehe Abbildung). In diesem Menü erhalten Sie die Möglichkeit neue Service Declarations zu erstellen oder über ein WSDL-File zu importieren und die Service Declaration Elemente innerhalb der Baumstruktur zu gruppieren. Haben Sie einen Rechtsklick auf eine vorhandene Service Declaration ausgeführt, so erhalten Sie zusätzlich die Möglichkeit diese zu öffnen, die Eigenschaften des Elements zu bearbeiten oder es zu löschen. Abbildung Service Declarations (Szenario Element) Stand Seite 413 von 470 Version 4.4

414 Webservice Declaration anlegen In der Regel werden Sie die Beschreibung eines Webservices den Sie aufrufen möchten als WSDL importieren (siehe nächstes Kapitel). In Orchestra Sie haben aber auch die Möglichkeit, eine Webservice Declaration manuell anzulegen; dazu gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Service Declaration über einen Rechtsklick auf Service Declaration. 2. Wählen Sie den Eintrag [create]. 3. Im folgenden Dialogfenster [create new service declaration] geben Sie den Namen und ggf. eine Beschreibung für Ihre Service Declaration ein und klicken auf [next]. 4. Jetzt müssen Sie Ihre Service Spezifikation vornehmen. Service endpoint = Schnittstelle die Sie direkt aufrufen (der Normalfall) Subscriber endpoint = Schnittstelle die Sie indirekt als Callback aufrufen Abbildung Service-Implementation 5. Abschließend klicken Sie auf [finish] um Ihre Webservice Declaration anzulegen. Stand Seite 414 von 470 Version 4.4

415 Webservice Declaration importieren Orchestra ist unter anderem in der Lage WSDL (WebServiceDescriptionLanguage) Dateien zu importieren. Eine WSDL definiert die Schnittstelle eines Webservice. Wenn Sie einen Webservice Declaration in Orchestra importieren möchten, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Service Declaration über einen Rechtsklick auf Service Declaration. 2. Wählen Sie den Eintrag [import WSDL]. 3. Im folgenden Dialogfenster [Import web service description] geben Sie den den Dateipfad zu Ihrer WSDL an, oder suchen Sie diese über die Schaltfläche [ ] in Ihrem Dateisystem und klicken auf [next]. 4. Jetzt müssen Sie Ihre Service Selektierung vornehmen. Service endpoint = Schnittstelle die Sie direkt aufrufen (der Normalfall) Subscriber endpoint = Schnittstelle die Sie indirekt als Callback aufrufen Service = Auswahl eines in der WSDL definierten Services Use short names for message types = Namespaces werden durch Präfixe angegeben. Add namespaces to message type names = Namespaces werden ausgeschrieben Abbildung WSDL Service selection 5. Jetzt klicken Sie auf [next] um Ihre Webservice Declaration importieren zu lassen. Stand Seite 415 von 470 Version 4.4

416 Abbildung WSDL Import 6. Nun importiert Orchestra Ihre Service Declaration. Wenn der Import erfolgreich war, sehen Sie nach dem Importvorgang den Text [WSDL successfull imported]. 7. Zum Abschließen des Importvorgangs klicken Sie auf [finish]. Stand Seite 416 von 470 Version 4.4

417 Webservice Declaration aktualisieren Wenn Sie einen Webservice Declaration in Orchestra über eine WSDL importiert haben, können Sie diese auch aktualisieren, dazu gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Service Declaration über einen Rechtsklick auf die entsprechende Service Declaration. 2. Wählen Sie den Eintrag [update from WSDL]. 3. Im folgenden Dialogfenster [Import web service description] geben Sie den Dateipfad zu Ihrer WSDL an, oder suchen Sie diese über die Schaltfläche [ ] in Ihrem Dateisystem und klicken auf [next]. 4. Jetzt müssen Sie Ihre Service Selektierung vornehmen. Service = Auswahl eines in der WSDL definierten Services Service endpoint = Schnittstelle die Sie direkt aufrufen (der Normalfall) Subscriber endpoint = Schnittstelle die Sie indirekt als Callback aufrufen Use short names for message types = Namespaces werden durch Präfixe angegeben. Add namespaces to message type names = Namespaces werden ausgeschrieben Abbildung WSDL Service selection 5. Jetzt klicken Sie auf [next] um Ihre Webservice Declaration importieren zu lassen. Stand Seite 417 von 470 Version 4.4

418 Abbildung WSDL Import 6. Nun wird von Orchestra ein Update Ihrer Service Declaration vorgenommen. Wenn der Update erfolgreich war, sehen Sie nach dem Update den Text [WSDL successfull imported]. 7. Zum Abschließen des Updatevorgangs klicken Sie auf [finish]. Stand Seite 418 von 470 Version 4.4

419 Service Provider aus Webservice Declaration anlegen Wenn Sie einen Webservice Declaration in Orchestra angelegt haben, können Sie an Hand dieser Declaration auch eine entsprechenden Service Provider für diese Declaration extrahieren lassen. Dazu gehen Sie wie folgt vor: 1. Öffnen Sie das Kontextmenü im Bereich Scenario Elements > Service Declaration über einen Rechtsklick auf die entsprechende Service Declaration. 2. Wählen Sie den Eintrag [Create service]. 3. Im folgenden Dialogfenster [create new service provider] geben Sie den Namen und ggf. eine Beschreibung für Ihren Service Provider ein und klicken auf [next]. 4. Jetzt müssen Sie Ihre Service Spezifikation vornehmen. Functional service = Die Funktionalität des Web Services durch Abbildung auf ein Szenarioelement definiert (z.b. Aufruf eines Channels). Process service = Die Funktionalität des Web Services wird durch ein Prozessmodell definiert (für komplexere Interakationsmuster) Abbildung Service-Implementation Service implementation (Server) = Implementiert einen Webservice (Request/ Response Muster); Normalfall Service subscriber (Client) = Implementierung eines Callback-Interfaces; selten benutzt 5. Abschließend klicken Sie auf [finish] um Ihren Webservice Provider anzulegen. Stand Seite 419 von 470 Version 4.4

420 Webservice Declaration / Operationen Eine Service-Operation definiert eine Methode (bzw. ein Ereignis) welche(s) durch einen Service angeboten wird. Eine Operation wird durch einen Namen und einen Namespace exakt identifiziert. Hier werden unter anderem die Übergabeparameter durch das Orchestra-Typsystem definiert. Hinweis: Zwei Operationen sind gleich, wenn sie im Namen und Namespace übereinstimmen Operation anlegen Wenn Sie für eine Webservice Declaration Operationen anlegen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Declaration Ihre Service Declaration, für welche Sie eine Operation definieren möchten. 2. Öffnen Sie das Kontextmenü Service Declaration > Operations der Service Declaration und klicken Sie auf [Create operation]. Abbildung Webservice Declaration / Operations anlegen 3. Jetzt fügt Orchestra Ihrer Service Declaration eine neue Operation hinzu. Anschließend können Sie Ihre Service Operation definieren. Stand Seite 420 von 470 Version 4.4

421 Operation definieren Wenn Sie für eine Webservice Declaration die Definition für eine Operation vornehmen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Declaration Ihre Service Declaration, für welche Sie die Definition einer Operation vornehmen möchten. 2. Selektieren Sie im Bereich Service Declaration > Operations der Service Declaration die entsprechende Operation. Variablen, welche an die Operation des Services übergeben bzw. vom Service zurückgeliefert werden Not defined = Nicht definiert Request = Asynchrone Anfrage (Keine Antwort) Request/Response = Synchrone Anfrage (Antwort erwartet); der häufigste Anwendungsfall Notify = Implementierung eines Requests als Callback Solicit/Response = Implementierung eines Callbacks Abbildung Webservice Provider / Operation definieren 3. Jetzt können Sie Ihre Operation definieren. 4. Wählen Sie das entsprechende [Exchange Pattern] und definieren Sie Ihre Paramater für den Dateneingang, bzw Datenausgang. Hinweis: Die Verwendung der Parameter ist analog zur Verwendung von Parametern in Channels. Möchten Sie hierzu näheres erfahren lesen Sie Kapitel 3.5 Channels. Stand Seite 421 von 470 Version 4.4

422 Webservice Declaration / Binding Im Orchestra gibt es verschiedene Arten von Webservice Declaration Bindings. Diese Arten sind: SoapBinding (WebService Implementierung via SOAP) OrchestraService (Interne Verwendung im Orchestra) NotSupportedBinding In den folgenden Unterkapiteln erfahren Sie, wie Sie die verschiedenen Bindungsarten verwenden können. Stand Seite 422 von 470 Version 4.4

423 SOAP Binding Das SOAP Bindung wird verwendet um einen Service für externe Systeme verfügbar zu machen SOAP Binding anlegen Wenn Sie für Webservice Declarations eine Bindung vornehmen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Declaration Ihre Service Declaration, für welchen Sie eine Bindung vornehmen möchten. 2. Öffnen Sie das Kontextmenü im Bereich Service > Binding, in dem Sie einen Rechtsklick auf Binding ausführen. 3. Im geöffneten Kontextmenü klicken Sie jetzt auf [Add binding]. Abbildung Webservice Declaration / Bindung anlegen 4. Im folgenden Dialog müssen Sie die entsprechende Bindungsart [SoapBinding] auswählen. SoapBinding = WebService Implementierung via SOAP OrchestraService = Interne Verwendung im Orchestra (keine SOAP Kommunikation) NotSupportedBinding Abbildung Webservice Declaration / Bindungsart wählen 5. Jetzt fügt Orchestra Ihrer Service Declaration eine neue [Binding] hinzu. Anschließend können Sie Ihre Binding definieren. Stand Seite 423 von 470 Version 4.4

424 SOAP Binding / Ports Ein Webservice benötigt einen entsprechenden Kanal, über welchen er von außen angesprochen werden kann. Ein solcher Kanal wird im Webservice über einen Port zur Verfügung gestellt. Er definiert unter anderem die Security Settings, die Protokoll und SOAP Einstellungen. Wenn Sie für eine Webservice Declaration einen Port für eine Bindung anlegen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Declaration Ihre Service Declaration, für welche Sie einen Port für eine Bindung definieren möchten. 2. Selektieren Sie im Bereich ServiceDeclaration > Binding der Service Declaration die entsprechende Bindung. Abbildung Webservice Declaration / SOAP Bindung / Ports 3. Öffnen Sie nun das Kontextmenü für den Eintrag [Ports] und klicken Sie anschließend auf [Add port]. 4. Nun wird für Ihre SOAP Bindung ein neuer Port angelegt. Stand Seite 424 von 470 Version 4.4

425 Orchestra Binding Das Orchestra Binding wird verwendet um einen Orchestra Service Provider für andere Orchestra Instanzen verfügbar zu machen Binding anlegen Wenn Sie für Webservice Provider eine Bindung vornehmen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Provider Ihren Service Provider, für welchen Sie eine Bindung vornehmen möchten. 2. Öffnen Sie das Kontextmenü im Bereich Service > Binding, in dem Sie einen Rechtsklick auf Binding ausführen. 3. Im geöffneten Kontextmenü klicken Sie jetzt auf [Add binding]. Abbildung Webservice Provider / Bindung anlegen 4. Im folgenden Dialog müssen Sie die entsprechende Bindungsart auswählen. SoapBinding = WebService Implementierung via SOAP OrchestraService = Interne Verwendung im Orchestra (keine SOAP Kommunikation) NotSupportedBinding Abbildung Webservice Provider / Bindungsart wählen 5. Jetzt fügt Orchestra Ihrem Service Provider eine neue [Binding] hinzu. Anschließend können Sie Ihre Binding definieren. Stand Seite 425 von 470 Version 4.4

426 Binding definieren / Orchestra Binding Wenn Sie für einen Webservice Provider die Definition für eine Binding vornehmen möchten, gehen Sie wie folgt vor: 1. Öffnen Sie im Bereich Scenario Elements > Service Provider Ihren Service Provider, für welchen Sie eine Binding definieren möchten. 2. Selektieren Sie im Bereich Service > Binding des Service Providers die entsprechende Binding. Abbildung Webservice Provider / Implementierung definieren 3. Jetzt können Sie Ihre Implementation definieren. Dazu klicken Sie auf die Schaltfläche [Edit mapping]. Nun erscheint das Fenster [configure service operation]. Technische Komponente welche für die Implementation verwendet werden soll (Channel, Mapping od. Prozessmodell) Abbildung Webservice Provider / Implementierung definieren Stand Seite 426 von 470 Version 4.4

427 4. Wählen Sie nun im Register [Technical Mapping] die gewünschte technische Komponente für die Implementation aus. Hinweis: Ggf. können Sie hier noch auf den Registern Request mapping, und Response mapping noch Zuweisungen für Request/Response- Variablen vornehmen. Die Vorgehensweise hierfür ist analog zum Request/Response- Mapping im Prozessmodell. Für nähere Informationen lesen Sie Kapitel Prozess- und Request-Variablen. 5. Zum Abschließen Ihrer Änderungen klicken Sie nun auf [OK]. Abbildung Webservice Provider / Implementierung Stand Seite 427 von 470 Version 4.4

428 4 Security Settings Unter File -> Edit Security Settings finden Sie die Benutzer, Rollen und Gruppenverwaltung im Orchestra Designer. Abbildung 4-1 Security Settings Stand Seite 428 von 470 Version 4.4

429 4.1 Credentials / User In den folgenden Unterkapiteln erhalten Sie alle Informationen, welche Sie für den Umgang mit Benutzern, Authentifizierung, Rollen und Gruppen in Orchestra benötigen Benutzer anlegen Zum Anlegen eines Benutzers gehen Sie wie folgt vor: 1. Öffnen Sie das Kontext Menü [File] und klicken dort auf den Menüeintrag [edit security settings]. 2. Es öffnet sich das Fenster [Security settings]. Klicken Sie im Register [Credentials] auf die Schaltfläche [new]. 3. Nun geben Sie im folgenden Dialog [add new user] einen Usernamen ein und klicken abschließend auf [OK]. 4. Jetzt können Sie Ihren neuangelegten Benutzer bearbeiten. Abbildung 4-2 Credentials User anlegen Stand Seite 429 von 470 Version 4.4

430 4.1.2 Zuweisung von Rollen Nachdem Sie sowohl den Benutzer als auch die benötigte Rolle angelegt haben, können Sie nun die Zuweisung der Rolle zu dem entsprechenden Benutzer vornehmen. Hinweis: Wie Sie einen Benutzer anlegen, erfahren Sie in Kapitel Benutzer anlegen..näheres zum Anlegen von Rollen lesen Sie in Kapitel Rolle anlegen. Um einem Benutzer eine Rolle zuzuweisen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontext Menü [File] und klicken dort auf den Menüeintrag [edit security settings]. 2. Es öffnet sich das Fenster [Security settings]. Wählen Sie im Register [Credentials] den User aus, welchem Sie eine Rolle zuweisen möchten. 3. Nun wählen Sie im Register auf der rechten Seite den Reiter [Roles] aus. 4. Setzen Sie nun in der Auflistung der Rollen ein Häkchen bei der benötigten Rolle und klicken abschließend auf die Schaltfläche [Save]. Abbildung 4-3 Credentials Zuweisung einer Rolle Stand Seite 430 von 470 Version 4.4

431 4.1.3 Zuweisung von Gruppen Nachdem Sie sowohl den Benutzer, als auch die benötigte Gruppe angelegt haben, können Sie nun die Zuweisung der Gruppe zu dem entsprechenden Benutzer vornehmen. Hinweis: Wie Sie einen Benutzer anlegen, erfahren Sie in Kapitel Benutzer anlegen..näheres zum Anlegen von Gruppen lesen Sie in Kapitel Gruppe anlegen. Um einem Benutzer eine Gruppe zuzuweisen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontext Menü [File] und klicken dort auf den Menüeintrag [edit security settings]. 2. Es öffnet sich das Fenster [Security settings]. Wählen Sie im Register [Credentials] den User aus, welchem Sie eine Gruppe zuweisen möchten. 3. Nun wählen Sie im Register auf der rechten Seite den Reiter [Groups] aus. 4. Setzen Sie nun in der Auflistung der Gruppen ein Häkchen bei der benötigten Gruppe und klicken abschließend auf die Schaltfläche [Save]. Abbildung 4-4 Credentials Zuweisung einer Gruppe Stand Seite 431 von 470 Version 4.4

432 4.1.4 Benutzer-Authentifizierung In Orchestra können Sie in der Benutzerverwaltung verschieden Methoden für die Authentifizierung von Benutzern wählen. Hinweis: Alle Zertifikate, welche von Orchestra für die Kommunikation mit entfernten Partnern verwendet, werden auf Szenariobasis verwaltet. Hierbei können für jeden Kommunikationspartner sowohl ein öffentliches als auch ein Private/Public-Keypair abgespeichert werden Serverzertifikate Alle eingehenden HTTP-Verbindungen (Orchestra in der Rolle als Server), welche auf Basis von HTTPS arbeiten, verwenden ein zentrales public/private-keypair. Dieses wird in der Basiskonfiguration von Orchestra festgelegt. Hinweis: Nähere Informationen zur Implementierung von Webservices in Orchestra erhalten Sie in Kapitel 3.11 Services. Die Einstellung für die Verwendung des Server-Zertifikates können Sie in der Datei orchestra_configuration.xml vorgenommen. Dieses finden Sie im Verzeichnis \WEB-INF\classes\config\.. Ihrer Orchestra-Applikation. Abbildung 4-5 SSLSettings orchestra_configuration.xml Stand Seite 432 von 470 Version 4.4

433 User / Passwort Diese Methode wird verwendet, wenn die Authentifizierung eines Benutzers an einem entfernten System über die einfache Anmeldung via Benutzername und Passwort vorgenommen wird. Hinweis: Wie Sie einen Benutzer anlegen, erfahren Sie in Kapitel Benutzer anlegen. Um für einen User die Authentifizierungsmethode User/Passwort anzugeben, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontext Menü [File] und klicken dort auf den Menüeintrag [edit security settings]. 2. Es öffnet sich das Fenster [Security settings]. Wählen Sie im Register [Credentials] den User aus, für welchen Sie die Authentifizierungsmethode einstellen möchten. 3. Nun wählen Sie im Register auf der rechten Seite den Reiter [Authentication] aus. 4. Klicken Sie nun die Schaltfläche [ ] für den Eintrag [username/password]. 5. Es öffnet sich ein Dialogfenster mit dem Titel [Password]. Hier geben Sie nun das entsprechende Passwort ein und klicken zum Speichern auf [OK]. 6. Nun wird der Eintrag [username/password] mit einem Häkchen versehen. Zum Abschließen Ihrer Änderungen klicken Sie auf [Save]. Abbildung 4-6 Authentication Username/Password Stand Seite 433 von 470 Version 4.4

434 Public Key Zertifizierung Diese Methode wird verwendet, wenn die Authentifizierung eines Benutzers an einem entfernten System über die Public Key Zertifizierung erfolgt. Diese Art der Zertifizierung benötigen Sie beispielsweise im PGP-Channel. Hinweis: Wie Sie einen Benutzer anlegen, erfahren Sie in Kapitel Benutzer anlegen. Benötigen Sie Information wie Sie Zertifikate erstellen können, so lesen Sie hierzu Kapitel 7.1 Zertifikat generieren. Um für einen User die Authentifizierungsmethode Public Key Zertifizierung anzugeben, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontext Menü [File] und klicken dort auf den Menüeintrag [edit security settings]. 2. Es öffnet sich das Fenster [Security settings]. Wählen Sie im Register [Credentials] den User aus, für welchen Sie die Authentifizierungsmethode einstellen möchten. 3. Nun wählen Sie im Register auf der rechten Seite den Reiter [Authentication] aus. 4. Klicken Sie nun die Schaltfläche [ ] für den Eintrag [public key certificate]. 5. Es öffnet sich ein Dialogfenster mit dem Titel [Assign ssh certificate]. Hier klicken Sie nun auf die Schaltfläche [import certificate]. 6. Suchen Sie anschließend das benötigte X509-Zertifikat in Ihrem Dateisystem und importieren dieses über die Schaltfläche [Öffnen]. 7. Das gewählte Zertifikat wird nun importiert. Zum Abschließen klicken Sie jetzt auf [OK]. Abbildung 4-7 Authentication public key certificate Stand Seite 434 von 470 Version 4.4

435 Secure Shell Zertifizierung Diese Methode wird verwendet, wenn die Authentifizierung eines Benutzers an einem entfernten System über die SSH Zertifizierung erfolgt. Hinweis: Wie Sie einen Benutzer anlegen, erfahren Sie in Kapitel Benutzer anlegen. Benötigen Sie Information wie Sie Zertifikate erstellen können, so lesen Sie hierzu Kapitel 7.1 Zertifikat generieren. Um für einen User die Authentifizierungsmethode Secure Shell Zertifizierung anzugeben, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontext Menü [File] und klicken dort auf den Menüeintrag [edit security settings]. 2. Es öffnet sich das Fenster [Security settings]. Wählen Sie im Register [Credentials] den User aus, für welchen Sie die Authentifizierungsmethode einstellen möchten. 3. Nun wählen Sie im Register auf der rechten Seite den Reiter [Authentication] aus. 4. Klicken Sie nun die Schaltfläche [ ] für den Eintrag [Secure Shell certificate]. 5. Es öffnet sich ein Dialogfenster mit dem Titel [Enter password]. Hier klicken Sie nun auf die Schaltfläche [import certificate]. 6. Suchen Sie anschließend das benötigte SSH Zertifikat in Ihrem Dateisystem und importieren dieses über die Schaltfläche [Öffnen]. 7. Das gewählte Zertifikat wird nun importiert. Geben Sie nun noch das entsprechende Passwort ein und klicken zum Abschließen auf [OK]. Abbildung 4-8 Authentication Secure Shell certificate Stand Seite 435 von 470 Version 4.4

436 Public/Private Key Pair in PKCS 12 Diese Methode wird verwendet, wenn die Authentifizierung eines Benutzers an einem entfernten System über die Public/Private Key Zertifizierung erfolgt. Hinweis: Wie Sie einen Benutzer anlegen, erfahren Sie in Kapitel Benutzer anlegen. Benötigen Sie Information wie Sie Zertifikate erstellen können, so lesen Sie hierzu Kapitel 7.1 Zertifikat generieren. Um für einen User die Authentifizierungsmethode Public/Private Key Zertifizierung anzugeben, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontext Menü [File] und klicken dort auf den Menüeintrag [edit security settings]. 2. Es öffnet sich das Fenster [Security settings]. Wählen Sie im Register [Credentials] den User aus, für den Sie die Authentifizierungsmethode einstellen möchten. 3. Nun wählen Sie im Register auf der rechten Seite den Reiter [Authentication] aus. 4. Klicken Sie nun die Schaltfläche [ ] für den Eintrag [public key certificate]. 5. Es öffnet sich ein Dialogfenster mit dem Titel [Enter password]. Hier klicken Sie nun auf die Schaltfläche [import certificate]. 6. Suchen Sie anschließend das benötigte PKCS12 Zertifikat in Ihrem Dateisystem und importieren dieses über die Schaltfläche [Öffnen]. 7. Das gewählte Zertifikat wird nun importiert. Geben Sie nun noch die entsprechenden Passwörter ein und klicken zum Abschließen auf [OK]. Abbildung 4-9 Authentication public/private key certificate Stand Seite 436 von 470 Version 4.4

437 4.2 Gruppen Gruppe anlegen Gruppen sind Zusammenfassungen von Rollen. Zum Anlegen einer Gruppe gehen Sie wie folgt vor: 1. Öffnen Sie das Kontext Menü [File] und klicken dort auf den Menüeintrag [edit security settings]. 2. Es öffnet sich das Fenster [Security settings]. Klicken Sie im Register [Groups] auf die Schaltfläche [new]. 3. Nun geben Sie im folgenden Dialog [add a new group] einen Gruppennamen ein und klicken abschließend auf [OK]. 4. Jetzt können Sie Ihre neuangelegte Gruppe bearbeiten. Abbildung 4-10 Credentials User anlegen Stand Seite 437 von 470 Version 4.4

438 4.2.2 Zuweisung von Rollen Nachdem Sie sowohl die Gruppe als auch die benötigte Rolle angelegt haben, können Sie nun die Zuweisung der Rolle zu der entsprechenden Gruppe vornehmen. Hinweis: Wie Sie eine Gruppe anlegen, erfahren Sie in Kapitel Gruppe anlegen..näheres zum Anlegen von Rollen lesen Sie in Kapitel Rolle anlegen. Um einer Gruppe eine Rolle zuzuweisen, gehen Sie wie folgt vor: 1. Öffnen Sie das Kontext Menü [File] und klicken dort auf den Menüeintrag [edit security settings]. 2. Es öffnet sich das Fenster [Security settings]. Wählen Sie im Register [Groups] diw Gruppe aus, welcher Sie eine Rolle zuweisen möchten. 3. Setzen Sie nun in der Auflistung der Rollen im Bereich [Permission] ein Häkchen bei der benötigten Rolle und klicken abschließend auf die Schaltfläche [Save]. Abbildung 4-11 Credentials Zuweisung einer Rolle Stand Seite 438 von 470 Version 4.4

439 4.3 Rollen Rolle anlegen Rollen benötigt man zur Anmeldung von Benutzern an Orchestra-Webservices oder allgemein für die Anmeldung von Benutzern über http an Orchestra. Eine Rolle ist dabei ein Container der eine Menge von Benutzern zusammenfasst. Zum Anlegen einer Rolle gehen Sie wie folgt vor: 1. Öffnen Sie das Kontext Menü [File] und klicken dort auf den Menüeintrag [edit security settings]. 2. Es öffnet sich das Fenster [Security settings]. Klicken Sie im Register [Credentials] auf die Schaltfläche [new]. 3. Nun geben Sie im folgenden Dialog [add new role] einen Rollennamen ein und klicken abschließend auf [OK]. 4. Jetzt können Sie Ihre neuangelegte Rolle bearbeiten. Abbildung 4-12 Credentials User anlegen Stand Seite 439 von 470 Version 4.4

440 5 Deployment Wenn Sie die Erstellung Ihres Szenarios abgeschlossen haben müssen Sie nur noch eine.psc Datei erstellen lassen mit der das Szenario auf der Monitoring Oberfläche deployt wird. Hierzu wählen Sie unter File oder direkt den Button aus. Anschließend wählen Sie eine Stelle im Filesystem aus in der Orchestra die.psc Datei generieren soll. Stand Seite 440 von 470 Version 4.4

441 6 DICOM Digital Imaging Communications in Medicine DICOM dient dazu, verschiedene medizinische Dokumente oder Bilder von Maschinen (zb. Röntgenaufnahmen) für den Austausch und zur Speicherung zu standardisieren. Für die Geräte werden sogenannte Worklists (Aufgabenlisten) erstellt, wobei verschiedene relvante Daten und Informationen ausgelesen und angezeigt werden. Im Normalfall sind das Listen der anstehenden Untersuchungen mit den dazugehörigen Patientendaten. DICOM identifiziert jedes Informationsobjekt durch eine UID (Unique Identifier), die weltweit gültig und hierarchisch aufgebaut ist. 6.1 Channel Um eingehende Nachrichten empfangen zu können, wird ein Inbound-Channel benötigt, welcher mit einem Polling-Intervall von 5 Minuten nach neuen Daten sucht. Es werden die Server-Adresse, der Name der Worklist und ein Environment Entrie benötigt, welches meine eigene Adreses darstellt. Um zu verhindern, dass veraltete Informationen gespeichert werden, kann die Option Delete-Job aktiviert werden. Durch Auswahl des Schedule Procedure Start Date können Sie selbst bestimmen, nach welchem Zeitrum die veralteten Daten gelöscht werden sollen. Auswahl des Environment Entrie Delete-Job: Automatische Eliminierung veralteter Listen Abbildung 6-1 DICOM Channel Stand Seite 441 von 470 Version 4.4

442 6.2 Message Type Im Message Type werden alle für die Untersuchung und für den Patienten relevanten Daten erfasst. Hierbei ist zu beachten, dass es einige Pflichtangaben mit der Kardinalität 1:1 gibt. ScheduledProcedureStepSequence RequestedProcedureID StudyInstanceUID PatientName PatientID UID: Weltweit einmalige und anerkannte Identifizierung Abbildung 6-2 DICOM Message Type Stand Seite 442 von 470 Version 4.4

443 6.3 Message Mapping Im Message Mapping wird in zwei Ebenen dargestellt, wie die Quellstruktur auf die Zielstruktur abgebildet wird. In Abbildung 6-3 ist zu sehen, wie die UID durch einen Methodenaufruf zusammengestellt und in die Zielstruktur eingefügt wird. Erstellung und Vergabe einer UID. Abbildung 6-3 DICOM Message Mapping Stand Seite 443 von 470 Version 4.4

444 In Abbildung 6-4 ist ersichtlich, wie einzelne Informationen in ein anderes Format geparst und in die Zielstruktur eingefügt werden. Abbildung 6-4 DICOM Message Mapping Process Model Im Process Model werden nun die vorhandenen Komponenten zusammengefügt und der vollständige DICOM-Ablauf dargestellt. Abbildung 6-5 DICOM Process Model Stand Seite 444 von 470 Version 4.4

445 7 Anhang 7.1 Zertifikat generieren Zum Signieren von Applikationen sowie von Applets und zur Vergabe der Zugriffsrechte und -beschränkungen stellt Sun in den Java-SDK Standardinstallationen die Dienstprogramme keytool, jarsigner und policytool bereit. Das Programm keytool erzeugt öffentliche und private Schlüssel und legt sie in einer passwortgeschützten und verschlüsselten Datei ab. Die Datei hat standardmäßig den Namen.keystore und befindet sich im Benutzerverzeichnis des Anwenders. Mit dem Programm keytool lassen sich neben der Schlüsselgenerierung auch Zertifikate importieren, Zertifikatsanforderungen ausstellen und Schlüssel als vertrauenswürdig festlegen. Möchten wir einen Schlüssel erstellen, rufen wir das Programm keytool mit der Option - genkey auf. Daneben gibt die Option -alias einen Namen für den Schlüsselinhaber an. Nehmen wir an, dass das JDK-Programm keytool (zum Beispiel im Verzeichnis C:\Programme\Java\ jdk1.6.0\bin\) im Suchpfad eingebunden ist. Anschließend fragt keytool nach dem Passwort des Schlüsselspeichers und erfragt weitere Angaben zum Inhaber. Mit diesen Informationen erzeugt das Programm ein Schlüsselpaar mit einem selbstzertifizierenden Zertifikat. Bei diesem speziellen Zertifikat sind Aussteller und Inhaber identisch. Generate PKCS12-Key: keytool -genkey -alias ZERTIFIKAT -validity keystore zertifikat.keystore -storetype pkcs12 keyalg Key-Pair-Generierungs-Algorithmus (DSA oder RSA) (für SSL: RSA) alias Name des Keystore-Eintrags (für Tomcat: tomcat) keypass Passwort für das Schlüsselpaar storepass Passwort für den gesamten Keystore dname Distinguished Name (X.500) CN Common Name (Vor- und Nachname) OU Organization Unit (Abteilung) O Organization Name (Firmenname) L Locality Name (Ortsname, Stadt) S State Name (Bundesstaat) C Country (Staat) Export PKCS12 Public-Key: keytool -exportcert -keystore zertifikat.keystore -alias ZERTIFIKAT -storetype pkcs12 -file zertifikat.cer Stand Seite 445 von 470 Version 4.4

446 7.2 SSL-Handshake Das SSL-Protokoll verwendet für die Verschlüsselung eine Kombination aus öffentlichen und symmetrischen Schlüsseln. Im Vergleich zum öffentlichen Schlüssel ist die Verschlüsselung mit symmetrischen Schlüsseln deutlich schneller. Allerdings erlaubt die Verschlüsselung mit öffentlichen Schlüsseln eine bessere Authentifizierung. Eine SSL-Sitzung beginnt immer mit dem Austausch von Meldungen, dem sogenannten SSL-Handshake. Der Handshake ermöglicht dem Server, sich unter Verwendung eines öffentlichen Schlüssels gegenüber dem Client zu authentifizieren. Anschließend können Client und Server zusammen symmetrische Schlüssel erstellen, die in der sich anschließenden Sitzung für eine schnelle Verschlüsselung, Entschlüsselung und Manipulationserkennung verwendet werden können. Optional bietet der Handshake dem Client die Möglichkeit, sich dem Server gegenüber zu authentifizieren. Der Handshake selbst kann in vier Phasen unterteilt werden: 1. Der Client schickt zum Server ein client_hello, und der Server antwortet dem Client mit einem server_hello. Die Parameter der Nachrichten sind: die Version (die höchste vom Client unterstützte SSL-Protokoll-Version) eine 32 Byte Zufallsinformation (4 Byte Timestamp + 28 Byte lange Zufallszahl), die später verwendet wird, um das pre-master-secret zu bilden (sie schützt damit vor Replay-Attacken) eine Session-ID die zu verwendende Cipher Suite (Algorithmen für Schlüsselaustausch, Verschlüsselung und Authentifizierung) ab TLS 1.2 optional den gewünschten FQDN für die Unterstützung von Server Name Indication 2. Diese Phase darf nur bei anonymem Key Agreement weggelassen werden. Der Server identifiziert sich gegenüber dem Client. Hier wird auch das X.509v3-Zertifikat zum Client übermittelt. Außerdem kann der Server ein CertificateRequest an den Client schicken. 3. Hier identifiziert sich der Client gegenüber dem Server. Besitzt der Client kein Zertifikat, antwortete er früher mit einem NoCertificateAlert. TLS-konforme Systeme verwenden diesen Alert jedoch nicht. Der Client versucht außerdem, das Zertifikat, das er vom Server erhalten hat, zu verifizieren (bei Misserfolg wird die Verbindung abgebrochen). Dieses Zertifikat enthält den öffentlichen Schlüssel des Servers. Wird die Cipher-Suite RSA verwendet, so wird das vom Client generierte pre-master-secret mit diesem öffentlichen Schlüssel verschlüsselt und kann vom Server mit dem nur ihm bekannten privaten Schlüssel wieder entschlüsselt werden. Alternativ kann hier auch das Diffie-Hellman- Verfahren verwendet werden, um ein gemeinsames pre-master-secret zu generieren. Diese Phase ist optional. Stand Seite 446 von 470 Version 4.4

447 4. Diese Phase schließt den Handshake ab. Aus dem vorhandenen pre-master-secret kann das Master Secret abgeleitet werden und aus diesem der einmalige Sitzungsschlüssel (englisch session key ). Das ist ein einmalig benutzbarer symmetrischer Schlüssel, der während der Verbindung zum Ver- und Entschlüsseln der Daten genutzt wird. Die Nachrichten, die die Kommunikationspartner sich nun gegenseitig zusenden, werden nur noch verschlüsselt übertragen. Abbildung 7-1 SSL-Handshake Stand Seite 447 von 470 Version 4.4

448 7.3 Java Cryptography Extension Neben diesen benutzerdefinierten Rechteregeln gibt es vom System vergebene Policy- Dateien. Sie werden von Java standardmäßig in der Datei java.policy im Unterverzeichnis lib/security (etwa C:\Programme\Java\jre1.6.0\lib\security, aber auch jdk) der Java-Installation gespeichert. Diese Rechtedatei definiert damit die»standardberechtigungen«. Notwendig für zertifikatsbasierten Austausch von Daten (Orchestra als Server) sind die aktuellen JCE-Dateien. Entsprechende Dateien in folgendes Java-Verzeichnis kopieren und vorhandene Dateien ersetzen: Für Java-Version 6+: Für Java-Version 1.5: jce_policy-6.zip jce_policy-1_5_0.zip Stand Seite 448 von 470 Version 4.4

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

eadmin Manual Universitätsstraße 3 56070 Koblenz Deutschland

eadmin Manual Universitätsstraße 3 56070 Koblenz Deutschland DOKUMENT: TYP: ERSTELLT VON: Manual nova ratio AG Universitätsstraße 3 56070 Koblenz Deutschland VERSION: STAND: 9.x 23. September 2015 Inhaltsverzeichnis 1 2 2.1 2.2 2.3 3 3.1 3.2 3.3 4 4.1 4.2 4.3 4.4

Mehr

Alerts für Microsoft CRM 4.0

Alerts für Microsoft CRM 4.0 Alerts für Microsoft CRM 4.0 Benutzerhandbuch Der Inhalt des Dokuments ist Änderungen vorbehalten. Microsoft und Microsoft CRM sind registrierte Markenzeichen von Microsoft Inc. Alle weiteren erwähnten

Mehr

Ant in Eclipse Starthilfe

Ant in Eclipse Starthilfe IN DIESER KURSEINHEIT Einleitung o Um was geht's eigentlich? Hello World o Das Ant Skript Mehrere Targets und Properties o Hello World Ausgabe Ant Launch Configurations o Definition o Modifikation o Nutzung

Mehr

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Dokumentation zum Projekt Mail-Adapter in SAP PI 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Inhalt 1. Einleitung... 2 2. Vorgehen... 3 1. Datentyp für die Mail einrichten... 3 2. Message Typen

Mehr

Attribut Kürzel Beispiele Bemerkungen Country Name C DE bitte Großbuchstaben State or Province Name ST Nordrhein-Westfalen

Attribut Kürzel Beispiele Bemerkungen Country Name C DE bitte Großbuchstaben State or Province Name ST Nordrhein-Westfalen Erzeugen eines externen Schlüssels außerhalb des Browsers für Nutzerzertifikate Sollten bei Ihnen Abhängigkeiten zwischen ihrem privaten Schlüsselteil und verwendeter Hardware und oder Software bestehen,

Mehr

17.2 MS-Access Projekte

17.2 MS-Access Projekte 964 Von MS-Access 2000 zum SQL-Server 17.2 MS-Access Projekte MS-Access-Projekte, die die Dateiendung adp besitzen, werden als Front-End-Anwendung verwendet. Für die Back-End-Seite gibt es mehrere Möglichkeiten.

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Teamcenter Rapid Start (Rich Client)

Teamcenter Rapid Start (Rich Client) 15.06.15-1 - E:\Stefan\CAD\Teamcenter\TCRS10\Anleitungen\TeamcenterRich.doc Teamcenter Rapid Start (Rich Client) 1. Starten und Beenden - Teamcenter starten (Desktop-Verknüpfung): - Anmeldeinformationen

Mehr

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01 Installation, Konfiguration, Verwendung Version 1.01 Seite 2 von 20 OPC-Server VM OPC Revision Version Erstellt am Versionsnummer Bemerkung 1.00 26.07.2013 Erstellung 1.01 05.11.2013 2.14 - Reiter der

Mehr

Handbuch TweetMeetsMage

Handbuch TweetMeetsMage Handbuch TweetMeetsMage für Version 0.1.0 Handbuch Version 0.1 Zuletzt geändert 21.01.2012 Inhaltsverzeichnis 1 Einleitung... 3 1.1 Voraussetzungen... 3 1.2 Funktionsübersicht... 3 2 Installation... 4

Mehr

XI JDBC/IDOC Szenario

XI JDBC/IDOC Szenario XI JDBC/IDOC Szenario Implementierung eines Szenarios zum Verteilen von Kreditorenstammdaten mit dem JDBC-Adapter und dem IDOC- Adapter Agenda Verteilungsszenario Eigenschaften JDBC Adapter Eigenschaften

Mehr

Installation Anleitung für JTheseus und MS SQL Server 2000

Installation Anleitung für JTheseus und MS SQL Server 2000 Installation Anleitung für JTheseus und MS SQL Server 2000 Inhaltsverzeichnis 1 Installation der Datenbank 3 1.1 Erstellen der Datenbank 3 1.2 Tabellen und Minimal Daten einlesen 4 1.3 Benutzer JTheseus

Mehr

Anleitung für EndNote Web

Anleitung für EndNote Web Anleitung für EndNote Web www.endnoteweb.com Als Literaturverwaltungsprogramm ermöglicht EndNote Web die Erstellung einer eigenen Datenbank für Seminar- bzw. Diplomarbeiten. MS Word kann auf die angelegte

Mehr

MGE Datenanbindung in GeoMedia

MGE Datenanbindung in GeoMedia TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00

Mehr

KURZANLEITUNG CLOUD BLOCK STORAGE

KURZANLEITUNG CLOUD BLOCK STORAGE KURZANLEITUNG CLOUD BLOCK STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung......Seite 03 2. Anlegen eines dauerhaften Block Storage...Seite 04 3. Hinzufügen von Block Storage

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

RÖK Typo3 Dokumentation

RÖK Typo3 Dokumentation 2012 RÖK Typo3 Dokumentation Redakteur Sparten Eine Hilfe für den Einstieg in Typo3. Innpuls Werbeagentur GmbH 01.01.2012 2 RÖK Typo3 Dokumentation Inhalt 1) Was ist Typo3... 3 2) Typo3 aufrufen und Anmelden...

Mehr

KONFIGURATION DES MOZILLA E-MAIL CLIENT

KONFIGURATION DES MOZILLA E-MAIL CLIENT KONFIGURATION DES MOZILLA E-MAIL CLIENT Copyright 2004 by 2 ways - media & design, Inh. Lars Plessmann, Paulinenstr. 12, D-70178 Stuttgart. http://www.2-ways.de Lars.Plessmann@2-ways.de Der Mozilla Email

Mehr

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht Adressen in eigene Solution combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager / address manager Integration der Ansicht "Adressen" in eigene Solution Integration der Ansicht "Adressen" in

Mehr

Aufgabenstellung und Zielsetzung

Aufgabenstellung und Zielsetzung Aufgabenstellung und Zielsetzung In diesem Szenario werden Sie eine Bestellung, vorliegend im XML-Format, über einen Web-Client per HTTP zum XI- System senden. Dort wird die XML-Datei mittels eines HTTP-Interfaces

Mehr

ERP Cloud Tutorial. E-Commerce ECM ERP SFA EDI. Backup. Klassifikationen erfassen und importieren. www.comarch-cloud.de

ERP Cloud Tutorial. E-Commerce ECM ERP SFA EDI. Backup. Klassifikationen erfassen und importieren. www.comarch-cloud.de ERP Cloud SFA ECM Backup E-Commerce ERP EDI Klassifikationen erfassen und importieren www.comarch-cloud.de Inhaltsverzeichnis 1 Ziel des s 3 2 Kurze Einführung: Was sind Klassifikationen? 3 3 Klassifikationen

Mehr

Windows 7 - Microsoft Dienste Services

Windows 7 - Microsoft Dienste Services Mit dieser Anleitung möchte ich gerne etwas gezielter auf den Befehl sc.exe eingehen. Windows Dienste automatisieren etwaige Abläufe stellen Services wie z.b. Treiber und Anwendungen bereit. Diese Dienste

Mehr

PeDaS Personal Data Safe. - Bedienungsanleitung -

PeDaS Personal Data Safe. - Bedienungsanleitung - PeDaS Personal Data Safe - Bedienungsanleitung - PeDaS Bedienungsanleitung v1.0 1/12 OWITA GmbH 2008 1 Initialisierung einer neuen SmartCard Starten Sie die PeDaS-Anwendung, nachdem Sie eine neue noch

Mehr

Zeiterfassung-Konnektor Handbuch

Zeiterfassung-Konnektor Handbuch Zeiterfassung-Konnektor Handbuch Inhalt In diesem Handbuch werden Sie den Konnektor kennen sowie verstehen lernen. Es wird beschrieben wie Sie den Konnektor einstellen und wie das System funktioniert,

Mehr

Erste Schritte mit Elvis 3 ein Beispielprojekt

Erste Schritte mit Elvis 3 ein Beispielprojekt Erste Schritte mit Elvis 3 ein Beispielprojekt Um Sie mit Elvis 3 vertraut zu machen möchten wir mit Ihnen mit diesem Kapitel ein Beispielprojekt vom ersten Aufruf von Elvis 3 bis zum Testlauf aufbauen.

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Yellowbill Adapter Spezifikationen Voraussetzungen Datum : 22.08.2013 Version : 1.0.0.2 22.08.2013 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung...3 2 Architektur...3 2.1 Grundsätze

Mehr

32.4 Anpassen von Menüs und Symbolleisten 795i

32.4 Anpassen von Menüs und Symbolleisten 795i 32.4 Anpassen von Menüs und Symbolleisten 795i Fortsetzung der Seiten in der 8. Auflage 32.4 Anpassen von Menüs und Symbolleisten 32.4.1 Anpassen von Menüs Die Menüs können um folgende Typen von Optionen

Mehr

SECARDEO. certbox.org. Benutzer-Handbuch. Secardeo GmbH Stand: 07.11.2012

SECARDEO. certbox.org. Benutzer-Handbuch. Secardeo GmbH Stand: 07.11.2012 certbox.org Benutzer-Handbuch Secardeo GmbH Stand: 07.11.2012 certbox.org Benutzerhandbuch 07.11.2012 Inhaltsverzeichnis Inhaltsverzeichnis... ii 1 Einführung... 1 2 Manuelle und automatisierte Zertifikatssuche...

Mehr

HTL-Website. TYPO3- Skriptum II. Autor: RUK Stand: 02.06.2010 Gedruckt am: - Version: V0.1 Status: fertig. Qualitätsmanagement

HTL-Website. TYPO3- Skriptum II. Autor: RUK Stand: 02.06.2010 Gedruckt am: - Version: V0.1 Status: fertig. Qualitätsmanagement HTL-Website TYPO3- Skriptum II Autor: RUK Stand: 02.06.2010 Gedruckt am: - Version: V0.1 Status: fertig Qualitätsmanagement Erstellt Geprüft Freigegeben Name RUK Datum 02.06.2010 Unterschrift Inhaltsverzeichnis

Mehr

FTP HOWTO. zum Upload von Dateien auf Webserver. Stand: 01.01.2011

FTP HOWTO. zum Upload von Dateien auf Webserver. Stand: 01.01.2011 FTP HOWTO zum Upload von Dateien auf Webserver Stand: 01.01.2011 Copyright 2002 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können z.t. eingetragene

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Paynet Adapter Spezifikationen Voraussetzungen Datum : 21.07.08 Version : 1.0.0.2 21.07.2008 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung... 3 2 Architektur... 3 2.1 Grundsätze

Mehr

TimeMachine. Installation und Konfiguration. Version 1.4. Stand 21.11.2013. Dokument: install.odt. Berger EDV Service Tulbeckstr.

TimeMachine. Installation und Konfiguration. Version 1.4. Stand 21.11.2013. Dokument: install.odt. Berger EDV Service Tulbeckstr. Installation und Konfiguration Version 1.4 Stand 21.11.2013 TimeMachine Dokument: install.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Skript zum Kurs Literaturverwaltung mit EndNote - Aufbaukurs Literatur in EndNote organisieren und finden

Skript zum Kurs Literaturverwaltung mit EndNote - Aufbaukurs Literatur in EndNote organisieren und finden Skript zum Kurs Literaturverwaltung mit EndNote - Aufbaukurs Literatur in EndNote organisieren und finden Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen

Mehr

How to install freesshd

How to install freesshd Enthaltene Funktionen - Installation - Benutzer anlegen - Verbindung testen How to install freesshd 1. Installation von freesshd - Falls noch nicht vorhanden, können Sie das Freeware Programm unter folgendem

Mehr

Disclaimer mit OK bestätigen und im folgenden Fenster Ihren Usernamen und Passwort eingeben.

Disclaimer mit OK bestätigen und im folgenden Fenster Ihren Usernamen und Passwort eingeben. QUICK REFERENCE-GUIDE HSH NORDBANK TRADER Start des Traders Den Internet-Browser öffnen und https://hsh-nordbank-trader.com/client.html eingeben Disclaimer mit OK bestätigen und im folgenden Fenster Ihren

Mehr

SWN-NetT Webmail. Benutzerhandbuch für SWN-NetT Webmail. SWN-NetT Webmail finden Sie unter: http://webmail.swn-nett.de

SWN-NetT Webmail. Benutzerhandbuch für SWN-NetT Webmail. SWN-NetT Webmail finden Sie unter: http://webmail.swn-nett.de SWN-NetT Webmail Benutzerhandbuch für SWN-NetT Webmail SWN-NetT Webmail finden Sie unter: http://webmail.swn-nett.de Übersicht Einstieg... 2 Menü... 2 E-Mail... 3 Funktionen... 4 Auf eine neue Nachricht

Mehr

Mailchimp Handbuch für Daylite 4

Mailchimp Handbuch für Daylite 4 Mailchimp Handbuch für Daylite 4 Mailchimp Handbuch für Daylite 4 1 Allgemeines 1.1 Das MailChimp Plugin für Daylite 4 4 2 Einrichtung 2.1 2.2 Installation 6 Lizenzierung 8 3 Benutzung 3.1 3.2 3.3 3.4

Mehr

IAWWeb PDFManager. - Kurzanleitung -

IAWWeb PDFManager. - Kurzanleitung - IAWWeb PDFManager - Kurzanleitung - 1. Einleitung Dieses Dokument beschreibt kurz die grundlegenden Funktionen des PDFManager. Der PDF Manager dient zur Pflege des Dokumentenbestandes. Er kann über die

Mehr

Archive / Backup System für OpenVMS

Archive / Backup System für OpenVMS Archive / Backup System für OpenVMS DECUS Symposium 2002 Bonn Vortrag-Nr. 3C04 Günther Fröhlin Compaq Computer Corporation Colorado Springs, USA 1 Highlights V4.0 Auslieferung Januar 2002 Hauptversion

Mehr

Erweiterung Bilderstammdaten und bis zu fünf Artikelbilder

Erweiterung Bilderstammdaten und bis zu fünf Artikelbilder Erweiterung Bilderstammdaten und bis zu fünf Artikelbilder Mit Hilfe dieser Erweiterung können Sie bis zu vier zusätzliche Artikelbilder in den Stammdaten eines Artikels verwalten. Diese stehen Ihnen dann

Mehr

Dokumentation FileZilla. Servermanager

Dokumentation FileZilla. Servermanager Servermanager Mit dem Servermanager können Sie Ihre Serverzugangsdaten verwalten und so mit nur zwei Klicks zwischen Ihren Accounts wechseln. Um einen neuen Account einzurichten klicken Sie auf Datei >>

Mehr

Browser Grid Funktionalitäten

Browser Grid Funktionalitäten Browser Grid Funktionalitäten Die Browser Grid Funktionalitäten können durch rechts Klick auf dem Grid eines Browsers aufgerufen werden. Fig. 1 Die erste Option Gruppe (bis zur ersten linie in Fig.1) enthält

Mehr

Fachbereich Informatik Praktikum 1

Fachbereich Informatik Praktikum 1 Hochschule Darmstadt DATA WAREHOUSE SS2015 Fachbereich Informatik Praktikum 1 Prof. Dr. S. Karczewski Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 14.April.2015 1. Kurzbeschreibung In diesem Praktikum geht

Mehr

Webmail. Anleitung für Ihr online E-Mail-Postfach. http://webmail.willytel.de

Webmail. Anleitung für Ihr online E-Mail-Postfach. http://webmail.willytel.de Webmail Anleitung für Ihr online E-Mail-Postfach http://webmail.willytel.de Inhalt: Inhalt:... 2 Übersicht:... 3 Menü:... 4 E-Mail:... 4 Funktionen:... 5 Auf neue Nachrichten überprüfen... 5 Neue Nachricht

Mehr

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695 Database Exchange Manager Replication Service- schematische Darstellung Replication Service- allgemeines Replikation von Daten von bzw. in ein SAP-System und einer relationalen DMS-Datenbank Kombination

Mehr

FAQs zur Nutzung des E-Mail Zertifikats zur sicheren E-Mail-Kommunikation. Das E-Mail Zertifikat von S-TRUST

FAQs zur Nutzung des E-Mail Zertifikats zur sicheren E-Mail-Kommunikation. Das E-Mail Zertifikat von S-TRUST FAQs zur Nutzung des E-Mail Zertifikats zur sicheren E-Mail-Kommunikation. Das E-Mail Zertifikat von S-TRUST S - t r u s t Z e r t i f i z i e r u n g s d i e n s t l e i s t u n g e n d e s D e u t s

Mehr

VPN- Beispielkonfigurationen

VPN- Beispielkonfigurationen VPN- Beispielkonfigurationen für die Router-Modelle FVS114 FVS318v1, v2, v3 FVM318 FVS328 FVS338 FVL328 FWAG114 FWG114Pv1, v2 FVG318 FDVG338 FVX538 sowie die ProSafe VPN Client Software Seite 1 von 113

Mehr

Benutzen Sie bitte den Front-USB-Slot für Ihre Sticks. Warten Sie ca. 15 Sekunden. Doppelklicken Sie das Icon 'USB- Stick aktivieren'.

Benutzen Sie bitte den Front-USB-Slot für Ihre Sticks. Warten Sie ca. 15 Sekunden. Doppelklicken Sie das Icon 'USB- Stick aktivieren'. Hilfe zu den SunRay-Terminals Login Die Anmeldung erfolgt mit Ihrer Benutzernummer der Bibliothek (017..). Das Kennwort ist identisch mit dem für die Selbstbedienungsfunktionen des Infoguide. Hinweise

Mehr

Dokumentation: MediaWizard Installationsanleitung

Dokumentation: MediaWizard Installationsanleitung Dokumentation: MediaWizard Installationsanleitung Inhaltsverzeichnis 1 Aufbau von MediaWizard... 2 2 Installation... 2 2.1 Bestehende Installation und Daten... 2 3 Übersicht, wo wird was installiert...

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

Enterprise Java Beans Einführung

Enterprise Java Beans Einführung Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse

Mehr

Change Log. Fehlerbehebung bei den Funktionen Edit SQL, Set Session_user und Set current Schema..

Change Log. Fehlerbehebung bei den Funktionen Edit SQL, Set Session_user und Set current Schema.. Change Log 15.09.2015 Version 2.0.3.9 Fehlerbehebung bei den Funktionen Edit SQL, Set Session_user und Set current Schema.. 15.01.2015 Version 2.0.3.8 Unter Optionen können jetzt zusätzliche Parameter

Mehr

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 1. Benötigte Software Zur Erstellung des Installers wird folgende Software benötigt. Es wird sich in dieser Dokumentation

Mehr

Anleitung zum Online Banking

Anleitung zum Online Banking Anleitung zum Online Banking Diese Anleitung beschreibt das Vorgehen zur Installation und Konfiguration von Online Banking unter Jack. Um das Online Banking in Jack nutzen zu können, müssen Sie das entsprechende

Mehr

MySQL Queries on "Nmap Results"

MySQL Queries on Nmap Results MySQL Queries on "Nmap Results" SQL Abfragen auf Nmap Ergebnisse Ivan Bütler 31. August 2009 Wer den Portscanner "NMAP" häufig benutzt weiss, dass die Auswertung von grossen Scans mit vielen C- oder sogar

Mehr

Neues Projekt anlegen... 2. Neue Position anlegen... 2. Position in Statikdokument einfügen... 3. Titelblatt und Vorbemerkungen einfügen...

Neues Projekt anlegen... 2. Neue Position anlegen... 2. Position in Statikdokument einfügen... 3. Titelblatt und Vorbemerkungen einfügen... FL-Manager: Kurze beispielhafte Einweisung In dieser Kurzanleitung lernen Sie die wichtigsten Funktionen und Abläufe kennen. Weitere Erläuterungen finden Sie in der Dokumentation FLManager.pdf Neues Projekt

Mehr

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht.

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht. Technisches Design Inhalt Design Übersicht Menü und DispatcherServlet DWR Servlet Viewer Servlets Controllers Managers Sicherheit Anwendung Architektur Component Diagram Deployment Diagram Komponente Sequence

Mehr

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25 webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25 E-Mail: sales@softvision.de Web: www.softvision.de Inhaltsverzeichnis

Mehr

Excel Pivot-Tabellen 2010 effektiv

Excel Pivot-Tabellen 2010 effektiv 7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes

Mehr

Anleitung - Assistent Lanfex 2011

Anleitung - Assistent Lanfex 2011 Anleitung - Assistent Lanfex 2011 1. Installationshinweise: Bitte installieren Sie Assistent Lanfex direkt am Domänen-Controller. Das Programm sollte ausschließlich auf dem PDC gestartet werden. Hinweis

Mehr

Outlook - CommuniGate Pro Schnittstelle installieren. Outlook - Elemente freigeben. Outlook - Freigegebene Elemente öffnen

Outlook - CommuniGate Pro Schnittstelle installieren. Outlook - Elemente freigeben. Outlook - Freigegebene Elemente öffnen Microsoft Outlook 1 Nutzung der Groupware mit Microsoft Outlook 1.1 Outlook - CommuniGate Pro Schnittstelle installieren 4 1.2 Outlook - Elemente freigeben 11 1.3 Outlook - Freigegebene Elemente öffnen

Mehr

PC-Kaufmann Supportinformation - Proxy Konfiguration für Elster

PC-Kaufmann Supportinformation - Proxy Konfiguration für Elster Seite 1 von 12 Dieses Dokument dient für Sie als Hilfe für die Konfiguration verschiedener Proxy-Server, wenn Sie Ihre Daten per Elster an das Finanzamt über einen Proxy-Server senden möchten. 1. Was ist

Mehr

Enigma2 Plugin Entwicklung mit Eclipse

Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse 1/15 Inhaltsverzeichnis 1 ÜBER... 3 2 INSTALLATION... 4 2.1 INSTALLATION VON ECLIPSE... 4 2.2 INSTALLATION VON PYDEV... 4 3

Mehr

crm-now/ps Anwenderhandbuch für die Thunderbird Erweiterung Zweite Ausgabe

crm-now/ps Anwenderhandbuch für die Thunderbird Erweiterung Zweite Ausgabe crm-now/ps Anwenderhandbuch für die Thunderbird Erweiterung Zweite Ausgabe crm-now/ps: Copyright 2006 crm-now Versionsgeschichte Version 02 08.09.2006 Release Version Version 01 16.06.2005 crm-now c/o

Mehr

Die neue Datenraum-Center-Administration in. Brainloop Secure Dataroom Service Version 8.30

Die neue Datenraum-Center-Administration in. Brainloop Secure Dataroom Service Version 8.30 Die neue Datenraum-Center-Administration in Brainloop Secure Dataroom Service Version 8.30 Leitfaden für Datenraum-Center-Manager Copyright Brainloop AG, 2004-2014. Alle Rechte vorbehalten. Dokumentversion:

Mehr

Verwendung der Report-Funktion in der ArtemiS SUITE (ab Version 5.0)

Verwendung der Report-Funktion in der ArtemiS SUITE (ab Version 5.0) Verwendung der (ab Version 5.0) In der ArtemiS SUITE steht eine neue, sehr flexible Reporting-Funktion zur Verfügung, die mit der Version 5.0 noch einmal verbessert wurde. Die vorliegende beschreibt den

Mehr

Anleitung MRA Service mit MAC

Anleitung MRA Service mit MAC Anleitung MRA Service mit MAC Dokumentbezeichnung Anleitung MRA Service unter MAC Version 2 Ausgabedatum 7. September 2009 Anzahl Seiten 12 Eigentumsrechte Dieses Dokument ist Eigentum des Migros-Genossenschafts-Bund

Mehr

Security. Stefan Dahler. 6. Zone Defense. 6.1 Einleitung

Security. Stefan Dahler. 6. Zone Defense. 6.1 Einleitung 6. Zone Defense 6.1 Einleitung Im Folgenden wird die Konfiguration von Zone Defense gezeigt. Sie verwenden einen Rechner für die Administration, den anderen für Ihre Tests. In der Firewall können Sie entweder

Mehr

SMARTtill Server mit Manager

SMARTtill Server mit Manager SMARTtill Server mit Manager Benutzerhandbuch 2014 Das Handbuch bezieht sich auf die Standardeinstellungen bei einer Pilotinstallation. Bei neuen Partnernprojekten sind Anpassungen zwingend notwendig und

Mehr

Funktionsbeschreibung Datenlogger DL28W

Funktionsbeschreibung Datenlogger DL28W Funktionsbeschreibung Datenlogger DL28W Voreinstellungen des Datenloggers: Im Datenlogger sind folgende Aufzeichnungs und Alarmwerte voreingestellt: Aufzeichnung: Raumfühler T1 Verdampferfühler T2 Sollwert

Mehr

SSL-geschützte Verbindungen mit dem "Internet Information Server" (IIS) unter Windows Server 2003

SSL-geschützte Verbindungen mit dem Internet Information Server (IIS) unter Windows Server 2003 SSL-geschützte Verbindungen mit dem "Internet Information Server" (IIS) unter Windows Server 2003 Dieses Dokument beschreibt, wie man mit dem IIS Zertifikatanträge (CSRs) erzeugt und aufgrund des CSR von

Mehr

ECLIPSE PLUG-IN. Redwood Anwendertage 2015

ECLIPSE PLUG-IN. Redwood Anwendertage 2015 ECLIPSE PLUG-IN Redwood Anwendertage 2015 Übersicht Was ist Eclipse? Welche Voraussetzungen benötige ich? Wie wird das Plug-In installiert Welche Konfigurationen sind sinnvoll? Tipps & Tricks Was ist Eclipse

Mehr

LDAP für HiPath OpenOffice ME V1 Installation von ESTOS Metadir unter Windows XP

LDAP für HiPath OpenOffice ME V1 Installation von ESTOS Metadir unter Windows XP LDAP für HiPath OpenOffice ME V1 Installation von ESTOS Metadir unter Windows XP Inhaltsverzeichnis Dokumenteninformation... 2 Voraussetzungen... 2 Einschränkungen... 2 Installation von ESTOS Metadir...

Mehr

ESB. Open Source ESB: Mule Flightreservation. Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus]

ESB. Open Source ESB: Mule Flightreservation. Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus] ESB Open Source ESB: Mule Flightreservation Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus] Inhalt 1. Open Source ESB: Mule... 2 1.1. Überblick... 2 1.1.1. Das Beispiel Zeigt:... 2 1.2. Installationsanleitung...

Mehr

ActivityTools for MS CRM 2013

ActivityTools for MS CRM 2013 ActivityTools for MS CRM 2013 Version 6.10 April 2014 Benutzerhandbuch (Wie man ActivityTools für MS CRM 2013 benutzt) Der Inhalt dieses Dokuments kann ohne Vorankündigung geändert werden. "Microsoft"

Mehr

Wie fängt man an. Fortgeschrittene Kontakt Verwaltung

Wie fängt man an. Fortgeschrittene Kontakt Verwaltung Wie fängt man an Um alle Vorzüge der iphone TBird Anwendung zu nutzen, sollten nachfolgende Hinweise gelesen werden. Fortgeschrittene Kontakt Verwaltung Mit der TBird iphone Anwendung ist es möglich Kontakte

Mehr

SSH-Zugang zu Datenbanken beim DIMDI

SSH-Zugang zu Datenbanken beim DIMDI SSH-Zugang zu Datenbanken beim DIMDI Ab November 2013 entsprechen wir dem Wunsch vieler Nutzer nach mehr Sicherheit bei der Recherche. Dazu ermöglichen wir Ihnen eine bessere Alternative zum bisherigen

Mehr

Sichere Kommunikation mit Outlook 98 ohne Zusatzsoftware

Sichere Kommunikation mit Outlook 98 ohne Zusatzsoftware Sichere Kommunikation mit Outlook 98 ohne Zusatzsoftware Das E-Mail-Programm Outlook 98 von Microsoft bietet Ihnen durch die Standard- Integration des E-Mail-Protokolls S/MIME (Secure/MIME) die Möglichkeit,

Mehr

Anwenderhandbuch. ipoint - Server

Anwenderhandbuch. ipoint - Server Anwenderhandbuch ipoint - Server Inhaltsverzeichnis 1 ÜBERWACHUNG DES SERVERPROZESSES... 3 1.1 DEN SERVER STARTEN... 3 1.2 DEN SERVER ANHALTEN/BEENDEN... 6 2 DEN SERVER KONFIGURIEREN... 8 3 FIREWALL...11

Mehr

HILFE Bedienungsanleitung für die Administrationsseite Ihres Online-Shops

HILFE Bedienungsanleitung für die Administrationsseite Ihres Online-Shops HILFE Bedienungsanleitung für die Administrationsseite Ihres Online-Shops Auf den folgenden Seiten wird beschrieben, wie Sie den Online-Shop bedienen können! Für den Anfang ist es wichtig, Gruppen anzulegen.

Mehr

Tutorial SemTalk Version 4.3 SharePoint-Integration in SemTalk

Tutorial SemTalk Version 4.3 SharePoint-Integration in SemTalk Tutorial SemTalk Version 4.3 SharePoint-Integration in SemTalk Stand: April 2015 Inhaltsverzeichnis 1. Einleitung... 3 2. Dokumentenmanagement-Funktionen... 3 2.1. Dokumente im SharePoint abspeichern...

Mehr

S ecure File E xchange K urzanleitung

S ecure File E xchange K urzanleitung S ecure File E xchange K urzanleitung Inhalt Rollendefinitionen... 3 Neuen Ordner anlegen... 9 Hinzufügen oder Hochladen einer neuen Datei... 11 Datei löschen... 13 Dokument herunterladen... 14 Datei

Mehr

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 Inhaltsverzeichnis Software ekey TOCAhome pc 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 3. MONTAGE, INSTALLATION UND ERSTINBETRIEBNAHME... 3 4. VERSION... 3 Version 1.5 5. BENUTZEROBERFLÄCHE...

Mehr

Code generieren mit Eclipse und oaw HowTo

Code generieren mit Eclipse und oaw HowTo Innovator 11 excellence Code generieren mit Eclipse und oaw Eclipse und oaw konfigurieren und zur Code-Generierung mit xpand-schablonen nutzen Albert Scheuerer, René Beckert HowTo www.mid.de Inhaltsverzeichnis

Mehr

Abbildungsverzeichnis: Schnellstartanleitung. Inhalt

Abbildungsverzeichnis: Schnellstartanleitung. Inhalt Inhalt 1. Was ist Datalogic PAL?... 2 2. Wie benutze ich Datalogic PAL?... 2 2.1 Pal Settings:... 3 2.1.1. Apps List:... 3 2.1.2. Pal Apps:... 4 2.2. Angepasster Zustand:... 5 2.2.1. Settings/Einstellungen:...

Mehr

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: 7. Intrusion Prevention System 7.1 Einleitung Sie konfigurieren das Intrusion Prevention System um das Netzwerk vor Angriffen zu schützen. Grundsätzlich soll nicht jeder TFTP Datenverkehr blockiert werden,

Mehr

Inhalt. meliarts. 1. Allgemeine Informationen... 2 2. Administration... 2 2.1 Aufruf... 2 2.2 Das Kontextmenü... 3 3. E-Mail Vorlagen...

Inhalt. meliarts. 1. Allgemeine Informationen... 2 2. Administration... 2 2.1 Aufruf... 2 2.2 Das Kontextmenü... 3 3. E-Mail Vorlagen... Inhalt 1. Allgemeine Informationen... 2 2. Administration... 2 2.1 Aufruf... 2 2.2 Das Kontextmenü... 3 3. E-Mail Vorlagen... 4 Seite 1 von 7 meliarts 1. Allgemeine Informationen meliarts ist eine Implementierung

Mehr

MailUtilities: Remote Deployment - Einführung

MailUtilities: Remote Deployment - Einführung MailUtilities: Remote Deployment - Einführung Zielsetzung Die Aufgabe von Remote Deployment adressiert zwei Szenarien: 1. Konfiguration der MailUtilities von einer Workstation aus, damit man das Control

Mehr

HostProfis ISP E-Mail Einstellungen 1

HostProfis ISP E-Mail Einstellungen 1 E-Mail Einstellungen Konfigurationsanleitungen für folgende E-Mail-Clients: Outlook Express 5 Outlook Express 6 Netscape 6 Netscape 7 Eudora Mail The Bat HostProfis ISP E-Mail Einstellungen 1 Bankverbindung:

Mehr

Installation des edu- sharing Plug- Ins für Moodle

Installation des edu- sharing Plug- Ins für Moodle Installation des edu- sharing Plug- Ins für Moodle [edu-sharing Team] [Dieses Dokument beschreibt die Installation und Konfiguration des edu-sharing Plug-Ins für das LMS Moodle.] edu- sharing / metaventis

Mehr

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo. www.mid.de

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo. www.mid.de Innovator 11 excellence DDL importieren Data-Definition-Language-Dateien in Datenbankschema importieren HowTo www.mid.de Zweck In Innovator Data excellence können Sie mit dem DDL-Import Ihr physisches

Mehr

Userhandbuch. Version B-1-0-2 M

Userhandbuch. Version B-1-0-2 M Userhandbuch Version B-1-0-2 M Inhaltsverzeichnis 1.0 Was bietet mir SERVRACK?... 3 1.1 Anmeldung... 3 1.2 Passwort vergessen?... 3 1.3 Einstellungen werden in Realtime übernommen... 4 2.0 Die SERVRACK

Mehr

Inhalt. Dokumentation VIAS_W. V32w6900 Workflow-Assistent

Inhalt. Dokumentation VIAS_W. V32w6900 Workflow-Assistent Dokumentation Inhalt 1. Der... 2 1.1 Benötigte Dateien... 2 1.2 Vorbereitung... 2 1.3 Hinterlegung von Workflows... 2 1.4 Definition eines neuen Workflows... 3 1.5 Definition von Aktionen... 5 1.1.1 Aktionstyp

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Smartcard Management System

Smartcard Management System Smartcard Management System Benutzerhandbuch Zertifiziert vom Nationalinstitut für Standardisierung und Technologie der Vereinigten Staaten von Amerika. Certified by the National Institute of Standards

Mehr

Relationale Datenbanken in der Praxis

Relationale Datenbanken in der Praxis Seite 1 Relationale Datenbanken in der Praxis Inhaltsverzeichnis 1 Datenbank-Design...2 1.1 Entwurf...2 1.2 Beschreibung der Realität...2 1.3 Enitiy-Relationship-Modell (ERM)...3 1.4 Schlüssel...4 1.5

Mehr

Verbinden von IBM Informix mit Openoffice mittels JDBC

Verbinden von IBM Informix mit Openoffice mittels JDBC Verbinden von IBM Informix mit Openoffice mittels JDBC Voraussetzungen Installierte und laufende IBM Informixdatenbank. Getestet wurde mit IDS 9.40 und 10.00. Sollte aber auch mit älteren Versionen funktionieren.

Mehr

Anleitung zur Administrieren von Mailinglisten. als Listen-Eigentümer. auf dem LISTSERVer (V.15.5)

Anleitung zur Administrieren von Mailinglisten. als Listen-Eigentümer. auf dem LISTSERVer (V.15.5) Anleitung zur Administrieren von Mailinglisten als Listen-Eigentümer auf dem LISTSERVer (V.15.5) Um auf die Web-Seite des Mailinglisten-Servers zu gelangen, bitte die URL http://listserv.uni-hannover.de

Mehr