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

RAP - Importance

187

Schauen wir einmal auf die Wichtigkeit von Informationen innerhalb einer SAP Fiori Anwendung und wie wir damit die Sichtbarkeit in der RAP Anwendung steuern können.

Werbung


In diesem Artikel schauen wir uns das Thema Wichtigkeit bzw. Importance an und wie du damit Elemente im UI priorisieren kannst.

 

Einleitung

SAP Fiori Apps können auf verschiedenen Devices (PC, Tablet, Smartphone) dargestellt werden. So unterschiedlich wie die Geräte sind, so unterschiedlich sind auch die dargestellten Auflösungen und damit auch am Ende die UIs. Daher ist es umso entscheidender, dass wir uns Gedanken über die Wichtigkeit von Informationen machen. Welche Informationen sind wichtig und welche weniger, wenn es um die Anzeige in einem begrenzten Raum geht. Dafür verwenden wir Importance, also die Wichtigkeit, um verschiedene Elemente unterschiedlich zu gewichten. Damit geben wir dem UI die Möglichkeit zu entscheiden, welche Elemente bis zum Schluss angezeigt werden und welche als Erstes aus dem UI verschwinden können. Dazu verwenden wir als Beispiel wieder unsere Sales App und erweitern diese um die entsprechenden Bestandteile.

 

Grundlagen

Schauen wir uns erst einmal im ersten Blick einige Grundlagen zur Wichtigkeit an.

 

Verfügbarkeit

Da die Importance vor allem im UI greift, schauen wir uns die verschiedenen UI Annotationen an, wo uns die Eigenschaft zur Verfügung steht. Dazu rufen wir in Eclipse per STRG + SHIFT + A die Suche auf und suchen nach "UI". Damit können wir uns die UI Annotationen anschauen.

 

Gehen wir einmal durch die Liste der verschiedenen Elemente, wo Importance zum Einsatz kommt:

  • Elemente - Verschiedene Elemente die mit "identification", "lineItem" oder "fieldGroup" beginnen können direkt beeinflusst werden.
  • Facet - Ebenso kann eine komplette "facet", welche eine Sammlung von Feldern definiert, beeinflusst werden.
  • Weitere Eigenschaften - Daneben steht das Attribut noch bei "statusInfo", "dataFieldDefault" und "connectedFields" zur Verfügung.

 

Werte

Grundsätzlich sind in dem ENUM aktuell drei Werte definiert:

  • LOW
  • MEDIUM
  • HIGH

 

Dabei ist der Standard in der Anwendung laut Definition NONE, welches MEDIUM entspricht. Das heißt im Endeffekt, dass alle Elemente erst einmal als MEDIUM definiert sind und wir eine entsprechende Abstufung nach oben oder unten durchführen können. Wollen wir ein Element lange sehen, dann setzen wir es auf HIGH. Ist die Information weniger wichtig, setzen wir das Element auf LOW und es verschwindet als erstes vom Bildschirm, wenn der Platz nicht mehr reicht.

 

Beispiele

Schauen wir uns in diesem Abschnitt einmal zwei Beispiele für die Verwendung und Funktionsweise an.

 

List Report

Im klassischen List Report können wir in der angezeigten Tabelle die verschiedenen Spalten mit einer Wichtigkeit ausstatten. Hier kommt es aber auch auf die verwendete Tabelle an. Verwenden wir eine "Grid Table", dann erhalten wir horizontales Scrollen und die Wichtigkeit spielt hier keine Rolle. Im Standard erhalten wir normalerweise aber die "Responsive Table", diese stellt so viele Spalten dar, wie Platz verfügbar ist. Daher definieren wir im Test drei Spalten mit einer Wichtigkeit. Das Verkaufsjahr und der Monat sind eigentlich redundante Informationen, die sich aus dem Verkaufsdatum ableiten lassen. Daher setzen wir die beiden Spalten über "lineItem" auf LOW. Das Material am Ende ist uns besonders wichtig und damit setzen wir es auf HIGH.

