Search shared data across CRM entities

In one of recent project requirements, I implemented a solution to share Personal Email Templates. Requirement was to allow super users to share specific templates with users/teams in readonly or write permissions. Though language filter provides a way to limit templates for specific users, it is still possible for users to see organization visible templates. What we needed was to have personal templates that could be further shared, specially when defined by users, in higher businessunits, that shall be visible for usage to users below.

CRM SDK allows templates to be owned by users / teams, and / or can also be shared, however the templates lists / views interface is not as intuitive as compared to commonly used entities. My solution comprised of a CRM dialog combining with workflow activity code, to implement very specific business logic as per requirements. Implementing this solution was not a big trick, however the more surprising part came later, when it was time to verify whether the specific templates were shared with required users. One way was to login in multiple browsers with different users and other was to somehow query CRM. Honestly, i did not like either of those approaches. So i looked into our favorite: XrmToolBox. There is a nice plugin named “Access Checker”, but I still could not see a list of all records shared with with users & teams. And there I got the idea “why not build one such plugin myself”. So folks, I wrote my first plugin for XrmToolBox, (hopefully not the last).

I am using POA (PrincipalObjectAccess) entity here, but of course there is no direct querying of CRM database to read from this table. If you are not aware of POA => It is one central entity / table where CRM maintains which entity’s which record is shared with which user / team in which access mode.

In order to access this plugin, make sure you are using latest version of XrmToolBox (i am using 1.2017.3.14). In Plugin Store, look for “Search shared data in CRM”. Select the plugin and install

Once installed, the plugin shall show (as below) in the main screen of XrmToolBox.

Open the plugin and explore, i hope you will find it interesting and helpful.

Note: once i started working on this plugin, I thought of a number of additional features to implement in this interface. I will keep working on improvements, however your suggestions / comments / critics will be extremely helpful in improving this

Ameed – I’m glad to see you working on this – I really like the things I see within it. Gaining this type of additional transparency into the permissions / entitlements within Dynamics 365 Customer Engagement is critical for troubleshooting and ensuring compliance, but diving into the depths of the POA table is not for the “faint of heart”. 🙂

Hi Diane, I just published a new version with excel export facility. For now it is limited to current page only, however I am going to release another version (within 2018) to support Max 5000 records export matching criteria and specified ordering. Hope you can try this
Many thanks for comments and sorry for long wait
Ameed

Hi,
I just published a new version with this facility … for now only exports current page records … but working on next version to allow max 5000 records export, based on criteria and selected ordering