You want to control field editability or display in ME5Xn transactions. This page describes the main concepts and how you can make changes.
Every field can have 4 different states: Optional = "." | Required = '+' | Display = '*' | Hidden = '-'
If there are no other restrictions, the field metadata can be influenced in 3 main ways: static customizing, BAdI and functor class.
How field metadata can be controlled
For a selection of fields, it is possible to control by customizing. You can find this in SPRO transaction, following this path:
SAP Customizing Implementation Guide → Materials Management → Purchasing → Purchase Requisition → Define Screen Layout at Document Level
This customizing is stored in table T162. The accounting tab has separate customizing, stored in T162k.
The customizing is read by function module MEX_FELDAUSWAHL.
Some fields are dependent from the Purchase requisition data. For example, the Fixed indicator is disabled for requisitions created by MRP (EBAN-ESTKZ). The related field (MEREQ3321-FIXKZ) is disabled if ESTKZ = B.
Similar dynamic assignment is realized in functor classes. The functor class implements the interface lif_fieldsel defined in the function group MEGUI.
For the field FIXKZ, the functor class is lcl_r_fixkz, implementing the method lif_fieldsel~compute_fieldstatus, setting the field to display status if the requisition is created by MRP:
The fields can be controlled by the BAdI ME_PROCESS_REQ_CUST.
There are 4 methods to influence the field metadata:
To use the BAdI efficiently, you need to know the METAFIELD number of the field.
Set a breakpoint in Include LMEREQF05 Method GET_FIELDSELECTION (LCL_REQ_ITEM). When you display a tab, the breakpoint will stop.
Before continuing with debugging, in the call stack double-click event FS_GET. Check the table MY_DYNPRO_FIELDS for the METAFIELD column.
This is also described in Guided answer 2981295.
- The field editability can be restricted on layout designer level. Example: MEREQ3328-ESTKZ. The input is set to "not possible" in the layout designer:
If this restriction applied, you will never be able to make the field editable.
- You can only control the field metadata if the field is included into the Metafield Mapping. The Metafield Mapping is created in following two function modules:
into the table CH_MAPPING.
It is controlled by class CL_MFS_MM, function group MEMFS.
Both function modules have enhancement points, where you can append or remove fields. Also, the BAdI MEGUI_GRID_ENHANCEMENT is called and can be used for the same purpose.
Related SAP Notes/KBAs
SAP Note: 30316 - Problems with fields that are not ready for input in purchasing
KBA: 2981295 - Why a field is displayed, hidden, editable, disabled, optional or mandatory in Purchase Requisition, PO, Contract and Scheduling Agreement? - Guided Answer