In this post, we will look at how to remove a particular field on a form when a user has less than full control permissions to the form. To demonstrate how this works we will look at a user as a part of the project manager security role, with access to project accounting forms with the cost price field. These users have read permissions to the form, but you do not want them to be able to see the cost price field as they could deduce a co-worker’s salary. You do not want to create a new form without this field, so you are looking for another way to restrict access to this field.
This article will cover this specific example but it gives you the steps to do this for other roles, forms, and fields.
1. First we have to determine a few things such as what security role we want to limit access to, and the underlying table and field that the field on the form relates to. In our example, we are looking at the Project Manager role. One example of a place that you can find the cost price field is if you go to Project Management and Accounting, then Common, then Projects, then All projects. From here you select to edit a project. On the Project form, select the hour journals button. On the Journal form that comes up select the lines button. When you are on the Journal lines for hours click on the general tab and you will see the cost price field.
2. Next we need to find where this field is on the form in the design view. To determine this, right-click on the form and select personalize.
What you are looking for here is where in the design of the form this field is located, as it will help you find the field when you are in the AOT under the designs node of the form. From here you can see that cost price is highlighted. You will want to scroll up to see more of the design tree.
Here you can see that the cost price field will be under the Tab node, then General, then GroupMiddle.
3. After you have where the field is, in the design of the form, you need to find the name for the form and view it in the AOT. To do this click on the Information tab. You will see the name of the form is ProjJournalTransEmpl. Click on the edit button after the Form name field to open the form in the AOT.
4. The final step is to set the needed permission property on the field to one level higher than the user has access to. For example, if the user has create permission, you set the Needed Permission to Correct. In our example, the project manager has read permission, so we will set the Needed Permission to Update. To do this, expand the design node until you find the costPrice field (which we found would be under Tab then General then GroupMiddle). In the properties form for the CostPrice field you will find the NeededPermission option – change it to update.
After this, I like to log in as a user assigned to the group and verify that you no longer have the field, which in our case is the cost price field.
For more information, read my post on Removing Fields From a Form in Dynamics Ax 2012: User Has Full Control.