Ansicht
Dokumentation

ABAPMETHODS_FOR_RAP_BEHV - METHODS FOR RAP BEHV

ABAPMETHODS_FOR_RAP_BEHV - METHODS FOR RAP BEHV

ROGBILLS - Synchronize billing plans   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

METHODS, FOR

Definitionen von Behandlermethoden:

METHODS meth $[FINAL$]
   FOR ${ DETERMINE ON ${ SAVE $| MODIFY $} ... $[IMPORTING$] ... FOR ... $}
     $| ${ GLOBAL AUTHORIZATION  ...  $[IMPORTING$] ... FOR ... $}
     $| ${ GLOBAL FEATURES ... $[IMPORTING$] ... FOR ... $}
     $| ${ $[INSTANCE$] AUTHORIZATION ... $[IMPORTING$] ... FOR ... $}
     $| ${ $[INSTANCE$] FEATURES ... $[IMPORTING$] ... FOR ... $}
     $| ${ LOCK ... $[IMPORTING$] ... FOR ... $}
     $| ${ MODIFY ... $[IMPORTING$] ... FOR ... $}
     $| ${ NUMBERING ... $[IMPORTING$] ... FOR ... $}
     $| ${ PRECHECK ... $[IMPORTING$] ... FOR ...  $}
     $| ${ READ ... $[IMPORTING$] ... FOR ... $}
     $| ${ VALIDATE ON SAVE ... $[IMPORTING$] ... FOR ... $}
   $[CHANGING ${ $[ failed TYPE data$] $[reported TYPE data$] $[mapped TYPE data$] $}$].


Implementierungen von Behandlermethoden:

METHOD meth.
   ...
ENDMETHOD.


Wirkung

Behandlermethoden müssen in einer Behandlerklasse eines ABAP-Behavior-Pools definiert und implementiert werden. Der Methodenname (meth) ist außer bei den vordefinierten Entwurfsaktionen (deren Implementierung nur bei einer Angabe mit with additional implementation in der BDEF relevant ist) und den Methodennamen im Kontext der augment-Operationen frei wählbar. Die METHODS-Anweisungen von Behandlermethoden in Behavior-Pools enthalten RAP-spezifische ABAP-Wörter wie FOR MODIFY, FOR CREATE oder FOR READ sowie optionale oder obligatorische ABAP-Wörter wie REQUEST und RESULT, auf die Parameter folgen, die mit abgeleiteten BDEF-Typen typisiert sind.

Die folgende Liste gibt einen Überblick über die Parameter von Behandlermethoden:

  • Jeder Behandlermethode muss mindesten einen Importing-Parameter haben. Der Zusatz IMPORTING ist optional, da er implizit verwendet wird.
  • Alle Behandlermethoden haben Changing-Parameter. Die Changing-Parameter zum Abrufen von Mapping-Informationen (mapped) oder Informationen zu Fehlern (failed) und Fehlermeldungen (reported) haben vordefinierte Namen und werden implizit verwendet. Der Zusatz CHANGING und das explizite Angeben dieser Changing-Parameter ist optional. Die Verfügbarkeit der mapped-, failed- und reported-Parameter hängt von der verwendeten Behandlermethode ab. Bei expliziter Verwendung, z. B. in der Methode ... FOR MODIFY ... FOR CREATE ..., kann die Syntax wie folgt lauten:
METHODS create FOR MODIFY
    IMPORTING entities FOR CREATE bdef
    CHANGING failed TYPE DATA mapped TYPE DATA reported TYPE DATA.
Im Quelltextbeispiel oben wird der generische Typ DATA verwendet. Zur Laufzeit besitzen die typisierten Parameter, beispielsweise failed, den abgeleiteten BDEF-Typ TYPE RESPONSE FOR implizit.
  • In vielen Fällen können Parameter per Referenz übergeben werden (siehe REFERENCE), eine Übergabe per Wert (VALUE) ist jedoch nicht möglich. Daher können die Importing-Parameter in den Methoden nicht geändert werden.

Mindestens eine der drei Methoden mit den vordefinierten Namen MODIFY, READ und LOCK müssen in jeder Behandlerklasse implementiert werden. Darüber hinaus können Hilfsmethoden implementiert werden.

