Tip #79: Limit use of System Admin and System Customizer Assignments

At the risk of significant human induced catastrophe, don’t assign the System Administrator or System Customizer security roles to anyone that hasn’t received in-depth training in customizing, configuring and managing the CRM system. No matter how expedient it might be to assign the role to a marketing team member that needs to go into the system and update and option set for ‘how did you hear of us’ with the latest advertising options, don’t do it.

CRM System Admin Role

CRM System Admin Role

Tip #78: Business Owner CEO Business Manager

The CEO Business Manager security role in the CRM has broad rights, almost as much as the System Administrator Role. No matter how forcefully you are told, don’t give this role to the owner of the business who is probably also paying the bills. Why? Because most likely, this person is the one that was too busy to attend the user training they had you give to their employees.

Without the proper perspective and insight it can do a lot of damage. If you must, copy it and then remove all the Delete rights.

CEO Business Manager Security Role

CEO Business Manager Security Role

Tip #77: Security Role Terminology

Before you can create the security architecture or manage your security, you need to know the terms:

  • Privileges are the verbs in CRM: Create, Read, Write, Delete, Append, Append To, Share, Assign.
  • Access levels, from most to least generous: organization, parent-child business unit, business unit, user, none.
  • Entities are the units to which a security role applies an access level for every privilege.

Tip #76: Use Your Community

As MVP’s we get a lot of unsolicited questions from some members of the community.  Just so you know, as a method of practice, I do not respond to these and that also goes for some other members of the MVP community.

Our recommendation, which will definitely get you better results than asking one person, is to do a number of things.

1. Do a Bing/Google search for your problem:   There are a number of great blogs and forums out there.  Chances are you are not the first person to experience your particular issue.

If that Google/Bing search doesn’t work, then…

2. Use your forums:  There are so many great ones to choose from.  Here are a few good ones.

We don’t mean to seem so rigid, but the reason for this is two fold. Here’s the reasons:

1. If you ask your question in these public arenas then people can search for it in the forums and through search engines in the future.  So you are contributing to the community with your question.

2. If you ask the question to just one or two MVP’s then only one or two people will see it.  If you ask the question in the public forums you will have many people see it.  I guarantee you that you have a lot better chance of getting a better answer that way.

Thanks!

Jamie Miley

Tip #75: Make iOS7 Remember Your CRM Password

I have heard multiple users report that IOS7 does not remember their passwords, whether for CRM for Phones (Mobile Express) on iPhone or using CRM in Safari on an iPad, and that they have to type in their credentials every time they try to use it.

This is due to a new private browsing feature in IOS7. When private browsing is turned on, no passwords will be stored.

Here is a fantastic YouTube video showing how to disable private browsing. After making this change, I have found that IOS Safari typically will remember your CRM password.

Tip #74: Print a CRM record

This is one of those “obvious if you know it” tips, but something that several users have asked me about when upgrading to Microsoft Dynamics CRM 2013. Where is the print button?

To print a record in Microsoft Dynamics CRM 2013 (web client)

  1. Click the gear in the upper right hand corner by your name
  2. Click “Print Preview”

To print a record in Microsoft Dynamics CRM 2013 (Outlook)

  1. Select the record from a view
  2. Click File->Print in Outlook

 

Tip #73: Be aware of what is compatible with your CRM environment

Microsoft Dynamics CRM depends on multiple other systems, such as Windows, SQL Server, Microsoft Exchange, and Outlook. To work in harmony, you need to be sure the version of those systems and applications is compatible with your version of Microsoft Dynamics CRM.

Microsoft maintains and regularly updates a compatibility list for Dynamics CRM. So if your Exchange manager announces that he is going to upgrade to Exchange 2010 service pack 1, check the compatibility list and verify that the version and update rollup level that you are on with CRM is compatible with that update for Exchange.

See the list here

Tip #72: Granular notifications for end users

Today’s tip was supposed to be called “Why it’s very important to keep your SDK up to date” but instead I named it after the updated functionality that was added to CRM Online, released for onpremises in UR1 and documented in the December update of the SDK.

