2007 Sep 12 11:34 AM
Hi all,
i wanted to get the F4 help on the selection screen parameter for the file name to fetch the file from the application server. I have a file been created in the application server.
i have used following function modules:
1. F4_FILENAME_SERVER
2. RZL_READ_DIR_LOCAL
3. F4_DXFILENAME_TOPRECURSION
4. /SAPDMC/LSM_F4_SERVER_FILE
5. EPS_GET_DIRECTORY_LISTING
6. F4_DXFILENAME_4_DYNP and so on.........
i am able to get the f4 functionality but i am not able to get any value in the selection parameter when i select a particular file on the application server listing.
please help me in solving the issue.
thanks
ekta
2007 Sep 12 11:41 AM
This program shows how to get application server files or local files....as search help
REPORT Z50651_FILENAMES_F4 MESSAGE-ID ZMSG_50651.
***********SELECTION SCREEN***********************
PARAMETERS : LOCAL RADIOBUTTON GROUP G1 USER-COMMAND UCOM1,
APPLN RADIOBUTTON GROUP G1 .
PARAMETERS : P_HEADER TYPE IBIPPARMS-PATH.
***********DATA DECLARATIONS*********************
DATA : V_FLAG,
V_HEADER1 TYPE DXFIELDS-LONGPATH,
V_HEADER TYPE IBIPPARMS-PATH.
AT SELECTION-SCREEN ON RADIOBUTTON GROUP G1.
PERFORM CHECK_RADIO.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_HEADER.
PERFORM GET_F4_HELP.
**************FORMS*********************************
&----
*& Form CHECK_RADIO
&----
text
----
--> p1 text
<-- p2 text
----
FORM CHECK_RADIO .
CASE SY-UCOMM.
WHEN 'UCOM1'.
IF LOCAL = 'X'.
V_FLAG = 'L'.
ELSE.
V_FLAG = 'A'.
ENDIF.
ENDCASE.
ENDFORM. " CHECK_RADIO
&----
*& Form GET_F4_HELP
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_F4_HELP .
IF V_FLAG = 'L'.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_HEADER'
IMPORTING
FILE_NAME = V_HEADER.
P_HEADER = V_HEADER.
ELSEIF V_FLAG = 'A'.
CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
EXPORTING
I_LOCATION_FLAG = 'A'
I_SERVER = '?'
I_PATH =
FILEMASK = '.'
FILEOPERATION = 'R'
IMPORTING
O_LOCATION_FLAG =
O_SERVER =
O_PATH = V_HEADER1
ABEND_FLAG =
EXCEPTIONS
RFC_ERROR = 1
ERROR_WITH_GUI = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDFORM. " GET_F4_HELP
Reward points if useful to u.
Regards
Vasu
2007 Sep 12 11:41 AM
This program shows how to get application server files or local files....as search help
REPORT Z50651_FILENAMES_F4 MESSAGE-ID ZMSG_50651.
***********SELECTION SCREEN***********************
PARAMETERS : LOCAL RADIOBUTTON GROUP G1 USER-COMMAND UCOM1,
APPLN RADIOBUTTON GROUP G1 .
PARAMETERS : P_HEADER TYPE IBIPPARMS-PATH.
***********DATA DECLARATIONS*********************
DATA : V_FLAG,
V_HEADER1 TYPE DXFIELDS-LONGPATH,
V_HEADER TYPE IBIPPARMS-PATH.
AT SELECTION-SCREEN ON RADIOBUTTON GROUP G1.
PERFORM CHECK_RADIO.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_HEADER.
PERFORM GET_F4_HELP.
**************FORMS*********************************
&----
*& Form CHECK_RADIO
&----
text
----
--> p1 text
<-- p2 text
----
FORM CHECK_RADIO .
CASE SY-UCOMM.
WHEN 'UCOM1'.
IF LOCAL = 'X'.
V_FLAG = 'L'.
ELSE.
V_FLAG = 'A'.
ENDIF.
ENDCASE.
ENDFORM. " CHECK_RADIO
&----
*& Form GET_F4_HELP
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_F4_HELP .
IF V_FLAG = 'L'.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_HEADER'
IMPORTING
FILE_NAME = V_HEADER.
P_HEADER = V_HEADER.
ELSEIF V_FLAG = 'A'.
CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
EXPORTING
I_LOCATION_FLAG = 'A'
I_SERVER = '?'
I_PATH =
FILEMASK = '.'
FILEOPERATION = 'R'
IMPORTING
O_LOCATION_FLAG =
O_SERVER =
O_PATH = V_HEADER1
ABEND_FLAG =
EXCEPTIONS
RFC_ERROR = 1
ERROR_WITH_GUI = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDFORM. " GET_F4_HELP
Reward points if useful to u.
Regards
Vasu
2007 Sep 12 12:00 PM
hi
Thanks for replying,
But it has the same problem that when i select the file it does not shows in the parameter of the selection screen.
the field remains blank only.
thanks
ekta
2007 Sep 12 12:21 PM
Hi,
In Vasu's code instead of
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Use :
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
P_HEADER = V_HEADER1.
ENDIF.
Please ensure that Vasu is rewarded for this as He has given you the solution.
Regards
Raju Chitale
2007 Sep 12 11:47 AM
Hi..
Actually it is not advisable to do F4 an select the file from Application server..
It is always better that either user enters it or it's hardcoded.
In case just chk ur parameter type is it "rlgrap-filename"??
Regards,
DJ