Skip to content

Mobile-Builder-API in der S/4HANA Cloud ​

Innerhalb einer ABAP-Klasse, die an eine View gebunden ist, greifen Sie über die Mobile-Builder-API auf das Frontend zu. In der Cloud läuft der Austausch zwischen App und Backend über den OData-Service der Runtime, die Basisklasse ist zmobbuild_cl_request_base. Die Methoden der View-Klasse sind in beiden Welten gleich (On-Prem-Fassung: Mobile-Builder-API on-prem).

Kanal und Basisklasse ​

Cloud
Basisklassezmobbuild_cl_request_base mit on_pbo und on_pai
KanalOData-Service ZMOBBUILD_UI_RUNTIME, Aktion processRun; die gebaute App kennt den Kanal aus ihrem Artefakt
BeispielklassenPaket ZMOBBUILD_EXAMPLE: eine Klasse je Komponente (ZMOBBUILD_CL_EX_*), dazu Push- und RAP-Beispiele
SprachversionABAP for Cloud Development

Methodensignatur und Klassennamen

Die exakten Signaturen entnehmen Sie der Klasse, die der Designer beim Generieren anlegt, und den Beispielklassen im Tenant. Die folgende Beschreibung dokumentiert den funktionalen Umfang der API.

Properties lesen und setzen ​

Über die API lesen Sie den Wert einer Komponente (z.B. den Inhalt eines Eingabefelds) oder schreiben einen neuen Wert. Üblich sind:

PropertyKomponentenBeispielzweck
valueInput, TextArea, StepInputEingabe lesen und auswerten
textLabel, Title, Button, TextAnzeigetext setzen
selected / stateCheckBox (selected), Switch (state); RadioButton über selectedIndex der GruppeStatus lesen / setzen
selectedKeyComboBox, SegmentedButtonAktuelle Auswahl lesen
enabled / editableenabled bei Button, CheckBox, Link, SegmentedButton, StepInput; editable bei Input, TextArea, ComboBox, TimePicker, CheckBox, StepInputKomponente sperren/freigeben
visibledie meisten Anzeige- und Eingabekomponenten (nicht App, View, Content, Kopf-/Fußzeile, HBox, VBox, ToolbarSpacer, ComboBoxItem und die Logic-Flow-Bausteine)Komponente ein-/ausblenden

Zahlen- und Dezimalwerte

Werte übergeben Sie an das Frontend immer als Text — dabei gilt:

  • Lange Ziffernfolgen (HU-Nummern, EANs, Belegnummern — mehr als 15 Stellen oder mit führenden Nullen) kommen exakt so an, wie Sie sie übergeben.
  • Dezimalwerte formatieren Sie im ABAP (WRITE ... TO lv_text — nutzt automatisch das Dezimalformat aus den SU01-Benutzervorgaben) und übergeben z. B. 1,5 oder 12,50. Komma-Werte werden vom Frontend garantiert nicht verändert und exakt so angezeigt — auch die Nachkomma-Null bleibt erhalten.
  • Punkt-Dezimalen wie 1.5 werden dagegen als Zahl interpretiert und normalisiert angezeigt (12.50 → 12.5).
  • Beim Auslesen (PAI) erhalten Sie den Wert im selben Format als Text zurück — Komma-Werte parsen Sie im ABAP entsprechend zurück.

Items setzen (Listen / Tabellen) ​

Listen-Komponenten füllen Sie mit einer Datenmenge. Übergeben werden Daten in tabellarischer Form. Für Table sind dabei zusätzlich die Spaltenbindungen relevant – diese vergeben Sie über das Eigenschaften-Panel oder pflegen sie als Items mit benannten Feldern.

Mit set_nav_to( iv_view_id ) wechseln Sie zur Laufzeit von einer View in eine andere. Einziger Parameter ist die controlId der Ziel-View (z.B. detail); Daten nimmt die Methode nicht entgegen.

Daten für die Ziel-View reisen getrennt davon über die globalen Daten (Bag):