Previously, if you wanted to notify user about something, all you had was control.setNotification(message) and control.clearNotification() pair of functions, meaning that you probably would have cramped all your validations in one place.

Now, the functions have become control.setNotification(message, id) and control.clearNotification(id) and you have a slightly more granular control which notifications to add or dismiss. Disappointingly, if you add multiple notifications for the same control, only the last one is visible to the end-user but a) that may change and, regardless, b) code becomes easier to manage, especially when multiple rules and controls are involved.

Granular validation of multiple fields

Say, if I want to ensure the length of the name for the account and also validate that both account and phone number are alphanumeric then I might use the following code:

var validations = [];

function onLoad() {

  validations.push( {
    id: "tooshort",
    rule: function(v) {
      return !v || v.length < 3;
    },
    message: "Shorter than 3 chars"});

  validations.push( {
    id: "noa1",
    rule: function(v) {
      return /[^\w]/.test(v);
    },
    message: "Not alphanumeric"});

}

function validate(controlName, ruleId) {

  var ctrl = Xrm.Page.getControl(controlName);
  var value = ctrl.getAttribute().getValue();

  for(i=0;i<validations.length;i++) {
    var valObj = validations[i];
    if(valObj.id == ruleId) {
      if(valObj.rule(value))
        ctrl.setNotification(valObj.message, valObj.id);
      else
        ctrl.clearNotification(valObj.id);
    }
  }

}

Add declarative validation

and then bind onchange event for name fields to validate with parameters “name”, “tooshort”, then another bind with “name”, “noa1” and finally one for phone field with parameters “telephone1”, “noa1”, using a [somewhat] declarative validation. You did know you can bind more than one function to the same handler, didn’t you?

Note that setting a notification on a control will block the form from saving until all notifications are cleared.

Tip #71: Option Set and Form Layout

Currently there is a User Interface ‘bug’ where users are seeing a very small drop down list for option sets. When the drop down list tries to extend past the Section Line or overlaps another Field, it gets cut off.

We are waiting for Update Release to fix it. But in the meantime there are simple things you can do to resolve by adjusting your form layout.

Move the Option Set higher up on the form so it isn’t on the last row of the section. And insert some spacers between the Option Set and the Section boundary or the next Field.

Small Drop Down - Before Fixing

Small Drop Down – Before Fixing

Modify Form Layout and Insert Spacer

Modify Form Layout and Insert Spacers

Option Set Drop Down After Editing the Layout

Option Set Drop Down After Editing the Layout

Tip #70: 5 ways to make your CRM environment more lovable

We love CRM
Happy Valentine’s Day.

If you are like me, you love CRM. But as with any relationship, sometimes there are things that can cause issues with the relationship. The following are some good tips on how to make the relationship between your Microsoft Dynamics CRM environment and its users more harmonious.

  1. Make forms easier to navigate. Place lesser used fields and sections in collapsed tabs. This will make forms load faster and provide easier access to the most important parts of the form without scrolling, while still providing easy access to lesser used fields when necessary.
  2. Move all required fields together on your form. This will get rid of “popcorn” forms where every time you click “save” a warning pops up saying that there are required fields that need to be populated before the form is saved.
  3. Make unused fields non searchable. This will make advanced find significantly easier to use. You can do this in bulk by selecting multiple fields in customization and clicking the edit button to edit multiple fields, or use the excellent XRM Toolbox Searchable Property Updater.
  4. Clean up your sitemap. Prioritize the order of subarea links based on frequency of use, remove links to unused entities (or remove them from the user’s security role).
  5. Re-evaluate your security model and customizations periodically. Remember that automated process that you created 3 years ago to automatically create 25 tasks when an opportunity closed? is that process still fit the way that your sales people work? Chances are if you have been using CRM for more than six months that some of the configuration choices you initially made may need to be tweaked or revisited. Were those requirements really a requirement? Do you have any user constraints that are unnecessarily limiting what users can do? Are the fields that you added being populated by users?