Figuring out shares in the PrincipalObjectAccess POA table in CRM

Not a long article, this one is to support my recent presentation at the UK CRM User Group about security design and performance. I mentioned that when you are trying to figure out  what is going on in the PrincipalObjectAccess (aka “POA”) table, it can be useful to separate out things like Users and Teams, and furthermore to separate Owner Teams from Access Teams.

I also find it helpful to join to the right tables to get friendly names rather than go blind on GUIDs. Note: in the example code below I have pulled in first names for users to keep to shorter columns for demo purposes, in larger Orgs you might need full names, but it depends on what you are trying to troubleshoot.

I am excluding some object types from the results, because every user has their own User record and User Settings record shared with them. These are inevitable and not useful to most troubleshooting scenarios.

Of course, for some scenarios you will be trying to figure out why some users have access to records of a specific entity, in which case you might want to replace “POA.[ObjectTypeCode] NOT IN (8,150)” with an IN or an equals.

SELECT TOP 1000
CASE WHEN POA.[PrincipalTypeCode] = 8 THEN ‘User’
WHEN POA.[PrincipalTypeCode] = 9 AND TEAM.[TeamType] = 0 THEN ‘Owner Team’
WHEN POA.[PrincipalTypeCode] = 9 AND TEAM.[TeamType] = 1 THEN ‘Access Team’
ELSE ‘Other’ END AS ‘PrincipalType’,

COALESCE(USERID.[FirstName],TEAM.[Name]) AS PrincipalName,
POA.[ObjectTypeCode],ENTITY.[OriginalLocalizedName], POA.[ObjectId],
POA.[AccessRightsMask],POA.[InheritedAccessRightsMask],POA.[ChangedOn],
POA.[PrincipalTypeCode],POA.[PrincipalId]
FROM [MyOrg_MSCRM].[dbo].[PrincipalObjectAccess] AS POA

LEFT OUTER JOIN [MyOrg_MSCRM].[dbo].[SystemUserBase] AS USERID
ON POA.[PrincipalId] = USERID.[SystemUserId]
LEFT OUTER JOIN [MyOrg_MSCRM].[dbo].[TeamBase] AS TEAM
ON POA.[PrincipalId] = TEAM.[TeamId]
LEFT OUTER JOIN [MyOrg_MSCRM].[MetadataSchema].[Entity] AS ENTITY
ON POA.[ObjectTypeCode] = ENTITY.[ObjectTypeCode]

WHERE POA.[PrincipalTypeCode] IN (8,9) AND POA.[ObjectTypeCode] NOT IN (8,150)
/*User and Team (8,9) shares, not including shares to User or User Settings (OTC 8,150)*/

I am sure there are SQL gurus out there who could improve on this code. I also leave it as an exercise for the reader to add a join to the SystemUserPrincipal table to reverse engineer which users belong to which teams, so you can end up with a list of which users have access as themself or as a team member, in a single query.

Decoding the bit masks

In some cases, just being able to find rows in the POA that prove why a user has some kind of shared access to a record is enough. Knowing whether it is explicit or inherited, seeing if it is the user or an owner team or access team is usually enough to point you in the right direction to check or change your configuration.

If you do need to figure out exactly what rights have been shared, you need to decode the bit mask, and the table below is a quick reference to what the bits mean. You might also like to use Scott Sewell’s "POA Decoder Ring" spreadsheet if you don’t speak binary like a native: Unmasking CRM’s PrincipalObjectAccess table.

