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

function module- ws_filename_ge

Former Member
0 Likes
851

i want to give user a search screen for its flat file while the user is doing recording.how should i use function module ws_filename_ge.

6 REPLIES 6
Read only

Former Member
0 Likes
788

Hi divya,

use the FM tmp_gui_file_open_dialog.

it opens a dialog for the user to search for a file..

a sample..

DATA itab LIKE TABLE OF FILE_TABLE WITH HEADER LINE.
data : filename type string.
*filetable type standard table of file_table with header line,

SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETERS : DATASET(128).
SELECTION-SCREEN END OF BLOCK b1.



AT SELECTION-SCREEN ON VALUE-REQUEST FOR DATASET.

CALL FUNCTION 'TMP_GUI_FILE_OPEN_DIALOG'

* EXPORTING

*   WINDOW_TITLE            =

*   DEFAULT_EXTENSION       =

*   DEFAULT_FILENAME        =

*   FILE_FILTER             =

*   INIT_DIRECTORY          =

*   MULTISELECTION          =

* IMPORTING

*   RC                      =

  TABLES

    FILE_TABLE              = itab

* EXCEPTIONS

*   CNTL_ERROR              = 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.

ENDIF.



READ TABLE ITAB index 1.

  DATASET = itab-FILENAME.

regards

satesh

Read only

Former Member
0 Likes
788

Hi Divya,

You can use the class CL_GUI_FRONTENDSERVICES.

Here is a program to display a search screen for flat file..

REPORT ZJAYRA_FILEPROG .

data: it_tab type filetable with header line,

gd_subrc type i.

tables: rlgrap.

parameters file_nam type rlgrap-filename .

data: user_act type i.

at selection-screen on value-request for file_nam.

CALL METHOD cl_gui_frontend_services=>file_open_dialog

EXPORTING

WINDOW_TITLE = 'select a file'

  • DEFAULT_EXTENSION = '*.txt

DEFAULT_FILENAME = ''

FILE_FILTER = '*.txt'

INITIAL_DIRECTORY = ''

MULTISELECTION = abap_false

  • WITH_ENCODING =

CHANGING

file_table = it_tab[]

rc = gd_subrc

USER_ACTION = user_act

  • FILE_ENCODING =

EXCEPTIONS

FILE_OPEN_DIALOG_FAILED = 1

CNTL_ERROR = 2

ERROR_NO_GUI = 3

NOT_SUPPORTED_BY_GUI = 4

others = 5

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

if user_act = '0'.

loop at it_tab.

file_nam = it_tab-filename.

endloop.

endif.

Hope your query is solved.

Regards,

Sylendra.

Read only

Former Member
0 Likes
788

hi Divya,

Welcome to SDN.

Try this sample code.

Copy and Paste:

DATA: BEGIN OF DATA_TAB OCCURS 0,

TEXT(20),

VAL TYPE I,

CHK,

END OF DATA_TAB.

DATA: P_FNAME LIKE RLGRAP-FILENAME,

V_ANS.

CALL FUNCTION 'WS_FILENAME_GET'

EXPORTING

DEF_PATH = 'C:\'

MASK = ',TEXT FILES,.TXT;.DOC,ALL FILES,..'

TITLE = 'SELECT FILE'

IMPORTING

FILENAME = P_FNAME

EXCEPTIONS

INV_WINSYS = 1

NO_BATCH = 2

SELECTION_CANCEL = 3

SELECTION_ERROR = 4

OTHERS = 5.

IF SY-SUBRC EQ 0.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

FILENAME = P_FNAME

FILETYPE = 'DAT'

TABLES

DATA_TAB = DATA_TAB

EXCEPTIONS

CONVERSION_ERROR = 1

FILE_OPEN_ERROR = 2

FILE_READ_ERROR = 3

INVALID_TYPE = 4

NO_BATCH = 5

UNKNOWN_ERROR = 6

INVALID_TABLE_WIDTH = 7

GUI_REFUSE_FILETRANSFER = 8

CUSTOMER_ERROR = 9

OTHERS = 10.

IF SY-SUBRC EQ 0.

WRITE:/'DATA IN', P_FNAME.

ULINE.

LOOP AT DATA_TAB.

WRITE: / DATA_TAB-TEXT,DATA_TAB-VAL.

DATA_TAB-CHK = 'X'.

MODIFY DATA_TAB.

ENDLOOP.

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

FILENAME = P_FNAME

FILETYPE = 'DAT'

TABLES

DATA_TAB = DATA_TAB

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_WRITE_ERROR = 2

INVALID_FILESIZE = 3

INVALID_TYPE = 4

NO_BATCH = 5

UNKNOWN_ERROR = 6

INVALID_TABLE_WIDTH = 7

GUI_REFUSE_FILETRANSFER = 8

CUSTOMER_ERROR = 9

OTHERS = 10.

IF SY-SUBRC EQ 0.

WRITE:/ P_FNAME, 'UPDATED AND DOWNLOADED'.

CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'

EXPORTING

TEXTLINE1 = 'PERMANENTLY DELETE THIS FILE?'

TEXTLINE2 = P_FNAME

TITEL = 'PERMANENTLY DELETE A FILE'

IMPORTING

ANSWER = V_ANS.

IF V_ANS EQ 'J'.

CALL FUNCTION 'WS_FILE_DELETE'

EXPORTING

FILE = P_FNAME.

WRITE:/ P_FNAME, 'DELETED'.

