#1
|
|||
|
|||
Función para ejecutar comandos unix
Muy buenas,
Tengo que ejecutar unos comandos en unix para copiar, borrar, etc. ficheros que están en determinadas rutas. Otras veces he utilizado: CALL FUNCTION 'RZL_START_PROGRAM_REMOTE' EXPORTING cmd = fichero_origen cmd_arguments = fichero_destino EXCEPTIONS argument_error = 1 send_error = 2 OTHERS = 3. Donde por ejemplo si quiero mover un fichero a otra ruta, en fichero_origen pongo mv seguido de la ruta del fichero origen, y en fichero_destino la ruta destino y el nombre del fichero. La cuestión es que esta función internamente almacena el fichero_origen en una variable de 100 caracteres, y debido a que la ruta esta dentro de muchas carpetas y que el nombre de fichero es muy largo, pues la corta y no me lo hace. Alguien sabe otra función que pueda utilizar para ejecutar comandos unix??? Y si no, al menos, alguna forma de poder borrar un fichero de una ruta unix, sin tener que utilizar esta función??? Asi intentaría copiar el fichero con un loop, y escribirlo en la ruta destino, y luego tendría que borrarlo de la ruta original. muchas gracias |
#2
|
|||
|
|||
Desde la transaccion SM49 puedes crear comandos externos para interactuar con el SO, create los comandos para mover, eliminar o lo que quieras hacer y luego esos comandos puedes ejecutarlos con la funcion
SXPG_COMMAND_EXECUTE o SXPG_COMMAND_EXECUTE_LONG que te permite mas longtud en los parametros |
#3
|
|||
|
|||
Al final hice esto:
DATA: BEGIN OF itab OCCURS 0, line(255), END OF itab. DATA: l_unix_command(500). CALL 'SYSTEM' ID 'COMMAND' FIELD l_unix_command ID 'ITAB' FIELD itab-*sys*. Y en l_unix_command he puesto el comando que quiero, por ejemplo: 'mv ruta1/fich1 ruta2/fich2' Gracias. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|