Carga de fichero en tabla interna de SAP

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • oieraz
    Member
    • nov
    • 54

    #1

    Carga de fichero en tabla interna de SAP

    Hola me gustaría saber si hay alguna función que me cargue un fichero en una tabla interna de Sap y como debería definirme esa tabla interna.

    Muchas gracias y un cordial saludo.
  • Mike
    Senior Member
    • mar
    • 144

    #2
    Con la clase CL_GUI_FRONTEND_SERVICES y el Metodo GUI_UPLOAD pasas de un archivo a una tabla interna SAP

    La tabla interna debe tener la estructura del archivo, con FILETYPE = 'DAT' si el archovo viene separado por tabulaciones y FILETYPE = 'ASC' si la separacion es la longitud de los campos .

    CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
    EXPORTING
    FILENAME = FILENAME
    FILETYPE = 'DAT'
    * HAS_FIELD_SEPARATOR = SPACE
    * HEADER_LENGTH = 0
    * DAT_MODE = SPACE
    * CODEPAGE = SPACE
    * IGNORE_CERR = ABAP_TRUE
    * REPLACEMENT = '#'
    * READ_BY_LINE = 'X'
    * IMPORTING
    * FILELENGTH =
    * HEADER =
    CHANGING
    DATA_TAB = IT_Tab
    EXCEPTIONS
    FILE_OPEN_ERROR = 1
    FILE_READ_ERROR = 2
    NO_BATCH = 3
    GUI_REFUSE_FILETRANSFER = 4
    INVALID_TYPE = 5
    NO_AUTHORITY = 6
    UNKNOWN_ERROR = 7
    BAD_DATA_FORMAT = 8
    HEADER_NOT_ALLOWED = 9
    SEPARATOR_NOT_ALLOWED = 10
    HEADER_TOO_LONG = 11
    UNKNOWN_DP_ERROR = 12
    ACCESS_DENIED = 13
    DP_OUT_OF_MEMORY = 14
    DISK_FULL = 15
    DP_TIMEOUT = 16
    NOT_SUPPORTED_BY_GUI = 17
    ERROR_NO_GUI = 18
    others = 19
    .

    Comentario

    • oieraz
      Member
      • nov
      • 54

      #3
      recibido

      Gracias por tu ayuda

      Comentario

      • fernando_c
        Junior Member
        • ene
        • 4

        #4
        Funciones para ficheros

        Podés usar dos funciones: la función WS_UPLOAD es la antigua y la función GUI_UPLOAD es la moderna. WS_UPLOAD carga los datos directamente en una tabla interna mientras que en el caso de GUI_UPLOAD lo que hacer es cargarnos los datos en una variable de tipo STRING, la que después hay que tratar.

        WS_UPLOAD:
        CALL FUNCTION 'WS_UPLOAD'
        EXPORTING
        filename = p_filen "Nombre de Archivo
        filetype = 'DAT'
        TABLES
        data_tab = record. "Tabla Interna


        GUI_UPLOAD:
        CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
        filename = p_filen
        filetype = 'DAT'
        TABLES
        data_tab = record.

        Cualquiera de estas dos funciones te sirve para lo que estás intentando de hacer. Espero te sirva. Saludos.

        Comentario

        • nachosds
          Member
          • dic
          • 48

          #5
          Buenos dias.

          Tengo que cambiar la funcion WS_UPLOAD por la nueva, concretamente por el metodo CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD

          Pues bien, a la hora pasarle la tabla DATA_TAB me da error.
          Antes con la funcion WS_UPLOAD me funcionaba.

          ¿Que podria ser?
          A DATA_TAB le estoy pasando una tabla interna creada de la manera:
          DATA: BEGIN OF it_datos OCCURS 0,
          a(40),
          b(10),
          c(2),
          d(5) TYPE c,
          error.
          DATA: END OF it_datos.


          Un saludo y mil gracias!


          EDITO PARA AUTORESPONDERME.

          Le tenia que pasar it_datos[]. Antes se lo pasaba sin corchetes...

          Gracias de todas formas!
          Editado por última vez por nachosds; 17/11/2009, 10:02:12.
          http://www.mnsystem.com/

          Comentario

          Trabajando...