I modified the Security Role and User Privilege reports and added a Table of Contents as well as a footer with a page number. This should help navigating the document a little easier.

The sample reports have been updated.

For more information, please visit the SnapShot! product page.

Also, if you have any suggestions for additional or modified reports, please let me know.

I modified the Security Role and User Privilege reports and added a Table of Contents as well as a footer with a page number. This should help navigating the document a little easier.

The sample reports have been updated.

For more information, please visit the SnapShot! product page.

Also, if you have any suggestions for additional or modified reports, please let me know.

SnapShot! version 1.3 has been released.

The update includes a new report as well as some corrections to the Security Role report.

Both the documentation and sample reports have been updated.

 

Additions:

I added a report that will show the security privileges for each user. This is the combination of all of their security roles. If you’ve ever wondered exactly what security privileges a user has, after applying several security roles, this report will give you that information.

The User Privileges report is formatted exactly like the Security Roles report so that you can see, at a glance, the privileges a user has to each entity.

 

Corrections:

I fixed several issues in the Security Role report. Some of the information for a security role was misrepresented or just plain wrong. This is partly my fault and it appears, some differences between the SDK documentation, and what is actually being stored and returned from the database. Those issues are now corrected.

 

For more information, please visit the SnapShot! product page.

SnapShot! version 1.3 has been released.

The update includes a new report as well as some corrections to the Security Role report.

Both the documentation and sample reports have been updated.

 

Additions:

I added a report that will show the security privileges for each user. This is the combination of all of their security roles. If you’ve ever wondered exactly what security privileges a user has, after applying several security roles, this report will give you that information.

The User Privileges report is formatted exactly like the Security Roles report so that you can see, at a glance, the privileges a user has to each entity.

 

Corrections:

I fixed several issues in the Security Role report. Some of the information for a security role was misrepresented or just plain wrong. This is partly my fault and it appears, some differences between the SDK documentation, and what is actually being stored and returned from the database. Those issues are now corrected.

 

For more information, please visit the SnapShot! product page.

The CRM Engineering for the Enterprise has released a new white paper.

 

You may download it here:

http://www.microsoft.com/en-us/download/details.aspx?id=36056

 

Overview

There are a number of complexities associated with implementing large-scale CRM projects in Enterprise business scenarios. In these situations, using multiple tenants in Microsoft Dynamics CRM 2011 can help to address several typical challenges, which include:

  • Functional localization, for organizations with different business units or areas that have varying business requirements or processes
  • Master data management, for organizations that need to distribute but maintain control of business data in certain ways
  • Physical distribution, for organizations with user base that is physically distributed in ways that introduce challenges such as distance of connections
  • Security and privacy, for organizations that need complex control of distribution or access to data
  • Scalability, for organizations with workload requirements that exceed or are prohibitively costly to host within a single system

Microsoft Dynamics CRM offers a variety of capabilities that allow customers to implement rich solutions to address complicated business requirements, which tend to have an even higher degree of complexity for customers in the Enterprise. For solutions that incorporate multiple instances of Microsoft Dynamics CRM 2011, a second major consideration is any potential need for integration or interaction between the different instances in the overall business solution.

This white paper discusses scenarios in which using multiple instances of Microsoft Dynamics CRM 2011 to separate areas of functionality can assist in addressing business challenges in the Enterprise. The paper also describes some common approaches for integrating multiple, separate instances of Microsoft Dynamics CRM 2011.

I've just released a new version of my SnapShot! CRM documentation tool.

I created some additional documentation to help you better understand the output.

You can download the documentation (PDF) here.

While writing the documentation, I found I was not happy with either the data that I was writing to the Excel worksheet or some of the column titles that I chose to use.  In both cases, the information did not match what was seen within the CRM user interface.  While the information was technically accurate, there were just too many "developerese" terms and phrases.

This version corrects many of these issues.

One of the most significant changes I made is that any location where the data could have been True or False, I replaced it with Yes or No, since that is more natural for people to understand, I think.  Since not everyone uses the English versions of Yes and No, I added code to extract the equivalent values from CRM so that Yes and No should display in the default language the user has selected in CRM.

