Ansicht
Dokumentation

ABAPDERIVED_TYPES_KEYS_IDENTIFIERS - DERIVED TYPES KEYS IDENTIFIERS

ABAPDERIVED_TYPES_KEYS_IDENTIFIERS - DERIVED TYPES KEYS IDENTIFIERS

General Material Data   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Verwendung von Schlüsseln und RAP-BO-Instanzidentifikatoren im Überblick

Die Verwendung von RAP-BO- Instanzen-IDs innerhalb von RAP-BO-Providern- und Consumern kann sehr vielfältig und vom Szenario und Kontext abhängig sein, d.h. ob das Szenario ein Szenario der späten Nummernvergabe ist oder nicht (ob Entwürfe berücksichtigt sind) und ob der Kontext die RAP-Interaktionsphase oder die RAP-Sequenzsicherung sind. Im folgenden Punkten werden die wichtigsten Aspekte beschrieben.

Szenarien ohne späte Nummernvergabe

  • RAP-Interaktionsphase
  • %cid: Der SAP-BO-Consumer gibt die Inhalts-ID %cid in RAP-Create-Operationen für eine RAP-BO-Instanz an, d.h. in-Anforderungen, die CREATE, CREATE BY oder RAP- Factory-Aktionen verwenden; %cid sollte angegeben werden, auch wenn keine anderen Operationen sie über %cid_ref referenzieren; es existieren auch RAP-Create-Operationen mit dem Zusatz AUTO FILL CID, in denen %cid automatisch für die Instanzen angegeben wird

  • %cid_ref: Hat den gleichen Wert wie %cid; wird verwendet, um eine RAP-BO-Instanz zu referenzieren, die mit %cid als ID angelegt wurde; diese %cid muss aber in der gleichen -MODIFY-Anforderung existieren, damit die Referenz funktioniert

  • %key: Enthält die Primärschlüsselwerte; da keine späte Zuordnung der Schlüsselwerte stattfindet, enthält %key die endgültigen Schlüsselwerte in der Interaktionsphase und in der Sicherungssequenz; Wenn %key statt %tky in Entwurfsszenarien verwendet wird, muss eine Behandlung von %is_draft auch für die RAP-BO-Instanzen gewährleistet werden

  • %tky: Die Komponentengruppe umfasst %key und %is_draft und wird daher überwiegend in Entwurfsszenarien verwendet; %tky sollte aber auch in Nicht-Entwurfsszenarien verwendet werden, zur Vorbereitung auf einem späteren Wechsel auf den Entwurf

  • %pky: Eine andere Option für das Referenzieren von Schlüsseln; in Szenarien ohne späte Nummernvergabe ist %key prinzipiell %pky gleich, da %pid nicht zur Verfügung steht; in Szenarien ohne späte Nummernvergabe und ohne Entwürfe ist %pky prinzipiell %tky gleich, da %is_draft nicht zur Verfügung steht

  • Die Schlüssel können wie folgt mit referenziert werden (vorausgesetzt es besteht ein Schlüsselfeld mit dem Namen key_field). Alle Optionen wirken gleich und werden unten zur Visualisierung der Komponentengruppen und verschiedene Optionen gezeigt:

      MODIFY ENTITY bdef
       UPDATE SET FIELDS WITH VALUE #(
              "key references
              "( %pky-%key-key_field = ... )
              "( %pky-key_field = ... )
              "( %tky-%pky-%key-key_field = ... )
              "( %tky-%pky-key_field = ... )
              "( %tky-%key-key_field = ... )
              "( %tky-key_field = ... )
              "( %key-key_field = ... )
              "( key_field = ... )
              "even more options are possible with BDEF derived types
              "that include the component group %data
              "( %data-%key-key_field = ... )
              "( %data-key_field = ... )
              ).
  • RAP-Sicherungssequenz
  • Keine Änderung in der Schlüsselbehandlung.

