The fields in a sales order can be made optional / mandatory by following this menu path – IMG – S&D-> Basic > Functions-> Log of incomplete Procedures => select the fields > from the tables and the system will check for them (OVA2/VUA2)
To make a filed entry enabled or grey (non-entry allowed):
User exits in the program MV45AFZZ-USEREXIT_FIELD_MODIFICATION
This user exit can be used to modify the attributes of the screen fields. To do this, the screen fields are allocated to so-called modification groups 1 – 4 and can be edited together during a modification in ABAP.
If a field has no field name, it cannot be allocated to a group. The usage of the field groups (modification group 1-4) is as follows:
Modification group 1: Automatic modification with transaction MFAW
Modification group 2: It contains ‘LOO’ for step loop fields
Modification group 3: For modifications which depend on check tables or on other fixed information
Modification group 4: is not used
The FORM routine is called up for every field of a screen. If you require changes to be made, you must make them in this user exit. This FORM routine is called up by the module FELDAUSWAHL.
Actually suppressing fielding sales orders userwise is quite easy. We are doing it in our company. For this we use userexit FORM USEREXIT_FIELD_MODIFICATION in MV45AFZZ.
Below is the sample code
IF SCREEN-NAME = ‘VBKD-ABSSC’.
AUTHORITY-CHECK OBJECT ‘ZMV45AFZZ’ ID ‘SCRFNAME’ FIELD SCREEN-NAME.
IF sy-subrc = 0.
SCREEN-INPUT = 1.
SCREEN-INPUT = 0.
You place the authority check object in authorization profile in the role of the users, who should have access to the field (in this case it is VBKD-ABSSC), and there assign the corresponding fields that are to be accessed via this userexit.