You can download the sample reports here.

Or, for more information, visit the SnapShot! product page here.

As I am working on an update of my SnapShot! documentation tool, I realized that most people understand the values of Yes and No better than True or False, so I modified the output so that I replaced the word True with Yes and False with No.

That works great and I think it actually makes the report much more readable.

But, what if Yes and No works fine for English-speaking countries, but what if English is not your language?  I considered that a problem that I could solve.

So, into the internals of Dynamics CRM I dive and I came up with what I think is a fairly elegant solution.

Unfortunately, there does not seem to be a single location where Yes and No values are stored.  BUT, there are fields that contain those values.

After looking at the database metadata, I decided to retrieve the optionset values from the Account field Credit On Hold.

I store those values and later use them to generate my documentation.

Here's how it works:

First, I created a class to hold the values so I can easily pass the data back and forth.

public class BooleanLabelSet
   {
       public string TrueLabel { get; set; }
       public string FalseLabel { get; set; }
   }

 

Next, I created a method to extract the Attribute information:

public BooleanLabelSet GetBooleanLabels(OrganizationService service)
{
    var request = new RetrieveAttributeRequest
    {
        EntityLogicalName = Account.EntityLogicalName,
        LogicalName = "creditonhold",
        RetrieveAsIfPublished = true
    };

    var response = (RetrieveAttributeResponse)service.Execute(request);

    var attribute = (BooleanAttributeMetadata)response.AttributeMetadata;

    var trueLabel = attribute.OptionSet.TrueOption.Label.UserLocalizedLabel.Label;
    var falseLabel = attribute.OptionSet.FalseOption.Label.UserLocalizedLabel.Label;

    return new BooleanLabelSet { TrueLabel = trueLabel, FalseLabel = falseLabel };
}

And you use it like this:

var BooleanLabels = GetBooleanLabels(OrganizationServiceMain);
var booleanValue = value ? BooleanLabels.TrueLabel : BooleanLabels.FalseLabel;

If you try this technique and run into issues, please let me know so I can correct the code.

Hi Everyone,

Version 3.1 of the CRM Data Explorer has been released. You can download the new version here:

http://www.crmaccelerators.net/products/crm-data-validation-2/crm-data-explorer-download-trial-request/

This release is mainly to correct connection issues with Office 365 and CRM On Premise with ADFS.

If you had connection issues with the previous version, I would suggest you download the new version and retry the operation.

If you want more information on the CRM Data Explorer, visit the product page.

As always, thanks for you time and if you have any questions or comments, I'd love to hear them.

Thanks, Mitch

I had several request for a version of SnapShot! that did not require a license for each organization which it was connected to.

SnapShot! Ultimate can connect to any number of CRM Organizations.

Read more about it on the SnapShot! product page.

 

A Minor Update

I added an additional report to the Excel document to list the security roles assigned to each User or Team.

If you have any additional suggestions, I'd love to hear them.

Occasionally, I find myself wasting time because I didn't check all of my facts. I ran into an issue today where I was getting the strangest error trying to assign a Contact to a specific user.

I checked and rechecked their security role, restarted IIS, etc., but still this error persisted.

Here is the error, as documented by CRM Tracing:

Microsoft.Crm.CrmSecurityException:
Principal user (Id=a39a5555-3c77-e011-8720-00155da5304e, type=8)
is missing prvReadContact privilege
(Id=ba09ec92-12c4-4312-ba16-5715c2cbd6da)

This could not be more explicit.  The user doesn't have Read access to Contacts.

Except he does:

image

 

Hmm. This is very strange; and I know strange.  If you didn't know, I actually wrote a book on CRM Security, so you would think I would know what I'm doing. But this was baffling me.

Finally, it occurred to me that the only thing left is the user's client access license.

I opened the user record up and sure enough, this is what I found:

image

 

Problem solved.

Users with Administrator Access do not have access to normal CRM data so the message was indeed correct.

Keep License type in mind next time you run into what seems to be an incorrect security message.

Sign up for our new KnowledgeBits service and get news, tips and tricks and more, delivered straight to your inbox.