CALL METHOD
Das ABAP-Schlüsselwort CALL METHOD ruft die Methode m des Objekts obj auf. Dabei kann m ein Literal oder eine Variable sein.
Grundform: CALL METHOD OF obj m.
Zusätze:
In der Regel puffert der ABAP-Prozessor alle aufeinanderfolgenden OLE-Anweisungen und schickt sie gebündelt an den Präsentationsserver. Dennoch kann eine Anweisung auch auf die Ergebnisse vorhergehender Anweisungen zugreifen.
Wenn Sie im Debugging-Modus arbeiten, sollten Sie allerdings nicht vergessen, daß die Werte der Rückgabeparameter erst unmittelbar vor der Ausführung der ersten nicht-OLE ABAP-Anweisung angezeigt werden können. Eine Anweisung, die sich auf ein noch nicht durch eine OLE-Anweisung erzeugtes Objekt bezieht, beendet die automatische Bündelung.
Der Rückgabewert SY-SUBRC gibt an, ob alle gebündelten Anweisungen erfolgreich ausgeführt wurden. Er kann folgende Werte annehmen:
Alle Anweisungen wurden erfolgreich ausgeführt.
Bei der Kommunikation mit dem Präsentationsserver trat ein Systemfehler auf. Das Feld SY-MSGLI enthält eine kurze Beschreibung des Fehlers.
Ein Methodenaufruf verursachte einen Fehler.
Das Setzen eines Attributs verursachte einen Fehler.
Das Lesen eines Attributs verursachte einen Fehler.
In den letzten drei Fällen erscheint auf dem Präsentationsserver ein Dialogfenster mit einem Fehlerhinweis.
CALL METHOD gehört zu einer Gruppe von Schlüsselwörtern, mit denen Sie externe Objekte in ABAP verarbeiten können. Gegenwärtig wird nur das Objektmodell OLE2 unterstützt. Alle zu verarbeitenden Objekte müssen daher vom Typ OLE2_OBJECT sein. Dieser Typ sowie andere erforderliche Daten sind im Include-Baustein OLE2INCL definiert.
Zusätze
Der Zusatz =f speichert den Rückgabewert der Methode in der Variablen f. Der Rückgabewert kann auch vom Typ OLE2_OBJECT sein. Dieser Zusatz muß immer an erster Stelle vor anderen Zusätzen stehen.
Der Zusatz EXPORTING übergibt Werte von Feldern an die Parameter der Methode. p1, p2,... sind entweder Schlüsselwortparameter oder Positionsparameter.
Wenn die Parameter der Reihe nach zugeordnet werden, müssen p1, p2,... mit einem "#" beginnen, gefolgt von der Positionsnummer des Parameters. Gegenwärtig werden nur Positionsparameter unterstützt.
Die EXPORTING-Parameter stehen immer am Ende der Anweisung.
Der Zusatz NO FLUSH setzt den Sammelvorgang fort, selbst wenn die nächste Anweisung keine OLE-Anweisung ist. So können Sie z.B. in einer Schleife eine Reihe von Attributen setzen und in einer einzigen Transportoperation auf den Präsentationsserver herunterladen.
Wenn Sie NO FLUSH verwenden, müssen Sie als Programmierer sicherstellen, daß Sie sich nicht auf den Inhalt der Rückgabeparameter verlassen, die ja noch nicht gefüllt sind. Auch müssen alle Objekte als Bündel initialisiert werden, d.h. sie müssen durch einen schon ausgeührten OLE-Aufruf bereits erzeugt worden sein.
Jede FREE-Anweisung führt immer zu einem Herunterladen des Puffers.

So öffnen Sie eine EXCEL-Datei mit der Methode 'Open':
INCLUDE OLE2INCL.
DATA EXCEL TYPE OLE2_OBJECT.
DATA WORKBOOK TYPE OLE2_OBJECT.
CREATE OBJECT EXCEL 'Excel.Application'.
CALL METHOD OF EXCEL 'WORKBOOKS' = WORKBOOK.
CALL METHOD OF WORKBOOK 'Open' EXPORTING #1 = 'C:\EX1.XLS'.
Siehe auch:
SET PROPERTY, GET PROPERTY, CREATE OBJECT und FREE OBJECT.