Skip to content

Event-Methoden ​

Events sind der Mechanismus, mit dem eine App auf Benutzeraktionen reagiert. Im Mobile Builder tragen Sie an einer Komponente je Event einen Event-Schlüssel ein. Löst der Benutzer das Event aus, schickt die Runtime den Schlüssel an das Backend; dort ruft die Mobile-Builder-Basisklasse bei jedem Ereignis die Methode on_pai der gebundenen ABAP-Klasse auf, in der Sie den Schlüssel auswerten.

Voraussetzungen ​

VoraussetzungHinweis
Die View ist an eine ABAP-Klasse gebundenSiehe View an ABAP-Klasse binden
Die Klasse redefiniert on_paiDie Basisklasse ruft on_pai bei jedem Ereignis auf – unabhängig davon, welche Komponente es ausgelöst hat
Der Event-Schlüssel wird in on_pai behandeltEin Schlüssel ohne passenden Zweig bleibt zur Laufzeit ohne Wirkung

Event in der Komponente eintragen ​

Selektieren Sie eine Komponente und wechseln Sie im Eigenschaften-Panel auf den Reiter Ereignisse. Sie sehen pro unterstütztem Event ein Eingabefeld – tragen Sie dort den Event-Schlüssel ein.

Event-Schlüssel eintragen

Beispiel: Bei einem Button geben Sie unter onPress den Schlüssel login ein. Beim Klick auf den Button ruft die Runtime das Backend auf; in on_pai der gebundenen Klasse liefert me->get_event( )->get_event_key( ) den Wert login.

Verfügbare Event-Arten ​

Welche Events eine Komponente unterstützt, hängt vom Typ ab:

EventKomponentenAuslöser
onPressButton, Link, Icon, Image, GenericTag, Tile (inkl. Tile-Inhalte), SegmentedButtonItemKlick / Tap
onSelectCheckBox, RadioButtonGroup, IconTabBarAuswahl
onChangeInput, TextArea, ComboBox, Switch, StepInput, TimePicker, ListWert geändert
onSubmitInputDrücken der Entertaste
onSelectionChangeTable, UITable (Grid Table), SegmentedButtonAuswahländerung
onScanSuccessBarcodeScannerButtonBarcode erkannt
onScanFailBarcodeScannerButtonScan abgebrochen
onCloseMessageStripSchließen-Klick
onSaveSignaturePadSignatur gespeichert
onNavButtonPressView (Header)Klick auf Zurück-Button

Ereignis im Backend auswerten ​

In on_pai liefert me->get_event( ) das ausgelöste Ereignis:

MethodeLiefert
get_event_key( )Den im Designer eingetragenen Event-Schlüssel
get_sender( )Die controlId der auslösenden Komponente
get_parameters( )Event-spezifische Zusatzdaten als Schlüssel-Wert-Liste

Typisch ist eine CASE-Verzweigung über den Schlüssel. Die vom Designer erzeugten Konstanten-Attribute (mc_mb_onpress_<controlId> usw.) liefern die Schlüssel, ohne dass Sie String-Literale tippen:

abap
METHOD on_pai.
  CASE me->get_event( )->get_event_key( ).
    WHEN mc_mb_onpress_btnlogin.
      " Anmeldung prüfen, anschließend in die Listen-View wechseln
      me->set_nav_to( 'mainList' ).
    WHEN mc_mb_onchange_inputuser.
      " Eingabe prüfen
  ENDCASE.
ENDMETHOD.

Beim Generieren einer neuen Klasse legt der Mobile Builder on_pbo und on_pai bereits als Redefinitionen an.

Aktionen in on_pai ​

Innerhalb von on_pai greifen Sie über die Mobile-Builder-API (On-Prem / Cloud) auf Frontend-Komponenten zu, lesen und setzen Werte, navigieren zwischen Views, zeigen Meldungen und rufen Backend-Logik auf.

Typische Muster:

AnwendungsfallAktion
Aktuellen Wert eines Eingabefelds lesenKomponente über ihre controlId beziehen und die Property value lesen
Ergebnis im Detail-Feld anzeigenProperty text der Anzeige-Komponente setzen
Liste neu ladenDaten ermitteln, anschließend als Items der Liste setzen
Meldung an den Benutzerset_message_toast (Toast) bzw. set_message_box (Dialog)
Navigation in eine andere Viewset_nav_to mit der controlId der Ziel-View
Fokus auf eine Komponente setzenset_focus mit der controlId der Komponente
Vor dem Speichern validierenEingabe lesen, prüfen, ggf. Wertzustand Error setzen

Mehrere Komponenten, ein Schlüssel ​

Sie können denselben Event-Schlüssel bei mehreren Komponenten eintragen, sofern die Logik identisch ist – das spart Redundanz. Über get_sender( ) unterscheiden Sie in on_pai, welche Komponente das Ereignis ausgelöst hat.

Fehlerbild: Ereignis ohne Wirkung ​

Passiert beim Auslösen eines Events nichts, wird der Schlüssel in on_pai nicht behandelt – ein unbekannter Schlüssel erzeugt keine Fehlermeldung. Lösung:

  1. Prüfen Sie, ob die View an die richtige Klasse gebunden ist (View-Eigenschaft class)
  2. Prüfen Sie, ob der Schlüssel in on_pai exakt so verglichen wird, wie er im Designer eingetragen ist – am sichersten über die generierten Konstanten-Attribute
  3. Prüfen Sie, ob die Komponente das Event überhaupt anbietet (siehe Tabelle oben)

Nächste Schritte ​

  • Mobile-Builder-API (On-Prem / Cloud) – wie Sie Frontend-Komponenten ansprechen
  • Konstanten-Attribute – controlId-Werte und Event-Schlüssel typsicher referenzieren
  • Logic Flow – Alternative zur ABAP-Auswertung für einfache Logik