ELSE.

WRITE:/ P_FNAME, 'NOT DELETED'.

ENDIF.

ELSE.

WRITE:/ P_FNAME, 'NOT DOWNLOADED'.

ENDIF.

ELSE.

WRITE:/ 'COULD NOT UPLOAD FILE', P_FNAME.

ENDIF.

ELSE.

WRITE:/ 'COULD NOT OPEN FILE', P_FNAME.

ENDIF.

Hope this will help you.

Cheers

Sunny

Rewrd points, if found helpful

Message was edited by: Sunny

Read only

Former Member
0 Likes
788

Hi,

The FM 'WS_FILENAME_GET' is flagged as obsolete in 4.7 version

Use Class

CL_GUI_FRONTEND_SERVICES

For saving:

cl_gui_frontend_services=>file_save_dialog

and for opening file

cl_gui_frontend_services=>file_open_dialog

REPORT ztest .

SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-004.
PARAMETERS  p_fnam2 LIKE rlgrap-filename MEMORY ID pid.
SELECTION-SCREEN END OF BLOCK b4.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fnam2.

data: filename type string.

  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      def_filename     = 'xyz.TXT'
      def_path         = 'C:TEMP'
      mask             = ', File,*.txt.'
      mode             = '0'
      title            = 'Save File As'
    IMPORTING
      filename         = filename
    EXCEPTIONS
      inv_winsys       = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      OTHERS           = 5.

p_fnam2 = filename.

END-OF-SELECTION.

WRITE :'hi'.

SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-004.
PARAMETERS  p_fnam2 LIKE rlgrap-filename memory id pid.
SELECTION-SCREEN END OF BLOCK b4.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fnam2.

  DATA: li_filetable TYPE STANDARD TABLE OF file_table,
        lv_return TYPE i,
        lw_filetable TYPE file_table.

  CALL METHOD cl_gui_frontend_services=>file_open_dialog
     EXPORTING
       window_title            = 'Select file for download'
       default_extension       = '.txt'
*       DEFAULT_FILENAME        = '.txt'
*       file_filter             = '*.txt ,*.txt.'
       initial_directory       =  'C:'
     CHANGING
       file_table              = li_filetable
       rc                      = lv_return
     EXCEPTIONS
       file_open_dialog_failed = 1
       cntl_error              = 2
       error_no_gui            = 3
       OTHERS                  = 4
           .
  IF sy-subrc <> 0.
*    MESSAGE e003 WITH text-015.
  ELSE.
    READ TABLE li_filetable INTO lw_filetable INDEX 1.
    p_fnam2 = lw_filetable-filename.
  ENDIF.

END-OF-SELECTION.

  write :'hi'.

Regards,

Anjali

Read only

Former Member
0 Likes
788

Hi Divya,

the FM ws_filename_get is given

"OBSOLETE: Call File Selector" in its description..

thats why i suggested you the ABove mentioned FM..

regards

satesh

Read only

0 Likes
788

hi Divya,

<b>WS_FILENAME_GET</b> function module is obsolete, and results in errors on Unicode systems.

Suggest to use <b>FILE_OPEN_DIALOG</b> und <b>FILE_SAVE_DIALOG</b> Unicode-enabled methods of the cl_gui_frontend_services class.

Note:

New applications should restart on these methods instead of the function module. The function module is extended by a Support Package so that it diverts calls to the methods without the application having to be changed.

DATA ITAB_FILE1_TABLE TYPE FILETABLE.

DATA W_WSU_FILENAME01 TYPE STRING.

DATA RC_FILE TYPE I.

W_WSU_FILENAME01 = PR_IFILE.

CALL METHOD CL_GUI_FRONTEND_SERVICES=><b>FILE_OPEN_DIALOG</b>

EXPORTING

DEFAULT_FILENAME = W_WSU_FILENAME01

CHANGING

FILE_TABLE = ITAB_FILE1_TABLE

RC = RC_FILE

EXCEPTIONS

FILE_OPEN_DIALOG_FAILED = 1

CNTL_ERROR = 2

ERROR_NO_GUI = 3

NOT_SUPPORTED_BY_GUI = 4

others = 5.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

DATA W_WSD_FILENAME02 TYPE STRING.

DATA W_WSD_FILETYPE02 TYPE CHAR10.

DATA W_WSD_FNAME TYPE STRING.

DATA W_WSD_PATH TYPE STRING.

DATA W_WSD_FPATH TYPE STRING.

DATA W_WSD_APPEND02 TYPE CHAR01.

CONSTANTS C_CANCEL TYPE C VALUE 'X'.

W_WSD_FILENAME02 = PR_EFILE.

W_WSD_FILETYPE02 = 'ASC'.

W_WSD_APPEND02 = 'A' .

IF W_WSD_APPEND02 = 'A' .

W_WSD_APPEND02 = 'X' .

ENDIF.

CALL METHOD CL_GUI_FRONTEND_SERVICES=><b>FILE_SAVE_DIALOG</b>

EXPORTING

DEFAULT_FILE_NAME = W_WSD_FILENAME02

CHANGING

FILENAME = W_WSD_FNAME

PATH = W_WSD_PATH

FULLPATH = W_WSD_FPATH

EXCEPTIONS

CNTL_ERROR = 1

ERROR_NO_GUI = 2

NOT_SUPPORTED_BY_GUI = 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.

ENDIF.

Regards,

Santosh