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

at selection-screen on value-request

Former Member
0 Likes
3,596

hi friends,

i have two radio buttons in my selection-screen . one is for application server file and another is for local file.when i select the local file radio button then it is working.but when i select the application server button and when i see in debugging it is coming out of the program and not getting executed .

please check my code also.

DATA : i_mdate TYPE ztbukxxin003-z_manufdate.

AT SELECTION-SCREEN .

SELECT SINGLE z_manufdate

INTO i_mdate

FROM ztbukxxin003

WHERE z_ndsnum LIKE 'CEA%' AND

z_manufdate IN s_date.

IF sy-subrc NE 0.

MESSAGE ' Enter the date in the format YYYY/MM/DD' tYPE 'E'.

ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

IF p_rad1 EQ 'X'.

PERFORM get_file_path USING p_file.

ELSEIF p_rad2 EQ 'X'.

PERFORM get_file_path USING p_lofile.

ENDIF.

the coding for perform get_file_path is

CALL FUNCTION 'FILE_GET_NAME'

EXPORTING

client = sy-mandt

logical_filename = p_file

IMPORTING

file_name = w_filename

EXCEPTIONS

file_not_found = 1

OTHERS = 2.

can anybody give solution.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
2,358

hi,

For application server F4 FM FILE_GET_NAME will not work use FM F4_dxfilename_toprecursion ....

Regards,

Santosh

15 REPLIES 15
Read only

Former Member
0 Likes
2,359

hi,

For application server F4 FM FILE_GET_NAME will not work use FM F4_dxfilename_toprecursion ....

Regards,

Santosh

Read only

0 Likes
2,358

hi santhosh,

thanks for ur response.but can u tell me which r the mandatory parameters and where we have to pass the export and import filenames.

Read only

0 Likes
2,358

hi Mahesh,

Check out the below thread to understand the usage of FM

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e0901cba-f49e-2910-748c-d7ce4c0c...

Regards,

Santosh

Read only

0 Likes
2,358

>

> thanks for ur response.but can u tell me which r the mandatory parameters and where we have to pass the export and import filenames.

check my Post

When ever you are using radio buttons and performing F4 then the values of radiobuttons will not be reflectled directly so to avoid that we call the FUnction DYNP_VALUES_READ and get the values .

Check mey code.

REPORT  ztest_dyn.
 
 
DATA: BEGIN OF lt_dynpfields OCCURS 0.
        INCLUDE STRUCTURE dynpread.
DATA: END OF lt_dynpfields.
 
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
 
PARAMETERS: p_fname TYPE rlgrap-filename OBLIGATORY,
p_commit TYPE i,
p_front RADIOBUTTON GROUP gr1,
p_back RADIOBUTTON GROUP gr1 DEFAULT 'X'.
 
SELECTION-SCREEN END OF BLOCK b1.
 
 
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
 
  MOVE 'P_FRONT' TO lt_dynpfields-fieldname.
  APPEND lt_dynpfields.
    MOVE 'P_BACK' TO lt_dynpfields-fieldname.
  APPEND lt_dynpfields.
  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname               = sy-repid
      dynumb               = sy-dynnr
    TABLES
      dynpfields           = lt_dynpfields
    EXCEPTIONS
      invalid_abapworkarea = 1
      invalid_dynprofield  = 2
      invalid_dynproname   = 3
      invalid_dynpronummer = 4
      invalid_request      = 5
      no_fielddescription  = 6
      invalid_parameter    = 7
      undefind_error       = 8
      double_conversion    = 9
      stepl_not_found      = 10.
  LOOP AT lt_dynpfields.
    CASE lt_dynpfields-fieldname.
 
      WHEN 'P_FRONT'.
        p_front = lt_dynpfields-fieldvalue.
      WHEN 'P_BACK'.
        p_back = lt_dynpfields-fieldvalue.
    ENDCASE.
  ENDLOOP.
 
  IF p_front EQ 'X'.
    break-point.
   " PERFORM get_filename_f4.
  ELSEIF p_back EQ 'X'.
     break-point.
    "PERFORM get_appl_filename_f4.
  ENDIF.
 
START-OF-SELECTION.

Check it properly.

Read only

0 Likes
2,358

hi vijay,

thanks for ur guidance.i tried with this code also.but still i am not able to get the result.still it is coming out of the code when i see in debugging. and i wnat to tell u onething.here when i am using perform get_file_name i am using seperately for two radio buttons by passing the filenames seperately.

Read only

0 Likes
2,358

SHow me your code completely till selection screen and value reuest and corresponding forms, I will tell you where you are doing mistake.

Read only

0 Likes
2,358

s vijay,

plz find the code.

************************************************************************

  • S E L E C T I O N - S C R E E N *

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-000.

