abap:objet
Table of Contents
ABAP objet
Usage
Instanciation
DATA: obj TYPE REF TO cl_object_class. CREATE OBJECT obj.
Appel de méthode
DATA(lv_ret) = obj->method( arg ). " Inline declaration DATA(lv_ret) = me->method( arg ). " From within
Exceptions
NB : L'instruction TRY. ... CATCH ...
ne peut catcher que les class-exceptions !! (Donc bien cocher Class exceptions
dans la définition des méthodes.
DATA lx_error TYPE REF TO cx_root. RAISE EXCEPTION lx_error.
TRY. ... " TRY block (application coding) CATCH cx_... cx_... ... ... " CATCH block (exception handler) CATCH cx_... cx_... ... ... " CATCH block (exception handler) ... CLEANUP. ... " CLEANUP block (cleanup context) ENDTRY.
Tips
Types
Il est possible de déclarer des types sur les classes. Il devient alors possible de les utiliser simplement dans les définitions des méthodes. En revanche, pour les utiliser dans les déclarations de variables à l'extérieur, il y a une petite siouxerie :
DATA lo_obj TYPE REF TO zcl_obj. CREATE OBJECT lo_obj. * Ne pas faire : DATA lv_var TYPE lo_obj->yv_var. * Mais : DATA lv_var TYPE zcl_obj->yv_var.
Attributs dynamiques
Il n'est pas possible de définir des attributs en FIELD-SYMBOLS
. Pour faire l'équivalent il faut :
- Définir l'attribut en
DATA att TYPE REF TO DATA.
- Instancier l'attribut par référence :
GET REFERENCE OF target INTO att.
- Dans la méthode, assigner la référence à un
FIELD-SYMBOL
:FIELD-SYMBOLS <lv_target> TYPE ANY. ASSIGN me->att->* TO <lv_target>. "me->att->* désigne la cible du pointeur me->att
abap/objet.txt · Last modified: 2016/09/08 12:11 by ginko