Ver Mensaje Individual
  #1  
Viejo 01/08/08, 18:30:35
Avatar de Edd_401
Edd_401 Edd_401 is offline
Senior Member
 
Fecha de Ingreso: may 2007
Mensajes: 119
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.
Responder Con Cita