Fichero en Directorio SAP

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • cirilillo
    Junior Member
    • abr
    • 16

    #1

    Fichero en Directorio SAP

    Hola, estoy intentando generar unos ficheros con la funcion "HR_99S_DOWNLOAD" dentro del directorio SAP (AL11).

    Mi pregunta es:
    ¿Qué ruta de destino hay que ponerle a la función para que me lo guarde donde yo quiero?

    (He probado en local y me lo hace perfectamente)

    Gracias
  • Mauricio Hidalgo
    Senior Member
    • may
    • 481

    #2
    Hola esa función te sirve sólo para el servidor de presentación. Es decir tu equipo. Para dejar archivos en en el sevidor de aplicaciones debes usar las sentencias OPEN DATATASET, TRANSFER, CLOSE DATASET.

    Te dejo este link
    https://www.sdn.sap.com/irj/sdn/adva...lue=sdn_forum)

    saludos

    Comentario

    • cirilillo
      Junior Member
      • abr
      • 16

      #3
      Hola de nuevo, la cuestion es que yo no puedo hacer un OPEN DATASET porque soy yo el que tiene que crear el fichero, además con TRANSFER tengo entendido que sólo se puede añadir registro a registro, y me gustaría pasarle la tabla interna entera.

      ¿No hay alguna otra función de generar ficheros y que los pueda guardar en el directorio SAP?

      Comentario

      • DCErick
        Moderator
        • mar
        • 1090

        #4
        Originalmente publicado por cirilillo
        Hola de nuevo, la cuestion es que yo no puedo hacer un OPEN DATASET porque soy yo el que tiene que crear el fichero, además con TRANSFER tengo entendido que sólo se puede añadir registro a registro, y me gustaría pasarle la tabla interna entera.

        ¿No hay alguna otra función de generar ficheros y que los pueda guardar en el directorio SAP?
        Con OPEN DATASET cuando el fichero no existe te lo crea...
        Bueno yo lo tengo para crear un archivo en una carpeta compartida en la red y si lo hace....
        -------------------
        ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

        Comentario

        • DCErick
          Moderator
          • mar
          • 1090

          #5
          Originalmente publicado por cirilillo
          Hola de nuevo, la cuestion es que yo no puedo hacer un OPEN DATASET porque soy yo el que tiene que crear el fichero, además con TRANSFER tengo entendido que sólo se puede añadir registro a registro, y me gustaría pasarle la tabla interna entera.

          ¿No hay alguna otra función de generar ficheros y que los pueda guardar en el directorio SAP?

          Puedes ver el grupo de funciones EPSF.

          En el foro hay varios temas para Open DataSet hechales un ojo.

          Yo tengo los siguientes FORM

          Código:
          *&--------------------------------------------------------------------*
          *&      Form  Abrir_Archivo
          *&--------------------------------------------------------------------*
          *       Abrir Archivo.
          *---------------------------------------------------------------------*
          *      -->P_NOMBRE   Nombre de Archivo.
          *      -->P_RUTA     Ruta de Archivo.
          *---------------------------------------------------------------------*
          FORM abrir_archivo USING
                               p_nombre LIKE epsf-epsfilnam
                               p_ruta   LIKE epsf-epsdirnam.
          
            CALL FUNCTION 'EPS_OPEN_OUTPUT_FILE'
              EXPORTING
                file_name              = p_nombre
                dir_name               = p_ruta
                overwrite_mode         = 'F' "Si ya existe lo sobreescribe.
                text_mode              = 'X'
              EXCEPTIONS
                invalid_eps_subdir     = 1
                sapgparam_failed       = 2
                build_directory_failed = 3
                no_authorization       = 4
                build_path_failed      = 5
                open_failed            = 6
                file_already_exists    = 7
                OTHERS                 = 8.
          
            IF sy-subrc <> 0.
              MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO v_error.
              WRITE :/ v_error.
            ENDIF.
          
          ENDFORM.
          
          
          
          *&--------------------------------------------------------------------*
          *&      Form  escribir_archivo
          *&--------------------------------------------------------------------*
          *       Escribir Lineas.
          *---------------------------------------------------------------------*
          *      -->P_NOMBRE   Nombre de Archivo.
          *      -->P_RUTA     Ruta de Archivo.
          *---------------------------------------------------------------------*
          FORM escribir_archivo
                             USING
                               p_nombre LIKE epsf-epsfilnam
                               p_ruta   LIKE epsf-epsdirnam.
          
            DATA: l_epspath TYPE char100.
            CONCATENATE: p_ruta '\' p_nombre INTO l_epspath.
          
            CALL FUNCTION 'EPS_WRITE_TEXT_BLOCK'
              EXPORTING
                file_path     = l_epspath
              TABLES
                eps_buffer    = t_eps_buffer
              EXCEPTIONS
                write_failure = 1
                OTHERS        = 2.
          
            IF sy-subrc <> 0.
              MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO v_error.
              WRITE :/ v_error.
            ENDIF.
          
          ENDFORM.                    "escribir_archivo
          
          *&--------------------------------------------------------------------*
          *&      Form  Cerrar_Archivo
          *&--------------------------------------------------------------------*
          *       Cierra el archivo.
          *---------------------------------------------------------------------*
          *      -->P_NOMBRE   Nombre de Archivo.
          *      -->P_RUTA     Ruta de Archivo.
          *---------------------------------------------------------------------*
          FORM cerrar_archivo USING
                               p_nombre LIKE epsf-epsfilnam
                               p_ruta   LIKE epsf-epsdirnam.
          
          *Cerramos el Archivo.
            CALL FUNCTION 'EPS_CLOSE_FILE'
              EXPORTING
                file_name              = p_nombre
                dir_name               = p_ruta
              EXCEPTIONS
                build_path_failed      = 1
                read_directory_failed  = 2
                read_attributes_failed = 3
                OTHERS                 = 4.
          
            IF sy-subrc <> 0.
              MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO v_error.
              WRITE :/ v_error.
          
            ENDIF.
          
          ENDFORM.                    "Cerrar_Archivo
          -------------------
          ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

          Comentario

          • cirilillo
            Junior Member
            • abr
            • 16

            #6
            Gracias

            Muchas gracias, al final lo he hecho con el OPEN DATASET, TRANFER y el CLOSE DATASET.

            Un saludo

            Comentario

            • Loreluv
              Junior Member
              • mar
              • 9

              #7
              ayuda por favor! crear ficheros

              Ayuda por favor soy un amateur de abap

              bien, tengo un programita abap en el que descargo archivos a pc por medio del metodo gui_download.... pero descargo varios archivos por ejecucion. Deseo que al momento de ejecutarse se cree una carpeta que lleve por nombre la fecha en la que se crea y en ella descargar los archivos.
              Lei algo sobre el opendataset.. podrian darme mas recomendaciones y/o ejemplos.
              **all you need is love**

              Comentario

              • DCErick
                Moderator
                • mar
                • 1090

                #8
                Originalmente publicado por Loreluv
                Ayuda por favor soy un amateur de abap

                bien, tengo un programita abap en el que descargo archivos a pc por medio del metodo gui_download.... pero descargo varios archivos por ejecucion. Deseo que al momento de ejecutarse se cree una carpeta que lleve por nombre la fecha en la que se crea y en ella descargar los archivos.
                Lei algo sobre el opendataset.. podrian darme mas recomendaciones y/o ejemplos.
                Hechale un ojo a la clase CL_GUI_FRONTEND_SERVICES el método DIRECTORY_CREATE.

                Saludos,
                -------------------
                ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

                Comentario

                • DCErick
                  Moderator
                  • mar
                  • 1090

                  #9
                  Originalmente publicado por DCErick
                  Hechale un ojo a la clase CL_GUI_FRONTEND_SERVICES el método DIRECTORY_CREATE.

                  Saludos,
                  Te dejo un ejemplo de su uso:
                  Código:
                  DATA: l_rc TYPE i.
                  CALL METHOD cl_gui_frontend_services=>directory_create
                    EXPORTING
                      directory                = 'C:\EJEMPLOABAP'
                    CHANGING
                      rc                       = l_rc
                    EXCEPTIONS
                      directory_create_failed  = 1
                      cntl_error               = 2
                      error_no_gui             = 3
                      directory_access_denied  = 4
                      directory_already_exists = 5
                      path_not_found           = 6
                      unknown_error            = 7
                      not_supported_by_gui     = 8
                      wrong_parameter          = 9
                      OTHERS                   = 10.
                  IF sy-subrc <> 0.
                    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
                  ENDIF.
                  -------------------
                  ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

                  Comentario

                  • Loreluv
                    Junior Member
                    • mar
                    • 9

                    #10
                    que me viene a devolver l_rc???


                    XD

                    Saludos
                    **all you need is love**

                    Comentario

                    • DCErick
                      Moderator
                      • mar
                      • 1090

                      #11
                      Originalmente publicado por Loreluv
                      que me viene a devolver l_rc???


                      XD

                      Saludos
                      Es el Rückgabewert mmm según google Valor de Retorno, pues la verdad quien sabe para que sea.

                      Pero cuando sy-subrc = 0 (carpeta creada) l_rc tambien es igual a cero y por ejemplo cuando el SY-SUBRC = 5 (directory_already_exists = 5) l_rc es igual a 183.
                      -------------------
                      ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

                      Comentario

                      • juank.bch
                        Junior Member
                        • ago
                        • 12

                        #12
                        Originalmente publicado por cirilillo
                        Muchas gracias, al final lo he hecho con el OPEN DATASET, TRANFER y el CLOSE DATASET.

                        Un saludo
                        Me gustaria saber como lo hiciste, en este momento necesito descargar un archivo con cierta informacion por medio de un proceso de fondo y he intentado por medio del OPEN DATASET y aun no lo logro
                        Juan Camilo Arango Henao
                        Consultor ABAP

                        Comentario

                        Trabajando...