Ansicht
Dokumentation

ABENBDL_DETERMINE_ACTION - BDL DETERMINE ACTION

ABENBDL_DETERMINE_ACTION - BDL DETERMINE ACTION

CL_GUI_FRONTEND_SERVICES - Frontend Services   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- determine action

$[internal$] determine action
          $[(authorization:none  $| authorization:update)$]
           DetermineActionName $[extensible$]
          {
           determination $[(always)$] MyDetermination1;
           determination $[(always)$] MyDetermination2;
           validation $[(always)$] MyValidation1;
           validation $[(always)$] MyValidation2;
           determination $[(always)$] Child~ChildDetermination;
           validation $[(always)$] Child~ChildValidation;
           ...
          }


Wirkung

Determine-Aktionen erlauben es dem RAP-BO-Consumer auf Anforderung Determinierungen und Validierungen auszuführen. Beim Ausführen einer Determine-Aktion werden die ihr zugeordneten Determinierungen und Validierungen ausgewertet und nur diejenigen Determinierungen und Validierungen mit erfüllten Auslösebedingungen ausgeführt. Eine Determine-Aktion kann als on save definierte Determinierungen und Validierungen umfassen. Als on modify definierte Determinierungen sind nicht erlaubt.

Falls der optionale Zusatz always verwendet wird, werden alle zur Determine-Aktion zugehörigen Determinierungen und Validierungen unabhängig von deren Auslösebedingungen ausgeführt. Nach Ausführung einer Determinierung mit dem Kennzeichen always, darf sie durch andere der gleichen Determine-Aktion zugehörigen Determinierungen ausgelöst werden.

Determinierungen und Validierungen von Kindentitäten können über die Syntax child~childDetermination oder child~childValidation eingeschlossen werden, solange diese Determinierungen und Validierungen die Auslöseoperationen delete nicht umfassen.

Reihenfolge der Ausführung: Es werden zuerst Determinierungen dann Validierungen ausgeführt. Die Reihenfolge der Ausführung unter Determinierungen oder Validierungen wird durch das RAP-Framework definiert und ist unabhängig von der innerhalb der Determine-Aktion angegebenen Reihenfolge.

Die folgenden CDS-BDL-Operationszusätze sind möglich:

  • internal sorgt dafür, dass auf die entsprechende Determine-Aktion nur von innerhalb der Business-Objekt-Implementierung zugegriffen werden kann.

Der optionale Zusatz extensible steht nur entwurfsfähigen BOs zur Verfügung. Hiermit darf ein RAP-BO-Verwender die jeweilige Determinierungsaktion über eine BDEF-Erweiterung um eigene Validierungen und Determinierungen erweitern. Weitere Details über das Einschalten von Erweiterbarkeit sind unter Erweiterbarkeitsaktivierung zu finden.

Verfügbarkeit

Nicht verfügbar für nicht verwaltete Nicht-Entwurfs-RAP-BOs

In einem verwalteten RAP-BO benötigen Determine-Aktionen keine Implementierung im ABAP-Verhaltens-Pool (ABP), aber die in einer Determine-Aktion enthaltenen Determinierungen und Validierungen müssen implementiert sein.

In einem nicht verwalteten RAP-BO erfordern Determine-Aktionen eine Implementierung in der RAP-Behandlermethode FOR MODIFY im ABAP-Verhaltens-Pool.

Determine-Aktionen aus der Basis-BDEF können in einer Projektions-BDEF wiederverwendet werden. Weitere Informationen über die Wiederverwendung finden Sie unter CDS BDL - Verwendung, Projektions-BDEF. Neue Determine-Aktionen können in einer Projektions-BDEF nicht angegeben werden.

Entwicklungsleitfaden für das ABAP-RESTful-Anwendungsprogrammiermodell, Abschnitt Action Definition

Hinweis

Die Entwurfs-Determine-Aktion Prepare ist das Entwurfspendant zu Determine-Aktionen. Es wird im Abschnitt CDS BDL - Entwurfsaktionen dokumentiert.

Beispiel

Im folgenden Beispiel wird eine auf der CDS-Wurzel-View-Entität DEMO_SALES_CDS_SO_3 basierte verwaltete BDEF gezeigt. Die Wurzel-View-Entität stellt einen Kundenauftrag und die Kindentität eine Kundenauftragsposition dar. Die Determine-Aktion trigger_all enthält die folgenden beiden Determinierungen, eine aus der Wurzelentität und eine aus der Kindentität.

  • Mit setID werden beim Anlegen einer neuen Entitätsinstanz dem semantischen Schlüsselfeld SalesOrderId während der Sicherungssequenz Werte zugeordnet.
  • Mit TotalPrice wird der Gesamtpreis aller Positionen eines Kundenauftrags berechnet. Dies wird bei jedem Anlegen eines neuen Kundenauftrags ausgelöst.

Diese Determinierungen sind im Verhaltens-Pool BP_DEMO_SALES_CDS_SO_3 implementiert.

Mit dem Programm DEMO_CDS_DETERMINE_ACTION wird über EML auf ein Business-Objekt aufgegriffen und folgende Schritte ausgeführt:

  • Es wird zuerst über Daten in die persistenten Datenbanktabellen des BOs eingefügt. Das heißt, BO-Entitätsinstanzen sind in der Datenbank vorhanden, die Determinierungen wurden jedoch noch nicht ausgelöst.
  • Die Determine-Aktion trigger_all wird mit der Anweisung MODIFY ENTITIES für zwei Entitätsinstanzen ausgeführt. Für diese beiden Entitätsinstanzen werden die Felder ID und TotalPrice ermittelt.
Quelltextausschnitt:
  • Die ermittelten Werte werden über die Anweisung COMMIT ENTITIES festgeschrieben.

Ergebnis: Werte werden für die Felder ID und TotalPrice ermittelt.

IMAGE @@ABDOC_DET_ACTION.png@@503@@263@@






CPI1466 during Backup   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 12121 Date: 20240523 Time: 183221     sap01-206 ( 125 ms )