
AFNAM in PR creation screen
AFNAM in PO creation screen
CONSTANTS: lc_me51n TYPE syst_tcode VALUE 'ME51N', " Constant for T-Code ME51N.
lc_me52n TYPE syst_tcode VALUE 'ME52N'. " Constant for T-Code ME52N.
* Check if the T-Code is ME51N or ME52N or ME53N
IF sy-tcode = lc_me51n OR sy-tcode = lc_me52n.
lmac_upd_then_ins 'AFNAM' 'X'. " Enable the F4 help for the requisitioner field in PR.
ENDIF.
F4 help enabled for PR screen
FUNCTION z_afnam_search_help.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IV_PROGRAM) TYPE SY-CPROG
*" REFERENCE(IV_DYNNR) TYPE SY-DYNNR
*" REFERENCE(IV_AFNAM) TYPE EBAN-AFNAM OPTIONAL
*" EXPORTING
*" REFERENCE(EV_AFNAM) TYPE EBAN-AFNAM
*"----------------------------------------------------------------------
DATA: lv_value TYPE char10.
DATA : lv_flag(1).
DATA: BEGIN OF lt_dynpread OCCURS 10.
INCLUDE STRUCTURE dynpread.
DATA: END OF lt_dynpread.
* Search help table structure. This will vary w.r.t usecase.
DATA: BEGIN OF lt_f4help OCCURS 0,
afnam TYPE afnam,
END OF lt_f4help.
DATA: t_return LIKE ddshretval OCCURS 0 WITH HEADER LINE.
CLEAR : lv_flag.
IF iv_afnam IS INITIAL.
REFRESH lt_dynpread.
CLEAR lt_dynpread.
lt_dynpread-fieldname = 'MEREQ3211GRID-AFNAM'.
APPEND lt_dynpread.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = iv_program
dynumb = iv_dynnr
TABLES
dynpfields = lt_dynpread
EXCEPTIONS
OTHERS = 1.
IF sy-subrc EQ 0.
READ TABLE lt_dynpread INDEX 1.
lv_value = lt_dynpread-fieldvalue.
ELSE.
lv_flag = 'X'.
ENDIF.
ENDIF.
IF lv_flag = 'X'.
* Below SELECT code is to pupulate the table for search help. This may vary respectively.
SELECT bname FROM usr01
INTO TABLE lt_f4help
WHERE langu = sy-langu.
SORT lt_f4help.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'AFNAM'
value_org = 'S'
TABLES
value_tab = lt_f4help
return_tab = t_return[]
EXCEPTIONS
OTHERS = 1.
READ TABLE t_return INDEX 1.
IF sy-subrc = 0.
READ TABLE lt_f4help WITH KEY afnam
= t_return-fieldval BINARY SEARCH.
ev_afnam = lt_f4help-afnam.
ENDIF.
ENDIF.
DATA : lv_afnam TYPE afnam.
CONSTANTS: lc_afnam TYPE lvc_fname VALUE 'AFNAM'.
FIELD-SYMBOLS: <fs_event_handled> TYPE char01.
* The case statement below is in continuation to the case statement in the HANDLE_F4 method
CASE e_fieldname.
WHEN lc_afnam. " Requisitioner field.
* Call the FM to populate search help values and get the value selected.
CALL FUNCTION 'Z_AFNAM_SEARCH_HELP'
EXPORTING
iv_program = prog
iv_dynnr = dynpro
IMPORTING
ev_afnam = lv_afnam.
IF sy-subrc IS INITIAL AND l_ch EQ mmpur_yes.
ls_modi-value = lv_afnam.
ENDIF.
IF NOT ls_modi IS INITIAL.
* Append Data.
ASSIGN er_event_data->m_data->* TO <fs_t_modi>.
ls_modi-row_id = es_row_no-row_id.
ls_modi-fieldname = e_fieldname.
APPEND ls_modi TO <fs_t_modi>.
* Check the Event handled Flag to indicate the F4 event has been handled.
ASSIGN er_event_data->m_event_handled TO <fs_event_handled>.
IF <fs_event_handled> IS ASSIGNED.
<fs_event_handled> = abap_true.
ENDIF.
ENDIF.
ENDCASE.
F4 help for AFNAM in PR Screen
F1 information for AFNAM in PO screen
FIELD mepo1211-afnam MODULE event_pov_list.
F4 help enabled for PO screens
DATA : lv_afnam TYPE afnam. " Requiaitioner value.
CASE im_metafield.
* Check in Type group MMMFD to get the metafield constant value. For AFNAM field, the metafield value is
* declared in constant MMFD_PREQ_NAME.
WHEN mmmfd_preq_name.
* Call the Function module to execute F4 help and get the value selected.
CALL FUNCTION 'Z_AFNAM_SEARCH_HELP'
EXPORTING
iv_program = prog
iv_dynnr = dynpro
IMPORTING
ev_afnam = lv_afnam.
IF sy-subrc IS INITIAL.
mepo1211-afnam = lv_afnam. " Return value from F4 help.
ENDIF.
ENDCASE.
F4 help for AFNAM in PO Screen
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
3 | |
2 | |
2 | |
2 | |
2 | |
2 | |
1 | |
1 | |
1 |