This is a test message to test the length of the message box.
Login
|
ABAP RAP Popup Pflichtfelder
Erstellt von Software-Heroes

RAP - Popup Pflichtfelder

718

Wie kannst du eigentlich Pflichtfelder für ein Popup in RAP definieren? In diesem Artikel werden wir etwas genauer auf die Details eingehen.

Werbung


In diesem Artikel schauen wir uns an, wie wir für unsere Excel Upload Action weitere Pflichtfelder definieren und diese dann validieren können. Dazu schauen wir uns verschiedene Lösungen an.

 

Einleitung

In diesem Beispiel werden wir unsere App für das Report Pattern erweitern. Normalerweise definierst du Pflichtfelder innerhalb der Verhaltensdefinition, wenn es um Felder des RAP Business Objekts geht. Doch wie würde das für das Popup in unserer Aktion funktionieren?

 

Problem

Wenn wir unsere Excel Datei laden, zeigen wir im ersten Schritt ein Popup an, wo der Anwender noch einmal zusätzliche Informationen hinterlegen kann. Problem ist allerdings, dass die Felder keine Pflichtfelder sind und damit auch leer gelassen werden können.

 

Grundsätzlich steht dir die Annotation "@ObjectModel.mandatory" zur Verfügung, diese ist aber nicht für ABAP Cloud freigegeben und damit können in der Entität keine Pflichtfelder mehr über die Annotation gesetzt werden. Da wir einen nachhaltigen und langfristigen Weg benötigen, schauen wir uns zwei Lösungen an.

 

Lösung

Hier findest du zwei Lösungsvorschläge, um das gewünschte Ergebnis zu erzielen und den User zur Eingabe der Felder zu bekommen.

 

Prüfung

Eine einfache Möglichkeit ist die Überprüfung der Pflichtangaben vor der eigentlichen Ausführung der Aktion. Bedeutet wir führen die Validierung als ersten Schritt durch, bevor wir dann die folgende Logik ausführen. Dazu erweitern wir die Verhaltensimplementierung der Methode "LoadExcelContent".

IF ls_key-%param-EventComment IS INITIAL.
  INSERT new_message( id       = 'ZBS_DEMO_RAP_PATTERN'
                      number   = '008'
                      severity = if_abap_behv_message=>severity-error )
         INTO TABLE reported-%other.
  RETURN.
ENDIF.

 

Ist das Feld EventComment leer, dann geben wir eine Fehlermeldung aus und verlassen die aktuelle Logik bzw. die Methode komplett. Allerdings können wir den "TestRun" nicht validieren, da auch leer ein Ergebnis ist. Als Ergebnis erhalten wir im ersten Schritt eine Warnmeldung aus dem Backend.

 

Bestätigen wir die Warnung, dann wird daraus eine Fehlermeldung. Das Popup wird ausgeblendet und die klassische Fehlermeldung angezeigt.

 

Verhalten

Als zweite Lösung wollen wir neues Verhalten für die abstrakte Entität hinterlegen. Bereits in einem anderen Artikel haben wir eine abstrakte Entität genutzt, um tiefe Strukturen an eine API zu übergeben. In diesem Fall müssen wir unsere abstrakte Entität "ZBS_S_DRPExcelPopup" um das Schlüsselwort ROOT erweitern, da wir sonst keine Verhaltensdefinition erzeugen können.

@EndUserText.label: 'Excel Popup'
define root abstract entity ZBS_S_DRPExcelPopup
{
  @EndUserText.label: 'Comment'
  EventComment : abap.char(60);
  @EndUserText.label: 'Test run'
  TestRun : abap_boolean;
}

 

Im nächsten Schritt kannst du über das Kontextmenü des Objekts eine Verhaltensdefinition erzeugen die als "abstract" gekennzeichnet ist.

 

Allerdings müssen wir in der generierten Verhaltensdefinition des STRICT Mode deaktivieren, damit wir das Objekt ohne Fehler aktivieren können. Im Artikel von Andre Fischer im unteren Bereich, geht das auch mit dem STRICT Mode, allerdings mit einigen Zusätzen.

abstract;

define behavior for ZBS_S_DRPExcelPopup
{
  field ( mandatory ) EventComment, TestRun;
}

 

Schauen wir uns nun das Popup an, dann wurden hier die entsprechenden Marker hinterlegt und die Felder als Pflichtfelder definiert.

 

Führen wir nun die Aktion ohne Eingabe der Parameter aus, dann erhalten wir direkt im UI eine Fehlermeldung und können nicht weiter. Hier fällt auch auf, dass das Ja/Nein Feld nun auch eine Validierung besitzt und wir explizit einen Wert auswählen müssen. Leere Werte sind damit nicht mehr möglich.

 

Vollständiges Beispiel

Alle Änderungen aus diesem Artikel und alle neuen Objekte findest du im passenden Commit im GitHub Repository und kannst damit die gemachten Änderungen nachvollziehen.

 

Fazit

Für die Definition von Pflichtfeldern gibt es aktuell verschiedene Möglichkeiten. Welche du in deinem Szenario verwenden willst, bleibt am Ende dir überlassen.

 

Quelle:
SAP Community - Mandatory Parameters


Enthaltene Themen:
RAPBTPPopupPflichtfelderREX5
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 - E-Mail Anbindung OAuth 2.0

Kategorie - ABAP

Die Mail-Anbindung per Basic Auth funktioniert nun nicht mehr. Welche Möglichkeiten bestehen alternativ für die Anbindung von Office365 an das ABAP Environment und wie kannst du sie einrichten?

13.10.2026

RAP - Sales App Learnings

Kategorie - ABAP

Das Tutorial für die Sales App ist zu Ende und dieses Mal wurde eine große Bandbreite an Themen und Bereichen adressiert. In diesem Artikel schauen wir auf das Gelernte und wichtige Punkte.

08.09.2026

052: 10 Minutes from Start to Launchpad

Kategorie - YouTube

In dieser Folge schauen wir uns an, wie wir innerhalb von 10 Minuten eine RAP Anwendung erstellen können, diese generieren und bereitstellen und am Ende fertig im Launchpad aufrufen.

07.09.2026

RAP - Navigation (App to App)

Kategorie - ABAP

Wie kannst du eigentlich innerhalb deiner Fiori Anwendung auf eine andere Anwendung navigieren, ohne das der User die App manuell wechseln muss? Schauen wir uns die Navigation zwischen Fiori Apps an.

01.09.2026

ABAP in der Praxis - Setup App erstellen

Kategorie - ABAP

Keine SAP GUI mehr? Wie erstellen wir dann eigentlich eine statische Setup App und bleiben auf ABAP Seite trotzdem flexibel für die weitere Implementierung? Hier ein praktisches Beispiel.

28.08.2026