This is a test message to test the length of the message box.
Login
BTP Pages and Spaces
Erstellt von Software-Heroes

BTP - Pages und Spaces (ADT)

184

Kannst du eigentlich auch das Launchpad mit den Pages und Spaces über die ABAP Development Tools konfigurieren? In diesem Artikel schauen wir uns die aktuellen Möglichkeiten an.

Werbung


In einem älteren Artikel hatten wir uns das Customzing des Fiori Launchpads über die Fiori Apps angeschaut und wie du damit dein Launchpad gestalten kannst. In diesem Artikel gehen wir auf den Weg ein, wie du Inhalte bereits mit der Entwicklung ausliefern kannst.

 

Einleitung

Wofür du Pages und Spaces brauchst und wie du sie einrichtest, findest du in diesem Artikel. Dabei wollen wir unserem Anwender Inhalte direkt zur Verfügung stellen, wenn er sich am Launchpad anmeldet. Über die Homepage kann jeder Anwender seine eigene Ansicht einrichten.

In diesem Artikel schauen wir uns verschiedene Templates in diesem Bereich an. Wenn du über die ABAP Development Tools ein neues Objekt anlegst, findest du im Bereich Launchpad einige Objekte.

 

Page

Legen wir uns dazu eine Page an, die wir später wieder mit Anwendungen befüllen wollen. Dem Objekt geben wir einen Namen und eine Beschreibung. Im unteren Teil gibst du den Text an, der später in der Oberfläche angezeigt wird.

 

Space

Im nächsten Schritt definieren wir uns einen Space. Wie auch bei der Page geben wir dem Objekt einen Namen und eine Beschreibung. Ein Titel ist auch hier Pflicht, da dieser für die Anzeige benötigt wird.

 

Haben wir das Objekt angelegt, sollten wir eine Sortierreihenfolge angeben. Diese hat Einfluss auf die Anzeige im Launchpad, eine hohe Nummer wird dann weit rechts angezeigt. Dem Space können wir nun unsere Page zuordnen, wenn du noch weitere Pages hast, kannst du diese einfügen.

 

Inhalt

Nun wollen wir die Page mit Inhalten befüllen. Möchtest du ein neues Objekt hinzufügen, wird sich das erst einmal ungewohnt anfühlen, da es hier keinen "Add" Button gibt, wie sonst üblich in dieser Art von Views. Du arbeitest in der Liste per Rechts-Klick und das Kontextmenü. Am Ende des Artikels findest du einen Link, wie du mit dem View in ADT arbeitest. Fügen wir im ersten Schritt eine Section hinzu. Der Section können wir einen Titel geben, dieser wird als Überschrift innerhalb des Bereichs angezeigt. Die ID der Section kannst du ebenfalls anpassen, wenn du sie sprechender Benennen willst.

 

Unterhalb der Section findest du die "Visualizations", hier kannst du Kacheln zuordnen, die in diesem Abschnitt zugeordnet werden sollen. Grundsätzlich kannst du hier viele Kacheln zuordnen. Die ID der Kachel kannst du anpassen, ebenfalls das Aussehen im Launchpad mit den verschiedenen Stilen. Mehr Informationen findest du im letzten Artikel zu dem Thema. Um eine Kachel zuzuordnen, wählen wir ein App Descriptor Item aus, in diesem Fall das Item, das wir zuletzt angelegt hatten. Über "Tile ID" können wir nach der definierten Kachel suchen. Da unser App Descriptor Item vier Kacheln im Bauch hat, müssen wir uns eine davon aussuchen.

 

Insgesamt legen wir zwei Abschnitte an und ordnen drei Anwendungen zu. Die Page sollte nun wie folgt aussehen:

 

Scoping

Prüfst du nun die Konfiguration im Launchpad, dann wirst du aktuell die Page und den Space nicht finden. Hier musst du das sogenannte Scoping durchführen. Hierbei handelt es sich um eine ähnliche Aktion wie das "Publish Locally", wir müssen dem System mitteilen, dass es zusätzliche Optionen für die Konfiguration gibt. Aktuell gibt es dafür keinen Button im UI, sondern wir müssen wir Objekte über eine ABAP API dem System bekannt geben. Dazu kannst du die folgende ausführbare Klasse verwenden.

CLASS zcl_bs_demo_scope_launchpad DEFINITION
  PUBLIC FINAL
  CREATE PUBLIC.

  PUBLIC SECTION.
    INTERFACES if_oo_adt_classrun.

  PRIVATE SECTION.
    TYPES object_name TYPE c LENGTH 40.
    TYPES objects     TYPE STANDARD TABLE OF object_name WITH EMPTY KEY.

    DATA scope_state TYPE c LENGTH 1 VALUE if_aps_bc_scope_change_api=>gc_scope_state-on.

    METHODS scope_content
      IMPORTING !pages TYPE objects
                spaces TYPE objects
                !out   TYPE REF TO if_oo_adt_classrun_out.
ENDCLASS.


