Ingo Biermann
19. Mai 2016

WebRFC Bausteine in SAP Screen Personas 3.0

Mit SAP Screen Personas 3.0 stellt uns SAP ein relativ simples Tool bereit, um individuelle Screens an unternehmensspezifische Anforderungen anzupassen und umzugestalten. Dies geschieht einerseits über einen intuitiven Drag&Drop-Ansatz und auf der anderen Seite können wir Benutzerinteraktion durch das Einbinden von JavaScript imitieren und automatisieren.

Screen Personas 3.0

Whitepaper: SAP Screen Personas 3.0

Hier finden Sie unseren Vortrag zum Thema SAP Screen Personas 3.0 mit den wichtigsten Infos.

JavaScript? Das muss doch noch mehr können, werden Sie denken. Und das stimmt auch. In diesen Blogeintrag möchte ich Ihnen vorstellen, wie Sie durch den Einsatz von JavaScript & JSON auf einfache Weise WebRFC-Bausteine in SAP Screen Personas 3.0 aufrufen können und Ihnen ein Werkzeug an die Hand geben, das SAP Screen Personas 3.0 noch mächtiger macht.

Administration im Backend

Theoretisch kann jeder Funktionsbaustein aus dem ABAP-Backend aus einem Skript heraus angesprochen werden. Dazu gibt es zwei Voraussetzungen, die erfüllt werden müssen:

  1. Der Baustein muss als remotefähig markiert sein.
    Erstellen des WebRFC Bausteins

    Backendeinstellungen im WebRFC Baustein

    Dazu öffnen wir die Transaktion SE37 und legen dort entweder einen Baustein an und stellen im Reiter Eigenschaften (1) sicher, dass “remotefähiger Baustein” (2) markiert ist oder wählen einen Baustein aus der remotefähig ist.
    In unserem Beispiel wählen wir den Standard Funktionsbaustein “BAPI_USER_GET_DETAIL”, mit dem wir benutzerbezogene Daten abfragen können. Der Baustein muss über SAP Screen Personas als erlaubt geführt werden.

    Spezial Tipp: Wenn wir einen SAP Standard Baustein aufrufen möchten, der nicht remotefähig ist, können wir uns in vielen Fällen behelfen, indem wir einen remotefähigen Baustein erstellen, der den gewünschten Baustein aufruft.

  2. Zum anderen müssen Sie den Baustein auf der Whitelist der SAP Screen Personas 3.0 Administration ausführen. Dazu gehen wir in die Transaktion /n/personas/admin und öffnen dort den Menüpunkt “Whitelist der Flavor-Pflege” über den Pfad “Springen -> Whitelists -> Whitelist der Flavor-Pflege”. Im Folgebild kann der Baustein als erlaubt eingepflegt werden.
    Eintragen des WebRFC Bausteins in die Whitelist der SAP Screen Personas 3.0 Administrationsoberfläche

    Eintragen des WebRFC Bausteins in die Whitelist

    Dort geben wir den Namen des Funktionsbausteins und das gewünschte Framework an.

    Eintragen WebRFC Bausteins und Klassifizierung des Frameworks der aufrufenden Oberfläche

    Eintragen des WebRFC Bausteins

Arbeiten im SAP Screen Personas Script Editor

Die WebRFC-Verbindung setzen wir wie folgt ab:

  1. Im Script Editor müssen wir nun zunächst den RFC Web Request aufbauen. Dies bewerkstelligen wir mit folgender Zeile:
    var rfc = session.createRFC(“<BAPI_NAME>”);
    In unserem Beispiel heißt das:
    var rfc = session.createRFC(“BAPI_USR_GET_DETAIL”);
  2. Anschließend übergeben wir alle notwendigen Exportparameter, d.h. also die Importparameter des Bausteins.
    rfc.setParameter(<ParameterName>, <ParameterWert>);
    In diesem Beispiel übergebe ich als Parameter z.B. den Benutzer “KRIST”, welcher im BAPI mit dem Parameternamen “USERNAME” deklariert ist. Also:
    rfc.setParameter(“USERNAME”,”KRIST”);
  3. Nun können wir noch die Rückgabeparameter einschränken, um nicht unnötig viel Traffic zwischen ABAP-Backend und Browser zu erzeugen. Da es sich um einen Web-Request handelt, brauchen wir ein JSON-Format.
    rfc.requestResults(<String list im JSON Format>);
    Am Beispiel können wir durch
    rfc.requestResults(JSON.stringify([“ADDRESS”,”RETURN”]));
    die beiden Export-Strukturen “Address” und “Return” des Funktionsbausteins anfordern. Zum Schonen der Ressourcen sollten wir nur die Parameter anfordern, die wir auch wirklich benötigen.
  4. Absetzen des RFC-Calls:
    rfc.send();
    Wie bei HTTP-Requests üblich, gibt es einen Request und eine Response. Wenn der Befehl ausgeführt ist, können die Ergebnisse in der Reponse über die Request-Variable rfc abgefragt werden
  5. Die Ergebnisse können zum Schluss über den Befehl getResult abgefragt werden
    var address = rfc.getResult(<ParameterName>);
    in unserem Beispiel also
    var address = JSON.parse(rfc.getResult(“ADDRESS”));
    Wichtig hierbei ist, dass mit rfc.getResult ein JSON-String zurückgeliefert wird. Dieser muss für JavaScript-Zugriffe wieder geparst werden. Auch hier hilft die JSON-Bibliothek.

Der vollständige Text sieht dann etwa wie folgt aus:

SAP Screen Personas Script Editor

SAP Screen Personas Script Editor

Einbinden in die SAP Gui

Durch das Erzeugen von einer geeigneten Ausgabeoberfläche und durch das Binden des Skripts an das onLoad-Event in einem Flavor kann dies beispielsweise beim Öffnen der SAP WebGui wie folgt aussehen:

Eine Beispieloberfläche (Flavor) die den WebRFC Baustein durch ansprechen des Skriptes aufruft

Aufrufendes Flavor

Welche Funktionsbausteine rufen Sie über SAP Screen Personas 3.0 im WebRFC auf? Hinterlassen Sie mir gerne Ihre Kommentare.

Ingo Biermann

Ingo Biermann

Als Management- und Technologieberater unterstütze ich seit mehr als 15 Jahren große und mittelständische Unternehmen in Fragen der IT-Strategie und bin unterwegs in unterschiedlichen SAP-Themen wie SAP S/4HANA, User Experience und SAP Entwicklung.

Sie haben Fragen? Kontaktieren Sie mich!



Das könnte Sie auch interessieren

SAP setzt mit SAP Screen Personas und SAP Fiori auf eine neue Strategie für die Benutzeroberflächen ihrer Produkte. Im Fokus steht nun ein verbessertes Benutzererlebnis (User Experience). Die Stärken von […]

weiterlesen

In den letzten Monaten haben wir viele Kundenanfragen zu SAP Screen Personas bekommen. Immer wieder ging es dabei um technische Entwicklerschulungen, eine allgemeine Einführung oder auch eine beratende Abgrenzung zu […]

weiterlesen

Häufig kam und kommt immer noch die Frage auf: Was ist SAP Screen Personas überhaupt und was bringt es mir?

weiterlesen

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Alexander Koessner-Maier
Alexander Kössner-Maier Kundenservice