Erro al abrir fichero desde PC

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • ana-delia
    Junior Member
    • mar
    • 3

    #1

    Erro al abrir fichero desde PC

    Hola,
    Intento abrir un archivo ubicado en mi PC con las funciones CALL FUNCTION 'WS_FILENAME_GET' y
    CALL FUNCTION 'GUI_UPLOAD' pero al ejecutar
    me sale un mensaje de error en la barra de estado (con la dirección del archivo). ¿Alguien sabe como solucionar esto? por más páginas que he mirado no veo que ocurre...
    ¡¡Gracias de antemano!!
  • karinastolen
    Member
    • mar
    • 60

    #2
    WS_FILENAME_GET es obsoleta

    La función WS_FILENAME_GET es obsoleta, en lugar de esa podrías utilizar KD_GET_FILENAME_ON_F4, a mi me funciona bien así:

    Código:
    TYPES:
             BEGIN OF ty_tabla,
               datos TYPE string,
             END OF ty_tabla.
    
    DATA:   i_tabla TYPE STANDARD TABLE OF ty_tabla.
    
    DATA: ruta TYPE rlgrap-filename,
          rutastring TYPE string.
    
    
    CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
      CHANGING
        file_name = ruta.
    
    rutastring = ruta.
    
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename = rutastring
      TABLES
        data_tab = i_tabla.
    Espero te sirva de algo...
    "Experience is what you get when you didn't get what you wanted." Randy Pausch

    Comentario

    • gib8107
      Member
      • may
      • 44

      #3
      leer archivo en linea y en job de fondo

      Espero te funcione

      Código:
       SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
      PARAMETERS: P_ARCH LIKE  RLGRAP-FILENAME DEFAULT TEXT-002 OBLIGATORY.
      SELECTION-SCREEN END OF BLOCK B1.
      este es para capturar el F4
      Código:
      CONSTANTS:  C_MODE(01) TYPE C VALUE 'O',          "Tipo Open 
      'TEXT-004= ,Text (*.txt),*.txt,Todos los archivos (*.*),*.*.
      'TEXT-005= Abrir
       
      AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_ARCH.
      *--- Busca del archivo con camino del fichero para procesamiento
        PERFORM F_ABRIR_ARCHIVO USING TEXT-004 C_MODE TEXT-005
                                CHANGING P_ARCH.


      Código:
      *&      Form  F_ABRIR_ARCHIVO
      *&---------------------------------------------------------------------*
      FORM F_ABRIR_ARCHIVO USING P_MASK  TYPE CHAR80
                                 P_MODE  TYPE C
                                 P_TITLE TYPE ANY
                           CHANGING P_FILENAME LIKE RLGRAP-FILENAME.
       
        DATA: VL_MASK(80)  TYPE C,
              VL_FILENAME  LIKE RLGRAP-FILENAME.
       
        VL_MASK = P_MASK.
       
        CALL FUNCTION 'WS_FILENAME_GET'                                 "#EC
       
          EXPORTING
            DEF_FILENAME     = P_FILENAME
            MASK             = VL_MASK
            MODE             = P_MODE
            TITLE            = P_TITLE
          IMPORTING
            FILENAME         = VL_FILENAME
          EXCEPTIONS
            INV_WINSYS       = 1
            NO_BATCH         = 2
            SELECTION_CANCEL = 3
            SELECTION_ERROR  = 4
            OTHERS           = 5.
       
        IF SY-SUBRC = 0.
          P_FILENAME = VL_FILENAME.
        ELSEIF SY-SUBRC <> 3.
          MESSAGE I008. STOP.
        ENDIF.
       
      ENDFORM.                    " F_ABRIR_ARCHIVO
      esto lo pones al start of selection

      Código:
       TYPES: BEGIN OF TY_DATA_TAB,                          "Tabla del Archivo
             LINE(1000) TYPE C. "STRING.
      TYPES: END OF TY_DATA_TAB. 
       DATA: T_DATA_TAB  TYPE TABLE OF TY_DATA_TAB  WITH HEADER LINE. 
      DATA: V_CHECK TYPE C.                     "Variable de verificación 
      *** Busca archivo de acuerdo con fichero indicado en la pantalla
        PERFORM F_BUCSCA_ARCHIVO TABLES T_DATA_TAB USING P_ARCH
                                 CHANGING V_CHECK.
      Código:
      DATA: V_FILENAME TYPE STRING.                    "Ruta del archivo
       
      *&---------------------------------------------------------------------*
      *&      Form  F_BUCSCA_ARCHIVO
      *&---------------------------------------------------------------------*
      FORM F_BUCSCA_ARCHIVO TABLES T_DATA_TAB STRUCTURE E_DATA_TAB
                            USING  P_FILENAME LIKE RLGRAP-FILENAME
                            CHANGING V_CHECK TYPE C.
       
        CLEAR: V_FILENAME, T_DATA_TAB.
        REFRESH: T_DATA_TAB.
       
        IF NOT SY-BATCH IS INITIAL.
       
      *** Abre Archivo
          OPEN DATASET P_FILENAME FOR INPUT IN TEXT MODE ENCODING NON-UNICODE.
          IF SY-SUBRC NE 0.
            IF SY-BATCH EQ SPACE.
              MESSAGE I320(BF00) WITH P_FILENAME.
            ELSE.
              MESSAGE S320(BF00) WITH P_FILENAME.
              MOVE 'X' TO V_CHECK.
              STOP.
            ENDIF.
          ENDIF.
       
      *** Busca datos del Archivo en servidor
          DO.
            CLEAR: E_DATA_TAB, V_FILENAME.
            READ DATASET P_FILENAME INTO V_FILENAME.
            IF SY-SUBRC NE 0.
              EXIT.
            ELSE.
              MOVE V_FILENAME TO E_DATA_TAB.
              APPEND E_DATA_TAB TO T_DATA_TAB.
            ENDIF.
          ENDDO.
       
      *** Cerra Archivo
          CLOSE DATASET P_FILENAME.                            "Cerra Archivo
       
        ELSE.
       
          MOVE P_FILENAME TO V_FILENAME.
       
          CALL FUNCTION 'GUI_UPLOAD'
            EXPORTING
              FILENAME                = V_FILENAME
            TABLES
              DATA_TAB                = T_DATA_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
              OTHERS                  = 17.
       
          IF SY-SUBRC <> 0.
            MESSAGE I008.
            MOVE 'X' TO V_CHECK.
            STOP.
          ENDIF.
       
        ENDIF.
       
        IF T_DATA_TAB[] IS INITIAL.
          MESSAGE S013 WITH V_FILENAME.
          MOVE 'X' TO V_CHECK.
          STOP.
        ENDIF.
       
      ENDFORM.                    " F_BUCSCA_ARCHIVO
      Editado por última vez por gib8107; 22/03/2011, 14:29:51.

      Comentario

      • ana-delia
        Junior Member
        • mar
        • 3

        #4
        Muchas gracias chicos!!tb me ha ayudado mi jefe

        Comentario

        Trabajando...