In this post we will look at how to limit a particular field on a form when a user has full control (delete) permissions to the form. To demonstrate how this works we will look at a user as a part of the project assistant security role with access to project accounting forms with the cost price field. These users need to have full control permissions to the form, but you do not want them to be able to see this field as they could deduce a co-workers salary. You do not want to create a new form without this field, so you are looking for another way to restrict access.
This article will cover this specific example but it gives you the steps to do this for other roles, forms, and fields.
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 Assistant role. An 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.
This leads us to the next step, which is to determine the table and field that this field on the form belongs to. To do this right click on the form and select personalize.
From here you can see that cost price is highlighted, and in the system name section it tells us the field is CostPrice, and the table is ProjJournalTrans. If you were not given this much information on this form you could click on the information tab and select edit after the Form name to find the table and field name.
This will open the form in the AOT. You can then expand the design node until you find the field you are looking for and in the properties of that field you will find the table and field. In our case this is the ProjJournalTrans table and the cost price field.
Next we need to limit this field for the Project Assistant role. To do this we can go to System Administration then Setup then Security then Security roles. In the Security roles form select the Project Assistant role and then select the override permission button.
On the Override permissions form expand the tables/fields node. Then find the ProjJournalTrans table and unmark the ‘do not override’ button. Set the access back to Full Control on the ProjJournalTrans table. Highlight the cost price field and unmark the ‘do not override’ field. Leave this field as no access and click close.
The last step is to log in as a user in this group and verify that you no longer have the cost price field.
For more information, read my post on Removing Fields From a Form in Dynamics Ax 2012: User Has Less Than Full Control.