Die Nutzung von SAP Webservices vorbereiten
Alexander Redlich
SAP bietet standardmäßig die Möglichkeit, über SOAP-Webservices Daten mit einer mobilen Scanner-Lösung auszutauschen. Diese Technologie bietet zwei wesentliche Vorteile: Sie ermöglicht a) eine sehr performante Datenübertragung zwischen Client und SAP-Backend und erfordert b) keine separate Middleware-Komponente, die die Kommunikation steuert. Im Folgenden geben wir einen kurzen Überblick zur Initialisierung von Webservices in SAP.
Webservice Runtime im Mandant 000 konfigurieren
Sollen in einem Scanner-Projekt Webservices zum Einsatz kommen, muss zunächst die Webservice SOAP Runtime eingerichtet werden. Dies sorgt dafür, dass asynchrone Webservice Calls in SAP ausgeführt werden können. Dazu wird zunächst in einem einfachen Verfahren, in kurzer Zeit, die Background RFC (bgRFC) Umgebung konfiguriert.
Gehen Sie dafür die folgenden Schritte:
- Transaktion SRT_ADMIN starten und “Check technical settings” auswählen.
- Im Feld “Client” kann der spezifische Mandant ausgewählt werden, für den nachfolgend das (automatische) technische Setup durchgeführt werden soll. SAP empfiehlt, das Setup zuerst und nur für den Client “000” durchzuführen. Auf diese Weise wird das SAP-System grundlegend für die Nutzung von Webservices eingerichtet.
- Starten Sie “Run Technical Setup”, um die automatische technische Konfiguration für den oder die ausgewählten Mandanten bzw. Clients zu starten.
- Anschließend kann das Setup für weitere Clients durchgeführt werden, die die Webservice Infrastruktur nutzen sollen.
Die oben skizzierte Prozedur aktiviert unter anderem ICF-Nodes (ICF - Internet Communication Framework), die für Webservice-basierte Anwendungen grundlegend sind, zum Beispiel für Scanner- bzw. MDE-Lösungen. Der SOA-Manager wird verfügbar und es ist nun möglich, ihn über URL anzusprechen.
Definition von Webservices mit SE80
Nach der initialen Einrichtung der Webservice Runtime im Mandanten 000 und dem für die Scanner-Lösung relevanten Hauptmandanten verlagert sich die konkrete Definition von Services in den Object Explorer. Dieser wird über die Transaktion SE80 aufgerufen.
In der SE80 wird definiert, welcher Baustein registriert werden soll. Hilfreich beim Customizing einer mobilen Lösung ist es, wenn die für die Scanner-Anwendung verwendeten Webservices in einem spezifischen Paket, hier am Beispiel eines Ontego-Projekts „Z_OTG“, gebündelt werden.
Die Definition des Webservice findet im Object Explorer statt. Dieser kann über die Transaktion SE80 geöffnet werden. Nach Auswahl eines Zielpakets im Repository Browser kann über das Kontextmenü „Anlegen > Enterprise Service“ der Wizard zur Erstellung des Webservice gestartet werden.

Abb. 2: Eingabe des Namens der „Service Definition“ und der Beschreibung (unter Verwendung von Namenskonventionen für Module)
%20Commit%EF%80%A2Rollback.png)
Abb. 5: Alle Operationen der BAPI werden aufgelistet; die benötigte Commit-/Rollback- Funktionalität per Click aktivieren

Abb. 7: Das Package wählen (hier „Z_OTG“); einen neuen Transport Request nutzen oder erstellen (je nach Transport-Strategie zwischen den SAP Instanzen)

Abb. 8: Bei einem „stateful“ Service (bei einer BAPI mit Commit / Rollback) das „Stateful“-Profil aktivieren; bei einem „stateless“ Service den Endpunkt speichern und den Bearbeitungsmodus verlassen
In einem Scanner-Projekt gilt es abzustimmen, ob der MDE-Partner Zugriff auf das SAP-Entwicklungssystem bekommt. Denn: Im Entwicklungssystem werden die Webservices definiert und anschließend über das Transport-Layer in das Q- bzw. Produktivsystem transportiert. Ist der Zugriff möglich, kann der Partner bei der Definition der Webservices unterstützen; alternativ kann selbstverständlich auch die IT-Abteilung des Anwenders die Webservices registrieren.
Registrierung der Webservices im SOA-Manager
Die zunächst lediglich definierten Services werden in einem nächsten Schritt im SOA-Manager registriert und damit letztlich aktiviert.

Abb. 3: Neues Service-Binding hinzufügen – dafür ist Nutzer Autorisierungsobjekt „S_SRT_CF_P“ gefordert

Abb. 4: Binding erstellen – Step 1: Name des Service (Kapitälchen) und des Bindings (camelCase mit Suffix _binding) hinzufügen

Abb. 5: Binding erstellen – Step 2: „User ID / Password“ unter „Transport Channel Authentication“ wählen

Abb. 6: Binding erstellen – Step 3: „Next“ clicken; danach bei Schritt „Operation Settings“ auf „Finish“ clicken
An der Stelle ist es wichtig zu wissen, dass die Services – im Unterschied zu den SE80-Services nicht über das Transport-Layer den Transport Layer transportiert werden, sondern jeweils separat im Entwicklungs-, Test- und Produktiv-System registriert werden müssen. In einer separaten technischen Anleitung zeigen wir, wie einfach und komfortabel SAP mit seinen Tools die Bereitstellung von Funktionsbausteinen als SOAP-Webservice ermöglicht.
Weiterführende, externe Ressourcen:
- Note 2347013 „Configuration of the ABAP Web Service Runtime with transaction SRT_ADMIN" beschreibt die detaillierte Vorgehensweise.
- In der Note 1043195 geht es um die „Configuration of the Webservice Runtime“.
- SAP-Blog-Beitrag zum Thema „Webservices in SAP registrieren"
Fazit
Um Webservices in SAP nutzen zu können, müssen diese Webservices selbst zunächst initialisiert werden. SAP stellt dafür die Transaktionen SRT_ADMIN und SE80 bereit. Sie ermöglichen die Definition, den Transport, die Aktivierung und Registrierung von ICF-Nodes. Damit ist es möglich, mobile SAP Lösungen ohne Middleware customized über Webservices zu steuern.
Vielen Dank für Ihr Interesse, Sie hören von uns.
Abonnieren sie uns für neue Blog-Artikel!
Bitte gültige E-Mail eingeben