CLASS zcl_bs_demo_scope_launchpad IMPLEMENTATION.
  METHOD if_oo_adt_classrun~main.
    scope_content( pages  = VALUE #( ( 'ZBS_DEMO_ADT_PAGE' ) )
                   spaces = VALUE #( ( 'ZBS_DEMO_ADT_SPACE' ) )
                   out    = out ).
  ENDMETHOD.


  METHOD scope_content.
    DATA scopes TYPE if_aps_bc_scope_change_api=>tt_object_scope_sorted.

    DATA(scope_api) = cl_aps_bc_scope_change_api=>create_instance( ).

    LOOP AT spaces INTO DATA(new_space).
      INSERT VALUE #( pgmid       = if_aps_bc_scope_change_api=>gc_tadir_pgmid-r3tr
                      scope_state = scope_state
                      object      = if_aps_bc_scope_change_api=>gc_tadir_object-uist
                      obj_name    = new_space ) INTO TABLE scopes.
    ENDLOOP.

    LOOP AT pages INTO DATA(new_page).
      INSERT VALUE #( pgmid       = if_aps_bc_scope_change_api=>gc_tadir_pgmid-r3tr
                      scope_state = scope_state
                      object      = if_aps_bc_scope_change_api=>gc_tadir_object-uipg
                      obj_name    = new_page ) INTO TABLE scopes.
    ENDLOOP.

    scope_api->scope( EXPORTING it_object_scope  = scopes
                                iv_simulate      = abap_false
                                iv_force         = abap_false
                      IMPORTING et_object_result = DATA(results)
                                et_message       = DATA(messages) ).

    out->write( results ).
    out->write( messages ).
  ENDMETHOD.
ENDCLASS.

 

Der Quellcode stammt aus der Dokumentation, die du unten verlinkt findest. Wir haben die Klasse noch einmal aufgebohrt, damit du verschiedene Objekte übergeben kannst und diese dann aktiviert werden. Über das Klassenattribut kannst du diese auch wieder deaktivieren. Hast du das Scoping durchgeführt, findest du die Objekte im Bereich "Predefined Content" und kannst damit den Space ohne viel Customizing direkt der Rolle zuordnen:

 

Hinweis: Laut Dokumentation muss die Aktion nur auf dem Entwicklungssystem durchgeführt werden. Beim Import in Test und Produktion, wird es automatisch veröffentlicht.

 

Ergebnis

Nachdem wir die Konfiguration und das Scoping durchgeführt haben, können wir den Space unserer Rolle zuordnen und finden nach dem Neuladen bzw. Ab-/Anmelden den Space in unserem Vorrat. Der oben definierte Space sieht im System nun wie folgt aus:

 

Übersetzung

Möchtest du die verschiedenen Überschriften und Abschnitte übersetzen, steht dir hier wieder der Standard für ABAP Cloud zur Verfügung. Über die App kannst du die Texte laden, übersetzen und wieder zur Verfügung stellen. Welches Tools du zur Übersetzung der XLIFF Datei nutzt, kannst du dabei selbst entscheiden.

 

Vollständiges Beispiel

Alle angelegten Objekte findest du im entsprechenden GitHub Repository, wenn sie bereits von abapGit unterstützt werden. Alle Änderungen findest du in folgendem Commit. Bist du auf der Suche nach der Partner App, dann findest du sie auch im Repository.

 

Fazit

Pages und Spaces als Entwickler selbst anlegen? Kein Problem über die verschiedenen Objekte und Optionen im System. Damit kannst du gleich noch einen Standard für deine Anwendungen ausliefern.

 

Zusätzliche Links:
SAP Help - Editing Launchpad Page Templates
SAP Help - Scoping


Enthaltene Themen:
BTPABAP EnvironmentPagesSpaces
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Dienstag und Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


BTP - Testen mit Swagger

Kategorie - ABAP

Du hast gerade dein Service Binding in ABAP vom Typ Web API erstellt und willst nicht mit dem Postman testen? Hast du dir schon Swagger angeschaut, was nun Out-of-the-Box funktioniert?

30.09.2025

RAP - EML Varianten

Kategorie - ABAP

Wenn du EML verwendest, um mit dem ABAP RESTful Application Programming Model zu interagieren, stehen dir aktuell mehrere Varianten zur Verfürgung. Schauen wir sie uns einmal im Detail an.

16.09.2025

BTP - ATC Automatisierung

Kategorie - ABAP

Wie kannst du dein ABAP Test Cockpit in der BTP automatisieren und dir die Ergebnisse zuschicken lassen, wenn es einmal Probleme gibt? In diesem Artikel gehen wir auf die Details ein.

12.09.2025

BTP - ATC Genehmigung in Steampunk

Kategorie - ABAP

Wie kannst du eigentlich eine ATC Befreiung im SAP BTP ABAP Environment durchführen? Wir führen dich einmal Schritt für Schritt durch den Prozess.

09.09.2025

RAP - Generator (from Scratch)

Kategorie - ABAP

Deine Entwicklung mit RAP fühlt sich manchmal sehr langsam an? Generatoren nehmen dir die Arbeit ab, um den eigentlich Stack aufzubauen und wiederkehrende Arbeit abzunehmen.

05.08.2025