Security Roles and Teams in CRM – An Inconvenient Half-Truth

Over the course of the last two years or so reading everything I can about Dynamics CRM, as well as teaching many classes of people how to get the most out of their CRM systems, one thing which comes up again and again is how to best structure Business Units, Users and Security Roles, and sometimes Teams as well to get the exact model you want to match your business requirements for who has access to which records and when.

Users inherit Security Roles from Teams – right?

One concept I have seen repeated many times is that “Users inherit security roles from all the Teams they are in”. And generally this seems to be a reasonable way to describe how it works, but occasionally odd behaviours seem to show up which make this appear to be less than 100% accurate.

I also had a gut feeling for a while that this was not the best way to describe the way this works. I prefer to say that “when a User is in a Team, they can act as if they are the Team, with the rights that the Team has through its Security Roles, but only while considering records in the same Business Unit as that Team”.

More on this later, and the one part of the model that this description does not do justice to.

Overall this means Security Roles use a kind of “impersonation” when Teams are involved and that the rights the User has are not only ‘borrowed’ very temporarily from the Team but they are relative to where the Team is – so access levels / depths such as “Business Unit” or “Parent / Child Business Unit” operate from the Business Unit where the Team is.

So how does this really work?

If you really want to read how security roles work in terms of determining access to a whole bunch of records (to display the results of a view) or a single record, then you need to read the white paper Scalable Security Modelling with Microsoft Dynamics CRM 2011.

42 pages later you will probably know exactly how the queries are built to actually enforce the security model, but that may not have made it much clearer from a practical, day-to-day design point of view. To be fair, the point of that white paper is to explain the underlying architecture and query methods properly so you can figure out the performance impact of different security approaches, rather than demonstrating how this informs your design from an end-result “who can see what” point of view. One thing that is never mentioned is any idea of inheritance or merging of privileges from Teams to Users. Every kind of access request is checked against User and Team permissions separately (exactly what is checked depends on things like whether the User has Global access level privileges to that entity at all, and whether the record is owned by the User or any of their Teams. These can help shortcut the otherwise brute force querying that would be necessary, especially to return all records in a view).

“You can’t handle the TRUTH!”

By now, I bet some of you are ready to shout at the screen – “we know Users don’t actually inherit the roles and keep them for themselves, but it works just as if they did, so it’s just a kind of shorthand and we all understand what we really mean, so don’t be pedantic”.

Tom Cruise in A Few Good Men - I Want the TRUTH!I always argue that I am not pedantic, I just like things to be exactly correct – “I want the TRUTH!”

In this case, it is CRM which is pedantic, and does not always behave as expected if you believe that a User can act as if they have all the Roles that their Teams have, all of the time. If you are betting your security model on it working this way then either you will end up with Users who can’t do their job, or possibly a gaping hole in your security. Neither sounds good to me.

Read more of this post

CRMguru is born – a new chapter and a chance for review

How did I get here?

When I started this blog I wanted to share information on a whole range of technology topics under the banner of “getting IT right” – helping people to figure out the best ways to use information technology to get things done. As a self-confessed geek who loves to dig into the detail of things, I also wrote about various neat tools (see, only a geek could call tools “neat”!) and techniques to wrestle software into doing what people really wanted out of it. I tried to get to the “why” as well as the “how” as I firmly believe (to paraphrase) that with great [IT] skill comes great responsibility [to follow best practices].

I made a conscious decision early on not to join those who seem to only produce “echoes in the blogosphere”. Writing a post of less than 20 words, saying “Someone else just wrote a great post over here <link>” is not what blogs are for, in my not so humble opinion; that’s what twitter is great for (up to a point). Worse still, “quoting” the whole of an article written by someone else is not so far different from blatantly stealing content with no attribution so I wanted to stay clear of that too, with the occasional exception of quoting parts of articles written expressly to be widely publicised such as press releases and hotfix release information.

If you don’t have something to add to the conversation to at least give it some context and explain why the linked post/article/information is important, why bother joining in?

I also did not see much point in writing “how to” articles for things which were well documented in books, online sources or simply accepted as common knowledge (sometimes of course it can be hard to judge what is really known by everyone).

So did it work? What do people read most?

Many of my most popular articles are things which are not well documented elsewhere, such as these top three of the most-read posts of the last six and a half years:

How to add national holidays in Outlook 2010 – the basic feature to add holidays for your country is well understood, but this article dug a bit deeper on topics such as removing holidays added by mistake (especially duplicates) and adding custom holiday dates to your outlook.hol file to share with others. The related post Outlook 2010 has incorrect holidays for UK and many other countries has had far fewer total readers, but this makes sense since the issue mainly affected English-speaking countries outside North America, and much of “continental” Europe. Both posts still see big peaks around Christmas / New Year and just before Easter – I guess people in 23 countries look at their calendars and realise Easter Monday is clearly in the wrong place and want to find out how to get it moved to the right date.

Using DSMod to update Active Directory – this was my very first post  and a perfect example of the sort of thing I wanted to write when I set out on my blogging ‘journey’, and I am really pleased that it is still enduringly popular now, and the second most read of all time (which I know is to some extent is self-proving, as it had the most time to be read). This was a real geeks’ article about how to use some simple command line tools to update user information stored in Active Directory. Is it still relevant? Possibly even more so since that directory information is even more ‘visible’ now as it surfaces in Outlook through “contact cards” (the summary of a correspondent’s information you see when you hover over their email address or name on the to / from line of an email) and is of course copied to Dynamics CRM user records too. I have some notes on my “blog ideas” list for an article about which AD fields are copied to CRM, and therefore what DSMod commands would be helpful to get those fields populated with correct information.

Excel 2007 calculation bug displays apparently wrong numbers – still getting loads of hits despite being about a bug which was fixed a long time ago, in a six-year-old version of a product. Judging by recent comments on this post and in forums more generally, some people seem to think that every time their numbers don’t add up as expected (due to rounding of displayed numbers in many cases), it must be the multi-million dollar, multi-million user software that is not able to figure out high school maths, although no-one else seems to have noticed.

Moving towards Dynamics CRM

Over time, I have become slowly more focussed on Dynamics CRM rather than being a total IT generalist. I still retain an interest in Office, particularly Outlook and Excel, and often use knowledge gained in my days as a system administrator to deal with network infrastructure questions relating to on-premise CRM deployments. As my work balance has changed, so has the content of my blog, so in the last year some of the most-read posts include an article outlining options for training and certification in MS Dynamics CRM 2011, how to Configure CRM 2011 and ADFS 2.0 on a single server on port 443 and When and How to use Child Workflows in Dynamics CRM.

I thought the time had come to change the name of the site to reflect the sort of information being posted here lately, so people have a better expectation of what they will find here, rather than it looking like another company blog. The new colour scheme and logo seemed appropriate to support this change of theme and direction.

Why CRM “guru”?

There are various definitions of the term”guru” which I hope to aspire towards in the posts that I write here.

The common themes are that a guru should be a teacher, one who imparts wisdom and knowledge to others, in some cases a leader as well. One possible etymology is that a guru “dispels the darkness of ignorance”. Through the articles in this blog I certainly hope to share the experiences I have gained as a Dynamics CRM consultant and trainer to shed some light on features which are not necessarily well understood or clearly documented and showcase some best practices of using the software to get the most out of it, from a technical or operational and business perspective.

I certainly do not use the term “guru” to claim that I am the greatest expert on the subject (that is for others to judge), merely to explain that I intend to use my knowledge to help others avoid common pitfalls and use features in ways they had not thought of, just as I have learned so much from those who have done things before me – too many to mention individually but some of whom are linked through the “blogroll” at the bottom of the screen.

I hope to be able to enlighten you for another few years yet.

Adam

Outlook does not show new CRM 2011 Custom Entity icons

This is a further follow up post to my recent article on How to add icons to custom entities in CRM 2011.

I have occasionally found that updated custom entity icons did not appear in the Outlook client as expected. This may or may not have been fixed in more recent rollups; I have not noticed it for a while but then I have not customised many of my own live CRM instance icons for a while either (I don’t tend to connect my Outlook client to customer’s systems when working on them and that’s where I am more likely to create new entities).

The cause and the fix are relatively simple – for obvious performance reasons, the icons are cached locally so you just need to clear them out.
Read on to find out how to clear the icon cache »

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 »

Choosing a browser for CRM 2011

Anyone using CRM 2011 on-premises or Online can upgrade to Update Rollup 12 and get all the cross-browser goodness we waited for so long to get. Any new CRM Online organisation you start will have this already “baked in”. That means you can start using:

  • Firefox on Windows XP, Vista, 7 or 8
  • Chrome on  Windows XP, Vista, 7 or 8
  • Safari on Mac OSX 10.7 / 10.8
  • IE 8, 9 or 10