SELECT-OPTIONS : s_date FOR ztbukxxin003-z_manufdate NO-EXTENSION.

SELECTION-SCREEN END OF BLOCK blk1.

SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME.

SELECTION-SCREEN BEGIN OF BLOCK blk3 WITH FRAME TITLE text-006.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN POSITION 1.

PARAMETERS: p_rad1 TYPE c RADIOBUTTON GROUP grp1 USER-COMMAND urad.

SELECTION-SCREEN COMMENT 5(15) text-007 FOR FIELD p_lopath.

*SELECTION-SCREEN COMMENT 5(15) text-008 FOR FIELD p_lofile.

SELECTION-SCREEN POSITION 20.

PARAMETERS: p_lopath LIKE filename-pathintern.

*SELECTION-SCREEN COMMENT 5(15) text-008 FOR FIELD p_lofile.

PARAMETERS : p_lofile LIKE filename-fileintern DEFAULT 'ZTBUKXXIN007'.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN POSITION 1.

PARAMETERS: p_rad2 TYPE c RADIOBUTTON GROUP grp1 DEFAULT 'X'.

SELECTION-SCREEN COMMENT 5(15) text-009 FOR FIELD p_file.

SELECTION-SCREEN POSITION 20.

PARAMETERS : p_file LIKE filename-fileintern.

*PARAMETERS : p_file LIKE rlgrap-filename.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK blk3.

SELECTION-SCREEN END OF BLOCK blk2.

************************************************************************

  • A T S E L E C T I O N - S C R E E N *

************************************************************************

DATA : i_mdate TYPE ztbukxxin003-z_manufdate.

AT SELECTION-SCREEN .

  • Validate manufacture date on the selection screen.

SELECT SINGLE z_manufdate

INTO i_mdate

FROM ztbukxxin003

WHERE z_ndsnum LIKE 'CEA%' AND

z_manufdate IN s_date.

IF sy-subrc NE 0.

MESSAGE 'Enter the date in the format YYYY/MM/DD' TYPE 'E'.

ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

*AT SELECTION-SCREEN OUTPUT.

MOVE 'P_RAD1' TO lt_dynpfields-fieldname.

APPEND lt_dynpfields.

MOVE 'P_RAD2' TO lt_dynpfields-fieldname.

APPEND lt_dynpfields.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-repid

dynumb = sy-dynnr

TABLES

dynpfields = lt_dynpfields

EXCEPTIONS

invalid_abapworkarea = 1

invalid_dynprofield = 2

invalid_dynproname = 3

invalid_dynpronummer = 4

invalid_request = 5

no_fielddescription = 6

invalid_parameter = 7

undefind_error = 8

double_conversion = 9

stepl_not_found = 10.

LOOP AT lt_dynpfields.

CASE lt_dynpfields-fieldname.

WHEN 'P_RAD1'.

p_rad1 = lt_dynpfields-fieldvalue.

WHEN 'P_RAD2'.

p_rad2 = lt_dynpfields-fieldvalue.

ENDCASE.

ENDLOOP.

IF p_rad1 EQ 'X'.

PERFORM get_local_file USING p_file.

  • endif.

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lofile.

elseIF p_rad2 EQ 'X'.

PERFORM get_appl_file USING p_lofile.

ENDIF.

and the forms code.

&----


*& Form get_local_file

&----


  • text

----


  • -->P_P_INFILE text

----


FORM get_local_file USING p_p_file.

CALL FUNCTION 'FILE_GET_NAME'

EXPORTING

client = sy-mandt

logical_filename = p_file

IMPORTING

file_name = w_filename

EXCEPTIONS

file_not_found = 1

OTHERS = 2.

ENDFORM. " get_local_file

&----


*& Form get_appl_file

&----


  • text

----


  • -->P_P_LOFILE text

----


FORM get_appl_file USING p_p_lofile.

CALL FUNCTION 'FILE_GET_NAME'

EXPORTING

client = sy-mandt

logical_filename = p_lofile

IMPORTING

file_name = w_filename

EXCEPTIONS

file_not_found = 1

OTHERS = 2.

ENDFORM. " get_appl_file

here my req is like this.when i click on p_rad1(appln server file button) and execute my program afre giving the date range the excel file i have generated should get saved in the application server(specified file and path).when i click on 2nd button(local file button) and if i open a file with f4 functionality,then the generated excel file should get saved on my desktop.

plz find my mistake and tell me where i am giond wrong.

Read only

0 Likes
2,358
REPORT  ztest_sewe.

DATA: BEGIN OF lt_dynpfields OCCURS 0.
        INCLUDE STRUCTURE dynpread.
DATA: END OF lt_dynpfields.

