ABAP RAP

Aktionen

(C) Brandeis Consulting📁

Scope

In diesem Foliensatz geht es ausschließlich um die Standard Features des Managed Szenarios. Die folgenden Aspekte sollen gelernt werden:

  • Aktionen
  • Grundlagen der EML, um Aktionen zu implementieren
(C) Brandeis Consulting📁

Zusammenspiel von Behavior und Implementation

Nach dem etwas im Behavior definiert wurde, kann man sich die zugehörigen Methoden per Quick-Assist in die Implementierung generieren lassen:

(C) Brandeis Consulting📁

Aktionen (Definition)

Es können eigenen Aktionen hinzugefügt werden. Dazu muss man alle Objekte anpassen

  • Behavior - Aktion definieren
  • Implementierung - Aktion ausprogrammieren
  • CDS - Aktion auf der Oberfläche sichtbar machen

Arten von Aktionen

Unterscheidung zwischen

  • Aktionen - Ändern die Daten
  • Factory Aktionen erzeugen Instanzen
  • Statische Aktionen - ändern Daten, aber ohne direkten Instanzbezug
  • Funktionen - nur lesender Zugriff auf die Daten

Maximal eine Struktur als Importing Parameter und als Returning Parameter. Es können auch Objekte übergeben werden.

(C) Brandeis Consulting📁

Aktion Stornieren - Cancel Tasks

Anforderung: In der Liste sollen mehrere Aufgaben markiert werden und mit einer Aktion storniert werden können.

(C) Brandeis Consulting📁

Aktion Stornieren - Behavior

Die Aktion CANCEL ist ohne Parameter und Rückgabe. Also einfach hinschreiben: action cancel;

projection implementation in class zbp_c_tasks unique;
strict ( 2 );

define behavior for zc_tasks //alias <alias_name>
{
  create;
  update;
  delete;

  action cancel ;

  field ( readonly ) Author,
                     ChangedAt,
                     CreatedAt;
(C) Brandeis Consulting📁

EML

Die EML ist Bestandteil der ABAP Programmiersprache. Sie bezieht sich auf den Transaktionspuffer.

  • Definition:
    • Entity Manipulation Language (EML) ist eine deklarative Sprache, die in SAP verwendet wird, um auf Entitäten (Business Objects) im ABAP RESTful Application Programming Model (RAP) zuzugreifen und diese zu manipulieren.
    • EML ermöglicht das Erstellen, Bearbeiten und Löschen von Entitäten auf eine vereinfachte und strukturierte Weise.
    • Die EML ist vergleichbar mit der DML von SQL.
  • Einsatzgebiet:
    • Wird in der Definition von Business Object Behavior und zur Verwaltung von Entitäten und deren Zustand in RAP verwendet.
(C) Brandeis Consulting📁

Aktion Stornieren - Implementierung

Hinweise

  • IN LOCAL MODE umgeht die Berechtigungsprüfungen
  • Durch die FOR Schleife können auch mehrere Instanzen storniert werden.
  • Beachte das UPDATE FIELDS( status ) - Nur dieses Feld soll aktualisiert werden.
  • Das Schlüsselwort VALUE steht hier für den entsprechenden Konstruktor-Operator. Die Interne Tabelle in der WITH Klausel kann man auch anders konstruieren.

Implementierung

CLASS lhc_zc_tasks IMPLEMENTATION.

  METHOD cancel.
    MODIFY ENTITIES OF zc_tasks IN LOCAL MODE
      ENTITY zc_tasks
     UPDATE FIELDS ( status )
     WITH VALUE #( FOR key IN keys ( %tky = key-%tky
                                     status = 'CANCELED' ) ).


  ENDMETHOD.

ENDCLASS.
(C) Brandeis Consulting📁

Aktion Stornieren - CDS

Die Aktion ist erst dann sichtbar, wenn sie auch im CDS annotiert wird:

      @UI.lineItem:[ { position: 10 },
                     { type: #FOR_ACTION, 
                       dataAction : 'cancel', 
                       label: 'Cancel Tasks' } ]

Da die Annotation wird bei irgend einem Feld (z.B. dem ersten) mit hinzugefügt.

(C) Brandeis Consulting📁