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

RAP - Kritikalität

72

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.

Werbung


In diesem Artikel schauen wir uns die Möglichkeiten an, die du mit der Kritikalität in RAP steuern kannst und was du damit an UI Features umsetzen kannst.

 

Einleitung

Im letzten Artikel haben wir unsere Sales App mit Icons verschönert und etwas lebendiger gemacht. Daher wollen wir uns in diesem Artikel noch einmal die Kritikalität im Detail anschauen und was du damit noch anpassen kannst. Dabei ist das Ziel, einen gewissen Status per Farbe und/oder Icon zu symbolisieren.

 

Vorbereitung

In der Vorbereitung benötigen wir ein Feld, welches die Kritikalität abbildet. Dazu verwenden wir wie in den meisten Fällen bisher ein virtuelles Element. Wir möchten die Information direkt aus dem errechneten Monat ableiten, diese Information aber nicht auf der Datenbank oder im Draft ablegen. Vom Datentyp her benötigen wir nur ein INT1 Feld, da wir nur sehr wenige Werte damit abbilden müssen.

        @ObjectModel.virtualElementCalculatedBy: 'ABAP:ZCL_BS_DEMO_RAP_SALES_VE'
virtual DataCriticality : abap.int1,

 

Dazu erweitern wir die Methode CALCULATE. In diesem Fall ergänzen wir aber die Information, wenn wir auch den Monat ableiten, da wir über diesen die Farbe bestimmen wollen, um die möglichen Werte zu überprüfen. Dazu binden wir an die verschiedenen Monate die verschiedenen Werte und befüllen damit das neue Feld. Als Test verwenden wir hier die Werte von 0-6, die wir an die verschiedenen Zeiten hängen.

original->DataCriticality = SWITCH #( original->SalesMonth
    WHEN '01' THEN 0
    WHEN '02' THEN 1
    WHEN '03' THEN 2
    WHEN '10' THEN 3
    WHEN '11' THEN 4
    WHEN '12' THEN 5
    ELSE           6 ).

 

Feld

Um nun einem Feld die Kritikalität zuzuordnen, stehen dir zwei Annotationen zur Verfügung. Über "criticality" ordnest du das Feld zu, welches den Wert für die Farbe definiert. Über "criticalityRepresentation" kannst du bei einem Feld noch bestimmen, ob ein Icon zusätzlich angezeigt wird. Die Information können wir bei den gängigen Ausgaben mitgeben und so das Feld in der Ausgabe verändern.

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

 

Als Ergebnis erhalten wir dafür die Monate in verschiedenen Farben und zusammen mit Icons. Über "criticalityRepresentation" kannst du noch steuern, ob ein Icon angezeigt wird oder nur der Text farblich hervorgehoben wird.

 

Im Gegensatz zu einigen Quellen im Internet, hat sich die Farbskala im Laufe der Zeit etwas verändert. Null oder andere Werte ohne Bedeutung, werden nun ganz normal dargestellt und nicht mehr Grau. Neben den anderen Werten ist auch noch Blau dazugekommen. In der Tabelle findest du eine kurze Übersicht.

Kritikalität Farbe Icon (Text) Icon (Symbol)
0 Keine -  
1 Rot Kreuz
2 Orange Ausrufezeichen ⚠️
3 Grün Haken
5 Blau Info ℹ️

 

Zeile

Im List Report kannst du auch die Zeile markieren und bist nicht von einem Feld abhängig. Dies hilft, wenn du nicht sicher bist, ob die benötigte Information auch in der Liste angezeigt wird. Dazu definierst du auf Header Ebene des Core Data Service die Annotation für LineItem und setzt dort die Kritikalität.

@UI.lineItem: [{criticality: 'DataCriticality'}]

 

Damit wird im vorderen Teil der Zeile eine farbliche Markierung gesetzt. Diese folgt den gleichen Regeln wie bei den Feldern, wenn es um die verschiedenen Farben geht.

 

Button

Bereits in dem Artikel für die verschiedenen Positionen der Buttons, hatten wir die Farbe eines Buttons im UI verändert. Dazu kannst du ebenfalls die Kritikalität verwenden und in den Eigenschaften des Buttons angeben.

 

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

Sollte auf eine Position mehr geschaut werden, dann kannst du diese per Kritikalität hervorheben. Die Eigenschaft hilft deinem Anwender, wichtige Positionen oder Dringlichkeiten besser zu verstehen und zu erkennen. Die Umsetzung ist recht leicht gemacht und per UI-Annotation kann diese einfach eingebunden werden.

 

Quelle:
UI5 - Highlighting Line Items Based on Criticality


Enthaltene Themen:
RAPBTPCriticalityREX7
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 - Icons

Kategorie - ABAP

Wie findest du eigentliche Icons im UI5 Umfeld und wie kannst du diese mit ABAP Mitteln in deine Fiori Elements Anwendung einbauen? Lass uns diese Frage im Artikel beantworten.

13.03.2026

RAP - Gruppierung von Aktionen

Kategorie - ABAP

Wie kannst du eigentlich deine verschiedenen Aktion in RAP unter einem Button gruppieren, vor allem wenn die Aktionen relativ ähnlich sind. In diesem Artikel schauen wir uns die Details zur Umsetzung mit ABAP an.

10.03.2026

ADT - RAP Extension Assistent [MIA]

Kategorie - ABAP

Du möchtest ein RAP Objekt erweitern und weißt nicht genau wo du starten sollst? Vielleicht hilft dir die Idee des Extension Assistant weiter und leitet dich Schritt für Schritt durch den Prozess.

06.03.2026

ADT - RAP Analyzer [MIA]

Kategorie - ABAP

Die Einarbeitung und Übersicht in bestehende RAP Objekte kann nicht immer einfach sein, vor allem wenn es sich um komplexe Objekte handelt. Fragen wie das verwendete Pattern und wichtige Objekte müssen sich meist erarbeitet werden.

24.02.2026

RAP - Position der Buttons

Kategorie - ABAP

In diesem Artikel schauen wir uns die verschiedenen Positionen der Buttons an. Wo können wir in RAP die verschiedenen Actions platzieren und wie nutzen wir diese.

17.02.2026