Webservices in SAP

Webservices in SAP

Allgemeine Infos und Vorbereitung

· Funktionalität wird durch einen RFC-fähigen Funktionsbaustein bereitgestellt.
Der Baustein braucht mindestens einen Exportparameter und kann beliebig viele Importparameter haben. Auch Tabellen oder Felder können als Parameter angegeben werden.

· In der SICF muss der Webservice im Pfad
sap/bc/srt/rfc/sap/ <service Name des Webservices>
aktiviert sein. Außerdem muss, um überhaupt Webservices nutzen zu können der Service
sap/bc/srt/wsdl
ebenfalls aktiviert sein.

· Der Webservice kann von extern über einen Systemuser von SAP angesprochen werden. Dieser braucht mindestens die folgenden Berechtigungsobjekte:
SAP_BC_WEBSERVICE_SERVICE_USER
SAP_BC_WEBSERVICE_CONSUMER

· Der Webservice hat eine eindeutige URL, über die er erreichbar ist.

Wie funktioniert ein Webservice?
Ein Webservice ist im Prinzip eine Schnittstelle zwischen verschiedenen Programmen, die auf unterschiedlichen Systemen oder Plattformen betrieben werden können.
Ein Client sendet eine Anfrage an den Webservice, übergibt dabei ggf. Parameter, anhand deren der Webservice Daten zurück gibt.
Die Kommunikation geschieht über WSDL, ein auf XML basierendes Interface, was für den Betrachter nicht wirklich lesbar ist (zum Glück macht SAP das für uns).
clip_image002

Webservice aus Funktionsbaustein erstellen

Rechtsklick auf Paket, Anlegen, Enterprise Service

clip_image004

Wir wollen einen Service-Provider anlegen…

clip_image006

…dessen Funktion aus dem zuvor angelegten Funktionsbaustein kommen soll: clip_image008

Name und Beschreibung angebenclip_image010

Und im nächsten Bild dann den Funktionsbaustein auswählen.clip_image012

Nun durch „Weiter“ durchklicken, Paket und Transportauftrag angeben und schließlich auf „Fertigstellen“ klicken.

Der Webservice wird nun automatisch generiert, und verfügt über die Funktionalität des Funktionsbausteins.

Nach Aktivierung des Webservices ist dieser aber noch nicht nutzbar! Man muss erst ein sogenanntes binding im SOAMANAGER (s.u.)erstellen!

Was tun, wenn man nachträglich was am Funktionsbaustein ändert?

Verändert man nur etwas am Code, ist das egal, das übernimmt der Service dann. Fügt man jedoch Übergabeparameter hinzu, oder ändert sonst etwas an der „äußeren Erscheinung“, muss man den Webservice neu generieren. Dies tut man, indem man in der SE80 den Webservice anklickt und in den Bearbeitungsmodus geht. Dann mit Rechtsklick auf den Service, und auf Prüfen. Es wird automatisch geprüft, ob Änderungen vorliegen und wenn ja, wird abgefragt, ob die Änderung übernommen werden soll.

clip_image014

SOAMANAGER

Im SOAMANAGER administriert man seine Webservices. Aufruf ist einfach die Transaktion SOAMANAGER.

Reiter „Service_Administration“, Link „Konfiguration einzelner Services“

clip_image016

Nach dem erstellten Webservice suchen und auf „Apply Selection“ klicken.
clip_image018

Im 2. Abschnitt auf den Reiter „Konfiguration“ klicken. Hier sollte man eine leere Tabelle vorfinden. Deshalb klickt man auf „Endpunkt anlegen“ und im folgenden Popup auf Einstellungen übernehmen.
clip_image020

Nun ist es wichtig, dass man unten bei den Authentifizierungseinstellungen ein Häkchen bei „Benutzer-ID und Kennwort“ bei der Transportebene setzt und anschließend auf Sichern klickt, sonst wird das Binding/Endpunkt nicht gespeichert.

clip_image022

Erst jetzt ist der Service von extern ansprechbar. Die WSDL-URL (oder auch das ganze WSDL Dokument) kann man sich im zweiten Abschnitt unter Übersicht anzeigen lassen.
clip_image024

(Ein geeignetes Programm, um den Webservice von Extern zu testen ist soapUI
http://www.soapui.org/)

Dieser Eintrag wurde veröffentlicht in SAP/ABAP von . Setze ein Lesezeichen zum Permalink.

Schreibe einen Kommentar