Bit value Meaning
1 Read
2 Write
4 Append
16 Append To (with shares, this always goes with Append, so treat them together as 20
32 Create. Of course this makes no sense – you can’t have permission to create a record that is already there, so you should not see this bit in use “in the wild”
65,536 Delete
262,144 Share
524,288 Assign
134,217,728 “This access is inherited” – added to the value of the share on the parent record and used for the child records when Share cascading behaviour is turned on.

One value you will see quite a lot in the InheritedRightsMask column is 135,069,719. This is basically all of the bits in the table above added together, except 32 (Create). You will see this for child records when Reparent cascading behaviour is turned on, with the owner of the parent record as the principal. It effectively allows the owner of the parent record to do anything they like to the child record, albeit always filtered by their security privileges (so if they do not have the rights to delete any records of this entity, they do not get to do that to this record either).

This same number will also show up if someone explicitly shares a record and ticks every box, then this share is cascaded down to child records. In real-world use I find that does not show up very often. Users rarely share records and give people access to do anything, it is usually more specific, eg to grant write and assign rights. Note: if a user does not have a privilege for a record, they cannot share that privilege to someone else, the check box would be disabled in the Share dialogue. So if Alice opens a record that she can read, but not delete, and shares that record with Bob, Alice will not be able to select the checkbox to share delete rights with Bob (which is good because it means it is obvious to the user that they cannot do this).

Microsoft Dynamics CRM 2015 Exams

Some of the details of exams for Dynamics CRM 2015 are now available.

Take careful note of the “Skills measured” sections for these, as they are not exactly aligned to the equivalent 2013 exams in all cases. Courses for these are all e-learning, available via the Dynamics Learning Portal (DLP) for customers and partners signed up to appropriate support plans. Some learning providers may also offer these as a “blended learning” experience, with a classroom instructor to walk you through the course and address areas of difficulty and answer questions. It remains to be seen whether this is a popular option for many people or not.

MB2-704 Microsoft Dynamics CRM Application

Slightly strange title on this one. Watch out for the fact that this includes some aspects of social listening, so if you are not using that in your organisation you need to do some good reading on the subject.

MB2-707 Microsoft Dynamics CRM Customization and Configuration

Looking at the skills measured, it seems that the only new areas covered are calculated and rollup fields. There seems to be no mention of hierarchical security, or configuring sales or service modules (arguably the right choice, as those are possibly business area manager tasks, rather than initial customisations).

MB2-706 – Microsoft Dynamics CRM Online Deployment

Strangely the skills measured for this exam (as of 28th Jan) have lots of overlap with MB2-708, including knowledge about installing the server.roles, SSRS and ADFS for example (I get that ADFS can be used for authentication with online, using federation, but the description sounds more like normal IFD config to me). You will also need to know about online admin of users in the Office365 platform, or Microsoft Online Services as they prefer us to call it these days.Integration with Exchange, Lync and Yammer are included too.

Upgrades, troubleshooting, VSS and data encryption all seem to include topics that would only apply to on-premises environments. This is a truly confusing exam outline, it will be interesting to see what it is like in reality.

MB2-708 Microsoft Dynamics CRM Installation

This one is aimed at skills needed to implement and manage CRM On-Premises deployments, including things like configuring IFD, high-availability options and troubleshooting.

MB2-720 Functional Application in Microsoft Dynamics Marketing

Focussed entirely on MDM rather than the limited marketing functionality in CRM itself.

I’ll update this post with details of other exams as they become available.

CRMUG UK Scotland and North of England Inaugural Meeting

This post has been moved to the official CRMUG UK blog at: CRMUG.UK/20141120 (this page uses the meeting date in YYYYMMDD format as a permanent short URL).

Dynamics CRM 2015 YouTube Videos

The Dynamics CRM team have been busy preparing a series of videos about CRM 2015 to make sure people are ready for some of the great new features in this next release. I am sure they will add more to this as time goes on and the release date gets closer.

First up it’s Matthew Barbour talking about Upgrading from Microsoft Dynamics CRM 2013 to 2015 (previously known as “Vega”). Note some of the key points, such as the path from CRM 2011 (with UR6 or UR14+) to CRM 2013, then SP1, then upgrade to CRM 2015 (ideally via migration rather than in-place upgrade).

Upgrading from Microsoft Dynamics CRM 2013 to 2015

Next – did you know that in CRM 2015 you can now use Field Security on out-of-the-box fields, rather than only custom fields? This quick video walks you through this excellent step forward.

Field Level Security in Microsoft Dynamics CRM 2015

Business Process Flows (BPF) also have some key improvements compared to their first outing in Polaris and later update in CRM 2013. Branching logic and more access via the client API are the main points. Find out abut using BPF in this short video.

Business Process in Microsoft Dynamics CRM 2015

I hope you find these useful and instructive, and help to prepare you for some of the things that are just around the corner with the new release of Dynamics CRM 2015.

CRM Masters Spring Special Offer

CRM Masters logo small

 

We have a limited time special offer discount on our Dynamics CRM training at CRM Masters.

Book on one of our June or July courses now and get £45 off

Register for any of our scheduled Dynamics CRM training courses before the end of May for the special early bird price of only £350 per person per course.

You can book as many people on as many courses as you want, and get the discount for each person.

In order to give you the best possible training, seats on our custom CRM training courses are strictly limited, so hurry to book your place while they are still available.

This offer applies to four of our courses: Update Your Skills to Microsoft Dynamics CRM 2013, Managing Business Processes with Microsoft Dynamics CRM 2013, Visualizing Microsoft Dynamics CRM Data and What’s New in the Leo Release of Microsoft Dynamics CRM 2013

Training for Dynamics CRM from CRM Masters

CRM Masters logo small

I’m excited to announce that I’ve partnered with Feridun Kadir to set up a new Dynamics CRM training business, CRM Masters Ltd.

We have a schedule of training courses that will give you the practical knowledge that you need to implement, customize and maintain CRM 2011 and 2013.

Our courses are designed to give you highly-focused instructor-led training to cover topics you won’t find on other courses.

Please review our list of Dynamics CRM courses and if there is an area that you feel you would like training in that you don’t see please let us know.

Save the Date CRMUG UK Meeting 28th November

Registration is not open yet, but as advance warning, the next CRM User Group meeting for the UK is planned for:

28th November 2013 at Microsoft’s London Victoria Offices.

Add to calendar  Click to add the next CRMUG meeting to your Outlook calendar

Agenda

Agenda is yet to be confirmed, but loosely speaking will be a 9:15 registration and coffee for a 9:45 start.

After a mid-morning coffee break we plan to have two parallel speaker sessions for people to choose the topic of most interest to them. At least one of these will be followed by a related “round table” discussion of Q&A and audience participation.

After lunch we will all get back together for a further general session before “The Marco and Cass Show™” – also known as the Microsoft CRM Roadmap presentation. Given the planned release time frame for “Orion” this session alone is probably enough reason to travel all the way to London for this CRMUG meeting.

We will round the day off with an Experts Panel to try and answer any questions which have occurred to you during the earlier sessions, before closing at approximately 4pm.

Where is that again?

Microsoft UK
Cardinal Place
80-100 Victoria Street
London
SW1E 5JL

That’s a 2 minute walk from Victoria tube station, serviced by the Victoria, Circle and District Lines.

Of course I will post once the official page for registrations goes live.

What do you want from CRMUG?

Following our recent CRMUG UK committee meeting, I took on the role of “Vice Chair for Programme” so I need to figure out what things our members want to get out of our events, what sessions will be of most interest, general applicability and so on.

What do you want to “share and learn” at the CRM User Group? Are there any topics you particularly want to hear about?

Do you have a great customer story to tell, with some inspiration or ideas for others to take away and use to get more out of their CRM system? Could you / would you speak for 30 – 45 minutes about your CRM deployment project and what you got out of it?

If you have something to share, or want to find out about a particular aspect of using Dynamics CRM, please let me know in the comments so I can start to assimilate ideas to put together another great event, for users, by users!

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

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 »

Copy2Contact gets contact information into Outlook and CRM

I discovered a really handy utility a while ago called Copy2Contact but have only just got around to writing this article about how I use it to take unformatted information and create CRM Contact data from it. Copy2Contact sits in the system tray and allows you to select a chunk of text in pretty much any application, hit a shortcut key and it will create a new Outlook contact using that information (I use Ctrl+C, C, so this is just a “double tap” on a normal Ctrl+C for copy). Typically this might be text in an e-mail but it does not have to be – it could be from a web page, Word document, pdf file or anywhere else really.

Better still, it uses some pretty clever algorithms to figure out which bit of the text is the name, job title, company, address, telephone, mobile, email and so on. Any data it can’t interpret it adds to the notes section so you can a) see what it was and b) copy and paste it somewhere else if needed.

