Ansicht
Dokumentation

ABAPMODIFY_ENTITY_ENTITIES_FIELDS - MODIFY ENTITY ENTITIES FIELDS

ABAPMODIFY_ENTITY_ENTITIES_FIELDS - MODIFY ENTITY ENTITIES FIELDS

BAL Application Log Documentation   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

MODIFY ENTITY, ENTITIES, field_spec

...  ${ FROM fields_tab $}
   $| ${ AUTO FILL CID WITH fields_tab $}
   $| ${ $[AUTO FILL CID$] FIELDS ( comp1 comp2 ... ) WITH fields_tab $}
   $| ${ $[AUTO FILL CID$] SET FIELDS WITH fields_tab $} ...


Varianten:

1. ... FROM fields_tab

2. ... AUTO FILL CID WITH fields_tab

3. ... $[AUTO FILL CID$] FIELDS ( comp1 comp2 ... ) WITH fields_tab

4. ... $[AUTO FILL CID$] SET FIELDS WITH fields_tab

Zusatz:

... AUTO FILL CID

Wirkung

Mit den Feldangabenausdrücken werden Eingabeparameter angegeben, die die Grundlage für modifizierende Operationen auf Entitätsinstanzen bilden.

Die Varianten FIELDS (...) WITH und SET FIELDS WITH können für die Operationen CREATE, CREATE BY und UPDATE verwendet werden. Die Variante FROM ist die einzige Option für DELETE und EXECUTE. Die Varianten mit AUTO FILL CID können für die Operationen CREATE und CREATE BY verwendet werden.

Die für modifizierende Operationen berücksichtigten Parameter müssen in einer internen Tabelle angegeben werden (fields_tab). Die interne Tabelle muss unbedingt mit dem benötigten abgeleiteten BDEF-Typ typisiert sein. Abhängig von der Operation und Variante umfassen die Parameter der internen Tabelle spezielle Komponenten.

Folgende Tabelle liefert eine Übersicht der Operationen, zeigt die für die Operationen möglichen Feldangabenausdrücke und gibt die jeweilige Relevanz des Typs und der Komponenten der benötigten internen Tabelle an: Je nach Kontext können die in der Komponenten-Spalte aufgeführten Komponenten mehr als der angegebene Inhalt umfassen. Beispielsweise ist das Entwurfskennzeichen %is_draft nur in Entwurfsszenarien verfügbar. %pid ist nur in Szenarien der späten Nummerierung verfügbar.

Operation Feldangabenausdruck Typ der internen Tabelle fields_tab Komponenten der internen Tabelle
CREATE FROM \lbr AUTO FILL CID WITH \lbr FIELDS (...) WITH \lbr SET FIELDS WITH TABLE FOR CREATE bdef %cid \lbr %control \lbr %data \lbr %key \lbr \lbr Bei FROM und AUTO FILL CID WITH muss %control explizit gefüllt werden.
CREATE BY _assoc FROM \lbr AUTO FILL CID WITH \lbr FIELDS (...) WITH \lbr SET FIELDS WITH TABLE FOR CREATE bdef\_assoc %cid_ref \lbr %key \lbr %pky \lbr %target \lbr %tky \lbr \lbr Bei FROM und AUTO FILL CID WITH muss %control explizit innerhalb %target gefüllt werden.
UPDATE FROM \lbr FIELDS (...) WITH \lbr SET FIELDS WITH TABLE FOR UPDATE bdef %cid_ref \lbr %control \lbr %data \lbr %key \lbr %pky \lbr %tky \lbr \lbr Bei FROM muss %control explizit gefüllt werden.
DELETE FROM TABLE FOR DELETE bdef %cid_ref \lbr %key \lbr %pky \lbr %tky
EXECUTE FROM TABLE FOR ACTION IMPORT bdef~action %cid_ref \lbr %key \lbr %param \lbr %pky \lbr %tky

bdef ist der Wurzelentitätsname, _assoc ist der Name der in der zugrunde liegenden CDS-View der Wurzelentität definierten Assoziation und action ist der Name einer in der BDEF angegebenen Aktion. Weitere Details über die Komponenten finden Sie in der Dokumentation Komponenten von abgeleiteten BDEF Typen.

Hinweise

  • Bei mit %cid_ref in der internen Tabelle angegebbaren Operationen darf die obligatorische Angabe der Schlüssel in der internen Tabelle übersprungen werden, so lange eine eindeutige Referenz auf die zu modifizierende Instanz über %cid_ref gemacht wird.
  • Bei Create- und Create-by-Association-Operationen sollte %cid angeben werden auch bei einer Nicht-Beteiligung des RAP-BO-Consumers an %cid.

Variante 1

... FROM fields_tab


