ABAP Obsolet - Call Method
Mit dem obsoleten Begriff ist natürlich nicht die Verwendung von Klassen gemeint, sondern vielmehr die Verwendung von zusätzlichen Befehlen für den Aufruf von Methoden.
Inhaltsverzeichnis
Die Verwendung von dem Zusatz Call Method ist heute nicht mehr aktuell und kann dazu führen das der Quellcode schlechter lesbar ist. In diesem Zusammenhang existieren auch noch zwei Varianten für den Aufruf von Methoden:
- Aufruf von Call Method ohne Klammern ist dem Aufruf von Funktionsbausteinen nachempfunden und mittlerweile sehr veraltet
- Aufruf mit Klammern erinnert schon vielmehr an den Aufruf von Methoden mit dem Zusatz eines Schlüsselworts aber auch nicht mehr aktuell
Wir möchten dir dazu einmal den aktuellen Stand der Entwicklung zeigen.
Status Quo
Aktuell werden Klassen und Methoden aufgerufen, wie man es aus anderen Sprachen kennt. Das Objekt wird angegeben, gefolgt von der Angabe der Methode. Innerhalb der Klasse hast du dann die Möglichkeiten auf das Objekt zu verweisen oder direkt die Methode aufzurufen, die ja aus der aktuellen Klasse stammt (dazu die Beispiele 1 & 2).
" Aufruf außerhalb der Klasse
lo_obj->do_something( ld_bukrs ).
" Aufruf innerhalb der Klasse (1)
do_something( ld_bukrs ).
" Aufruf innerhalb der Klasse (2)
me->do_something( ld_bukrs ).
Ausnahme
Wie immer gibt es aber auch Ausnahmen, bei dem der Aufruf noch sinnvoll ist und genutzt werden kann. Dies ist der Fall, wenn man in einem anderen Programm eine Methode einer lokalen Klasse aufrufen will.
Dazu ein kleines Stück Coding:
" Sonderfall für den Aufruf
CALL METHOD ('PROGRAM={Programm}CLASS={Klasse}')=>('{Methode}')​
EXPORTING
" ...
IMPORTING
" ...
.
In diesem Fall wird die Klasse in einem anderen Programm aufgerufen und die statische Methode ausgeführt. Dabei ist auch die Übergabe von Parameter möglich.
Bei dieser Variante stellt sich aber die Frage, ob die Methode nicht schon längst in eine globale Klasse ausgelagert sein sollte.
Fazit
Die Verwendung von Call Method ist schon lange nicht mehr nötig und sieht auch nicht wirklich modern aus. Es stammt eher aus der Zeit der Funktionsbausteine und sollte bei deinem modernen Programmierstil keine Rolle mehr spielen.
Quelle:
SAP Dokumentation CALL METHOD