It’s not perfect, and sometimes gets bits of the information in the wrong places but it is a heck of a lot quicker than creating a new contact by hand then copy and pasting information across by hand, which is usually very painful. While the new contact is still open you can use the program’s “Utils” menu to swap some things round which may be commonly mistaken, such as name<>company or job title<>company, which is easier than copy / pasting these via notes to get them in the right places.

A very common use for this is with someone’s email signature as the source text. Select, hit your shortcut and you have a new contact record pretty much ready and waiting to be saved.

Copy2Contact is not free, but I have easily earned back the $40 cost of the personal edition through the time I have saved by using this. There is a Pro version as well which has additional features to help do things like consistent (US style) formatting of phone numbers, capitalizing city names and so on which I don’t really feel the need for.

To be absolutely clear: I have no affiliation with Copy2Contact and have my own paid-for copy of their software, I have not received any freebies or review copy or anything else in order to write this article.

You can try the software for free for 14 days from the trial download page to see if it suits you. There are versions for Outlook, salesforce.com, Google apps and more PC-based tools, as well as Blackberry  and iPhone/iPod/iPad.

Read on to find to more about using Copy2Contact for capturing data for CRM»

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»

Exam tips for MB2-866 Customising CRM 2011

I recently passed the Microsoft exam MB2-866 – Microsoft Dynamics CRM 2011 Customization and Configuration, and I wanted to share a few thoughts about my experience, and hopefully help others who also want to gain this certification.

