Programme mittels RFC „Installieren“ und ausführen

In diesem Artikel möchte ich eine Funktion vorstellen, welche in einigen „Extremsituationen“ sehr hilfreich sein kann. Allerdings ist dieser Funktionsbaustein von SAP nicht freigegeben und die Verwendung erfolgt auf eigene Gefahr! Trotzdem kann es recht hilfreich sein, diesen Funktionsbaustein zu kennen.

Der FuBa RFC_ABAP_INSTALL_AND_RUN erlaubt es, einen beliebigen Report via RFC von einem SAP System in ein anderes SAP System zu transportieren und auszuführen. Nach der Verarbeitung wird das Programm im Zielsystem wieder gelöscht. Wenn gewünscht, kann man Daten aus dem Zielsystem in das aufrufende System zurückschreiben. Hierfür müssen die Daten im transferierten Report mittels WRITE ausgegeben werden. Für komplexe Strukturen bietet sich hier vor dem Transport eine Umwandlung in XML an.

In meinem Beispielprogramm wird zuerst der Report aus dem Repository gelesen. Im nächsten Schritt wird der Source Code an das Zielsystem übermittelt. Sollten Fehler passieren, dann werden diese als Exception übermittelt. Daher ist es zu empfehlen die Exceptions zumindest in Variablen abzufangen.

DATA: lt_source TYPE STANDARD TABLE OF progtab.
DATA: lt_data_import TYPE TABLE OF listzeile,
      wa_data_import TYPE listzeile.
DATA: lv_smess(255) TYPE c,
      lv_cmess(255) TYPE c.

* Get report source
READ REPORT 'Z_HELLO_WORLD' INTO lt_source.

CALL FUNCTION 'RFC_ABAP_INSTALL_AND_RUN' DESTINATION 'ECC'
*   EXPORTING
*     MODE               = 'F'
*     PROGRAMNAME        = 'Z_HELLO_WORLD'
 TABLES
  program            = lt_source
  writes             = lt_data_import
 EXCEPTIONS
  system_failure        = 1  MESSAGE lv_smess
  communication_failure = 2  MESSAGE lv_cmess.

 

Damit ein Programm via RFC ausgeführt werden kann, muss das Zielsystem für Modifikationen geöffnet sein.

Posted on 20. März 2015 in ABAP, Blog, RFC

Back to Top