DATA : i_mdate TYPE sy-datum.
DATA: w_filename TYPE string.
SELECT-OPTIONS: s_date FOR i_mdate.

PARAMETERS: p_file TYPE filename-fileintern.

PARAMETERS: p_rad1 RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND aaa,
            p_rad2 RADIOBUTTON GROUP g1 .

AT SELECTION-SCREEN .

  SELECT SINGLE fldate
  INTO i_mdate
  FROM sflight
  WHERE carrid LIKE 'A%' AND
  fldate IN s_date.

  IF sy-subrc NE 0.
    MESSAGE ' Enter the date in the format YYYY/MM/DD' TYPE 'E'.
  ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  MOVE 'P_RAD1' TO lt_dynpfields-fieldname.
  APPEND lt_dynpfields.
  MOVE 'P_RAD2' TO lt_dynpfields-fieldname.
  APPEND lt_dynpfields.
  MOVE 'P_FILE' TO lt_dynpfields-fieldname.
  APPEND lt_dynpfields.

  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname               = sy-repid
      dynumb               = sy-dynnr
    TABLES
      dynpfields           = lt_dynpfields
    EXCEPTIONS
      invalid_abapworkarea = 1
      invalid_dynprofield  = 2
      invalid_dynproname   = 3
      invalid_dynpronummer = 4
      invalid_request      = 5
      no_fielddescription  = 6
      invalid_parameter    = 7
      undefind_error       = 8
      double_conversion    = 9
      stepl_not_found      = 10.
  LOOP AT lt_dynpfields.
    CASE lt_dynpfields-fieldname.

      WHEN 'P_RAD1'.
        p_rad1 = lt_dynpfields-fieldvalue.
      WHEN 'P_RAD2'.
        p_rad2 = lt_dynpfields-fieldvalue.
      WHEN 'P_FILE'.
        p_file = lt_dynpfields-fieldvalue.
    ENDCASE.
  ENDLOOP.

  IF p_rad1 EQ 'X'.
    PERFORM get_file_path USING p_file.
  ELSEIF p_rad2 EQ 'X'.
*    PERFORM get_file_path USING p_file.
    MESSAGE 'Radio2 trigered' TYPE 'I'.
  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  get_file_path
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_FILE     text
*----------------------------------------------------------------------*
FORM get_file_path USING p_file.

  CALL FUNCTION 'FILE_GET_NAME'
    EXPORTING
      client           = sy-mandt
      logical_filename = p_file
    IMPORTING
      file_name        = w_filename
    EXCEPTIONS
      file_not_found   = 1
      OTHERS           = 2.
ENDFORM.                    "get_file_path

Modified code. Just check it once and replace accordingly.

P_RAD2 use i am not sure so i commented that form.

Read only

Former Member
0 Likes
2,358

While selecting second radio button pass p_lofile to the parameter logical_filename of function module 'FILE_GET_NAME'.

Read only

Former Member
0 Likes
2,358

You have to use the Function DYNP_VALUES_READ

REPORT  ztest_dyn.
 
 
DATA: BEGIN OF lt_dynpfields OCCURS 0.
        INCLUDE STRUCTURE dynpread.
DATA: END OF lt_dynpfields.
 
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
 
PARAMETERS: p_fname TYPE rlgrap-filename OBLIGATORY,
p_commit TYPE i,
p_front RADIOBUTTON GROUP gr1,
p_back RADIOBUTTON GROUP gr1 DEFAULT 'X'.
 
SELECTION-SCREEN END OF BLOCK b1.
 
 
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
 
  MOVE 'P_FRONT' TO lt_dynpfields-fieldname.
  APPEND lt_dynpfields.
    MOVE 'P_BACK' TO lt_dynpfields-fieldname.
  APPEND lt_dynpfields.
  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname               = sy-repid
      dynumb               = sy-dynnr
    TABLES
      dynpfields           = lt_dynpfields
    EXCEPTIONS
      invalid_abapworkarea = 1
      invalid_dynprofield  = 2
      invalid_dynproname   = 3
      invalid_dynpronummer = 4
      invalid_request      = 5
      no_fielddescription  = 6
      invalid_parameter    = 7
      undefind_error       = 8
      double_conversion    = 9
      stepl_not_found      = 10.
  LOOP AT lt_dynpfields.
    CASE lt_dynpfields-fieldname.
 
      WHEN 'P_FRONT'.
        p_front = lt_dynpfields-fieldvalue.
      WHEN 'P_BACK'.
        p_back = lt_dynpfields-fieldvalue.
    ENDCASE.
  ENDLOOP.
 
  IF p_front EQ 'X'.
    PERFORM get_filename_f4.
  ELSEIF p_back EQ 'X'.
    PERFORM get_appl_filename_f4.
  ENDIF.
 
