MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 04/08/08, 14:57:41
Avatar de Edd_401
Edd_401 Edd_401 is offline
Senior Member
 
Fecha de Ingreso: may 2007
Mensajes: 119
Ayuda !!!

Tengo la siguiente funcion, la cual ejecuta comados externos de sistema operativo. (Los que se encunetran en SM49).

La pregunta es:

Como hacer que la ultima parte del comando sea variable. Les comento mas.

Se trata de enviar un archivo mediante un .exe

el comando seria : trans -h a c:\envio -i <nombre del archivo> ......

La parte del nombre del archivo es la que tendria que ser variable... para envia 'n' numero de archivos.

Ojala y alguien pueda ayudarme...

Gracias...

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.
Imágenes Adjuntas
Tipo de Archivo: gif ScreenHunter_05 Aug. 04 09.52.gif (2.5 KB, 7 visitas)
Responder Con Cita
  #2  
Viejo 04/08/08, 15:54:54
ibecerra
 
Mensajes: n/a
hola, q tal no te compliques con comando q no conoces , te doy una solucion facil, porque tambien hago lo mismo para imprimir en impresoras especiales.
1. Create un archivo tipo .bat ejemplo COPIAINFO.BAT
2. Dentro del archivo bat create la sentencia que necesitas
trans -h a c:\envio -i %1
*ojo %1 es el parametro variable..
3. pruebalo ejecutandolo desde el sistema operativo
ejemplo COPIAINFO.BAT TUARCHIVO.TXT
Si funciona por hay entonces ya estas preparado para ejecutarlo desde sap
4. utiliza la siguiente funcion que sirve para ejecutar comandos externos en sap..
CONCATENATE 'C:\COPIAINFO.BAT' VARIABLE INTO ARCHIVO
SEPARATED BY SPACE.


CALL METHOD cl_gui_frontend_services=>execute
EXPORTING
document = archivo
EXCEPTIONS
OTHERS = 1.
Responder Con Cita
  #3  
Viejo 04/08/08, 16:40:40
Avatar de Edd_401
Edd_401 Edd_401 is offline
Senior Member
 
Fecha de Ingreso: may 2007
Mensajes: 119
Gracias por tu ayuda

Precisamente estaba haciendo lo que dices....

Solo que si es obligatorio el uso de la funcion, puesto que la funcion me devuelve un log, que sera usado por WORK FLOW....

Te muesto lo que llevo....

PRIMERO LLEVO EL ARCHIVO A PC (Como prueba)...

* Method Export file to PC
CALL METHOD r_gui->gui_download
EXPORTING
filename = c_file
filetype = 'ASC'
write_field_separator = 'X'
CHANGING
data_tab = it_txt[]
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
OTHERS = 24.
IF sy-subrc NE 0.
MESSAGE s166 WITH 'Error.Archivo no pudo ser generado'(e01).
ELSE.
MESSAGE s166 WITH 'Archivo ha sido generado'(e02) c_file.
ENDIF.






DESPUES CREO EL ARCHIVO .BAT



REFRESH itab.

CONCATENATE 'CD' w_path INTO itab-doscmd SEPARATED BY space.
APPEND itab.

TRANSLATE w_direc TO LOWER CASE.
MOVE w_direc TO itab-doscmd.
APPEND itab.
IF NOT w_inst1 IS INITIAL.
itab-doscmd = w_inst1.
APPEND itab.
ENDIF.
IF NOT w_inst2 IS INITIAL.
itab-doscmd = w_inst2.
APPEND itab.
ENDIF.

CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = 'C:\OPEN_ORDER.BAT'
filetype = 'DAT'
TABLES
data_tab = itab
EXCEPTIONS
file_open_error = 1
file_write_error = 2
invalid_filesize = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.




Y AHORA.......... Por lo que me indicas puedo ejecutar el archivo bat en la funcion correcto????
Responder Con Cita
  #4  
Viejo 04/08/08, 16:44:29
ibecerra
 
Mensajes: n/a
Asi es.. esa funcion es para ejecutar el archivo bat desde SAP
Responder Con Cita
  #5  
Viejo 04/08/08, 16:45:33
ibecerra
 
Mensajes: n/a
perdon este metodo es para ejecuta un archivo bat , exe...
CALL METHOD cl_gui_frontend_services=>execute
EXPORTING
document = archivo
EXCEPTIONS
OTHERS = 1.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 11:07:33.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web