When a User is granted access to a particular Transaction within the system (refer to Transaction Access Profiles) by default the user is granted access to every item (field) within that Transaction. However, it is possible to turn off the access to particular items within a transaction. This means that fields within a transaction could be made to 'disappear' for certain users.
For each Transaction where Item Access is to be employed it is necessary to first create a list of items within that Transaction. This is done by using MNU_0060M which is accessible from MNU_0030L by pressing the navigation button labeled 'Item List'. This maintains the contents of the MNU-ITEM-LIST table.
The list of Transaction Items which a User is allowed to access is known an Access Profile, and is held on the MNU-ITEM-ACCESS table within the Menu database, as shown in Figure 1. Access Profiles are not created for individual Users, they are created for Security Classes. Each User must belong to one of these Security Classes, so by changing the Access Profile for a Security Class you effectively change the Access Profile for all Users of that Security Class.
Figure 1 - Database Structure
There are two ways of viewing and maintaining the contents of MNU-ITEM-ACCESS:
In order for a form component to turn off access to a particular item it must contain the following code in the <read> trigger:-
read if ($status = 0) call CHK_ITEM_ACCESS endif
The global proc CHK_ITEM_ACCESS does the following:-
field_syntax <fieldname>, "NDI,NED,NPR"command to hide the field. This will also hide any label which is attached to the field.