Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

bdc

Former Member
0 Likes
822

Hi,

I am using gui_upload function module .

What should i specify in the

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

<b> FILENAME = ??????????????</b>

  • FILETYPE = 'ASC'

  • HAS_FIELD_SEPARATOR = ' '

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • IMPORTING

  • FILELENGTH =

  • HEADER =

I want to enter the file name dynamically .

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
794

Hi Gayathri,

If you are taking file name from selection screen then follow this.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PFILE.
  PERFORM GET_FILENAME .
*--
  DATA: WL_RCODE TYPE I,
        WL_TITLE TYPE STRING,
        TL_FILETABLE TYPE FILETABLE,
        WL_FILTER  TYPE STRING .
  FIELD-SYMBOLS: <L_FILE> TYPE FILE_TABLE.
*--

  WL_FILTER = 'RFQ files *.*|'(M03).
  WL_TITLE = 'Select RFQ file '(M02).

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
      WINDOW_TITLE            = WL_TITLE
      FILE_FILTER             = WL_FILTER
    CHANGING
      FILE_TABLE              = TL_FILETABLE
      RC                      = WL_RCODE.
  READ TABLE TL_FILETABLE ASSIGNING <L_FILE> INDEX 1.
  IF SY-SUBRC = 0 .
    P_PFILE = <L_FILE>-FILENAME.
  ENDIF.
start of selection.
  DATA:WL_FILE TYPE STRING .

  IF NOT P_PFILE IS INITIAL.
    WL_FILE = P_PFILE .
    CALL FUNCTION 'GUI_UPLOAD'
         EXPORTING
              FILENAME                = WL_FILE
              FILETYPE                = 'ASC'
              HAS_FIELD_SEPARATOR     = 'X'
         TABLES
              DATA_TAB                = TL_UPLOAD
         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 I032 WITH 'Error in File opening'(E32).
    ENDIF.


[code]

8 REPLIES 8
Read only

Former Member
0 Likes
794

Hi,

specify the file path where your file is located

regards,

pankaj singh

Read only

Former Member
0 Likes
795

Hi Gayathri,

If you are taking file name from selection screen then follow this.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PFILE.
  PERFORM GET_FILENAME .
*--
  DATA: WL_RCODE TYPE I,
        WL_TITLE TYPE STRING,
        TL_FILETABLE TYPE FILETABLE,
        WL_FILTER  TYPE STRING .
  FIELD-SYMBOLS: <L_FILE> TYPE FILE_TABLE.
*--

  WL_FILTER = 'RFQ files *.*|'(M03).
  WL_TITLE = 'Select RFQ file '(M02).

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
      WINDOW_TITLE            = WL_TITLE
      FILE_FILTER             = WL_FILTER
    CHANGING
      FILE_TABLE              = TL_FILETABLE
      RC                      = WL_RCODE.
  READ TABLE TL_FILETABLE ASSIGNING <L_FILE> INDEX 1.
  IF SY-SUBRC = 0 .
    P_PFILE = <L_FILE>-FILENAME.
  ENDIF.
start of selection.
  DATA:WL_FILE TYPE STRING .

  IF NOT P_PFILE IS INITIAL.
    WL_FILE = P_PFILE .
    CALL FUNCTION 'GUI_UPLOAD'
         EXPORTING
              FILENAME                = WL_FILE
              FILETYPE                = 'ASC'
              HAS_FIELD_SEPARATOR     = 'X'
         TABLES
              DATA_TAB                = TL_UPLOAD
         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 I032 WITH 'Error in File opening'(E32).
    ENDIF.


[code]

Read only

SantoshKallem
Active Contributor
0 Likes
794

file path

ex: 'c:/hello.txt'

Read only

Former Member
0 Likes
794

HI,

Here is the sample code, Just check and try.

call function 'GUI_UPLOAD'

exporting

filename = 'C:\BDC1.TXT' " Give the file location(path)

filetype = 'ASC'

has_field_separator = 'X'

tables

data_tab = itab

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.

Regards,

Kumar

Read only

Former Member
0 Likes
794

Hi Gayatri:

You can aslo use the following:

  • SELECTION SCREEN

PARAMETERS : P_FILE TYPE RLGRAP-FILENAME DEFAULT ' '.

*--F4 help

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

PERFORM get_file_path.

*--

FORM get_file_path .

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = syst-cprog

dynpro_number = syst-dynnr

field_name = ' '

IMPORTING

file_name = p_file.

Endform

*----

DATA: lv_filename TYPE string.

lv_filename = p_file.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = lv_filename

TABLES

data_tab = it_line

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 ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

Read only

Former Member
0 Likes
794

PARAMETERS:P_FILE TYPE RLGRAP-FILENAME.

DATA:V_FILE TYPE STRING.

start-of-selection.

V_FILE = P_FILE.

in the function specify:

filename = v_file.

Read only

former_member508729
Active Participant
0 Likes
794

Hi Gayatri,

You have to specify the name of file from which you have to upload the data into internal table.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'c:\filepath'filename.txt'

  • FILETYPE = 'ASC'

  • HAS_FIELD_SEPARATOR = ' '

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • IMPORTING

  • FILELENGTH =

  • HEADER =

Regards

Ashutosh

Reward points if helpful

Read only

Former Member
0 Likes
794

hi,

u can pass ur file path using two ways i.e either by passing file path directly in filename parameter of gui_upload. or use f4 help.

first method:

all function 'GUI_UPLOAD'

exporting

filename = 'Z:\sr.TXT'

filetype = 'ASC'

has_field_separator = 'X'

tables

data_tab = it_ven.

in filename parameter u have to pass filename with full path.

here if u use tab as delimitor u have to use has_field_separator or in asc u have to specify flatfile with exact field lengths i.e if lifnr is 15 u have to give 15 spaces.

(or )

parameters: p_file type ibipparms-path.

at selection-screen on value-request for p_file.

call function 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

importing

file_name = p_file.

in this case if u are using recording u have to comment include structure.and u have to write your own subroutines & u have to write the logic for session/calltransaction explicitly .