PDA

Ver la Versión Completa : Guardar Excel con OLE en la AL11


pancho6102
09/07/13, 16:43:40
Hola amigos una vez mas necesito de su ayuda y de sus conocimientos.

He creado un excel ole usando CREATE OBJECT e_appl 'EXCEL.APPLICATION'.
y ya lo he llenado con lo que necesito pero mi primer tarea que debo hacer es el de guardarlo en el servidor de aplicaciones en un directorio de la AL11 pero no he encontrado como. El método CALL METHOD OF e_work 'SAVEAS' solo lo guarda en directorios de la maquina local no en el servidor de aplicaciones.

Alguien ha realizado esto antes, necesito ayuda por favor.

Mauricio Hidalgo
09/07/13, 18:14:42
Estimado guarde su archivo al disco local y luego use la función
C13_FILE_UPLOAD_BINARY:

ejemplo

CALL FUNCTION 'C13Z_FILE_UPLOAD_BINARY'
EXPORTING
I_FILE_FRONT_END = 'C:\Users\pepito\Desktop\pagos.xlsx'
I_FILE_APPL = '/DES/batch/S390/pagos.xlsx'
I_FILE_OVERWRITE = ''
IMPORTING
E_FLG_OPEN_ERROR = L_FLG_OPEN_ERROR
E_OS_MESSAGE = L_OS_MESSAGE
EXCEPTIONS
FE_FILE_NOT_EXISTS = 1
FE_FILE_READ_ERROR = 2
AP_NO_AUTHORITY = 3
AP_FILE_OPEN_ERROR = 4
AP_FILE_EXISTS = 5
OTHERS = 6.


Lo tomé desde la transacción CG3Z asi que debería andar bien.

Saludos

pancho6102
09/07/13, 22:05:29
Gracias Mauricio lo estaba pensando asi, igual ya estaba pensando en la funcion ARCHIVFILE_CLIENT_TO_SERVER osea guardarlo en localmente y el mismo porgrama se encargue de subir el archivo del fichero local al servidor de aplicaciones y borre el archivo local al terminar, solo que me voy a enfrentar a varios escenarios:

El Programa sera ejecutado por varias personas entonces ellos deben de verlo muy transparente, no quisiera que tronara con algun usuario si no tiene la unidad C (bueno creo que deberia de existir sin problemas), pero si no tiene permisos de escritura en el directorio o demas problemas. Al momento con la ruta que he pensado con la que voy a jugar esperando que en las computadoras exista es: C:\TEMP.

Por esto queria hacerlo directamente sin usar un archivo local.


o tendria que realizar funciones de validación de directorios, ¿como ven?.

Gracias por la información.
Saludos.

ballan
10/07/13, 10:20:07
Te comento las opciones que se me ocurren

1.- Mapear a las personas que vayan a utilizar este programa la carpeta donde quieres depositar los ficheros como unidad de red, asi podran seleccionarla en el cuadro de SAVEAS del Excel, esto es bastante limpio y te ahorrarias mucho codigo

2.- El resto de opciones pasan por descargar el fichero a local y despues enviarlo a servidor, ya sea mediante FTP, con la funcion de la CG3Z o incluso leer el contenido y subirlo al servidor mediante un OPEN DATASET BINARY MODE

pancho6102
10/07/13, 16:12:55
Gracias Ballan las 2 opciones suenan bien solo que la primera es un poco dificil por que quieren ejecutarla personas diferentes que no se pueden especificar en una lista y quieren que entre menos se haga desde SAP sera mejor (configurar carpetas RED, etc) así que voy a trabajar la segunda opcion y voy a realizar un muestreo de los usuarios de que carpeta es base en C y los permisos para escritura / lectura desde SAP.

Saludos.