Of course, like every other exam this was done under NDA, so I can only give some general thoughts and not discuss specific questions or answers.

All change

I find many exams for a new product version like this seem to deliberately ask lots of questions about the new or changed stuff rather than the old elements that have remained largely the same (this was certainly true of the MCAS exams for Office 2007). I can only assume this is to avoid people coasting through on old knowledge from CRM 4, although it does seem to risk not testing some of the core knowledge.

Obviously some features are unchanged and some questions still cover them, but the feeling is that to pass the exam you really need to have studied the new material and properly practiced using these new skills. Of course, in the real world of actually getting on and using CRM 2011, knowledge passed along from previous versions is all very useful as well.

Are we nearly there yet?

In order to avoid worrying about running out of time, what I tend to do is make some very quick and rough calculations when the information comes up at the beginning about how many questions there will be and how much time is allowed. If it’s easy enough to work out in my head, I figure exactly how much time per question. If not, I just figure out for a bunch of them – however many makes the maths easier, say 5 or 6, and likewise round the time down a bit if it makes it easier to figure out, which also gives you some slack time at the end.

If you have 75 questions , you have 1/15 of the time for every 5 questions, and 15 is easy to divide into hours. So for a two hour exam that’s 8 minutes for every 5 questions (15 goes into 60 four times, so into two hours 8 times). Read more exam-taking tips and some of the important changes to remember in CRM 2011»

Course 80295A Extending MS Dynamics CRM 2011

An an update to my earlier post about the official MOC courses available for instructor-led training for CRM 2011, I have just found that the details of the course “Extending Microsoft Dynamics CRM 2011” have now been released, although the course itself won’t be available for another week or so. The course page is here:

MS MOC course 80295A Extending CRM 2011

This will be a three-day course as expected, and includes lots of topics such as:

  • querying CRM by various methods, including LINQ queries, FetchXML and OData,
  • developing custom workflow activities and plug-ins,
  • application events and the xrm.page model
  • customising the Ribbon
  • publishing web resources including Silverlight applications

No news on a release date for the related exam yet, but of course lots of people want to go get the training in order to be able to bring their skills up to date for actually getting on with the job of developing for CRM 2011, and not necessarily in order to pass an exam.

(and for fellow MCTs, yes, this course is available in the download centre so you can start preparing)

CRM 4 MCITP Certification tracks updated

