‎2008 Jul 30 5:09 AM
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.
‎2008 Jul 30 5:13 AM
hi,
For application server F4 FM FILE_GET_NAME will not work use FM F4_dxfilename_toprecursion ....
Regards,
Santosh
‎2008 Jul 30 5:13 AM
hi,
For application server F4 FM FILE_GET_NAME will not work use FM F4_dxfilename_toprecursion ....
Regards,
Santosh
‎2008 Jul 30 5:48 AM
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.
‎2008 Jul 30 5:53 AM
hi Mahesh,
Check out the below thread to understand the usage of FM
Regards,
Santosh
‎2008 Jul 30 6:03 AM
>
> 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.
‎2008 Jul 30 6:51 AM
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.
‎2008 Jul 30 7:00 AM
SHow me your code completely till selection screen and value reuest and corresponding forms, I will tell you where you are doing mistake.
‎2008 Jul 30 7:12 AM
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.
‎2008 Jul 30 7:16 AM
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_pathModified code. Just check it once and replace accordingly.
P_RAD2 use i am not sure so i commented that form.
‎2008 Jul 30 5:23 AM
While selecting second radio button pass p_lofile to the parameter logical_filename of function module 'FILE_GET_NAME'.
‎2008 Jul 30 5:23 AM
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
‎2008 Jul 30 5:23 AM
While selecting second radio button pass p_lofile to the parameter logical_filename of function module 'FILE_GET_NAME'.
‎2008 Jul 30 5:32 AM
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
‎2008 Jul 30 7:41 AM
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
‎2008 Jul 30 1:07 PM
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.
‎2008 Jul 31 1:34 PM