@UI.lineItem: [ { position: 32, importance: #LOW  } ]
SalesYear;

@UI.lineItem: [ { position: 33, criticality: 'DataCriticality', criticalityRepresentation: #WITH_ICON, importance: #LOW  } ]
SalesMonth;

@UI.lineItem: [ { position: 160, value: '_SASold.MaterialId', importance: #HIGH } ]
_SASold;

 

Im Browser verwenden wir das Feature, um uns eine Webseite im Responsive Design anzuzeigen (F12 - Entwicklertools). Nun verkleinern wir den vorhandenen Bildschirmbereich stückweise und beobachten das Verhalten des UI. Dabei werden die Spalten mit LOW direkt als erstes in der Liste ausgeblendet. Dann werden alle nicht definierten Spalten (NONE/MEDIUM) Spalte für Spalte ausgeblendet bis nur noch unsere wichtige Spalte sichtbar ist.

 

Schlüsselfeld

Wie sieht es eigentlich mit Schlüsselinformationen innerhalb der Tabelle aus? Laut Definition sollen die Schlüsselfelder ebenfalls sichtbar sein, da diese automatisch die Wichtigkeit HIGH bekommen. Schauen wir uns dazu einmal zwei Elemente an, die als Schlüssel gesehen werden können:

  • Semantischer Schlüssel - Der sematische Schlüssel ist ein eindeutiger Schlüssel, der meist lesbar ist, aber nicht unbedingt der auf der Datenbank definierte Schlüssel ist. Diesen definieren wir im Core Data Service im Header.
@ObjectModel.semanticKey: [ 'PartnerNumber', 'SalesDate' ]

 

  • Tabellenschlüssel - Der eigentliche Schlüssel auf der Datenbank. In RAP Anwendungen wird dafür in vielen Fällen eine nicht gut merkbare UUID verwendet. In den UI Annotationen aktivieren wir die Anzeige und setzen das Feld ans Ende.
@UI.lineItem: [
  { position: 300 }
]
UUID;

 

In diesem Fall führen wir das gleiche Experiment durch. Dabei fällt auf, dass der Tabellenschlüssel auch sehr schnell ausgeblendet wird. Die Regel gilt also für den semantischen Schlüssel und dieser bleibt bis zum Schluss bestehen. Am Ende werden weiterhin alle drei Felder angezeigt, das System bricht die Information allerdings auf die nächste Zeile um, einfach da nicht mehr genug Platz zur Verfügung steht.

 

Vollständiges Beispiel

Das vollständige Beispiel findest du in GitHub im entsprechenden Paket für die Sales App. Die Änderungen aus diesem Artikel findest du in diesem Commit und kannst damit die Änderungen, plus die Zusatzinformationen, nachvollziehen.

 

Fazit

Wie wichtig ist dir ein Feld? Mit dem heutigen Artikel solltest du einen Einblick in das Element bekommen haben und wie es dir dabei hilft dein UI noch besser zu steuern.


Enthaltene Themen:
RAPBTPImportanceREX7
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.


RAP - Änderungsbelege implementieren (Nativ)

Kategorie - ABAP

Hast du das passende Release, dann kannst du Änderungsbelege auch mittlerweile nativ in RAP implementieren, ohne viel mnauelle Implementierung. Schauen wir uns dazu die verschiedenen Schritte an.

24.04.2026

RAP - Auxiliary Class

Kategorie - ABAP

Wenn die Implementierung in der Verhaltensimplementierung eines RAP Objekts wächst, welche Möglichkeiten hast du dann noch für eine saubere Kapselung? Schauen wir uns das einmal im Detail an.

17.04.2026

RAP - Änderungsbelege implementieren (Manuell)

Kategorie - ABAP

In diesem Artikel steigen wir in die manuelle Implementierung der Änderungsbelege in unser RAP Objekt ein und schauen uns die verschiedenen Schritte der Integration an. Am Ende sollen Änderungsbelege automatisch erzeugt werden.

14.04.2026

RAP - Draft Query

Kategorie - ABAP

In diesem Artikel schauen wir uns die Draft Query in RAP an und wie du damit die Einträge und ihre Sichtbarkeit steuern kannst. Dazu schauen wir uns die Praxis an einem Beispiel an.

03.04.2026

RAP - Kritikalität

Kategorie - ABAP

Für was brauchst du eigentlich die Kritikalität in deiner Anwendung und was kannst du damit erreichen? Schauen wir uns verschiedene Formen und Szenarien an.

17.03.2026