Ansicht
Dokumentation

ABENBDL_ACTION_OUTPUT_PARA - BDL ACTION OUTPUT PARA

ABENBDL_ACTION_OUTPUT_PARA - BDL ACTION OUTPUT PARA

BAL Application Log Documentation   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- OutputParameter

... $[deep$] result $[selective$] [cardinality]x
           ${ $self
           $| entity OutputParameterEntity
           $| ResultParameterStructure $[external 'extname'$] $}


Zusätze:

1. ... deep

2. ... selective

3. ... [cardinality]

Wirkung

Der Ausgabeparameter für eine Aktion oder Funktion wird mit dem Schlüsselwort result definiert. Über ihn kann das Ergebnis einer Aktion oder Funktion in einer internen Tabelle gespeichert werden. Er hat aber keine Auswirkung auf das Ergebnis einer Aktion oder Funktion, die auf der Datenbank comittet wird. Informationen über die Komponenten der Ergebnisstruktur finden Sie im Abschnitt ABAP EML - RESULT result_tab.

Bei einer Deklaration in der Aktions- oder Funktionsdefinition muss der Ergebnisparameter in der Implementierung im ABAP-Behavior-Pool gefüllt werden.

Der Rückgabetyp des Ergebnisparameters kann eine Entität oder eine Struktur sein:

  • Mit $self wird angegeben, dass der Ergebnistyp den gleichen Typ wie die Entität in der Aktions- oder Funktionsdefinition hat.
  • Mit entity OutputParameterEntity wird angegeben, dass das Ergebnis eine andere Entität im gleichen oder in einem anderen BO ist.
  • ResultParameterStructure: Es dürfen eine abstrakte CDS-BDEF oder eine DDIC-Struktur als Rückgabetyp angegeben werden. Eine resultierende Struktur für Aktionen oder Funktionen wird ohne das Schlüsselwort entity definiert.
Für Ergebnisstrukturen kann ein Alias definiert werden, um das Ergebnis in den OData-Metadaten deutlich zu kennzeichnen. Mit dem Schlüsselwort external nach dem Ergebnistyp wird diese OData-Darstellung des Aktions- oder Funktionsergebnisses definiert.

Hinweise

  • Falls das Ergebnis eine abstrakte CDS-Entität ist, muss das Ergebnis ohne das Schlüsselwort entity definiert werden, da abstrakte Entitäten in ABAP generell als Struktur zu betrachten sind.

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

Beispiel

Im folgenden Beispiel wird eine verwaltete BDEF mit zwei Aktionen, Approve_Order und Reject_Order, gezeigt. Das Ergebnis ist $self mit Kardinalität 1, damit der Ausgabeparameter den gleichen Typ wie die Entität der ausgeführten Aktion hat.

Im Behavior-Pool BP_DEMO_CDS_PURCH_DOC_M wird das Ergebnis wie folgt deklariert:

result = VALUE #( FOR purchase IN lt_purchase
                    ( %tky   = purchase-%tky
                      %param = purchase ) ).

Mit dem Programm DEMO_CDS_PURCHASE wird auf das Business-Objekt zugegriffen und die Aktion Approve_Order für eine Entitätsinstanz ausgeführt.
Quelltextausschnitt:

Ergebnis: die geänderte Entitätsinstanz wird in der result-Struktur gespeichert.

IMAGE @@ABDOC_RESULT.jpg@@469@@233@@

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

Zusatz 1

... deep

Wirkung

Bei Verwendung des optionalen Zusatzes deep ist die Syntax für den Ausgabeparameter wie folgt:

... deep result [cardinality] AbstractBDEF;

Es sind keine Varianten oder weitere Zusätze möglich.

Der Ausgabeparameter AbstractBDEF muss eine abstrakte CDS-BDEF with hierarchy sein Der abgeleitete BDEF-Typ für eine abstrakte BDEF ist eine Hierarchie, die alle Entitätsfelder und zusätzlich eine Komponente für jede Komposition enthält.

Zusatz 2

... selective

Wirkung

Mit dem optionalen Zusatz selective können ausschließlich Teile der Ergebnisstruktur zurückgegeben werden, beispielsweise nur die Schlüssel. Damit kann die Leistung verbessert werden.

Eine Implementierung im ABAP-Behavior-Pool ist erforderlich. Bei der Angabe selective in der BDEF hat die Aktions- oder Funktionssignatur den zusätzlichen Eingabeparameter REQUEST requested fields, der alle angeforderten Felder mit 01 kennzeichnet.

Beispiel

Im folgenden Beispiel wird eine auf der CDS-View-Entität DEMO_RAP_MANAGED_SELECTIVE_1 basierte verwaltete BDEF gezeigt. Hiermit wird die Funktion myfunction mit einem selektiven Ergebnis definiert.

Im ABAP-Behavior-Pool wird die Instanzfunktion myfunction so implementiert, dass sie die Werte aller Felder liest und sie in der Ergebnisstruktur zurückgibt. Mit der Ergebnisstruktur wird der Importing-Parameter requested_fields interpretiert und nur die Felder gefüllt, die vom EML-Consumer angefordert werden.

Quelltextausschnitt:

Informationen zur vollständigen Implementierung im ABAP-Behavior-Pool finden Sie unter BP_DEMO_RAP_MANAGED_SELECTIV_1CCIMP.

Mit dem Programm DEMO_RAP_MANAGED_SELECTIVE wird auf das Business-Objekt zugegriffen und die Aktion myfunction ausgeführt. Mit ihm werden nur die Felder KeyFieldRoot und Timestamp angefordert und die Ergebnisstruktur zeigt daher nur die Werte dieser beiden Felder an.

Quelltextausschnitt:

Im folgenden Bild wird das Kennzeichnen des durch EML-Consumer mit 01 angeforderten Bildes durch den Importing-Parameter requested_fields gezeigt.

IMAGE @@ABDOC_REQUESTED_FIELDS.jpg@@444@@113@@

Ergebnis: die Ergebnisstruktur enthält ausschließlich die Werte der angeforderten Felder.

IMAGE @@ABDOC_RESULT_1.jpg@@444@@168@@

Zusatz 3

... [cardinality]

Wirkung

Hiermit wird die Kardinalität des Ausgabeparameters definiert. Dies ist ein obligatorischer Zusatz. Die eckigen Klammern sind Teil der Syntax. Für die Kardinalität können folgende Werte angegeben werden:

  • [0..1]
  • [1]
  • [0..*]
  • [1..*]






Vendor Master (General Section)   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 12393 Date: 20240523 Time: 181945     sap01-206 ( 156 ms )