But! This comes at a small price – the deprecation of IE7. IE7 is no longer a supported browser for CRM 2011 going forward with the minor exception of IE7 on XP for CRM On-Premises only, and even that will be taken away at the Orion release (by which time support for XP will be at an end so I guess MS feel it is OK to start ignoring this not-insubstantial userbase at that point).

Why upgrade if I am happy with IE7?

Internet Explorer 8 is four years old today. If IE7 is what you are using four years after it was superceded, it’s time to upgrade and get a much smoother experience since the JavaScript engine in IE has improved dramatically over the last few versions, to compete well alongside Chrome which had fast JavaScript performance as one of the key reasons to switch when it first came out (better partitioning of security between sites / tabs in separate threads was another, and still is, but if your primary use of IE would be for CRM only, using another browser alongside for your ‘net surfing, then this is not a big deal really).

IPad seems to be missing from the list

iPad support at the moment is only for CRM Online, only for the “COLA” entities (Contact, Opportunity, Lead, Account), intended for using iPad for a sales lead to deal platform only at the stage. Other entities are rendered in the read-only forms, or you can use Mobile Express (as always) for editing.

Control supported browser list

You can also decide which browser environments you want your users to use, and warn them if they try to connect to CRM with something else – see this MSDN article on how to Control which browsers your organisation supports for details.

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 »

CRM 2011 Update rollup 7 and Read-optimised Forms

The latest hotfixes and updates to Microsoft Dynamics CRM 2011 are now available as update rollup 7. Knowledgebase article is here:
http://support.microsoft.com/kb/2600643

and downloads for all the software components are here:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=29221 

Read-Optimised Forms

The KB article above refers to a feature update in UR7 to provide “Read Optimized Forms”, which sounds very much like one of the minor features which was announced for the Q2 2012 service update, or release R8. This got a little bit buried in all the excitement about multi-browser and mobile capabilities, but essentially means you can deliver a faster experience to your users by providing them with a rapid-loading, reduced functionality, read-only form for entities which are often read and rarely updated. The Release Preview Guide published in February said this:

RAPID VIEW FORMS
In many organizations there are groups of users who typically use a CRM system to look up key information about their contacts, accounts, opportunities and cases but have no immediate need to modify that information.

For example, many contact center employees or managers primarily use Microsoft Dynamics CRM to review business information before deciding whether any action is required. For these users the optimal experience is to load this information very quickly so they can immediately assess a situation and determine the correct course of action.

In order to provide this type of user experience, we’re introducing rapid view forms. The rapid view form is a read-only form that can be configured like any other form in Microsoft Dynamics CRM to display any record in the system.

When viewing information in these forms, users can switch to an editing experience with the click of a button. Administrators of Microsoft Dynamics CRM will have the option to set all forms to load in rapid view mode; if appropriate for business needs. Individual users will have the personal option to choose the form mode they prefer (Rapid View or Standard Edit).

At the moment (just after midnight UTC 22nd March) the links in the UR7 article which should point to more information about this new feature seem to redirect only to a generic page in the Resource Center and an MSDN SDK article about editing forms. From the latter article there is a link to another subsection “Design Considerations for Read-Only forms” which provides more details.

Read more of this post

Help get better and more helpful tooltips on forms in CRM 2011

One of my frustrations in CRM has long been that there is no easy way to get useful tooltips to appear to help end users when they are filling in forms.

Loads of discussions take place during planning meeting about what fields will be included, what their purpose is, what should or should not go into a particular field and what will happen when a user fills it in (eg scripts or workflows, or how the data surfaces in a report). Most of that detailed consideration gets buried in project documents, some of it may be covered in user training, and even less may actually make it into end-user support articles and training hand-outs.

Some of these are common misunderstandings, such as what should you use “Address Name” for? (hint – it’s not the building name nor part of the address, it’s the name of the address, i.e. what do you call this place? answer might be “Head Office” or “North West Distribution centre” for example).

The most obvious place to put this stuff is on the form, and the most logical place is right next to where it is needed, by adding tooltips to the field labels. Yes, I know they do have tooltips, but these simply repeat the text of the field label! Zero value is added by having them there, they don’t even go as far as using the “normal” display name or the description.

