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

RAP - Aktion (Verarbeitungsoptionen)

109

Wie aktivierst du eigentlich den Multi-Select in RAP und steuerst die verschiedenen Verarbeitungsoptionen? Hier schauen wir uns die verschiedenen Möglichkeiten im Framework an.

Werbung


Im Artikel letzte Woche hatten wir uns eine Aktion im Bereich der Custom Entity angeschaut, in diesem Artikel geben wir noch einige Details zur Verarbeitung und zur Generierung in BAS.

 

Einleitung

Nicht alle Optionen stehen als Annotationen bei der Modellierung zur Verfügung. So werden bestimmte Optionen erst bei der Generierung der Fiori Applikation eingestellt, wie zum Beispiel der Autoload, Erweiterungen oder UI Aktionen. Um die verschiedenen Verarbeitungsoptionen validieren zu können, müssen wir daher im ersten Schritt den Multi-Select in der Tabelle aktivieren und im Anschluss können wir uns das Verhalten der App anschauen.

 

Vorbereitung

Als Vorbereitungsschritt müssen wir zuerst die App generieren, um sie im Anschluss anpassen und testen zu können. Dabei verwenden wir das Business Application Studio als Standard in der Entwicklung, da es ohne weitere Konfiguration für uns Out-of-the-Box zur Verfügung steht. Hier generieren wir uns über die Tool Bridge das Projekt. Nun sollten wir die Übersichtsseite sehen:

 

Multi Select

Über den OData v2 erhalten wir nur Radiobuttons in der Liste, können aber über das BAS den Multi-Select aktivieren. Dazu können wir das Guided Development starten und suchen hier nach der Option "Configure Multiple Selection for a Table".

 

Im nächsten Schritt starten wir den Wizard und müssen im unteren Bereich die Option auf "True" setzen, um die Mehrfachauswahl zu aktivieren. Über den Button "Insert Snippet" wird die Einstellung in der App aktiviert.

 

Wurde die Datei nun erweitert, dann sollte im Preview nun eine Mehrfachauswahl von Einträgen möglich sein. Mit dieser kleinen Anpassung hat unsere App nun die volle Flexibilität, wenn wir mehrere Datensätze prozessieren wollen.

 

Verarbeitungsoptionen

In diesem Kapitel schauen wir uns einmal die Verarbeitungsoptionen an, die für Aktionen zur Verfügung stehen. Über den Zusatz "invocationGrouping" in der UI Annotation, können wir zwei verschiedene Zustände einer Aktion steuern.

 

ISOLATED

Hierbei handelt es sich um die Standard Einstellung, wenn du eine Aktion definierst, den Zusatz aber nicht angibst. Dieser bewirkt, dass jeder markierte Datensatz in der Liste eine eigene Abfrage generiert. Führen wir unsere "Custom Action" aus, dann wird diese so oft aufgerufen, wie Datensätze markiert sind. Mit jedem Durchlauf erhalten wir aber nur einen Schlüssel für die Verarbeitung.

 

Etwas merkwürdig wird es dann bei der statischen Aktion "Reset", die sich unterschiedlich verhält, wenn wir keine Datensätze markiert haben oder Datensätze in der Liste gewählt haben. Ist kein Datensatz gewählt, dann wir die Aktion genau einmal aufgerufen, so wie wir es erwarten. Wählen wir zum Beispiel zwei Datensätze aus, dann wird die Aktion zweimal ausgeführt, was zum Beispiel für den Reset keinen Sinn macht.

 

CHANGE_SET

Die zweite Option ist das Change-Set und wie der Name sagt, wird hier ein Set aus Änderungen gebildet. Dazu setzen wir bei beiden Aktionen einmal die Option und schauen uns das Verhalten im Detail an. Markieren wir in der Liste alle drei Einträge und rufen die "Custom Action" auf, dann wird unsere Implementierung genau einmal aufgerufen. Allerdings erhalten wir alle Schlüssel an die Methode geliefert.

 

Nun zur statischen Aktion. Auch hier erhalten wir genau einen Aufruf der Aktion, egal ob wir Datensätze markiert haben oder nicht. Dieses Verhalten würden wir eigentlich standardmäßig von der statischen Aktion erwarten, da die selektierten Datensätze eigentlich keine Relevanz haben.

 

Verwendung

Mit dem Wissen von oben können wir damit die beiden Aktionen für das UI definieren. Damit die statische Aktion wie gewünscht funktioniert, würden wir hier mit dem Change-Set arbeiten. Bei der Custom Action kannst du selbst entscheiden, ob die Datensätze als Gruppe verarbeitet werden sollen.

@UI.lineItem: [{ position: 10 }, 
  { type: #FOR_ACTION, dataAction: 'myCustomAction', label: 'Custom Action', invocationGrouping: #ISOLATED },
  { type: #FOR_ACTION, dataAction: 'resetAllIcons', label: 'Reset', invocationGrouping: #CHANGE_SET } ]

 

Hinweis: Grundsätzlich sollten Aktionen so implementiert werden, dass sie auch mit mehreren Datensätzen umgehen können.

 

Vollständiges Beispiel

Das vollständige Beispiel des Services und der App findest du im GitHub Repository im Paket ZBS_DEMO_RAP_CUSTOM_ACTION. Die kleinen Änderungen aus diesem Artikel wirst du dort allerdings nicht finden.

 

Fazit

Du weißt nun, wie du auch den Multi-Select über das Business Application Studio aktivieren kannst und wie du die Aktion in der richtigen Art und Wise konfigurierst, damit sie zu deiner Verarbeitung passt.

 

Quelle:
SAP Help - invocationGrouping


Enthaltene Themen:
RAPBTPCustom ActioninvocationGrouping
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 - Generator (from Scratch)

Kategorie - ABAP

Deine Entwicklung mit RAP fühlt sich manchmal sehr langsam an? Generatoren nehmen dir die Arbeit ab, um den eigentlich Stack aufzubauen und wiederkehrende Arbeit abzunehmen.

05.08.2025

RAP - Custom Entity mit Aktion

Kategorie - ABAP

Wie kannst du eigentlich in einer Custom Entity eine Action sauber implementieren, um am Ende auch das UI zu aktualisieren? Schauen wir uns die verschiedenen Schritte im Detail an.

29.07.2025

RAP - API Pattern

Kategorie - ABAP

In diesem Artikel schauen wir uns das API-Pattern für RAP an und wie du es flexibel in der ABAP Entwicklung einsetzen kannst, um Schnittstellen zur Verfügung zu stellen.

20.06.2025

RAP - Mehrere Filter und Einstellungen

Kategorie - ABAP

Wie sieht es eigentlich aus, wenn wir in RAP mehrere Filter und Felder als Standard setzen wollen und dazu noch eine standardmäßige Sortierung benötigen?

16.05.2025

RAP - Länge von Meldungen

Kategorie - ABAP

Deine Meldung wird bei der Ausgabe mit RAP abgeschnitten? Lass uns das Problem und eine Lösung anschauen.

13.05.2025