Comando externos en sistema operativo (Windows)... TX SM49
Hola que tal amigo de mundo sap... Aqui aportando una funcion para recuperar un comando ejecutado en windows... a lo mejor a alguien le sirve...
FUNCTION ZZPVFMAPPSERVER_CONEXION.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(COMMAND_NAME) TYPE SXPGLOGCMD
*" TABLES
*" EXEC_PROTOCOL STRUCTURE BTCXPM
*" EXCEPTIONS
*" NO_COMMAND
*" NO_COMMAND_LIST
*" NO_AUTHORITY
*" COMMAND_ERROR
*"----------------------------------------------------------------------
IF NOT COMMAND_NAME IS INITIAL.
* Lista de comandos externos
CALL FUNCTION 'SXPG_COMMAND_LIST_GET'
EXPORTING
COMMANDNAME = COMMANDNAME
OPERATINGSYSTEM = SY-OPSYS
TABLES
COMMAND_LIST = COMMAND_LIST
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC = 0.
READ TABLE COMMAND_LIST WITH KEY NAME = COMMAND_NAME.
* Checar autorizacion
CALL FUNCTION 'SXPG_COMMAND_CHECK'
EXPORTING
COMMANDNAME = COMMAND_LIST-NAME
OPERATINGSYSTEM = SY-OPSYS
EXCEPTIONS
NO_PERMISSION = 1
COMMAND_NOT_FOUND = 2
PARAMETERS_TOO_LONG = 3
SECURITY_RISK = 4
WRONG_CHECK_CALL_INTERFACE = 5
X_ERROR = 6
TOO_MANY_PARAMETERS = 7
PARAMETER_EXPECTED = 8
ILLEGAL_COMMAND = 9
COMMUNICATION_FAILURE = 10
SYSTEM_FAILURE = 11
OTHERS = 12.
CASE SY-SUBRC.
WHEN 0.
* Conseguri lo ficheros
CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
EXPORTING
COMMANDNAME = COMMAND_LIST-NAME
TABLES
EXEC_PROTOCOL = EXEC_PROTOCOL
EXCEPTIONS
NO_PERMISSION = 1
COMMAND_NOT_FOUND = 2
PARAMETERS_TOO_LONG = 3
SECURITY_RISK = 4
WRONG_CHECK_CALL_INTERFACE = 5
PROGRAM_START_ERROR = 6
PROGRAM_TERMINATION_ERROR = 7
X_ERROR = 8
PARAMETER_EXPECTED = 9
TOO_MANY_PARAMETERS = 10
ILLEGAL_COMMAND = 11
WRONG_ASYNCHRONOUS_PARAMETERS = 12
CANT_ENQ_TBTCO_ENTRY = 13
JOBCOUNT_GENERATION_ERROR = 14
OTHERS = 15.
IF SY-SUBRC = 0.
MESSAGE ID '00' TYPE 'I' NUMBER 001 WITH TEXT-003.
ELSE.
MESSAGE ID '00' TYPE 'I' NUMBER 001 WITH TEXT-004.
ENDIF.
WHEN 1.
MESSAGE ID '00' TYPE 'I' NUMBER 001 WITH TEXT-005
RAISING NO_AUTHORITY.
WHEN OTHERS.
MESSAGE ID '00' TYPE 'I' NUMBER 001 WITH TEXT-006
RAISING COMMAND_ERROR.
ENDCASE.
ELSE.
MESSAGE ID '00' TYPE 'I' NUMBER 001 WITH TEXT-002
RAISING NO_COMMAND_LIST.
ENDIF.
ELSE.
MESSAGE ID '00' TYPE 'I' NUMBER 001 WITH TEXT-001
RAISING NO_COMMAND.
ENDIF.
ENDFUNCTION.
|