#1
|
||||
|
||||
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. |
#2
|
|||
|
|||
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. |
#3
|
||||
|
||||
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???? |
#4
|
|||
|
|||
Asi es.. esa funcion es para ejecutar el archivo bat desde SAP
|
#5
|
|||
|
|||
perdon este metodo es para ejecuta un archivo bat , exe...
CALL METHOD cl_gui_frontend_services=>execute EXPORTING document = archivo EXCEPTIONS OTHERS = 1. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|