Code: Alles auswählen.
* get CMD.EXE location from local PC
DATA lv_envi TYPE string VALUE 'ComSpec'.
DATA lv_app TYPE string VALUE 'cmd.exe'.
CALL METHOD cl_gui_frontend_services=>environment_get_variable
EXPORTING
variable = lv_envi
CHANGING
value = lv_app
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF sy-subrc <> 0.
ENDIF.
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
ENDIF.
* Copy files to Drive VS$
DATA sync TYPE string VALUE 'X'.
DATA min TYPE string VALUE 'X'.
DATA lv_cpara TYPE string VALUE '/c copy "c:\temp\abc.txt" c:\tmp'.
CALL METHOD cl_gui_frontend_services=>execute
EXPORTING
application = lv_app
parameter = lv_para
minimized = min
synchronous = sync
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
bad_parameter = 3
file_not_found = 4
path_not_found = 5
file_extension_unknown = 6
error_execute_failed = 7
synchronous_failed = 8
not_supported_by_gui = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE e050(smmss_analyze) WITH ls_file_table-filename.
ENDIF.
Code: Alles auswählen.
* Parameterstring zusammenbauen
CONCATENATE ARG1 ' ZEXTDOC ' ARG1 INTO L_PARAMETER SEPARATED BY SPACE.
* Debug
*MESSAGE L_PARAMETER TYPE 'I' DISPLAY LIKE 'E'.
* Und Aufrufen
CALL METHOD CL_GUI_FRONTEND_SERVICES=>EXECUTE
EXPORTING
APPLICATION = 'C:\Temp\SZCBC.exe'
PARAMETER = L_PARAMETER
* minimized =
* synchronous = 'X'
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
BAD_PARAMETER = 3
FILE_NOT_FOUND = 4
PATH_NOT_FOUND = 5
FILE_EXTENSION_UNKNOWN = 6
ERROR_EXECUTE_FAILED = 7
SYNCHRONOUS_FAILED = 8
NOT_SUPPORTED_BY_GUI = 9
OTHERS = 10.
IF SY-SUBRC <> 0.
E_RETMAXTYPE = 'E'.
ES_RETURN-TYPE = 'E'.
ES_RETURN-MESSAGE = 'Applikation nicht verfügbar'.
APPEND ES_RETURN TO ET_RETURN.
ENDIF.
Ein DOS-Fenster bleibt nicht stehen, wenn man ein "/C" beim Aufruf mitgibt. ( Default ist sonst /K ) Und wenn man das dann so aufruft kann man z.B. eine Ausgabe in der DOS-Box ( hier ein einfaches Directorylisting - alternativ halt die Fehlermeldung) nachher im SAP über die Zwischenablage auslesenholger.hiller hat geschrieben:Hallo,
Per "CMD" handelt man sich wieder Gerödel mit Übergeben von Parametern ein... und stehen bleibendes DOS-Fenster (na gut, ein "exit" in der .bat tut es manchmal)... was die Geschichte nicht unbedingt einfacher macht. Aber wenn's am Ende funktioniert... würde mich auch interessieren, wie das ausgegangen ist!
VG,
Holger
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
ewx • Icke0801