There are ways to create tooltips by adding an “onmouseover” event to the field, but since this is a direct DOM hack, this won’t be supported. It is also yet another bunch of scripts being delivered over the wire, which also need to be written, maintained and updated, usually by system admins with at least a basic level of Jscript coding skills.

There must be a better way…

For me the ideal answer would be a property of a field on a form where a system customiser (i.e. not admin, no coding skills required) can easily add text they want to use as a tooltip. Either directly as custom text or perhaps simply ticking a couple of boxes to include the field display name and/or description and/or schema name and/or custom text as well.

So I went over to the Microsoft Connect site where you can give feedback about CRM and other products. This is intended for product suggestions and definite bugs, rather than support for things that don’t work in your particular implementation. Other site users can vote up or down the importance of your suggestion, and can comment or provide information about workarounds.

I posted a new suggestion to provide useful “tooltips” on rollover/mouseover of form labels and/or allow supported customisation of them and within two weeks it had already reached the all-time top ten most upvotes. It is continuing to rise and I really hope this is given serious consideration for the next version (either a quarterly release, or more likely the next “full version” given that it might require changes to xml schema for exporting and importing customisations).

You can help get this idea implemented

If you like the idea go and vote it up and if have useful input add a comment so that if and when it gets implemented they can make it fit people’s real-world needs as closely as possible.

There are loads more great suggestions in the Dynamics CRM section – have a look round and vote for those you would most like to see built first.

Do you need a custom county field in CRM 2011?

Pedro Innecco posted an article on his blog recently about considerations for customising handling of addresses in Dynamics CRM. This had some great advice clearly based on real-world experience and you should go read it now, then come back here for some more titbits on this topic.

I agree with Pedro’s view that some users get unnecessarily knotted up over labels sometimes because they are creatures of habit rather than purely logical data processing machines (which is probably a good thing most of the time). But if you re-label state as province or canton for their ‘convenience’ and they want to add an Account which is in another country they can get all flustered rather than using common sense.

The choices to make can also depend on the context of the business. If you only really do business in one US state then you might feasibly want to divide up records by the next level of hierarchy for sales territories, or service visits using counties even if they are not used for postal addressing. If your business is nationwide, then it is far less likely that anything below the first level state/region/province would be necessary.

Read more about the best approaches to use for storing state on addresses»

CRM 2011 Pricing and Licensing Guide updated Feb 2012

Kevin Machayya posted links in this article to an updated version of the Microsoft Dynamics CRM 2011 Pricing and Licensing Guide. This is the definitive document for figuring out what you can and can’t do in various situations with different types of licence.

You can download it via Partnersource here (authorised LiveID required):

CRM 2011 Pricing and Licensing Guide Feb 2012 update

<edit> or the direct link here: http://crmdynamics.blob.core.windows.net/docs/Pricing_Licensing_Guide.pdf (I’m not sure if this only works when logged in with an appropriate LiveID)

Read more about the Activity Feed changes and different licence types»

What are the URLs for CRM integration?

This is one of those really simple things that I don’t need very often so it is easy to forget and then I have to go looking for it, so I figured I can’t be the only one and it might be worth posting.

You may occasionally need one or more of these URLs for integration with other applications or components such as the e-mail router, or you may need your Organisation name to licence a third party plugin or solution (which is a rather annoying GUID if you use CRM Online, rather than the actual name of your Organisation as it appears in your URL).

Whether you are using CRM Online or have CRM 4.0 or 2011 installed on your own servers or hosted by a partner, you can find all the URLs you might need by going to Settings > Customization > Developer Resources as shown in the screenshot below: Link to Developer Resources in CRM

When you click on the link you will see something like this:Developer Resources in CRM Online

Notice that the Discovery Service endpoint is the same for all CRM Online implementations in your territory, starting https://dev.crm… Outside the US replace “crm” with “crm4” for EMEA and “crm5” for Asia Pacific. The Organisation Services for SOAP and OData both use your organisation’s “friendly name” rather than the GUID.

CRM 2011 and CRM Online Q2 2012 Service Update aka R8

Microsoft have made a much-awaited announcement today about the features we can expect to see in the next service release for CRM Online and CRM 2011 on-premises. They remain committed