The exam requirements to become a Microsoft Certified IT Professional (MCITP) in Applications for Dynamics CRM 4.0 have been updated slightly. Now you will be able to take (or use an existing pass in) exam 70-680 Configuring Windows 7 instead of the out-dated 70-620 Configuring Windows Vista Client. Hurray!

Dude, where’s my transcript?

The only strange thing here is that whether you have already passed this exam or take it now, it won’t count towards making you an MCITP on CRM 4 until September. Why would that be? Answer: because internally at Microsoft Learning, the matrix of which exams count towards which qualifications is handled by the Transcript Database, and there is a planned update to that taking place in September.

This means that any exams you take now which are not already featured in the database / matrix simply don’t count towards anything, and will not show up on your official MCP / MCT transcript that you can access through the Microsoft Professionals portal or share with anyone else. Essentially, you can’t prove you have passed any of the new CRM 2011 exams, for example, because they don’t have a pigeonhole for that yet, so “computer says no”.

Update October 2011: They have fixed one part of the transcript database so it does at least show up the exams you have passed, but for MCTs it is still frustrating as the whole Dynamics range of products is shown in strange ways. I can apparently teach subjects in which I have no knowledge at all, while on the other hand I can’t cover courses for which I have passed the relevant exam. Hopefully this will be largely resolved when they finally release the requirements for the CRM 2011 tracks.

What about the tracks for installers and developers?

While this is only a small change to the Applications track, I wonder if this is a sign that the other tracks will follow, such as allowing exams in Exchange 2010 rather than 2007 for the Installation track.

This also bodes well for the MS Dynamics CRM 2011 Certification Tracks and Exams which look more likely to use current versions rather than older ones, which will make them more relevant and achievable for a longer time into the future.

Update October 2011: Yes it was a sign of further changes! The Installation and Deployment track now includes 70-432 (SQL Server 2008 Implementation and Maintenance) and 70-431 (SQL Server 2005) as an elective alongside the Exchange 2007 and Windows Server 2008 exams. This looks promising for people wanting to qualify as an IT Pro in CRM 4 using 70-432 and being able to count this towards CRM 2011 too (but not the SQL 2005 version which is not supported for CRM 2011).

Does this change make anyone out there an MCITP in Applications or Installation who was not already? What other exams do you think should be included as electives for the CRM 4 or 2011 tracks? Let us know your thoughts in the comments.

MS Dynamics CRM 2011 MOC training courses

MS Dynamics logo

Update Feb 2012: I’ve written a much newer article bring up to date all the information about Microsoft Dynamics CRM 2011 training courses and exams in one place here: CRM 2011 Training Update 2012

As a follow-up to my previous post about the new Dynamics CRM 2011 exams and certification tracks, this article describes the official courses available to help prepare you for gaining CRM 2011 certification, or upgrading your skills from a previous version, or simply to find out more about the software to help you do your job without actually taking any exams.

All the courses described below are available now on the courseware download library (for MCTs) and on PartnerSource (for suitably certified MS Partners), except where stated.

Microsoft Official Courseware (MOC) courses for CRM 2011

Although there are four main exams (Applications, Customization, Installation, Extending) there are many more courses, some of which are already released, others around the corner. All of these are discussed in this article. Find out about MOC courses available for Dynamics CRM 2011»

MS Dynamics CRM 2011 Certification Tracks and Exams

MS Dynamics logo

Update Feb 2012: I’ve written a much newer article bring up to date all the information about Microsoft Dynamics CRM 2011 training courses and exams in one place here: CRM 2011 Training Update 2012

I see lots of people asking about the CRM 2011 certification track, exams and courses and although most of this information is available, it is not very well linked together. So, to try and get things straight and written down in one place, here’s my take on “how to get certified in CRM 2011”.

Individual CRM 2011 exams

There are three core exams already available for CRM 2011, very similar in concept to their 4.0 equivalents, and the details of what is required for each one are on these pages (and their various tabs for skills measured, preparation materials etc):

MB2-866 – Microsoft Dynamics CRM 2011 Customization and Configuration

MB2-867 – Microsoft Dynamics CRM 2011 Installation and Deployment