Szenarien der späten Nummernvergabe:

  • RAP-Interaktionsphase
  • %cid und %cid_ref sind auch in Szenarien der späten Nummernvergabe verfügbar, erfüllen aber den gleichen Zweck wie Szenarien ohne späte Nummernvergabe, %pid und %key sind beim Identifizieren von Instanzen in der Interaktionsphase die relevantesten Komponenten, da sie für die endgültige Schlüsselabbildung verwendet werden

  • %pid: Vorab-ID für RAP-BO-Instanzen; meist für RAP-BO-Instanzen während Create-Operationen angelegt

  • %key: darf eventuell für die Aufnahme von Vorab-IDs als RAP-BO-Instanzen-IDs; die Methode adjust_numbers in der RAP-Sicherungssequenz muss dafür sorgen, dass die endgültigen Schlüsselwerte auf %key abgebildet werden

  • %pky: Diese Komponentengruppe enthält sowohl %pid als auch %key und darf daher für deren Zusammenfassung verwendet werden.

  • %tky: Die Verwendung ist in Szenarien der späten Nummernvergabe bequem, da %tky sowohl %pid und %key als auch %pky enthält (die zusätzliche Referenz auf %pid und %key über %pky ist redundant); bei Entwürfen ist auch %is_draft enthalten

  • %pid und %key dürfen in Szenarien der späten Nummernvergabe beide verwendet werden, um eine RAP-BO-Instanz zu identifizieren; es muss aber gewährleistet werden, dass die Kombination von %pid und %key eindeutig ist

  • Als Beispiel stehen folgende Optionen für Vorab-IDs , die mit verwendet werden zur Verfügung (vorausgesetzt ein Schlüsselfeld hat den Namen key_field). Alle Optionen wirken gleich (für %pid oder Vorabschlüsselwerte) und werden zur Visualisierung der Komponentengruppen und verschiedene Referenzoptionen unten gezeigt:

      MODIFY ENTITY bdef
       UPDATE SET FIELDS WITH VALUE #(
              "%pid references
              "( %pid = ... )
              "( %pky-%pid = ... )
              "( %tky-%pid = ... )
              "( %tky-%pky-%pid = ... )
              "key references
              "( %pky-%key-key_field = ... )
              "( %pky-key_field = ... )
              "( %tky-%pky-%key-key_field = ... )
              "( %tky-%pky-key_field = ... )
              "( %tky-%key-key_field = ... )
              "( %tky-key_field = ... )
              "( %key-key_field = ... )
              "( key_field = ... )
              "even more options are possible with BDEF derived types
              "that include the component group %data
              "( %data-%key-key_field = ... )
              "( %data-key_field = ... )
              ).
  • RAP-Sicherungssequenz
  • Hier ist der Fokus auf die Methode adjust_numbers, da sie die endgültige Schlüsselabbildung behandelt.

  • Je nach Auswahl der RAP-BO-Instanzen-IDs muss Folgendes auf die endgültigen Schlüssel abgebildet werden, die in %key gespeichert werden müssen. %pid oder Vorabschlüsselwerte, die während der Interaktionsphase %key zugeordnet wurden

  • %pid und die Schlüsselwerte in %key aus der Interaktionsphase werden folgenden Komponentengruppen beim Erreichen der Methode adjust_numbers automatisch zugeordnet:

Der Komponentengruppe %tmp werden die Vorabschlüsselwerte in %key zugeordnet; prinzipiell übernimmt %tmp die Aufgabe von %key in der Interaktionsphase, nämlich das Halten der Vorabschlüsselwerte
%pre: Diese Komponentengruppe umfasst %pid und %tmp und daher alle möglichen Vorab-IDs
  • Im Überblick: %pid und %tmp müssen in der Methode adjust_numbers auf %key abgebildet werden; in Anwendungen aber werden typischerweise nur %pid oder %tmp auf %key abgebildet

  • Als Beispiel dienen folgende Optionen, um Instanzen mit Vorab-IDs und den endgültigen Schlüsseln innerhalb der Methode adjust_numbers zu referenzieren (vorausgesetzt ein Schlüsselfeld hat den Namen key_field):

          ...
          APPEND VALUE #( "%pid  = ...
                          "%pre-%pid  = ...
                          "%tmp-key_field  = ...
                          "%pre-%tmp-key_field  = ...
                          "%key-key_field = ...
                          "key_field = ...
                    ) TO mapped-bdef.
          ...

Hinweis

Die Verwendung von %tky ist in jedem Kontext die bequemste Option zum Referenzieren von Schlüsseln. Hiermit sind alle relevanten Komponenten für die gewählte Szenario enthalten.

Siehe diverse einfache Beispiele für die verschiedenen Komponenten im Abschnitt Beispiele für abgeleitete BDEF-Typkomponenten.






BAL_S_LOG - Application Log: Log header data   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 15650 Date: 20240428 Time: 023117     sap01-206 ( 168 ms )