Earlier information made it clear that the key aspects of this update would be to make CRM available to a wider range of clients, specifically by providing cross-browser, cross-platform support. Whispers had also indicated that some form of ‘real’ client for one or more mobile operating systems. Today’s press release is titled “Microsoft Unveils Microsoft Dynamics CRM Mobile” and the opening lines confirm the rumours:

Next Microsoft Dynamics CRM service update will include a new, cloud-based, cross-platform, native mobile application…This service update will deliver the capability for customers to access the complete functionality of Microsoft Dynamics CRM on virtually any device with a new cloud-based, cross-platform, native mobile client service for Windows Phone 7, iPad, iPhone, Android and BlackBerry mobile devices.

So, before discussing the news any further, the first thing to do is go and read some of the official information. The new General Manager for Dynamics CRM, Dennis Michalis published an article on the CRM Community blog entitled “CRM Anywhere” which looks like it will become the shorthand phrase to describe many of the changes being delivered in this next update.

A more lengthy and detailed discussion of the full range of features expected to be included in R8 can be found in the Release Preview Guide (aka February 2012 Roadmap). There is also some great information and various screenshots at the roadmap page of the CRM microsite.

So, the key features of the release will be:

  • Cross browser support including Firefox 6+ on Windows and Mac OS-X, Chrome 13+ on Windows and Safari on OS-X and iOS 5 (iPad 2). Oh, and a little thing called Internet Explorer 7+ on Windows.
  • Native mobile client for Windows Phone 7.5, iPhone 3GS / iPad (iOS 5), Google Android 2.2, RIM Blackberry 6 / 7
  • Support for SQL Server 2012 when it is released
  • Extended functionality of the “social CRM” features in R7 based around Wall Posts / Activity Feeds
  • Support for custom workflow assemblies in CRM Online, previously not an option and for some customers a reason to go with an on-premises deployment instead.
  • New UI options to give users a more responsive experience when doing read-only operations.
  • “Template” solutions for a variety of vertical industries

Multiple supported browsers

One of the most common requests from customers will finally be answered with support for the most popular browsers on a range of operating systems. These do not require the latest versions in most cases, and although no Linux systems are specifically supported, it may well be that appropriate browsers will work anyway.

Native mobile client

This is the big one in business terms. A ‘real’ application that can be run on various smartphone devices for the users that need a much richer experience on the move than has previously been provided by the Mobile Express service or via a browser. Crucially, the apps are planned to provide for offline access to data for when network connections are unavailable. This won’t be a free option however, but is expected to be charged on a monthly basis per user, pricing not yet finalised.

For most customers this is likely to be an option reserved only for those who really need it, and of course may require an investment in devices not already used in the business. Ironically, the one platform which won’t have offline capability on day one is Windows Phone 7

Of course, there are other vendors in this “mobility” space such as CWR Mobility, Resco and Ten Digits. They already have existing customers and partners and flexible development platforms which will help them to retain some market share, but inevitably some new customers may not look any further than Microsoft themselves to provide an end-to-end service.

More soon when I’ve digested the rest of the details.

CRM 2011 Training courses update 2012

I realised the other day that my previous article about the Microsoft official training courses available for CRM 2011 is now over 6 months old, and I felt it was about time for a fresh look to update some of the items there with new material.

I also wrote about how you can get qualified in CRM  through the MS Dynamics CRM 2011 Certification Tracks and Exams. Again, some of this was getting out of date so I have included information in this single post about the courses and the exams to take if getting certified in CRM 2011 is your goal.

Microsoft Dynamics CRM 2011 is going through a period of very high adoption, with many CRM 4.0 customers upgrading their on premises system to CRM 2011, or switching to a cloud solution with CRM Online. People with skills in Dynamics CRM are in high demand as a result, as well as internal staff looking for ways to get their knowledge updated to the latest version.
Read more about the latest courses and exams for Dynamics CRM 2011»

Problem with unresponsive lookup field on CRM 2011 form

Recently had a minor problem with a form in CRM 2011 which I have resolved while trying to fix something else (isn’t that so often the way?).

Problem description / reproduction steps

I created a custom entity in CRM 2011 to use as a joining entity in a manual N:N relationship. In this scenario it was an “Attendance” record to link a Contact to an Event, and enable the business to track the status of the attendance (tentative, confirmed, attended, cancelled) along with relevant dates etc.