Wirkung

Die modifizierende Operation berücksichtigt in einer internen Tabelle (fields_tab) angegebene Eingabeparameter. Sie darf bei allen Operationen (CREATE, CREATE BY, UPDATE, DELETE, EXECUTE) verwendet werden und ist die einzige Option für DELETE und EXECUTE. Die %control-Struktur muss für CREATE, CREATE BY und UPDATEin der internen Tabelle fields_tab explizit gefüllt werden.

  • Aufgrund des expliziten Füllens der %control-Struktur sind im Vergleich zu den Varianten FIELDS (...) WITH und SET FIELDS WITH mehr Quelltextzeilen erforderlich.
  • Eine Syntaxprüfung für statische schreibgeschützte Felder ist mit dieser Variante nicht möglich (im Gegensatz zu FIELDS (...) WITH).
  • Felder können auf Initialwerte gesetzt werden.

Beispiel

Mit folgendem Quelltextausschnitt aus DEMO_RAP_EML_MODIFY_OPERATIONS wird das Schlüsselwort FROM innerhalb einer MODIFY-Anweisung demonstriert.

Variante 2

... AUTO FILL CID WITH fields_tab


Wirkung

Es handelt sich im Grunde um die Variante ... FROM fields_tab mit dem Zusatz AUTO FILL CID. In diesem Fall muss das Schlüsselwort WITH anstelle von FROM vor fields_tab verwendet werden. Die %control-Struktur muss in der internen Tabelle fields_tab explizit gefüllt werden. Die Variante kann für CREATE und CREATE BY verwendet werden. Beachten Sie die detaillierten Informationen zu AUTO FILL CID unten.

Beispiel

Mit folgendem Quelltextausschnitt aus DEMO_RAP_EML_AUTO_FILL_CID wird die Verwendung von AUTO FILL CID WITH mit anlegender Operation als Teil einer MODIFY-Anweisung demonstriert.

Variante 3

... FIELDS ( comp1 comp2 ... ) WITH fields_tab


Wirkung

Mit dieser Variante werden die Felder angegeben, die in einer Feldliste in Klammern nach dem Schlüsselwort FIELDS für eine RAP-BO-Operation berücksichtigt werden sollen. Beispielsweise werden die zu aktualisierenden Felder von RAP-BO-Instanzen angegeben. Die Eingabeparameter werden in einer internen Tabelle (fields_tab) angegeben. Die Felder (comp1, comp2, usw.) können beliebige Felder der Entität sein. Es muss mindestens ein Feld in der Feldliste angegeben werden. Die Felder sind nicht durch ein Komma getrennt. Die Reihenfolge der Felder in der Liste ist nicht relevant.

Die Variante besteht aus Gründen der Bequemlichkeit und ist eine Kurzform für FORM. Sie darf nicht für DELETE und EXECUTE verwendet werden. %control wird in fields_tab implizit gefüllt. Wenn ein Feld in den Klammern von FIELDS (...) WITH angegeben ist, wird es auf 01 in der %control-Struktur gesetzt. Andernfalls wird es auf 00 gesetzt.

  • Eine Syntaxprüfung für statische schreibgeschützte Felder ist mit dieser Variante möglich, wenn die Felder in den Klammern von FIELDS (...) WITH angegeben werden.
  • Felder können auf Initialwerte gesetzt werden.

Beispiel

Im folgenden Quelltext wird die implizite Einstellung der Komponentenwerte der %control-Struktur über FIELDS (...) WITH innerhalb MODIFY-Anweisungen demonstriert.

Zuerst wird eine mit einem abgeleiteten BDEF-Typ typisierte interne Tabelle erzeugt und gefüllt. Mit dieser Tabelle wird eine RAP-BO-Instanz im Kontext einer anlegenden RAP-Operation erzeugt. Alle Datenfelder werden als Teil einer -MODIFY-Anweisung innerhalb der Klammern des Zusatzes FIELDS (...) WITH angegeben. Im nächsten Schritt wird die interne Tabelle mit anderen Werten gefüllt und danach noch eine -MODIFY-Anweisung ausgeführt. Dabei decken die innerhalb der Klammern von FIELDS (...) WITH angegebenen Felder absichtlich nicht alle Felder ab.

Im Ergebnis wird die Wirkung der Feldangabe und die implizite Einstellung der %control-Struktur gezeigt. Vor der modifizierenden -Anforderung sind alle Werte der Eingabetabelle 00. Für die ersten modifizierende-Anforderung, in der alle Felder angegeben werden, werden alle Werte in der %control-Struktur auf 01 gesetzt. Für die zweite modifizierende -Anforderung werden nur die Komponenten in der %control-Struktur auf 01 gesetzt, die innerhalb der Klammern des Zusatzes FIELDS (...) WITH angegeben sind. Folglich besitzen diese Felder in der erzeugten Instanz ihre initialen Werten, obwohl Werte in der Eingabetabelle angegeben werden.