MB2-868 – Microsoft Dynamics CRM 2011 Applications

The fourth exam “Extending Dynamics CRM 2011” is not yet available, but it is planned for release in August, and I’ll update this page once details are up on the Microsoft Learning website. Update: the details for Course 80295A Extending MS Dynamics CRM 2011 are now available.

Read more about the available certifications for CRM 2011 and what you need to pass to achieve each one»

Usual CRM Update – Rollup 11

Roll-up, roll-up, read all about it. Yes, the usual updates for Dynamics CRM 4 have been released and you can download the components and versions you need from this page. The knowledgebase article kb981328 has the detailed information about Update Rollup 11 for Microsoft Dynamics CRM 4.0, including the prerequisites:

You must have Microsoft Dynamics CRM 4.0 installed to apply this update rollup. Update Rollup 7 is a prerequisite for Microsoft Dynamics CRM for Microsoft Office Outlook and Microsoft Dynamics CRM Data Migration Manager.

Update Rollup 1, Update Rollup 2, Update Rollup 3, Update Rollup 4, Update Rollup 5, Update Rollup 6, Update Rollup 7, Update Rollup 8, Update Rollup 9 and Update Rollup 10 are not prerequisites for the server section of Microsoft Dynamics CRM.

Additionally, you must have Microsoft .NET Framework 3.5 Service Pack 1 installed to apply Update Rollup 11. To obtain Microsoft .NET Framework 3.5, visit the following Microsoft website: Microsoft .NET Framework 3.5 Service Pack 1 (http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&DisplayLang=en)

Note that for the server component there is no prerequisite, this rollup can be installed on a base installation (plus MUI if you have multiple languages installed). For the Outlook client you need rollup 7 (same goes for the data migration manager), and for new client installations you can just install the Outlook CRM client with rollup 7 already slipstreamed in. I must admit I find it annoying that the client install is not set up with a proper manifest to trigger UAC elevation – you have to remember to do “run as administrator” (if you are not using the deployment management tools, as many small businesses may not bother to do). The fact that programs prompt me rather than having to remember to do this is one of the reasons I like UAC (since I never run my client machine with local admin rights).
Read about UR11 highlights and the (old) new help files»

Outlook CRM client synchronisation explained

Outlook synchronisation white paper

Another recent find was this page with a link to a pdf file “nuts and bolts” white paper about Outlook synchronisation. This covers the basic concepts effectively, but also drills down into some of the details about how and when exactly the synch process takes place (some things are effectively immediate, others are queued up) This helps answer those peculiar edge-case questions which come up from time to time about what happens if you create a record here, update it there, share it to someone else then delete the original, or mark it as complete, or some other strange scenario. For example:

An E-mail that is deleted in Outlook will not be deleted in CRM at the next Outlook Sync
An E-mail that is untracked in Outlook will be deleted in CRM at the next Outlook Sync if the user designates

So you can track an email into CRM then delete the copy to keep your mail file size down, and the deletion does not “propagate” to CRM. It is this sort of behaviour which makes perfect sense when you think about the implications, but calling the process “synchronisation” seems to confuse many users as they expect that to mean “keep both copies entirely identical”.

