ABAP RAP Advanced

Augmentations in RAP

Smartere UIs

Einleitendes Beispiel

  • Ein Material wird angelegt und verwendet
  • Jeder Anwender möchte den Materialtext in seiner eigenen Sprache sehen und bearbeiten
  • Im Datenmodell gibt es unterschiedliche Texte pro Sprache
  • Das UI soll dennoch eine einheitliche, einfache Bearbeitungsoberfläche bieten

Motivation für Augmentations

  • Datenmodell und User Experience können unterschiedlich sein
  • Beispiel: Nur letzter Kommentar soll gezeigt und geändert werden
  • Hinter den Kulissen wird jeder Kommentar als neuer Eintrag gespeichert

Views zur Aggregation

  • ZI_##_Comment_Max: Aggregiert den neuesten Zeitstempel (CreatedAt) je Task
  • ZI_##_Comment_Latest: Join auf Max-Timestamp, holt den kompletten Kommentar
  • Key in Latest View ist TaskKey, da je Task nur ein Eintrag zurückgegeben

Erweiterung im Task-Modell

  • Neue Association zur View ZI_##_Comment_Latest in der Task I-View
  • Projektion ZC_##_Task_NoDraft erweitert um CommentText aus der Association
  • MDE Annotation zur Sichtbarkeit und Position des neuen Felds

Behavior Definition & Implementation

  • Neue Implementierungsklasse ZBP_C_##_Task_NoDraft für Projection
  • Verwendung von use update ( augment ) für zusätzliche Update-Logik
  • Feld CommentText als modify gekennzeichnet für Editierbarkeit
  • Augmentiertes Update erzeugt über Create-By-Association neue Kommentare
  • Wichtig: MODIFY AUGMENTING ENTITIES statt reguläres MODIFY
  • Relating-Tabellen verwalten Verbindung zwischen Parent und Child

Klassische Beispiel-Methode: augment_update

  • Schreibt bei Änderung von CommentText neue Einträge an Kommentare
  • Verwaltet Relations-Tabellen um Zusammenhang zu Tasks zu sichern
  • Nutzt Behavior Framework (cl_abap_behavior_handler) und MODIFY AUGMENTING

Nutzen von Augmentations

  • Trennung von User-Interface und Datenpersistenz
  • Flexible Umsetzung von individuellen UX-Anforderungen
  • Nutzung mächtiger RAP-Mechanismen zur sauberen Erweiterung ohne Modellbruch

Fazit

  • Augmentation erlaubt gezielte Erweiterung von Standardoperationen
  • Ideal für Szenarien mit abweichender Bearbeitungslogik
  • Erhöht Wartbarkeit und Flexibilität im RAP-Datenmodell