There are a couple tables in CRM that can be a real beast to work with. One of these tables is the PrincipalObjectAccess table, also know as the POA table. The POA table can be a pain to work with for 3 reasons:
- It’s Big
- It’s used by almost every query
- The Rights Mask values are hard to understand
There’s not much that can be done about the first two. But, thanks to CRM MVP Scott Sewell you can now easily encode and decode the Rights Mask values using his secret decoder ring.
What’s the problem with the Rights Access Mask?
The way CRM encodes the POA is no big secret. Each of the secrity permission like, read and write, has a value assocaited with it and they are all added together to calculate the rights mask value. At first it may seem like this would be a simple thing to enturpet, after all there are only a hand full of 9. But if you remember coin flipping excercises in math class this quickly adds up to 512 different possible values for the Rights Mask.
What does the Secret Decoder Ring do?
The POA Table Secret Decoder Ring is a simple to use Excel spreadsheet that Enodes and Decodes a Rights Mask Value letting. You can either set the security values in the left-hand column to get the Encoded Rights Mask value for that group of permissions or you can enter the Rights Mask value in the top of the right-hand column to see what set of permissions are for that value.
You can Download the POA Table Secret Decoder Ring from http://db.tt/ORT57Q6s
For more information check Scott Sewell’s article on Customer Effective Blog
One of the many features added in CRM 2011 was the ability to setup Multiple Forms on a single entity. This feature includes the ability to display specific forms to different users based on security role. So no need to setup form scripts to check a users role and then hide fields or sections on the form. You can just create separate roles and assign security roles to each of them accordingly.
An extra bonus you will see if you reduce the number of fields on each form is added performance as the clients will have less controls to create and data to load.
Here’s how you can setup Multiple Forms.
Create A New Form
To create a new form, simply Open your Main Form and Click on Save As.
Then Give your new form a name and Click Ok to create your new form.
Now you can Edit the new form. Since we called this form Sales we will add a Chart of Top Opportunities.
Next, You can repeat these steps to additional forms. Like a Service Form with the Open Cases for Customer Service Reps and Managers.
Assigning Security Roles to Forms
You can control the access to each of the forms by selecting a form and pressing the Assign Security Roles.
Here we will assign the Sales Manager and Salesperson to the Sales Form and assign the CSR Manager and Customer Service Representative to the Support Form.
Publish your changes and then anyone with the Sales Managers or Sales Persons will see the Sales Form while anyone with the CSR Manager or Customer Service Representative will see the Support Form.
Sales Form with Opportunities
Support Form with Open Cases
Switching Between Forms
If you have rights to more than one form you can switch between the forms using the form drop.