Special privileges in CRM Security Roles

There are several privileges in Dynamics CRM that control access to things like settings and user personalisation features, rather than data records. If users are missing some of these then they might not be able to sign in to CRM at all, or might not be able to use it properly. In particular, there are six privileges that can only be set at User level

Privileges that can be set at “User” Level only

There are a few privileges that you can only set to User level or None in any security role. Five of the entities for which this is true are on the Core Records tab, and you can easily find out which they are by looking at the System Administrator security role (shown below). Even this “super user” does not have global rights to these items so they stand out as the only rows not covered in green circles:

System Administrator Security Role

(Minor note: the above screenshot was taken from CRM 2015. In CRM 2013 and earlier, you will see that UserEntityInstanceData is written as one word with no spaces, and appears below User Entity UI Settings.)
Find out what these 5 settings are for, and how to configure them »

CRM 2015 Customization Exam MB2-707

Last week I took and passed the newly released exam MB2-707 Microsoft Dynamics CRM Customization and Configuration. The exam title does not mention CRM 2015, although that is clearly the version it is aimed at.

I guess this is because Microsoft don’t want to confuse things when the exam covers how to customise Dynamics CRM 2015 on-premises or CRM Online, which does not really include the version number as such a prominent part of the branding. If you pass this exam it should be clear that you have the skills to customise CRM 2015 on-premise or CRM online equally.

Looking at the skills measured, the only new areas covered compared to the CRM 2013 Customisation exam MB2-703 are calculated and rollup fields. There is no mention of hierarchical security, or configuring sales or service modules such as SLAs and Entitlements or the Product Catalog.
Read my thoughts and tips for passing exam MB2-707 »

Changing custom entity icons already published in CRM 2011

This is a follow-up from my previous article about how to add your own new icons for custom entities in CRM 2011.

Once you have published your web resources and linked to them from your custom entity maybe you want to change your mind and use a different icon instead. Some people use the same “placeholder” for all their custom entities (such as a plain brightly coloured square) to remind them to fix them later, in other cases maybe you think of a better metaphor for the icon, or users simply don’t take to it during testing. Note that you can’t change the icons for a built-in system entity at all.

Whatever the reason for wanting to change your icons, you have two options:
Read on to find out swap your custom icons for new ones»

Creating icons for Custom Entities for CRM 2011

As described in my article about how to add your own new icons for custom entities in CRM, for each custom entity you will need two icons at 16 and 32 pixels square. These should be png, gif or jpg files, and I would strongly recommend png for preference, gif as second choice (as they at least support transparency) and jpg as last resort (areas of uniform colour often end up no longer being uniform but “noisy”).

Buy or find free icons online

There are various libraries of general-purpose icons you can buy such as the V-Collection from Icon Experience (they also do a more “modern” posterised style M-Collection which complements them well for different scenarios). I have also found others which you can download and use for free individually or as a collection. These often come with a requirement to cite the source if used commercially, which is easy enough to do by including some text and a URL in the description field of the web resource. The free collection of icons at FatCows has some good quality icons and useful ideas (downloadable individually or as a big zip file) amongst lots which seem far too “fun” for a serious application like CRM.

Another good source of icons is the CRM 2011 SDK which contains all the icons used in the application in the folders \resources\images\formentity and \resources\images\imagestrips n particular. Very often you can repurpose an icon from an entity you are not using, with a bit of lateral thinking. Modifying and reusing for commercial projects is probably not strictly allowed since these icons are Microsoft’s.

Draw your own or customise from a close starting point

Occasionally I get creative enough to draw simple icons from scratch, or at least to modify other icons to suit my needs more closely (if the original allows for derivative works, of course). Sometimes you find a great icon at 32 pixels and need to do a resize down to 16 (or vice versa) and then hand-retouch it to get the best effect – a resize alone is almost never a good finish.
Read on to find out more about resizing and editing icons for CRM »

How to add icons to custom entities in CRM 2011

I discovered a couple of weeks ago that one of the things Microsoft did get right in the recent Polaris release was to finally fix the dialogue box for adding your own icons to custom entities in CRM. This prompted me to finally get round to writing a proper article about how to do this.

Why use custom entities which need new icons?

As you develop your CRM system there will very likely come a point where you decide to create your own custom entities (record types) to store business data which is specific to your needs. You might also choose to create a custom entity to store data which you need to control access to, separately from other records. A new entity allows you to control through security roles which users can do what with these records independently of their security privileges relating to other entities.

In fact this kind of customisation is very often a fundamental part of the original design plans for many new CRM systems. This extensibility and versatility of systems such as Microsoft Dynamics CRM is arguably the whole point of a so-called xRM platform rather than a locked-down application which only works in the way the original developer thought up.

In order to make your system as easy as possible to use, it is very helpful to use your own custom icons for these entities so that users learn to recognise them rather than having to read loads of text labels. I have seen CRM systems with several custom entities all just left with the original sad little picture of a gear wheel (or a notebook and gear wheel for custom activities). In CRM 4.0 this may have been because the people who had the rights to customise the system did not have direct access to the server to publish their own icons, in CRM 2011 On-Premise or Online the only reason is not having the know-how to do so.

Read on to find out how to add new icons for your custom entities in a few simple steps »

When and How to use Child Workflows in Dynamics CRM

Girl on Dads shoulders_smallWhen is the right time to have your first child?

A difficult question with a whole range of possible answers, I’m sure you will agree, and there are other websites and forums much better placed to answer it. So instead I’ll answer something slightly easier and with more definitive answers which often comes up when I am delivering training for CRM customisers and super-users who build their own workflows:

When should I have my first child workflow?

There are simple answers to this and some more esoteric and more complex answers to this. Generally I would say there are six main use cases for child workflows, which I will discuss in this post in approximate order of obviousness (most to least).

1: “Let me get on with my job”

A very simple scenario for CRM 2011 – you want the user to work through a Dialog process and provide some details or make some decisions, at the end of which they should get on with other things while a workflow runs to do some other steps which can run on their own with no further intervention (such as creating related records, updating links or sending an automated email).

You don’t make your users stay in the dialog a second longer than necessary once their useful participation is over (“leave, puny human!”), and this also means you can call a child workflow which involves waiting for a while before doing something (like sending a reminder) – you can’t do a wait step in a dialog.

2: Wash, rinse, repeat

Shampoo BottleOften in a workflow you have several points at which you want to do one or more identical steps. Maybe you have to set up several conditions which set various fields to different values, then inside some of the conditions you do a step such as creating an activity which is essentially the same but takes lots of fiddling to get right? It can be pretty tedious to do all of this. And you can’t move or copy the tricky step if you later need to change the flow of the logic.

For example you might run a workflow against a service Case which checks the customer type and service level, or maybe the related product or contract line, sets fields on the case such as the expected completion date and assigns it to an appropriate user or team. For important customers you want to send an email to the account manager to let them know the Case has been logged and including details of who is dealing with it, and for high priority Cases you want to create a Task to get things moving, with a due date related to the SLA type and time the Case was logged.

The actual steps of creating the activities are not especially complex but to do all those dynamic fields and get them right several times over takes a while. And then takes even longer when your user acceptance testing asks you to change some of the detail – several times over.

Build the activities in a child workflow (or possibly two separate ones). Then each time you want to do the same step, call the child workflow (running against the same Case record). Now you only have to build it once and only have one place to make changes.

A nearly identical use case would be when you have several similar workflows which are triggered by different things such as record creation, fields being updated or status changes. In each of the workflows you can call the same child to do some of the work. Read 4 more scenarios where child workflows will help you out »