Similarly this table explains what happens when you (or someone else deletes something in CRM which is linked to an item in Outlook:

Entity  Behaviour after deletion in CRM
Contacts A Contact that is deleted in CRM will be deleted in Outlook at the next Outlook synchronization if the Outlook user is not the CRM Owner of the Contact. If the user is the owner in CRM, then the Outlook contact will be unlinked after synchronization.
Appointments An Appointment that is deleted in CRM will be deleted in Outlook at the next Outlook Sync if the Appointment Start Time is in the future.
Tasks A Task that is deleted in CRM will be deleted in Outlook at the next Outlook Sync if the Task has not been completed.
E-mails An E-mail that is deleted in CRM will not be deleted in Outlook.

The distinction between synchronised Contacts I own or do not, Appointments in the future or the past, Tasks which are open or completed, all these details matter in real-word implementations. This document is definitely worth a read, then keep a copy handy for when you need the definitive answer for an awkward situation.

Quick CRM customisations

I recently found some interesting (and easy) customisations for Dynamics CRM 4 that I though I would share.

Linking to LinkedIn

I’m using Office 2010 with the CRM client installed, and I’m also using the LinkedIn Social Connector for Outlook. I had a few problems at first with Outlook 2010 beta, but a quick uninstall of the social connector component and reinstall or the latest version of the OSC beta as per this Microsoft article did the trick. It’s not something I rely on hugely but it can be handy sometimes. Even more useful would be to get information about my CRM contacts directly. This can be done for Accounts (ie companies) as explained in this article by CRM MVP Marco Amoedo. I must get round to going through the solution to see how it might be possible to modify it for individual Contacts, although I expect getting the results to match the right person might be the tricky part.

Copying addresses from Accounts to Contacts

Maybe you imported a load of data and have Contacts with no address, or you have Contacts who work at sites other than the main head office. Either way it would be great to be able to copy any of the multiple addresses associated with an Account directly to a Contact. I found a nice little solution to do just that on the BusinessNone blog. The html code (which is attributed to Microsoft’s Pierre-Adrien Forestier) needs to be published on your web server then simply called from an iFrame on the Contact form.

This presents all the addresses associated with the Contact’s parent Account so you can choose between them with a click of a button. Note that the “Address name” field is used here to distinguish between the sites. I have often seen this field completely overlooked (or even removed from forms) or misunderstood (being used for the name of the premises or building, or simply the first line of the address). The Address Name is simply “how do you refer to this address?” – head office, New York store, Dallas factory, LA regional call centre or whatever.

Visit this page to download the iFrame source for Address Picker (Ben Vollmer’s Skydrive, Hotmail / Windows Live login required) Note: you need to follow the link to the Skydrive page then download, you can’t right click the link here.

Do you find these useful? Do you have any other favourite quick and easy enhancements for CRM? Let others know in the comments below!

Dynamics CRM rollup 10 and SDK update

Update Rollup 10

First, the obvious regular update. MS Dynamics CRM 4.0 update rollup 10 was announced a couple of weeks ago and the various platform versions and components can be downloaded here. A few minor bug fixes, but this one does not seem to be setting the world alight. Rollup 7 is a pre-requisite as with the last couple; this is clearly seen as the new baseline, but it would be good to see an updated client install package with the rollup already slipstreamed in (as they did with rollup 7). Hopefully for most people it is becoming much more routine to get these rollups tested and installed but it is still annoying for new client installations to have to put the client on and then immediately patch it.

CRM 4.0 SDK version 4.0.12

There is also a new CRM SDK version 4.0.12 available to download, and there are some useful articles about it on the official CRM blog on MSDN and David Jennaway’s MSCRMUK site. Slightly annoyingly the self-extracting CAB file does not have the release version in the filename or in the file version info, it is simply “CrmSdk4.exe” so not obvious which is the latest version when you have multiple downloaded versions lying around. Ho hum, just a quick rename needed.

The xRM stuff is new, there are some Visual Studio templates and CSS stylesheet sample files, but lots of things are unchanged (such as the UX style guide, still on v1.0 from November 2007).

There are some other nuggets too – for example the old dynamicpicklist sample code and documentation has been deprecated and replaced by a newer “dependent picklist” sample instead which deals with three levels of dependency category > sub-category > type and is more robustly written to handle greater flexibility such as non-continuous sets of choices for the subcategories and items which may be available for more than one major category selection.

I also noticed this week there is a “User Interface Integration SDK for Microsoft Dynamics CRM 4.0” for developers writing standalone applications which need to get information to or from CRM, described in the overview as:

The User Interface Integration Software Development Kit (SDK) for Microsoft Dynamics CRM 4.0 is for developers and system customizers who want to build and deploy composite desktop applications based on Microsoft Dynamics CRM 4.0. Composite desktop applications are useful when there is a need to bring information from different systems into a unified application for employee use. This SDK provides an architectural overview, the entity model, and how to register and host applications and workflows in your composite desktop application. Sample code and walkthroughs are provided to guide you through the capabilities.