Beispiel

Mit folgendem Quelltextausschnitt aus DEMO_RAP_EML_MODIFY_OPERATIONS werden die Schlüsselwörter FIELDS (...) WITH innerhalb einer MODIFY-Anweisung demonstriert.

Variante 4

... $[AUTO FILL CID$] SET FIELDS WITH fields_tab


Wirkung

Die Variante besteht aus Gründen der Bequemlichkeit und ist eine Kurzform für FORM. Die modifizierende Operation berücksichtigt in einer internen Tabelle (fields_tab) angegebene Eingabeparameter.

Die Verwendung dieser Variante wird aus folgenden Gründen nicht mehr empfohlen:

  • Bei großen Eingaben ist diese Variante sehr langsam. Daher führt ihre Verwendung zu einer Syntaxwarnung, die mit dem Pragma ##SETFIELDS_OK entfernt werden kann. Beachten Sie, dass die Syntaxwarnung nicht auftritt, wenn die interne Tabelle hinter SET FIELDS WITH über einen Konstruktorausdruck mit VALUE angegeben wird.
  • Eine Syntaxprüfung für statische schreibgeschützte Felder ist mit dieser Variante nicht möglich (im Gegensatz zu FIELDS (...) WITH).
  • Felder können nicht auf Initialwerte gesetzt werden.

Die Variante darf nicht für DELETE und EXECUTE verwendet werden. %control wird in fields_tab implizit gefüllt. Wenn ein Feld in fields_tab angegeben ist, wird es auf 01 in der %control-Struktur gesetzt. Andernfalls wird es auf 00 gesetzt.

  • Eine Syntaxprüfung für statische schreibgeschützte Felder ist mit dieser Variante nicht möglich (im Gegensatz zu FIELDS (...) WITH).
  • Felder können nicht auf Initialwerte gesetzt werden.

Beispiel

Mit folgendem Quelltextausschnitt aus DEMO_RAP_EML_MODIFY_OPERATIONS wird das Schlüsselwort SET FIELDS WITH innerhalb einer MODIFY-Anweisung demonstriert.

Zusatz

... AUTO FILL CID

Wirkung

Der Zusatz AUTO FILL CID wird sowohl für Create- und Create-by-Association-Operationen als auch für Factory-Aktionen und statische Aktionen verwendet, um %cid automatisch zu erzeugen und %cid füllen zu lassen. Die Angabe von %cid ist auch dann notwendig, wenn der RAP-BO-Consumer nicht beteiligt ist. Vor allem im Kontext der Szenarien der frühen Nummerierung und der späten Nummerierung ist die Angabe von %cid notwendig, um Probleme zu vermeiden.

Wenn der Zusatz angegeben und %cid initial ist, %cid wird automatisch mit Attrappenwerten mit dem Präfix %abap_eml_cid__ gefüllt. Hinter diesem Präfix stehen Zahlen, beispielsweise %abap_eml_cid__1, %abap_eml_cid__2, usw. Wenn der Zusatz angegeben und %cid auch manuell angegeben ist, ist nur der manuell angegebene Wert für %cid gültig.

Bei Verwendung von %cid_ref muss %cid manuell angegeben werden, da %cid_ref sich nicht auf einen automatisch angelegten Wert beziehen darf.

Beispiel

Mit folgendem Quelltext (weitere Beispiele sind unter DEMO_RAP_EML_AUTO_FILL_CID zu finden) wird die Verwendung von AUTO FILL CID und FIELDS ( ... ) WITH mit einer Create-by-Association-Operation als Teil einer -MODIFY-Anweisung demonstriert.

  • Mit dem Beispiel MODIFY: Feldangabenausdrücke werden Feldselektionen für die Konfiguration von internen Tabellen für verschiedene modifizierende Anweisungen demonstriert und daher auch das Manipulieren von einem einfachen verwalteten RAP-BO dargestellt.
  • Mit dem Programm DEMO_RAP_EML_AUTO_FILL_CID werden anlegende und Create-by-Association-Operationen mit manuell angegebenen %cid-Komponenten und automatisch erzeugten Komponenten über AUTO FILL CID demonstriert. In der Ausgaben werden sowohl die MAPPED-Antworten der Operationen als auch die auf der Datenbank persistierten Instanzen hinter den COMMIT ENTITIES-Anweisungen gezeigt.





Vendor Master (General Section)   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 19835 Date: 20240523 Time: 150141     sap01-206 ( 275 ms )