START-OF-SELECTION.

Regards

Vijay Babu Dudla

Read only

Former Member
0 Likes
2,358

While selecting second radio button pass p_lofile to the parameter logical_filename of function module 'FILE_GET_NAME'.

Read only

Former Member
0 Likes
2,358

Hi,

The FM File_get_name won't work for application server files.

you can use the class 'CL_RSAN_UT_FILES' for app and presentation servers

App Server

CL_RSAN_UT_FILES=>F4_APP_SERVER

Presentation

CL_RSAN_UT_FILES=>F4

Regards,

Boobalan S

Read only

Former Member
0 Likes
2,358

Complete coding..

REPORT  ztest_see.

DATA: BEGIN OF lt_dynpfields OCCURS 0.
        INCLUDE STRUCTURE dynpread.
DATA: END OF lt_dynpfields.

DATA : i_mdate TYPE sy-datum.
DATA: w_filename TYPE string.
SELECT-OPTIONS: s_date FOR i_mdate.

PARAMETERS: p_file TYPE filename-fileintern,
            p_lofile LIKE filename-fileintern.

PARAMETERS: p_rad1 RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND aaa,
            p_rad2 RADIOBUTTON GROUP g1 .

AT SELECTION-SCREEN .

  SELECT SINGLE fldate
  INTO i_mdate
  FROM sflight
  WHERE carrid LIKE 'A%' AND
  fldate IN s_date.

  IF sy-subrc NE 0.
    MESSAGE ' Enter the date in the format YYYY/MM/DD' TYPE 'E'.
  ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  MOVE 'P_RAD1' TO lt_dynpfields-fieldname.
  APPEND lt_dynpfields.
  MOVE 'P_RAD2' TO lt_dynpfields-fieldname.
  APPEND lt_dynpfields.
  MOVE 'P_FILE' TO lt_dynpfields-fieldname.
  APPEND lt_dynpfields.
  MOVE 'P_LOFILE' TO lt_dynpfields-fieldname.
  APPEND lt_dynpfields.

  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname               = sy-repid
      dynumb               = sy-dynnr
    TABLES
      dynpfields           = lt_dynpfields
    EXCEPTIONS
      invalid_abapworkarea = 1
      invalid_dynprofield  = 2
      invalid_dynproname   = 3
      invalid_dynpronummer = 4
      invalid_request      = 5
      no_fielddescription  = 6
      invalid_parameter    = 7
      undefind_error       = 8
      double_conversion    = 9
      stepl_not_found      = 10.
  LOOP AT lt_dynpfields.
    CASE lt_dynpfields-fieldname.

      WHEN 'P_RAD1'.
        p_rad1 = lt_dynpfields-fieldvalue.
      WHEN 'P_RAD2'.
        p_rad2 = lt_dynpfields-fieldvalue.
      WHEN 'P_FILE'.
        p_file = lt_dynpfields-fieldvalue.
      WHEN 'P_LOFILE'.
        p_file = lt_dynpfields-fieldvalue.
    ENDCASE.
  ENDLOOP.

  IF p_rad1 EQ 'X'.
    PERFORM get_local_file USING p_file.
  ELSEIF p_rad2 EQ 'X'.
    PERFORM get_appl_file USING p_lofile.
  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  get_local_file
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_FILE   text
*----------------------------------------------------------------------*
FORM get_local_file USING p_p_file.

  CALL FUNCTION 'FILE_GET_NAME'
    EXPORTING
      client           = sy-mandt
      logical_filename = p_file
    IMPORTING
      file_name        = w_filename
    EXCEPTIONS
      file_not_found   = 1
      OTHERS           = 2.
ENDFORM. " get_local_file

*&---------------------------------------------------------------------*
*&      Form  get_appl_file
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_LOFILE text
*----------------------------------------------------------------------*
FORM get_appl_file USING p_p_lofile.
  CALL FUNCTION 'FILE_GET_NAME'
    EXPORTING
      client           = sy-mandt
      logical_filename = p_lofile
    IMPORTING
      file_name        = w_filename
    EXCEPTIONS
      file_not_found   = 1
      OTHERS           = 2.
ENDFORM. " get_appl_file

Read only

0 Likes
2,358

vijay,

but instead of writind it in at selection-screen on vlaue-request,i wrote in at selection-screen itself as already i have a validation in at a selection-screen.but is it correct.can we write it in at selection-screen.

but at the same time can u give solution for the following also.

when i execute my program one excel sheet is getting generated.i want to capture that excel file name and i want to pass it to next function module as input.bcz i should not do any hard coding like passing the filename directly into the function module.

Read only

Former Member
0 Likes
2,358

thanks for ur response