Hi,
Below is my code
method IF_EX_ME_PROCESS_PO_CUST~FIELDSELECTION_HEADER. DATA: l_persistent TYPE mmpur_bool. FIELD-SYMBOLS: <fs> LIKE LINE OF ch_fieldselection. * if the item is already on the database, we disallow to change field badi_bsgru l_persistent = im_HEADER->is_persistent( ). IF l_persistent EQ mmpur_yes. READ TABLE ch_fieldselection ASSIGNING <fs> WITH TABLE KEY metafield = mmmfd_cust_03. IF sy-subrc IS INITIAL. <fs>-fieldstatus = '*'. " Display endif. else. READ TABLE ch_fieldselection ASSIGNING <fs> WITH TABLE KEY metafield = mmmfd_cust_03. IF sy-subrc IS INITIAL. <fs>-fieldstatus = '+'. " Input ENDIF. ENDIF.
The above code works fine for ME21N (sINCE l_persistent NE mmpur_yes) AND CUTOM FIELD ACTS AS INPUT FIELD
Also works fine for ME23N (sINCE l_persistent EQ mmpur_yes) AND CUSTOM FIELD ACTS AS OUTPUT FIELD
THE PROBLEM IS WITH ME22N in this case it acts as output field instead of acting as input field
please let me know if i have missed any trick in here.