WS_EXECUTE es una función que nos permite ejecutar cualquier programa instalado en nuestra computadora desde SAP. Cabe aclarar que aquel programa que queramos correr debe permitir parámetros MS-DOS.
En el siguiente ejemplo voy a mostrar como zippear (comprimir) dos archivos desde SAP. Como resultado obtendremos un archivo WinZip que contendrá dos archivos de texto.
Comprimiremos el archivo 1.txt y el archivo 2.txt, y el resultado será el archivo destino.zip.
Parámetros que acepta WinZip desde MS-DOS: http://www.memecode.com/docs/winzip.html
Rutas de los archivos:
- C:1.txt
- C:2.txt
- C:destino.zip
Código:
CALL FUNCTION ‘WS_EXECUTE’
EXPORTING
* DOCUMENT = ‘ ‘
* CD = ‘ ‘
COMMANDLINE = ‘ -min -a c:destino.zip c:1.txt c:2.txt’
* INFORM = ‘ ‘
PROGRAM = ‘winzip32.exe’
* STAT = ‘ ‘
* WINID = ‘ ‘
* OSMAC_SCRIPT = ‘ ‘
* OSMAC_CREATOR = ‘ ‘
* WIN16_EXT = ‘ ‘
* EXEC_RC = ‘ ‘
* IMPORTING
* RBUFF =
EXCEPTIONS
FRONTEND_ERROR = 1
NO_BATCH = 2
PROG_NOT_FOUND = 3
ILLEGAL_OPTION = 4
GUI_REFUSE_EXECUTE = 5
OTHERS = 6 .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Technorati tags: sdn blogger

Add me to your del.icio.us
Hola,
Estoy utilizando la misma funcion para ejecutar un .bat en modo sincrono. Conoces alguna manera de que lo ejecute en background, para que no salga la pantalla de comando durante la ejecucion? .Muchas gracias