Bonn � Boston
Christian Sy
SAP Business Connector 4.8 – Administration und Entwicklung
®
995-5.book Seite 3 Mittwoch, 2. Juli 2008 2:31 14
5
Inhalt
1 Einleitung ................................................................ 9
1.1 Zielgruppe .............................................................. 101.2 Aufbau des Buches ................................................. 101.3 Danksagung ............................................................ 11
2 Enterprise Application Integration und der SAP Business Connector ........................................ 13
2.1 Enterprise Application Integration aus Anwendersicht ........................................................ 13
2.2 Tanker und Schnellboote ........................................ 142.3 Welches Tool für welchen Zweck? .......................... 152.4 Migration oder Kooperation des BCs mit
anderen EAI-Tools? ................................................. 162.5 Funktionsübersicht des Business Connectors .......... 172.6 Positionierung durch SAP ....................................... 18
3 Landkarte für ein BC-Projekt .................................. 21
3.1 Planung eines BC-Projekts ...................................... 213.2 Durchführung des Projekts ...................................... 22
4 BC-Administration .................................................. 25
4.1 Installation ............................................................. 254.2 Grundlagen ............................................................. 26
4.2.1 Starten des BC-Servers ................................ 264.2.2 Aufruf des Server-Administrator-UIs ........... 27
4.3 Administration der Kernfunktionen ......................... 294.3.1 Monitoring der Serverperformance ............. 294.3.2 Shut-down und Restart ............................... 304.3.3 SAP JVM Monitoring .................................. 314.3.4 Log File Monitoring .................................... 354.3.5 Scheduler ................................................... 354.3.6 Sicherheit .................................................. 374.3.7 Resource Settings ....................................... 39
995-5.book Seite 5 Mittwoch, 2. Juli 2008 2:31 14
Inhalt
6
4.4 Adaptermanagement ............................................... 404.4.1 Konfiguration des SAP-Adapters ................. 414.4.2 Konfiguration der Routing Rules .................. 474.4.3 Transaction Monitoring ............................... 504.4.4 Konfiguration des DB-Adapters ................... 53
4.5 Package-Management ............................................. 604.5.1 BC System Packages .................................... 604.5.2 Servicebrowser ............................................ 614.5.3 Installieren neuer Packages ......................... 654.5.4 Archivierung ............................................... 664.5.5 Publish/Subscribe ........................................ 66
5 BC-Entwicklung ....................................................... 71
5.1 Grundlegende Konzepte im BC Developer ............... 725.1.1 Servicekonzept ............................................ 725.1.2 Pipelinekonzept .......................................... 72
5.2 Entwicklungsobjekte ............................................... 735.2.1 Packages ..................................................... 755.2.2 Folder und ihr Namensraumkonzept ........... 765.2.3 Flow-Services .............................................. 775.2.4 Java-Services ............................................... 775.2.5 WebTap- und C-Services ............................. 775.2.6 Record ........................................................ 775.2.7 Specification ............................................... 805.2.8 Schema ....................................................... 805.2.9 Webservice-Connector ................................ 815.2.10 Zusammenfassung ....................................... 81
5.3 Flow-Services .......................................................... 815.3.1 Szenario, Teil 1: Implementierung
innerhalb des BCs ........................................ 825.3.2 Szenario, Teil 2: volle Unterstützung
der SAP-Anbindung .................................... 1025.3.3 Handling großer Eingabewerte im
BC Developer GUI ....................................... 1035.4 Java-Services ........................................................... 105
5.4.1 Ein erster Java-Service ................................. 1055.4.2 Verwendung eines anderen Services
innerhalb eines Java-Services ....................... 1105.4.3 Einbinden von Java-Code aus
BC-fremden Klassen .................................... 113
995-5.book Seite 6 Mittwoch, 2. Juli 2008 2:31 14
Inhalt
7
5.5 Debugging .............................................................. 1145.5.1 Flow Debugging im Developer ................... 1145.5.2 Java Debugging in Eclipse ........................... 1165.5.3 Flow Debug Logs ........................................ 1165.5.4 Debugging in QA und Prod ........................ 116
5.6 SAP-Connectivity-Unterstützung ............................. 1215.6.1 Lookup (Administrator-UI) ......................... 1215.6.2 Inbound Maps (Administrator-UI) .............. 1235.6.3 Outbound Maps (Administrator-UI) ............ 1245.6.4 SAP-Funktionen im BC Developer .............. 125
5.7 Webservice-Unterstützung ...................................... 1265.7.1 BC als Webservice-Client ............................ 1265.7.2 BC als Webservice-Server ........................... 128
5.8 Verwendung der mitgelieferten Package-Services ... 1305.8.1 WmPublic Package ..................................... 1305.8.2 SAP Package ............................................... 1305.8.3 WmDB Package .......................................... 1305.8.4 WmPartners Package .................................. 1315.8.5 WmSamples Package .................................. 131
5.9 Teamarbeit im BC Developer .................................. 1315.9.1 Locking-Konzept ........................................ 1325.9.2 Anbindung externer Versionierungs-
systeme ...................................................... 1335.10 Hinweise zur Wahl von Adaptertypen ..................... 1345.11 Erstellung von Webanwendungen mit DSPs ............ 1355.12 Nutzen der BC JARs in einer
Stand-alone-Java-Anwendung ................................ 1365.13 Häufige Probleme und Lösungen bei der
Entwicklung ............................................................ 1415.13.1 Performanten IDoc-Download
implementieren .......................................... 1415.13.2 Transaktionale Sicherheit bei
der Verarbeitung ........................................ 1425.13.3 Serverabhängige Informationen
pflegen ....................................................... 1435.13.4 Vermeiden von Elementduplikaten
in der Pipeline ............................................ 1445.13.5 Löschen nicht mehr benötigter Elemente
in einer Loop .............................................. 1445.13.6 Debuggen von IDoc-Receive-Services ......... 146
5.14 Fazit ....................................................................... 147
995-5.book Seite 7 Mittwoch, 2. Juli 2008 2:31 14
Inhalt
8
6 Neuerungen und Erweiterungsmöglichkeiten ........ 149
6.1 Neuerungen im SAP Business Connector 4.8 ........... 1496.1.1 Neue Features und Änderungen .................. 1496.1.2 Migration von Release 4.7 nach 4.8 ............ 150
6.2 Erweiterungsmöglichkeiten durch Third-Party-Hersteller .............................................. 151
7 Fazit und Ausblick ................................................... 153
Anhang ............................................................................ 155
A Wichtige Anwendungsfälle Schritt für Schritt .................... 157A.1 SAP-IDoc-Download ............................................... 157A.2 SAP-Upload ............................................................. 158A.3 DB-Anbindung ........................................................ 158
B Glossar .............................................................................. 159
C Der Autor .......................................................................... 163
Index ........................................................................................ 165
995-5.book Seite 8 Mittwoch, 2. Juli 2008 2:31 14
71
5 BC-Entwicklung
Eigene Services entwickeln
In diesem Kapitel werden die Funktionen der BC Developer-Anwen-dung behandelt. Sie benötigen den BC Developer nur, wenn Sieeigene Services entwickeln. Diese Services haben meistens mit derTransformation von Eingangsdaten zu tun, beispielsweise von einemSAP-IDoc-Format in ein anderes fremdsystemspezifisches Format.
Wenn Sie hingegen nur Standardadapter und -formate verwenden,brauchen Sie den Developer nicht. Ein Beispiel: Sie haben einFremdsystem, das in der Lage ist, XML-Dokumente via HTTP imSAP-XML-Format zu senden und zu empfangen. Dann brauchen Sienur SAP-Systeme und Routing Rules im BC-Administrator-UI zu kon-figurieren – und schon ist dieses Szenario einsatzbereit.
Sind allerdings Transformationen oder komplexere Routing-, An-wendungs- oder Fehlerlogik notwendig, so bietet Ihnen der BC dieMöglichkeit, diese als Services im BC Developer zu implementieren.
Routing Rules und BC Scheduler
Wie werden die Services zur Laufzeit gefunden; woher weiß der BC,dass und wann er sie ausführen soll? Die wichtigste Verbindungs-stelle sind die Routing Rules. Wenn Sie dort den Typ B2B Service
wählen, können Sie einen BC-Service angeben, der aufgerufen wer-den soll. Diesem Service wird dann beim Empfang einer entspre-chenden Nachricht automatisch das Eingangsdokument (zum Bei-spiel ein IDoc) übergeben. Die zweite wichtige Verbindungsstelle istder BC Scheduler. Auch dort können Sie Services angeben, die dannScheduler-gesteuert aufgerufen werden.
Dieses Kapitel erläutert zunächst die grundlegenden Konzepte im BCDeveloper. Anschließend werden die Entwicklungsobjekttypen be-schrieben und schließlich wird auf Details bei der Programmierungeingegangen (Erstellen von Services mit Flow, Java, Anbindung andas SAP-System, Webservices usw.).
995-5.book Seite 71 Mittwoch, 2. Juli 2008 2:31 14
72
BC-Entwicklung5
5.1 Grundlegende Konzepte im BC Developer
In diesem Abschnitt werden zunächst die wichtigsten allgemeinenKonzepte des BC Developers beschrieben.
5.1.1 Servicekonzept
Anforderungen Die Erstellung von Services im Developer lässt sich in den meistenFällen auf die beiden folgenden Anforderungen zurückführen:
1.Transformation der Eingangsdaten
2. Transport der Ausgangsdaten
Folgerichtig lassen sich die meisten im BC eingebauten Funktionendiesen beiden Kernaufgaben zuordnen.
Servicekategorien Zweck des BC Developers ist es, Services zu erstellen, die vom BC-Server verwendet werden. Die beiden wichtigsten Servicekategoriensind:
� Java-ServiceErstellung eines Services in Java
� Flow-ServiceErstellung eines Services in einer proprietären Flow-Sprache, fürdie es sehr gute grafische Unterstützung im Developer gibt
Um von den Fähigkeiten des BCs maximal zu profitieren, empfiehltsich die Verwendung von Flow-Services, wo immer es möglich ist.Wo die Fähigkeiten der Flow-Sprache nicht ausreichen, weichen Sieauf Java aus. Eine Ausnahme zu dieser Richtlinie gibt es: Bei Massen-daten- oder performancekritischen Szenarien sollten Sie Java-Ser-vices immer bevorzugen, da Java-Services performanter als Flow-Services sind.
Die Servicekategorien werden im folgenden Abschnitt detailliertbeschrieben. Zunächst möchten wir aber auf ein zentrales Konzepteingehen, das für alle Servicetypen von Bedeutung ist: die Pipeline.
5.1.2 Pipelinekonzept
Pipeline Sie können sich die Pipeline als Datenspeicher vorstellen, der einer-seits dazu dient, Eingangsparameter an Services zu übergeben undandererseits dazu, deren Ausgangsparameter zu speichern. Insbeson-
995-5.book Seite 72 Mittwoch, 2. Juli 2008 2:31 14
73
Entwicklungsobjekte 5.2
dere bei Flow-Services spielt die Pipeline eine zentrale Rolle, nämlichbeim Verbinden der einzelnen Flow-Steps. Mehr zu diesem Themaerfahren Sie in Abschnitt 5.3, »Flow-Services«.
Trifft ein neuer Request über eine Routing Rule oder über den Sche-duler ein, so wird dem aufgerufenen Service eine Pipeline überge-ben. Abhängig von der Request-Art ist die Pipeline entweder leer,oder sie enthält ein zu verarbeitendes Objekt (zum Beispiel einIDoc). Jeder neue Request erhält eine eigene neue Pipeline. Der BCsorgt automatisch dafür, dass die Pipelines von abgearbeitetenRequests intern entfernt werden.
5.2 Entwicklungsobjekte
In diesem Abschnitt erhalten Sie einen Überblick über die BC Devel-oper-Objekttypen (siehe Abbildung 5.1). Die komplexesten Typen(Flow-Service, Java-Service und Webservice-Connector) werden in denAbschnitten 5.3, »Flow-Services«, 5.4, »Java-Services«, und 5.7, »Web-service-Unterstützung«, detaillierter beschrieben.
Öffnen Sie nun den BC Developer, um sich die Entwicklungsobjekt-typen anzusehen.
LoginStarten Sie den BC Developer über das Verzeichnis developer/bin � in-tegrator.bat. Sie sehen nun die Loginmaske (siehe Abbildung 5.2).Geben Sie <host>:<port> für Ihren BC-Server an sowie Username
und Password. Der Benutzer muss zur Developer-Gruppe des BCsgehören. Nach dem Login werden die Objekte des Servers in einerBaumstruktur angezeigt (siehe Abbildung 5.3).
Tipp: Vermeiden von Kontextabhängigkeit
Sie sollten es möglichst vermeiden, bei der Ausführung eines Servicesbestimmte Annahmen über bereits vorher ausgeführte Services zumachen oder auf den Kontext aus anderen BC-Sessions zuzugreifen. Opti-malerweise arbeitet der Service nur mit den Eingangsvariablen. Wirdexterne Information benötigt, so arbeiten Sie möglichst nicht mit Dateienauf dem lokalen BC-Server, denn dies erschwert die Konzepte für die Last-verteilung. Speichern Sie solche Informationen am besten in einer exter-nen Datenbank ab, und stellen Sie die Konsistenz durch die Verwendungvon DB-Transaktionen sicher.
995-5.book Seite 73 Mittwoch, 2. Juli 2008 2:31 14
74
BC-Entwicklung5
Abhängig vom ausgewählten Baumobjekt wird nun in der rechtenSeite eine spezielle Ansicht für diesen Objekttyp eingeblendet. DieObjekttypen werden im nächsten Abschnitt beschrieben.
Abbildung 5.1 BC-Objekttypen
Abbildung 5.2 Developer-Login
995-5.book Seite 74 Mittwoch, 2. Juli 2008 2:31 14
75
Entwicklungsobjekte 5.2
Abbildung 5.3 Baumstruktur
5.2.1 Packages
Packages sind die oberste Gruppierungs- und Deploy-Ebene von Ser-vices. Services werden in Packages organisiert und verwaltet. AusAdministrationssicht ist die Deployment-Sicht interessant (gemein-sames Publizieren/Archivieren von Services); aus Entwicklersicht isteher die logische Zusammengehörigkeit einzelner Services undderen weitere hierarchische Strukturierung innerhalb des Packagesvon Bedeutung.
Kunden-PackagesKundenfunktionen sollten nicht in den standardmäßig mitgeliefer-ten Packages, sondern in neuen Kunden-Packages erstellt werden.Andernfalls kann es Probleme beim BC-Upgrade oder beim Einspie-len von BC-Servicereleases geben. Spezielle Namenskonventionenfür die Kundenfunktionalität, wie bei den SAP-Kundenfunktionen(diese beginnen mit Y oder Z), gibt es allerdings beim BC nicht.
Tipp: Mehrere Server gleichzeitig bearbeiten
Der BC Developer bietet die Möglichkeit, Verbindungen zu mehreren Ser-vern gleichzeitig zu öffnen. Jeder Server erscheint dann als Top-Level-Node. Dies ist zum Vergleichen von Services hilfreich, oder auch zumKopieren von Implementierungen. Hierbei ist zu beachten, dass Sie zwarkeine kompletten Services zwischen zwei Servern kopieren können, dafüraber zumindest Flow-Steps und Input-/Output-Parametersignaturen.
995-5.book Seite 75 Mittwoch, 2. Juli 2008 2:31 14
76
BC-Entwicklung5
Hat der Entwickler innerhalb eines Packages Änderungen vorgenom-men, die nun transportiert werden sollen, so vergibt er sinnvoller-weise zunächst eine neue Package-Versionsnummer (siehe Abbil-dung 5.4). Anschließend transportiert der Administrator das Packageund gibt dabei eine Beschreibung der Änderungen ein.
Abbildung 5.4 Vergabe einer Package-Versionsnummer
Änderungen an Services sollten prinzipiell nicht direkt auf der Pro-duktivumgebung, sondern auf dem Entwicklungssystem vorgenom-men und von dort transportiert werden. Hierbei gibt es nur zweiAusnahmen, nämlich das temporäre Debuggen (siehe Abschnitt5.5.4, »Debugging in QA und Prod«) und das Konfigurieren server-spezifischer Informationen (siehe Abschnitt 5.13.3, »Serverabhän-gige Information pflegen«).
5.2.2 Folder und ihr Namensraumkonzept
Folder Folder sind Ordner innerhalb eines Packages. Sie dienen der hierar-chischen Strukturierung der Package-Elemente. Wichtig zum Ver-ständnis des Namensraumkonzepts ist Folgendes: Zur Laufzeit wer-
995-5.book Seite 76 Mittwoch, 2. Juli 2008 2:31 14
77
Entwicklungsobjekte 5.2
den die Packages mit der Ordnerstruktur, aber ohne den Package-Namen als oberste Ebene in einen globalen Namensraum geladen.Dies bedeutet, dass, wenn Sie in Package A einen Ordner X mit demService Y anlegen und im Package B dasselbe versuchen, der BC eineFehlermeldung ausgeben wird, da das Element X:Y schon im globa-len Namensraum existiert.
Services sind immer für alle anderen Packages sichtbar. Das heisst esgibt kein Konzept für private, protected oder public Services wie inJava. Ab Version 4.8 können Sie im BC zu Dokumentationszweckeneine Folder Description eingeben.
5.2.3 Flow-Services
Flow-Services sind aus Flow-Steps zusammengebaut, die im Devel-oper mit grafischer Unterstützung erstellt werden. Die einzelnenSteps können eine Kontroll-Logik enthalten (Branch, Loop) oderandere Services aufrufen. Flow-Services werden in Abschnitt 5.3detailliert beschrieben.
5.2.4 Java-Services
Der BC Developer bietet auch die Möglichkeit, Services in Java zuschreiben. Dies wird in Abschnitt 5.4, »Java-Services«, erläutert.
5.2.5 WebTap- und C-Services
VeraltetDer Objekttyp der WebTap-Services ist veraltet und sollte daher nichtmehr verwendet werden. Vermutlich wird er in künftigen BC-Versi-onen nicht mehr unterstützt.
Mit C-Services haben Sie die Möglichkeit, C-Code zu verwenden.
5.2.6 Record
Ein Record definiert eine Struktur. Diese Struktur kann dann in Map-pings oder Input-/Outputdefinitionen verwendet werden.
Record erstellenEinen Record können Sie aus einem vorhandenen XML-Sche-ma/DTD, aus einem SAP-IDoc oder aus einer SAP-Struktur erzeugenlassen.
995-5.book Seite 77 Mittwoch, 2. Juli 2008 2:31 14
78
BC-Entwicklung5
Abbildung 5.5 Erstellen eines neuen Records
Immer nur einElement auf
oberster Ebene
Achten Sie darauf, immer nur ein Element auf der obersten Ebenedes Records zu definieren. Richtig wäre zum Beispiel ein wie inAbbildung 5.6 dargestellter Record; problematisch wäre ein wie inAbbildung 5.7 gezeigter Record. Der BC warnt Sie beim Anlegeneines problematischen Records leider nicht. Dies kann später zu Pro-blemen führen. Die Begründung liegt darin, dass der Record vomAnwendungsentwickler oft in eine XML-Struktur umgewandeltwird, und XML nur ein Root-Element haben darf.
Abbildung 5.6 Korrekter Record
995-5.book Seite 78 Mittwoch, 2. Juli 2008 2:31 14
79
Entwicklungsobjekte 5.2
Abbildung 5.7 Problematischer Record
BC-DatentypenEin Record kann aus den in Abbildung 5.8 gezeigten Datentypenbestehen. Wichtig für das Verständnis und für die Verwendung inJava-Services ist zu wissen, wie die BC-Datentypen auf Java-Datenty-pen abgebildet werden (jeweils in Klammern angegeben):
� String (java.lang.String)
� String List (java.lang.String[]); eindimensionales String Array
� String Table (java.lang.String[][]); zweidimensionales String Array
� Record (com.wm.data.IData oder com.wm.util.Values); ein Containerfür weitere Elemente Die Elemente selbst können ebenfalls wieder Records sein, sodassSie geschachtelte Strukturen aufbauen können.
� Record List (com.wm.data.IData[] oder com.wm.util.Values[]); eindimensi-onales Record Array
995-5.book Seite 79 Mittwoch, 2. Juli 2008 2:31 14
80
BC-Entwicklung5
� Record Referencewie Record, allerdings nur ein Verweis auf einen im BC definier-ten Record
� Record Reference Listwie Record List, allerdings nur eine Liste mit Verweis auf einen imBC definierten Record
� Objectjedes Element, das nicht in eine der obigen Kategorien fällt,(java.lang.Object oder Unterklasse von java.lang.Object)
� Object Listeindimensionales Objekt Array (zum Beispiel Vector[])
Abbildung 5.8 Datentypen
Records und Record Lists werden Ihnen zum Beispiel bei der SAP-IDoc-Verarbeitung häufig begegnen. Objects tauchen beispielsweiseals Byte Arrays in manchen BC-Servicefunktionen auf.
5.2.7 Specification
Eine Specification speichert die Input-/Outputparameter. Habenmehrere Services dieselben Input-/Outputparameter, so können Sieeine Specification verwenden, um das nicht doppelt deklarieren zumüssen.
5.2.8 Schema
Ein Schema definiert, wie ein XML-Dokument auszusehen hat. Siekönnen beispielsweise definieren, dass ein Element ein Mussfeldoder optional ist, oder ob es ein- oder n-mal vorkommen soll.
995-5.book Seite 80 Mittwoch, 2. Juli 2008 2:31 14
81
Flow-Services 5.3
5.2.9 Webservice-Connector
WizardDieser Typ ist ein Wizard, mit dem Sie Services generieren können,mit denen der BC als Webservice-Client auf einen Webservicezugreifen kann. Sie sollten die Generierung in einem eigenen Ordnerstattfinden lassen, da viele Services erzeugt werden.
Beispiele für Webservices (BC sowohl als Client als auch als Server)finden Sie in Abschnitt 5.7, »Webservice-Unterstützung«.
5.2.10 Zusammenfassung
Die Typen Package und Folder sind Strukturierungselemente für dieServices selbst. Record, Schema und Specification definieren Struktu-ren, die innerhalb der Services verwendet werden.
Services gibt es in den Ausprägungen Flow, Java, WebTap und C.Wenn es keine zwingenden Gründe für die anderen Ausprägungengibt (zum Beispiel existierender Code), empfiehlt sich die Verwen-dung von Flow und Java, da dies am produktivsten ist. Java undFlow sind die intern verwendeten Sprachen des BCs und werdendaher bei der Entwicklung am besten unterstützt.
5.3 Flow-Services
Flow-StepsDie Entwicklung von Flow-Services wird im BC Developer komforta-bel unterstützt. Ein Flow-Service besteht aus n Flow-Steps, einer Listevon Eingabeparametern und einer Liste von Ausgabeparametern.
Die Steps können wiederum in zwei Kategorien aufgeteilt werden:
� Kontroll-Steps (Loop, Branch, Repeat, Exit, Sequence)Diese Steps steuern, wie der Flow durchlaufen wird.
� Execution-Steps (Invoke, Map)Diese Steps verändern die Pipelinedaten.
BeispielDiese Step-Arten werden im Folgenden anhand eines Beispielsbeschrieben. Das Beispiel beschreibt folgendes Szenario: Wir emp-fangen ein IDoc vom SAP-System, führen bestimmte Prüfungendurch und konvertieren das Dokument in eine Zielstruktur. Das Bei-spiel ist nicht trivial; es kann deshalb die alltäglichen Problemstellun-gen und Lösungen beim Mapping im BC sehr gut veranschaulichen.
995-5.book Seite 81 Mittwoch, 2. Juli 2008 2:31 14
82
BC-Entwicklung5
Wir splitten das Szenario in zwei Teile auf. Im ersten Teil wird dieVerarbeitung im BC beschrieben; die Darstellung der SAP-Anbin-dung folgt im zweiten Teil.
5.3.1 Szenario, Teil 1: Implementierung innerhalb des BCs
Zunächst durchlaufen wir also die Implementierung im BusinessConnector:
Neuen Flow-Service anlegen
1. Für unser Szenario möchten wir das Orders-IDoc vom SAP-Systemverwenden. Zunächst legen wir einen neuen Flow-Service an. Kli-cken Sie auf [Ctrl-N] im Developer, und wählen Sie als Typ Flow
Service (Default) aus. Geben Sie nun das gewünschte Verzeichnisinnerhalb des Packages an, und vergeben Sie einen Servicenamen(Abbildung 5.9). Schließlich drücken Sie auf Finish.
Abbildung 5.9 Neuen Flow anlegen
Inputstrukturgenerieren
2. Der BC hat nun den neuen Flow angelegt. Als Nächstes brauchenwir eine Inputstruktur, damit der Flow mit den Daten arbeitenkann. Diese Inputstruktur können wir aus dem SAP-System gene-
995-5.book Seite 82 Mittwoch, 2. Juli 2008 2:31 14
83
Flow-Services 5.3
rieren, da es sich um ein SAP-IDoc handelt. Wählen Sie SAP � IDoc
Definition, und geben Sie den Namen des IDoc-Typs und desSAP-Servers an (siehe Abbildung 5.10).
Abbildung 5.10 IDoc-Generierung, Teil 1
3. Sie sehen nun (hoffentlich) die gewünschte SAP-Struktur (sieheAbbildung 5.11). Klicken Sie auf Generate Record und dann aufNext. Vergeben Sie einen Namen für den Record, zum BeispielorderRec. Drücken Sie Next und dann Finish. Der BC hat nun denRecord generiert, und Sie können ihn verwenden (siehe Abbil-dung 5.12).
Abbildung 5.11 IDoc-Generierung, Teil 2
995-5.book Seite 83 Mittwoch, 2. Juli 2008 2:31 14
84
BC-Entwicklung5
Abbildung 5.12 Ergebnis IDoc-Generierung
4. Gehen Sie nun auf den ordersService, wählen Sie den In-
put/Output-Tab, und legen Sie einen neuen Inputparameter vomTyp Record Reference an (siehe Abbildung 5.13).
5. Selektieren Sie orderRec im darauf folgenden Select-Dialog(Abbildung 5.14), und vergeben Sie einen Namen für den Input-parameter (zum Beispiel idoc).
Ausgabestrukturdefinieren
6. Wir definieren nun die Ausgabestruktur für unser fiktives externesSystem Global Trade. Die Struktur soll Folgendes enthalten: Aufder Kopfebene die Auftragsnummer sowie die Adresse des Waren-empfängers, auf der Positionsebene PosNr, Menge und Preis.Diesen Record legen Sie wie folgt manuell an: Legen Sie ein neuesRecord-Element (Source für record generation ist diesmalNone) mit dem Namen globalTradeRec an. Erstellen Sie nun die
995-5.book Seite 84 Mittwoch, 2. Juli 2008 2:31 14
85
Flow-Services 5.3
einzelnen Record-Elemente durch Einfügen der jeweils richtigenElementtypen (Abbildung 5.15).
Abbildung 5.13 Inputparameter definieren
Abbildung 5.14 Record als Input selektieren
995-5.book Seite 85 Mittwoch, 2. Juli 2008 2:31 14
86
BC-Entwicklung5
Abbildung 5.15 Manuelles Erstellen eines Records
7. Zunächst erstellen Sie das Root-Element (Typ Record). Anschlie-ßend erstellen Sie zwei weitere Records innerhalb des Root-Ele-ments. Diese Records werden die Header- und Positionsstrukturenaufnehmen.
Mit den blauen Pfeilen können Sie die Elemente umgruppieren.Schieben Sie mit diesen das Header- und das Pos-Record nachrechts. Das Zwischenergebnis sollte wie in Abbildung 5.16 darge-stellt aussehen.
8. Innerhalb der header- und pos-Records definieren Sie Elementevom Typ String. Das Endergebnis sollte wie in Abbildung 5.17dargestellt aussehen.
995-5.book Seite 86 Mittwoch, 2. Juli 2008 2:31 14
87
Flow-Services 5.3
Abbildung 5.16 Zwischenergebnis GTS-Record
Abbildung 5.17 Endergebnis GTS-Record
Ausgabeparameter9. Diesen Record geben Sie nun als Ausgabeparameter im In-
put/Output-Tab von ordersService ein, indem Sie einen neuenAusgabeparameter vom Typ Record Reference anlegen. In denInput/Output-Tab können Sie auch einen Kommentar eingeben,der sich auf den ganzen Service bezieht (Abbildung 5.18).
995-5.book Seite 87 Mittwoch, 2. Juli 2008 2:31 14
88
BC-Entwicklung5
Abbildung 5.18 Service-Kommentar
Schritte der Trans-formationsaufgabe
Nun können Sie mit der Flow-Entwicklung starten, da die Eingabe-und Ausgabeparameter definiert wurden. Unsere Aufgabe ist es nun,die IDoc-Struktur in eine Zielstruktur zu transformieren. Hierbeiwerden Sie die wichtigsten Step-Typen und deren Besonderheitenkennenlernen. Die gesamte Transformationsaufgabe zerlegen wirgedanklich in folgende Schritte:
� Mapping der Kopfdaten
� Mapping der Positionsdaten
Beliebig vieleFlow-Steps
Der BC bietet hierzu gute Unterstützung, denn Sie können beliebigviele Flow-Steps einfügen, die dann sequenziell ausgeführt und gra-fisch dargestellt werden. Auf diese Weise behalten Sie auch bei kom-plexen Flows die Übersicht. Die Ausgangsdaten des Vorgänger-Flows sind die Eingangsdaten des Nachfolger-Flows (Pipelinekon-zept). Wir führen nun das Mapping für die Kopf- und Positionsdatendurch:
1. Wechseln Sie in den Flow-Tab vom Orders-Service. Fügen Sienun einen Map-Step in den Flow ein (siehe Abbildung 5.19).
995-5.book Seite 88 Mittwoch, 2. Juli 2008 2:31 14
165
Index
A
Abwärtskompatibilität 150ACL (Access Control List) 64, 159Adapter 17, 22, 40, 159Adaptertyp 134Add SAP Server 41Administration 25Administrationsumgebung 17Administrator 23Administrator-UI 121, 123, 124Anmeldedaten 157API-Referenz 109Archivierung 66Audit Log 52
ausschalten 52Aufwandsschätzung 22
B
BAPI (Business Application Program-ming Interface) 159
BC (Business Connector) 21Developer 22, 72, 159Funktionsübersicht 17Hilfsklasse 109Mapping Engine 144Neuerungen in 4.8 149Package 23Scheduler 71Stärken 17
BC-Server 22starten 26
Benutzer 37Berechtigungssteuerung 69BPEL (Business Process Execution
Language) 159BPEL-Engine 17BPM (Business Performance Manage-
ment) 13, 159Branch 101Business Connector � BC
C
C 17Clustering 40Code-Generierung 137Concat-Transformer 97Connection-Pool 54, 150, 159Connectivity 17, 159Create Archive 66C-Service 77
D
Database Alias 159Datenbank 53, 55
Adapter 40, 53Alias 158Anbindung 53, 158Connection-Pooling 53Lock 56
DDIC-Cache 159Debugging 24, 114–116, 146
in QA und Prod 116Debug-Port 33Developer 114documentToRecord 117DSP (Dynamic Server Page) 135, 159
E
EAI (Enterprise Application Integra-tion) 159
EAI-Tool 14Eclipse 116Eingabewerte, große 103Elementduplikate 144E-Mail-Listener 38, 39E-Mail-Port 38Entwickler 23Entwicklungsobjekt 73Entwicklungssystem 21Entwicklungsumgebung 17Exception 111
995-5.book Seite 165 Mittwoch, 2. Juli 2008 2:31 14
166
Index
Exception-Handling 111Extended Settings 159
F
Filter 101Firewall-Timeout 56Flat File 134, 160Flat-File-Adapter 17Flow 160
Debug Logs 116Debugging 114Language 17Service 72, 77, 81, 82, 114Step 81, 88
Flow-VerarbeitungRobustheit 104
Folder 76, 150, 160fremde Klassen 113FTP 17FTP-Server 38
G
Garbage Collection 32grafisches Mapping-Tool 17Gruppe 37Guaranteed Delivery 160
H
History-Counter 56, 58Home-Button 135HTTP 17, 134
I
IDoc 90, 95, 123, 145, 160Child-Segment 123Download 141, 157Receive-Service 146Upload 142
IDocLib 151Inbound Map 123Information
serverabhängige 143Install Inbound Release 65Installation 25Installer 25Integrationsszenario 21Integrationstest 23Invoke 110, 112, 113Invoke-Step 102
J
J2SE-Anwendung 160JAR 136Java 17
Code aus BC-fremden Klassen einbin-den 113
Debugging 116Editor 105Sample-Code 113Shared-Code 107
Java Connector 3.0 150, 151Java-Service 72, 77, 105, 106, 110
anlegen 105Architektur 105
JDBC (Java Database Connectivity) 18, 160
JDBC-Treiber 160JDBC-URL 160JMS (Java Messaging Service) 160JMS-Adapter 17JRE (Java Runtime Environment)
25, 160JSP (Java Server Page) 160JVM (Java Virtual Machine) 160
Speicherparameter 29
K
Klasse, BC-fremde 113Konfigurations-Package 143Kontextabhängigkeit 73Kopfdaten 90Kunden-Packages 75
995-5.book Seite 166 Mittwoch, 2. Juli 2008 2:31 14
167
Index
L
Locking 132Logfile 35Logging 24Log-Level 39Lookup 121, 122, 123Loop 96, 97, 144Loop-Step 95Löschen von Elementen 144
M
Map 125Mapping 90, 94, 95, 102Mapping-Variable 98Map-Step 89Middleware 160Migration von 4.7 nach 4.8 150Monitoring 29, 31, 55, 146
N
Namensraum 76
O
Outbound Map 124Output-Pipeline 92
P
Package 40, 60–62, 66, 68, 75, 160installieren 65Management 60Services 130
Parametername 109Performance 29, 54Pipeline 72, 89, 109, 114, 115, 144Plattenplatz 52Poll-Komponente 142Pool-Statistik 56, 57Port 38
pflegen 38Positionsdaten 90
Produktivsystem 21Programm-ID 44, 47, 161Publish/Subscribe 66Publishing 161
Q
QA-System 21
R
Receiver-Adresse 95Record 77, 78
manuell erstellen 86Remote-Server 40Repository 161Repository Setting 40Resource Setting 38, 161Restart 30Reverse-Invoke-Szenario 40RFC 122, 160
Destination 44, 45Server 44Trace 44
Robustheit 104Rolle 37
Administrator 23Entwickler 23
Routing 17Routing Engine 161Routing Rule 23, 40, 47–50, 71, 161Routing Transports 161
S
Sammel-IDoc 90Sample-Code 113SAP
Adapter 40, 41, 150Anbindung 102Connectivity 121Destination 45GUI 45IDoc 157JVM 25, 31, 150, 161JVM Debugging 33
995-5.book Seite 167 Mittwoch, 2. Juli 2008 2:31 14
168
Index
JVM Monitoring 31Listener 43, 44, 46, 157, 161Map 161Package 130Server 41, 42Upload 158
Scheduled Task 36Scheduler 35, 161Schema 80Send Release 68Sequence 101Server-UI 27, 161Service 30, 36, 109, 110, 130, 161
entwickeln 71Servicebrowser 61Servicekategorie 72Servicekonzept 72Service-Usage 30Shut-down 30Sicherheit 37SMTP-Server 161SOA (Service-Oriented Architecture)
13, 161SOAP 17Specification 80Speicherverbrauch 32stringToDocument 117Subscriber 67Subscribing 162Sweeper 52
T
Teamarbeit 131Test SQL 59Thread-Pool 39Transaction Detail 51Transaction List 162Transaction Message Type 162Transaction Monitoring 40, 50Transaction State 162transaktionale Sicherheit 142Transaktionsdatei 53Transaktionsliste 50, 51Transformer 98, 99Transport 17, 49
U
Unlocken 132, 133Users and Groups 37
V
Verbindungsdaten 41, 67Verbindungstest 46, 47Versionierungssystem 133Viewer
zentraler 146Visual Basic 17
W
Webanwendung 135Webservice 126–128
Webservice-Client 126Webservice-Connector 81, 126Webservice-Server 128
WebTap-Service 77WmDB Package 130, 150WmPartners Package 131WmPartnersUsers Package 37WmPublic Package 130WmSamples Package 131Work-History-Fenster 149WSDL (Web Services Description
Language) 126–128
X
XML 17XML-Template 122
Z
Zielstruktur 93Zwischenvariable 97
995-5.book Seite 168 Mittwoch, 2. Juli 2008 2:31 14