Tutorial: SAP ABAP RFC-Verbindungen mit dem Java Connector 3.0.7: Die Grundlagen

In der nächsten Zeit werde ich hier ein Tutorial hinterlegen, welches sich explizit mit RFC-Verbindungen von und nach ABAP mit dem Java Connector 3.0.7 auseinandersetzt. Dies wird in vorraussichtlich 3 Teilen geschehen, welche in folgende Kapitel unterteilt sind:

  1. Die Grundlagen
  2. Ein Java-Client
  3. Ein Java-Server

In Teil 1 werde ich hier auf die essentiellsten und in der Praxis relevantesten Eigenschaften eingehen.


Was wird benötigt?
In jedem Falle eine RFC-Verbindung bzw. -Destination erstellt in Transaktion „SM59“ Ihres SAP Systems.

Typ:

  • 3 – für eine ABAP-Verbindung die entweder auf ein anderes SAP-System oder auf ein externes Programm zugreift.
  • T – für alle Verbindungen die in das SAP-System von externen Programmen kommend eingehen.
  • H – der „alte“ Kommunikationsweg über http: Ist sehr unflexibel und ließ sich in der Praxis auch kaum nutzen. Es ist an dieser Stelle ausdrücklich die Kommunikation über Webservices oder BAPIs zu empfehlen.

Selbstverständlich braucht es neben dem richtigen RFC-Typen auch einen entsprechenden Funktionsbaustein. Dieser ist neu anzulegen und beinhaltet syntaktisch korrekten Code (dar dieser sonst nicht aktiviert werden kann) und ruft keine weiteren RFC-Ziele auf (über weitere Funktionsbausteine lassen sich natürlich weitere RFC-Ziele aufrufen, aber jeweils nur ein RFC-Aufruf pro Funktionsbaustein). Abgesehen davon sollte er auch etwas ausführen. In unserem Falle eine Batch-Datei auf unserem Client. Also benötigt der Funktionsbaustein die Angabe auch externe Quellen (also RFCs) zu nutzen. Dies erledigen wir in den Eigenschaften des Funktionsbausteins mit dem abändern der Ablaufart.

Nun sind im SAP-System zunächst die wichtigsten Vorbereitungen getroffen. Also wird ein frisches Java-Projekt in einer Entwicklungsumgebung ihrer Wahl erstellt.
Zudem wird gebraucht die SAPjco3.jar. Der JavaConnector3 ist zu finden auf dem SAP Marketplace derzeit in Version 3.0.7: Java Connector 3.0.7

Wie üblich ist er unter entsprechenden Entwicklungsumgebungen (Eclipse, Netweaver Developer Studio, etc) als Standalone-SDK einzubinden und die entsprechenden Pfade zu der Library zu pflegen.
Im Gegensatz zu den beiden vorherigen Versionen des JavaConnectors, muss sich hier keineswegs um die Kommunikation gekümmert werden. Die einzige Beachtung die sie der SAPjco3.jar schenken müssen ist das die beiden DLL-Dateien welche mit ihr geliefert wurden sich im selben Verzeichnis befinden wie die sapjco3.jar-File. Die Kommunikation zwischen dem SAP-System, den RFC-Systemen der Middleware, der API und natürlich Ihrem Java-Programm erfolgen im Hintergrund.

Bevor wir nun mit dem eigentlichen Bau des Java-Clients beginnen, zunächst ein Verweis auf die Destination-Datei des JCO3. Die „name.jcodestination“ Datei ist sehr wichtig für die Kommunikation zwischen Ihrem SAP-System und Ihrem Java-Programm. Anzugeben sind:

  • Client = Clientnummer Ihres Systems
  • User = Mandant bzw. User
  • Passwd = Generell ist es sicherer wenn sie kein Passwort angeben
  • Sysnr = Systemnummer
  • Lang = Sprache des Systems
  • ASHOST = Name des Hosts
  • MSHOST = Name des Message Servers (Full qualified domain name)
  • R3Name = R3-Name des SAP-Systems (optional). Durch die Angabe des R/3-Namens wird im Fehlerfalle die Fehlersuche undurchsichtig, weil gerade durch die Angabe des R/3-Namens die verschiedensten Fehler geworfen werden.

Selbstverständlich ist solch ein Destination-File in welchem sämtliche Anmelde und Systeminformationen darin stehen im Produktivsystem eher nicht zu empfehlen, es gibt jedoch zahlreiche alternative Wege um die Verbindungsinformation dennoch sicher für die eigenen Verbindungen zu etablieren. Beispielweise eine Verschlüsselung via SNC (zu finden in der Registerkarte „Anmeldung und Sicherheit“), MD5-Hashs, MD5-Hashs mit Salted Key oder eben der direkten Benutzereingabe.

Im zweiten Teil der Reihe werden wir einen Java-Client erstellen welcher einen RFC-Baustein im SAP-System aufruft.

Getagged mit: , , , ,

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

*