Hinweise

  • Obsolete Sprachelemente im Kontext von Behandlermethoden:
  • Zusatz FOR BEHAVIOR für die Varianten READ, MODIFY und LOCK.

  • Die Versorgung der CHANGING-Parameter failed, reported und mapped mit zurückgegebener Information, beispielsweise bei einer nicht lesbaren Instanz, wird empfohlen. Die Komponenten der einzelnen CHANGING-Parameter variieren je nach Typisierung des Parameters mit einer abgeleiteten BDEF-Typ. Es folgt ein Beispiel zur Versorgung eines CHANGING-Parameters innerhalb der Methodenimplementierung:
LOOP AT import_params ASSIGNING FIELD-SYMBOL(<fs>).
...
  APPEND VALUE #( %key = <fs>-%key
                  %fail = if_abap_behv=>cause-not_found
                  ... ) TO failed-bdef.
  APPEND VALUE #( %msg  = new_message_with_text(
                     severity = if_abap_behv_message=>severity-error
                     text = 'Issue occurred.'
                     %key = <fs>-%key
                  ... ) TO reported-bdef.
ENDLOOP.
  • In manchen Fällen zeigt die F2-Hilfe in den ADT weitere CHANGING-Parameter für RAP-Behandlermethoden neben failed, reported und mapped. RESULT ist ein RAP-spezifisches ABAP-Wort, das explizit angegeben werden muss. Daher darf der CHANGING-Parameter result nicht mithilfe des ABAP-Worts CHANGING angegeben werden:
METHODS read FOR READ IMPORTING keys FOR READ bdef RESULT result.
Analog muss der IMPORTING-Parameter requested_field in Kombination mit dem ABAP-Wort REQUEST in der Definition der Behandlermethode angegeben werden.
  • Die Behandlermethode FOR MODIFY kann mehrere Entitäten und Operationen innerhalb einer einzelnen Verarbeitungsschritt behandeln. Es kann aber sinnvoll sein, die Implementierung der Behandlermethode in separate Methoden zu trennen und so die Lesbarkeit und eine niedrige Komplexität zu gewährleisten. Dabei können mehrere RAP-Behandlerklassen innerhalb eines oder mehrerer ABPs definiert werden. Mit folgender Definition einer Behandlermethode wird eine Behandlermethode FOR MODIFY, die mehrere Operationen umfasst, demonstriert:
METHODS modify_meth FOR MODIFY IMPORTING
   create_imp_param FOR CREATE bdef
   update_imp_param FOR UPDATE bdef
   delete_imp_param FOR DELETE bdef
   action_imp_param FOR ACTION bdef~action
   cba_imp_param FOR CREATE bdef\_assoc.
  • Ausnahmen können in Behandlermethoden nicht ausgelöst werden, daher darf der Zusatz RAISING nicht verwendet werden.

Beispiel

Der folgende Quelltextauszug zeigt mehrere Behandlermethodendefinitionen. Die Methode create enthält eine explizite Angabe des CHANGING-Schlüsselworts und der Parameter für den Informationsabruf.

METHODS create FOR MODIFY
    IMPORTING entities FOR CREATE demo_bdef
    CHANGING failed TYPE DATA mapped TYPE DATA reported TYPE DATA.


METHODS cba_child FOR MODIFY
    IMPORTING entities_cba FOR CREATE demo_bdef\_assoc.


METHODS update FOR MODIFY
    IMPORTING entities FOR UPDATE demo_bdef.


METHODS delete FOR MODIF
    IMPORTING keys FOR DELETE demo_bdef.


METHODS read FOR READ
    IMPORTING keys FOR READ demo_bdef RESULT result.


METHODS rba_child FOR READ
    IMPORTING keys_rba FOR READ demo_bdef\_child
    FULL result_requested RESULT result LINK association_links.

  • Mit dem Beispiel ABAP EML - MODIFY AUGMENTING ENTITY werden die drei Behandlermethoden augment_create, augment_update und augment_cba_assoc (assoc bezieht sich auf den Namen der Assoziation) mit einem RAP-Projektions-Business-Objekt demonstriert.





ROGBILLS - Synchronize billing plans   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 13990 Date: 20240523 Time: 142639     sap01-206 ( 175 ms )