Ansicht
Dokumentation

ABENBDL_ACTION_NONFACTORY - BDL ACTION NONFACTORY

ABENBDL_ACTION_NONFACTORY - BDL ACTION NONFACTORY

Fill RESBD Structure from EBP Component Structure   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- action, Nicht-Factory

$[internal$]$[static$] action
                  $[(
                  $[ features: ${instance $| global$}$]
                  $[precheck$]
                  $[authorization:none$]
                  $[ authorization:update$]
                  $[lock:none$]
                   )$]
                   ActionName $[external 'ExternalName'$]
                  $[InputParameter$]
                  $[OutputParameter$]


Zusätze:

1. ... lock:none

2. ... external

Wirkung

Definiert eine RAP-Aktion, die ein nicht standardmäßiges Verhalten bietet. Die benutzerdefinierte Logik muss in der RAP-Behandlermethode FOR MODIFY implementiert werden. Eine Aktion bezieht sich standardmäßig auf eine RAP-BO-Entitätsinstanz und ändert den Zustand der Instanz.

Wenn das optionale Schlüsselwort static verwendet wird, wird die Aktion als statische Aktion definiert. Statische Aktionen sind an keine Instanz einer RAP-BO-Entität gebunden, sondern beziehen sich auf die gesamte Entität. Standardmäßig bezieht sich eine Aktion auf eine Instanz. Daher überschreibt das Schlüsselwort static das Standardverhalten.

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

  • internal sorgt dafür, dass auf die entsprechende Aktion nur von innerhalb der Business-Objekt-Implementierung zugegriffen werden kann.
  • Dynamisches Feature-Control mit (features:instance). Hiermit kann die Aktion in Abhängigkeit von Vorbedingungen im Business-Objekt ein- oder ausgeschaltet werden. Beispielsweise wird die Aktion Accept_Order nur angeboten, wenn der Status nicht bereits Rejected lautet.
  • Das globale Feature-Control mit (features:global) ermöglicht das Ein- oder Ausschalten der Aktion je nach BO-externen Vorbedingungen.
  • Mit precheck wird verhindert, dass unerwünschte Änderungen den Anwendungspuffer erreichen.
Für statische Aktion steht der Zusatz authorization:none nur bei globalen Berechtigungen zur Verfügung.

Verfügbarkeit

Entwicklungsleitfaden für das ABAP-RESTful-Anwendungsprogrammiermodell, Abschnitt Actions

Beispiel

Im folgenden Beispiel wird eine auf der CDS-Wurzel-View-Entität DEMO_CDS_PURCH_DOC_M basierte verwaltete BDEF gezeigt. Das Business-Objekt stellt eine Bestellung mit Bestellpositionen dar. Wenn ein Mitarbeiter Gerätschaften bestellen möchte, kann der Vorgesetzte den Einkauf genehmigen oder ablehnen. Zu diesem Zweck sind die beiden Aktionen Approve_Order und Reject_Order definiert.

Diese Aktionen sind im Behavior-Pool BP_DEMO_CDS_PURCH_DOC_M implementiert. Das Programm DEMO_CDS_PURCHASE greift über EML auf das Business-Objekt zu und führt die Aktion Approve_Order für eine Entitätsinstanz aus.

Ergebnis: Die Spalte Status der jeweiligen Instanz wird mit A für Accepted gefüllt.

IMAGE @@ABDOC_ACTION.png@@305@@114@@

Weitere Informationen über das Beispiel oben finden Sie im ausführbaren Beispiel CDS BDL - Aktion.

Zusatz 1

... lock:none

Wirkung

Verhindert den Sperrmechanismus für die Entitätsinstanz, für die eine Aktion ausgeführt wird. Da sich statische Aktionen auf keine bestimmte Instanz beziehen, sind sie definitionsgemäß nicht sperrend und dieses Syntaxelement gilt für sie nicht.
Der Sperrmechanismus wird nur für die Aktion selbst verhindert. Möglicherweise vorhandene modifizierende Aufrufe in der Aktionsimplementierung sind von der Sperrunterdrückungsangabe in der Aktionsdefinition nicht betroffen. Demzufolge wird eine Instanz auch dann bei einer Änderung durch eine Aktion gesperrt, wenn die Aktion als nicht sperrend definiert ist.

Zusatz 2

... external

Wirkung

Der optionale Zusatz external kann als Aliasname für die Aktion zur externen Verwendung angegeben werden. Der externe Name wird in den OData-Metadaten exponiert, ist ABAP jedoch nicht bekannt. Er kann weitaus länger als der tatsächliche Aktionsname sein.






SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 11172 Date: 20240523 Time: 181950     sap01-206 ( 120 ms )