Guardar Excel con OLE en la AL11

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • pancho6102
    Senior Member
    • jun
    • 238

    #1

    Guardar Excel con OLE en la AL11

    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.
    Francisco Ramirez.
    consultor SAP ABAP Netweaver
    Queretaro, Mexico.
  • Mauricio Hidalgo
    Senior Member
    • may
    • 481

    #2
    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
    Editado por última vez por Mauricio Hidalgo; 09/07/2013, 18:58:49.

    Comentario

    • pancho6102
      Senior Member
      • jun
      • 238

      #3
      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.
      Francisco Ramirez.
      consultor SAP ABAP Netweaver
      Queretaro, Mexico.

      Comentario

      • ballan
        Senior Member
        • oct
        • 671

        #4
        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

        Comentario

        • pancho6102
          Senior Member
          • jun
          • 238

          #5
          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.
          Francisco Ramirez.
          consultor SAP ABAP Netweaver
          Queretaro, Mexico.

          Comentario

          Trabajando...