To reduce effort on the user’s part I made the primary “description” field on the record auto-filled based on the event and contact name, using jscript web resources. To observe sensible UI practice, I made sure the lookup fields came at the top of the form, then the description which was a result of those, so it should be obvious to the user what to fill in first, then by the time they get to the name field it is already filled in.

A blank new record form is shown below.

Attendance record blank screenshot

So, what went wrong?

When the user creates a new record, they expect to be able to get on with the job of typing in the fields. Although the Event or Contact was automatically filled in if they created the record from the context of the parent record to make life even easier, this still means that sometimes they needed to fill in one or the other field, and that’s where it got strange.

Read more of this post

CRM 2011 Update Rollup UR6 released

CRM 2011 Update Rollup 6 has been was temporarily withdrawn

The downloads for UR6 were down for a while but are now back up, showing a published date of 20th Jan 2012 and a build number of 5.0.9690.1992 as opposed to 5.0.9689.1985 as was the case when they were first released. All the links and URLs remain the same, only the actual files to download have changed.

Microsoft still have not published any official information that I can find as to why UR6 was removed from the download center, what faulty behaviour it had and how critical the issue was.

“Nuke it from orbit, it’s the only way to be sure”

My recommendation if you already installed the redacted UR6 for the Outlook client is to uninstall the CRM client completely and re-install. It seems happy to keep configuration settings and evens saved credentials (eg for CRM online) so this is relatively painless and much more certain to work.

I previously tried just running setup over the top and was asked if I wanted to uninstall or repair the app, so I chose ‘repair’ but on checking in the Outlook client under File > CRM > About Microsoft Dynamics CRM it still showed the old build number, so I was not convinced this worked very well.*

*your mileage may vary. If you have applied the new build over the top on the server or any other components I’d be grateful if you could share any useful information or experiences in the comments for others to benefit from.

Original and edited blog post…

What is in UR6 and where to download it

A very quick post to get people straight to the information and downloads:

The Support KB article 2600640 about CRM 2011 update rollup 6 and all the fixes included is here: http://support.microsoft.com/kb/2600640 Note: you can’t uninstall UR6

Downloads of the update rollups for server, router, clients, BIDS, MUI etc. are all here <edit> and are now all updated to build 5.0.9690.1992 :

http://www.microsoft.com/download/en/details.aspx?id=28712

If you have downloaded some of the updates and are not sure which ones you have, either go and download them again “just in case”, or if you have slow download speeds or limits on your total data volumes you could check the MD5 hashes first:

Outlook client UR6 32 bit (update only) has an MD5 hash of F537E8C3FF3FF1BA76028C07713B50F6, while the 64 bit client is 78CBBD33E035C9DDF5794F13B000243E.

Server is 64 bit only, and the MD5 is 1753B49EB935D051A4B319EFCC7265F3

Install and update ready-rolled

You can also get updated versions of the installation files with UR6 “slipstreamed” in so you can install in new deployments in one step rather than two.

Outlook clients with UR6 built-in can be downloaded here:
http://www.microsoft.com/download/en/details.aspx?id=27821 (don’t forget you need the 32bit i386 or 64 bit AMD64 version to match your Office install, not your OS version). MD5 hash for 32 bit version which most people are probably looking to install is 426EBAB49CEA5EDEE0018DEB137AB09C

Download Dynamics CRM 2011 server with UR6 built in:
http://www.microsoft.com/download/en/details.aspx?id=27822

Build number should be 5.0.9690.1992 after you have installed things.

If you are using Microsoft Dynamics CRM Online and download the Outlook client today <edit: this is what I wrote on 12th January when the update was first released>, this is already at UR6 (just in time for go live on my current project as it happens!). For on premises or existing installations, install the UR6 update files or wait for them to come out via Windows Update on January 24th.

<edit: this date has not been changed in the KB article since the re-release of the new build, so it seems like this is still on track>

Happy Rollups!

Just for the record…

Earlier I updated this post because UR6 was pulled for a while, so just for posterity and to make sure any readers have the full picture and are not confuzled, here’s what that edited bit said:

A possible problem seems to have arisen with Microsoft Dynamics CRM 2011 UR6 and the downloads have been withdrawn from the download centre pending further investigation by Microsoft so the URLs in this blog post do not currently work.

