ABAP RAP Advanced

Aktionen mit Parametern

Aktionen parametrisieren

Was sind Actions mit Parametern?

  • Nicht-standardisierte Operationen auf RAP-Objekten
  • Erlauben, zusätzliche Eingabe von Daten durch den Anwender
  • Parameter geben Details an, die für Verarbeitung nötig sind
  • Beispiel: Status ändern mit Kommentar als Parameter

Parameterstrukturen definieren

  • Parameter als eigene abstrakte CDS Entität modellieren
  • Struktur enthält alle nötigen Felder für die Action
  • Beispielstruktur:
@EndUserText.label : 'Status Action Input Structure'
@AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #STRUCTURE
define structure zkp_status_ae {
    status_code : abap.char(10);
    comment : abap.string;
}

Action mit Parameter in Behavior Definition

  • Verknüpfen der Parameterstruktur mit Action mittels parameter Keyword
  • Optional kann ein Ergebnis mit result übergeben werden
  • Beispiel:
define behavior for ZI_Your_Root_Entity persistent 
table ZYourTable 
lock master 
authorization master ( instance ) {

    action resetStatus parameter zkp_status_ae result $self;​
}

Umsetzung in der Implementierung

  • Parameter werden im Handler über Tabellen keys empfangen
  • Zugriff auf Parameterwerte über Struktur-Instanzen in keys
  • Verarbeitung der Parameter und Anpassung des BO-Status
  • Rückgabe des Ergebnisses an UI oder Caller

UI Integration und User Experience

  • RAP generiert automatisch UI-Dialoge für Parameteractionen
  • Fiori Elements zeigt Popup zur Eingabe der Parameter an
  • Kein explizites UI5 Coding für Parameterhandling notwendig
  • Mehrfachauswahl, Pflichtfelder und Validierungen möglich

Best Practices

  • Parameter immer klar und semantisch korrekt modellieren
  • Pflichtfelder mit mandatory:execute kennzeichnen
  • Rückgabeparameter verwenden, um UI Rückmeldung zu geben
  • Parameterstrukturen versionieren und dokumentieren

Zusammenfassung

  • Actions with Parameters erweitern RAP-Objekte funktional
  • Ermöglichen flexible, benutzergetriebene Prozesse
  • Unterstützt saubere Trennung von Daten und Steuerlogik
  • Starke Integration in Behavior Layer und Fiori UI