MethodeBedeutung
add_global_data( iv_key, io_data )Wert (Elementar, Struktur oder Tabelle) unter einem Schlüssel ablegen
get_global_data( iv_key, co_data )Wert zu einem Schlüssel wieder auslesen
remove_global_data( iv_key )Schlüssel entfernen

Der Bag geht mit jeder Antwort an das Frontend und kommt mit dem nächsten Request zurück. Im Lifecycle-Hook on_pbo der Ziel-View lesen Sie ihn aus und initialisieren die View damit (z.B. Detail-Daten zu einer markierten ID nachladen).

Meldungen ​

Drei Varianten:

TypVerwendung
ToastKurze, nicht-blockierende Bestätigung (z.B. „Gespeichert")
MessageStripPersistente Hinweis-Leiste in der View (z.B. Validierungsfehler)
DialogModale Rückfrage (z.B. „Möchten Sie wirklich löschen?") mit Bestätigen / Abbrechen

Value-State / Validierung ​

Beim Setzen des Value-States markieren Sie eine Komponente farblich:

StateBedeutungUI-Effekt
NoneStandardKeine Markierung
InformationInfoBlau
SuccessErfolgGrün
WarningWarnungGelb
ErrorFehlerRot

Zusätzlich können Sie einen State-Text setzen, der als Tooltip oder Hilfetext angezeigt wird.

Validatoren (siehe Funktionen) erledigen einfache Prüfungen automatisch – die Backend-API ist für fachliche Validierungen, die nicht client-seitig entschieden werden können (z.B. „Ist die Bestellnummer im SAP-System bekannt?").

App-Daten ​

Über die API erfragen Sie Metadaten zur laufenden App:

InformationVerwendung
Aktuelle App-IDLogging, Audit
Aktuelle View-IDVerzweigungen je nach Quell-View
Übersetzte Texteget_text( iv_key ) liefert den Text in der Anmeldesprache des Benutzers; get_i18n( iv_iso639 ) und get_i18n_text( iv_iso639, iv_key ) laden die Texte einer angegebenen Sprache. Eine eigene Abfrage der aktiven Sprache gibt es nicht

Besonderheiten in der Cloud ​

Kein direktes Schreiben auf Tabellen ​

on_pai läuft innerhalb einer RAP-Anfrage. INSERT, UPDATE, MODIFY oder DELETE auf eine Datenbanktabelle sind dort nicht erlaubt und brechen die Anfrage ab. Legen Sie für App-Daten ein eigenes RAP-Objekt an (Tabelle, CDS-Sicht, Verhaltensdefinition, Behavior-Pool) und ändern Sie es aus der Event-Methode mit MODIFY ENTITIES … CREATE oder UPDATE ohne COMMIT ENTITIES. Der Mobile Builder sichert beim Abschluss der Anfrage. Das Beispiel ZMOBBUILD_I_EX_01 im Beispielpaket zeigt das Muster.

Strikte SQL-Syntax ​

SELECT … INTO steht am Ende der Anweisung, jede Hostvariable trägt ein @. Die Syntaxprüfung im Tenant meldet Verstöße beim Aktivieren.

Push an offene Apps ​

Aus der Event-Methode stoßen Sie einen Push an alle offenen Instanzen einer App oder an eine Sitzung mit der Aktion pushRefresh an. Die Beispielklasse ZMOBBUILD_CL_EX_PUSH_SERVICE kapselt beide Fälle: push_refresh_from_request innerhalb einer Anfrage, push_refresh von außerhalb, etwa aus einem Job. Die Empfänger-View muss die View-Eigenschaft pushInterval gesetzt haben, siehe Backend-Konfiguration; sie löst in der angezeigten View das Ereignis pushRefresh mit dem übergebenen Ereignisschlüssel (Standard Refresh) aus, und die Event-Methode verarbeitet es wie einen Klick.

Nur freigegebene APIs ​

Typen und Klassen, die nicht für die Cloud-Entwicklung freigegeben sind, stehen nicht zur Verfügung. Die Syntaxprüfung zeigt betroffene Stellen. Für JSON steht /UI2/CL_JSON bereit, für Zeitstempel und Zufallszahlen die XCO-Bibliothek.

Nächste Schritte ​