If you have already downloaded UR6 the advice is to not install this and await a later re-release before installing. Since UR6 cannot be uninstalled (other than completely uninstalling CRM 2011 this is a bit of a blow if you have already gone ahead with it, but hopefully the fixed version will be able to install over the top.

According to the article on the “CRM in the Field” blog this affects the Outlook client, so it may turn out not to be an issue for the server or other components:

“A Microsoft CRM 2011 Client for Microsoft Outlook issue has surfaced, and the Update Rollup 6 packages for Client and Server are being temporarily removed from the Microsoft Download Center pending our investigation. Please hold off on downloading Update Rollup 6 until new packages are available.

If you have downloaded UR6 packages for any components, please discard them and wait for an update on our investigation and the release of new packages.  If you have installed them, please note that the issue appears to be related to Outlook Client sync and prepare to install a newer build when it is available.”

CRM 2011 Opportunity Revenue field is read only

I’ve just had a slightly strange situation with some customisation for a CRM online project I am working on that I thought I would share in case anyone else has a similar experience with this particular scenario or other odd results of customisations which may have a related cause.

Customising the Opportunity form

I have been customising various entities and forms to build the system to suit the particular customer’s requirements. One of the things I was changing was the Opportunity form. I added some of the custom fields, moved some things around and tidied is up generally. Published and everything seemed fine.

Estimated Revenue always read only

Then I noticed that I could not put a value in the Estimated Revenue field. It was disabled, dimmed as unavailable, read-only, “move along, nothing to do here…”. Nothing I did would change this, Est. Revenue was always read only.

I had quite deliberately already changed the “IsRevenueSystemCalculated” field default to “User Provided”, and this is the value it correctly showed up on the form.

In general this organisation will be quoting their clients as part of longhand written proposals or formal RFPs for very flexible services work which does not lend itself well to using the Product Catalogue, although they may do that later for standard, fixed price, “commodity” services they offer. So their Opportunities will be used to manage the sales pipeline but not to figure out the values for them, and user provided figures are the most sensible way to handle this.

If I changed isrevenuesystemcalculated to “System Calculated” it correctly added in a value (£0.00 at the moment since I have added no line items) and it remained disabled, as it should. Change it back to “User Provided” and nothing happens, still read-only and unavailable. Currency was set, no Price List was added (and none needed as there would be no line items). All very strange.

What else could be causing this?

I had included Est. Revenue in the form header, and thought this might be causing the problem in some way because it would be a read-only field, but I removed it and it made no difference. I checked and rechecked that there were no scripts or anything else that could be affecting this behaviour. Nothing.

But one other thing that I had changed from the default OOBE is the way the field was displayed – rather than a pair of radio buttons I had chosen to save some space on the form by showing isrevenuesystemcalculated as a picklist since the user would only very rarely want to change this.

Switching back to radio buttons fixed the problem.

Why would this be buggy?

So it seems that the built-in functionality which is triggered by changing this field and updating the Est Revenue field accordingly is not particularly flexible. As far as my testing shows, it looks like it explicitly uses the status of the radio buttons as part of the DOM, rather than the underlying value of the bit field to figure out the state of the user selection in the isrevenuesystemcalculated field.

I would argue that this is a bug, since it should be possible to display this field in any way I choose. Albeit if I chose a single check box the label would need to be more explicit than simply “Revenue”, and this would not work as tidily in any case as selecting or clearing a checkbox does not trigger an “onChange” event until the focus changes (ie you click away from the field).

Have you had any similar experiences where the built-in functionality is very picky about how things are displayed, or where changing the default forms has affected things in strange ways? Please feel free to share via the comments.

CRM 2011 now works with SharePoint online

I don’t usually blog unless I have something original to say, and try to avoid becoming just another echo in the blogosphere, but felt this announcement is important enough to merit it.

You can now properly integrate CRM 2011 with SharePoint online – in other words the SharePoint list component can be installed and configured properly and the previous problem whereby you could not get the SharePoint online server to serve up .htc files which are a vital component of the “seamless” document management experience enjoyed by on-premises customers has been resolved.

This also means by extension that you now use CRM online with SharePoint 2010 online (eg via Office 365) for a totally cloud-based setup. Note this is supported for SharePoint 2007 and 2010, but only 2010 gives the completely integrated look and feel inside CRM.

Thanks to Donna Edwards for tweeting this article by Eric Boocock: CRM Integration with SharePoint online is here

Previous problem is described and documented very well by Jukka Niiranen here: Office 365 launches without Dynamics CRM integration

More information on how to setup SharePoint to work with CRM 2011 is on MSDN: