What’s new in CRM 2015 SP1 for developers, customizers and admins

When there is a new release for CRM the SDK publishes a what’s new.  I recommend CRM developers read this, I have written a blog post about the subject

Why developers should read the CRM SDK what’s new

Here is my quick review of the last one

CRM 2015 – Hosk takes a peak at the CRM 2015 SDK

CRM 2015 and this update and with this particular update Microsoft seem to be adding lots of useful functionality for developers rather than front end functionality.  This is one of the major development releases for Microsoft Dynamics CRM since I have been a CRM developer.

The consolidation of functionality CRM 2015 is a good idea and will be beneficial to CRM suppliers and CRM developers.

The documentation for CRM 2015 SP1 is excellent.  There are a lot of developer and subtitle updates and added features, all of which are well documentation so thumbs up Microsoft.

My goal of this blog is to summerize the information of the CRM 2015 SP1 update

  • Give useful links
  • condense information
  • Hosk thoughts on the functionality

Useful links for Administrator’s and Customizers

Below is a collection of links about CRM 2015 SP1 in general and not focusing on the Developer enhancements.

CRM Online 2015 Update 1: official pre-release content is here!

This what’s (new is good for non Developer related highlights)

CRM 2015 Update 1 videos

What’s new for administrators and customizers in Microsoft Dynamics CRM 2015 and CRM Online

What’s new for developers

There is so many juicy news bits of functionality, I recommend you read the what’s new for Developers in it’s full glory.

What’s new for Microsoft Dynamics CRM Online 2015 Update 1

Upgrade considerations

This technet article was interesting

Before you upgrade: issues and consideration

IE 10 and 11 are only supported in CRM 2015

Those upgrading from CRM 2013, in CRM 2013 CRM had base and extensionBase tables but these are merged.  There is a section called

Base and ExtensionBase table merge cannot be deferred (if you didn’t know Microsoft got rid of the ExtensionBase table and now only have one table for each entity)

To find out the amount of table data that will be merged during upgrade, see Determine how much ExtensionBase table data will need to merge.

This is a great example why you should never write customizations (web services, reports or plugins,  I’m sure there will be some developers who have written reports based on the extension and base table which will all break when upgrading to CRM 2015.

The page states in place upgrades are not supported for these products (which is worth keeping in mind)

  • Microsoft Dynamics CRM 2013 Reporting Extensions (on-premises only)
  • Microsoft Dynamics CRM 2013 Email Router
  • Microsoft Dynamics CRM List Component for SharePoint Server

Updating CRM 2015 online

I will admit to not knowing if this was changed or if I have just read about it.

Manage Microsoft Dynamics CRM Online updates

The technet article mentions the functionality of delaying and choosing a time to schedule your CRM update.  The bottom line is you have to approve the update before it is applied.

The article mentions you can choose not to deploy an update.  I have wondering what happened to CRM online instances which automatically updated and the chaos in panic testing this would bring about with a set deadline in place.  Some CRM organisation have lots of customizations need a lot of testing.  so it can be some time before a company wants to apply a CRM update

What’s new for developers

My initial plan was to review a lot of the changes in a series of blogs but I noticed today that CRM MVP Daniel Cai has already done it.  He has done a great job, awesome work.  So I changed my plan to build on his good work rather than duplicate it.

New SDK Capabilities – CRM Online 2015 Update 1 release

Daniel has written 9individual blog posts which go into detail about the new functionality and with the all important screen shots.  Daniel has done such a great job there isn’t any point in me doing it again.  I have linked to his blogs and given a quick summary of the functionality.

I recommend all CRM developers read Daniels blog links to get a good idea of the new functionality and don’t just read my quick summary

Fantastic functionality which allows you to create alternative Keys.  Alternative key doesn’t make it initially obvious what the functionality does (to me anyway).  It allows you to create a new unique identifier for a record made up of a combination of columns (e.g. think composite key maybe foreign key).

The columns used to create the alternate key must be either String/Integer/Decimal.

CRM will index these in the background and you can monitor the creation –  Monitor index creation for alternate keys

The result of this means it’s easier to create/update records in CRM and in applications integrating with CRM.

When I read about Upsert I thought it was a joke, Upsert.  The functionality although sounds funny is a great idea.  The premise is it’s an Update and insert.

When using an upsert the functionality checks to see if the record exists, if it does it updates the record. If the record doesn’t exist it creates the record.

Simple but very effective because for integrating applications it avoids the round trip of checking to see if records exist and then choose to create or update.

Another pragmatic piece of code.  This improved functionality allows standard calls to do things like assign values, setting state, before the update you need to use special messages.

This post will give you more details

Perform specialized operations using Update

CRM Online instances can turn on plugin tracing logging, which creates a trace file you can look at.  Very useful considering you couldn’t view any logs before (because you can’t get onto the server).  This would allow you to view the values used in your plugins.

Entity change tracking allows you to detect if the data you retrieve has changed.  This would enable you to do a retrieve and only return the data which has changed from your initial retrieve.

This page from Microsoft will give you more detail and the title explains it’s intended use

Use change tracking to synchronize data with external systems

More CRM integration changes.  This functionality allows you to batch a bunch of actions into one transaction.  You can roll the transaction back if any of them error.  Microsoft Calls this Multiple message execution

Very useful for code integrating with CRM.  Read more on the CRM SDK – Execute messages in a single database transaction

This is a biggie.  This functionality tells you if the data you are going to update has been changed in between you retrieving and updating the information.

It uses a RowVersion value to see if the value being updated is the latest and if so it will throw an error, which means you can retrieve the latest and then update.

CRM SDK link – Reduce potential data loss using optimistic concurrency.

You can now check what version the CRM server is running on.  This offers you the ability to create branches in the code to use different functionality.  This could be useful in commercial solutions or maybe creating solutions to work across different CRM versions.

Try the Web API preview

This is interesting, they are offering you a preview but you shouldn’t use it in production environment (It’s not finished yet I guess).  You might be thinking, why do I care about a preview.   The new web api uses OData v4, OAuth 2, and JSON

It’s this line which intrigues me

The preview release allows you to give feedback and get an understanding of what is coming in a future release. The Web API preview shouldn’t be used on production environments and no support is provided. For more information on the next endpoint,

Learn more here – Web API Preview.

Improved Sub Grid Javascript

You can change the selected view for the Javascript and get the entity references easier

Non developer improvements

A quick summary of what’s in here

What’s new

Improved CRM navigation

quick video

The change now shows all the potential links when you click on an area e.g. sales.

So where before you had to scroll along to see the options, now they are all displayed

The recently viewed is a global tool (e.g. available in many parts of CRM) allows you to view recently viewed records and pin items

Themes

You can change the colours and add a logo.  This is like changing your theme in windows.  It will change all the colours of the bar

Watch a short video (2:45) about themes

Theming post from powerobjects

Onenote integration

Track emails with folders

This is a good productivity improvement.  It allows you to track emails in CRM by copying them to a folder.

folder level tracking

Export to Excel

It shows how much CRM developers use excel to export and import data by the fact I was quite excited by this enhancement.

This has been completely rewritten and you can now import/export 100000 instead of the previous limit of 10000.  This is excellent but strikes me as one of those changes which should have be done a while ago but lets not complain because its in now

New export to excel functionality

CRM Gui Customization changes (non code)

This page is very useful

What’s new for administrators and customizers in Microsoft Dynamics CRM 2015 and CRM Online

This page above includes all the changes and updates for non code customizations, which I sometimes call GUI customizations.  It does also mention some config settings

Older than X

this was limited to months but now you can specify minutes, hours, day, week, years.

Older than 5 minutes

Older than 1 year

Older than 2 weeks

Daniel Cai has written a blog post on this if you want to learn more New Query Operators

Date only field

CRM 2015 SP1 can have Date only fields and Time zone indepdent.  This is different from creating Date and time fields but only displaying the date.  Why did it take so long to add this?

Clear field with Business rules

Microsoft keep adding improvements to business rules which is good and need.  The next improvement allows you to clear fields.

Auto Creating CRM records not just for cases

Previous versions of CRM you could create Cases using emails and other social posts.  The documentation says other social messages but for most people this is emails and perhaps phone activities.

This functionality has been extended to sales and marketing.  So emails and other activities can create System or custom entities.

Rollup fields can use AVG

Rollup field can use AVG in calcluations

Mobile phone and tablet apps have been improved and I will expect this to be mentioned in every new release for the forthcoming future.

Final thoughts

A theme of this update is synchronizing CRM with external systems (applications, web services, 3rd party software).  Microsoft have made it much easier and quicker to synchronise data between CRM and other systems whilst adding functionality for checking data (e.g. to avoid overwriting already changed data)

Microsoft shows you how the changes work together

Synchronize CRM data with external systems

These two images from the page above succinctly show you the potential improvements

Before CRM 2015 SP1

After

I can understand these improvements are very useful but what puzzles me slightly is the sudden motivation to add this functionality into CRM 2015.   If anyone knows the reason or has an idea please add a comment.

Most of the CRM projects I have worked on have been extremely customized and used Microsoft Dynamics CRM for XRM developer.  CRM was the framework to build a solution for the customer.  The new updates in CRM 2015 SP1 take this a step further by making it easier to not only create the main solution but create applications to integrate with the CRM solution.

This fits in with Microsoft’s recent tactics of acquiring applications/software and integrating them with Microsoft Dynamics CRM (Parature, Unified Service Desk, MDM, Social engagement).

Why the advanced find is a CRM Developers best friend

Microsoft caused quite a bit of unrest when they released CRM 2013, suddenly making the Advanced find button difficult to find, if you are interested I wrote about that in this post – Good CRM design should not make users think

In this post I want to write why I love the advanced find functionality in Microsoft Dynamics CRM.

I view the CRM Advanced find as an awesome swiss army knife

To new users and inexperienced CRM developers it looks like a simple tool to search the records in CRM.

To an experienced CRM developer it’s one of the key weapons in the CRM Developers armoury which when used correctly can save you loads of time and make your life a whole lot easier.

It can speed up navigation, help you create queries for your plugins, export and enrich data and even help you fix bugs.  In some cases when being brought onto an existing product, I have used the advanced find to go directly to records of a certain type because I didn’t know where to look in the CRM system.

What is advanced find?

Advanced find is a tool which allows you to create queries against the CRM database.  It allows you to select the fields you want to see in the results and filter the query with conditions.

You can then save this advanced find query as a personal view

The Advanced find is a lot more than just a tool to query CRM because in many situations it can

  • Save you time
  • help you understand
  • view field values and related entity field values
  • speed navigation

The reason CRM Advanced find is so useful (and why users and CRM developers were annoyed when Microsoft made it hard to find) is CRM is really one big database full of useful data.  The CRM GUI

  • view the data using a web browser
  • validate the data input
  • organise the data into forms etc
  • Add security
  • organise using the data
  • Development to automate adding/viewing data

The CRM GUI (website) has lots of functionality for validating and displaying the data.  This is really useful but for CRM Developers they often want to navigate the system quickly and are not interested in the GUI and business logic but just want to get to certain records.

The advanced find lets you search all the records in your CRM database and apply a filter condition to allow you to only bring back the records you are interested in.

One important consideration to remember when using the advanced find is it does apply your security profile, so you will only see what records your security profile has privileges to see.

Quickly find the records you need

The beauty of advanced find is it can bypass most the GUI and get to the record you want you want with a couple of clicks.

It can also bring back groups of records you want, which is more difficult to do with the front end GUI

The great thing is you can save the advanced find into a view so you can repeat the process even quicker next time.

When you don’t know the business logic

In some projects a CRM developer can be brought into the project in the bug fixing phase. It can be difficult to fix bugs when you don’t understand the business logic or how the system works.

Using the advanced find can help you easily navigate to the entity records you are interested because with the advanced find you can view all the entities in alphabetical order.

This can help you if the bug exists on a specific record type and you don’t need to understand the business logic, e.g.

  • Javascript form errors
  • Simple plugin triggering on update

FetchXML is a great place to create your query

When I have to create a query in a plugin, I usually start with an advanced find to get the logic correct.

You can then download the FetchXML and you can see which fields you need to use and how the filters should be structured

You can use FetchXML in Javascript

You can use fetchXML’s directly in your javascript. I usually use OData queries and the odata query tool.   One of the limitations of OData is it doesn’t have a distinct attribute, so there is no way to not retrieve duplicate records.

The query I was interested in doing needed to filter out the duplicates so I did it in FetchXML.  When I didn’t filtered out duplicates (the OData query) it was returning 1500 records, which slowed down the form load but when I used FetchXML with distinct set to true, it returned 25 records.

FetchXML directly in plugins

You can run FetxchXML code directly in your CRM plugins instead of query CRM using  Linq or QueryExpression.

I go through the process in the blog post below

 Build Queries with FetchXML instead of QueryExpression

One of the advantages of using FetchXML in a plugin is you can create the query in Advanced find which can sometimes be easier

Create saved views

Saved views can save you lots of time because you are only viewing the records you are interested in and filtering out all the other entities.

Export data

Using the Advanced find to select not only the records you are interested in but also the fields is very useful.

Being able to export these records and send them to someone who doesn’t have access to CRM is a very handy trick to customers.

Exporting the data will also allow you to move the data between CRM organisations and environments (e.g. Dev, Test, Prod)

Enrich Data – e.g. export, change, import

The good old Enrich data functionality, which is has the good, the bad and the ugly all in one.  It’s called Enrich the data but what it really means is you can export some records and when you import them it will automatically know which records to update.

enrich data

The enriching data functionality works by adding the Guid of the records to the export file (and some checksum columns etc) which are read by CRM when you re-import the data.  If it sees the values it knows you are not importing new data by updating/enriching existing data.

Bulk Edit

Once you have a list of the entities you are interested in, it’s easy to bulk edit those records and assign them all the values.

Bulk editing data in this way can add data which bypasses some of the validation in the GUI forms.  The reason for this is business rules and Javascript do not run because they are only triggered on the CRM form.

You can’t import a CRM 2011 solution into CRM 2015

Whilst I was at work on friday 2nd and everyone else seemed to be still on Christmas holiday, I was reading Develop 1 Limited Blog by CRM MVP Scott Durow

Scott Durow has written a framework called SparkleXRM and he has updated it, which you can read about here

http://www.develop1.net/public/post/SparkleXRM-for-CRM2015-with-process-API-support.aspx

The interesting thing I noticed (and I am probably slow on the update here) is he had to make two versions available one for CRM 2011 and one CRM 2015.

This line stuck out

Now that CRM2015 does not support installing CRM2011 solutions I’ve had to branch and make both CRM2011 and CRM2015 versions available

Hmm I didn’t know and hadn’t thought about CRM 2011 solutions and CRM 2015.  I have some study notes for solutions for CRM 2013 CRM 2013 – Understanding Solutions and how they work but what about CRM 2015.

There is an msdn article called Maintain managed solutions for CRM 2015 and the article has this about version compatability.

Version compatibility

Any solution exported from a newer version of Microsoft Dynamics CRM cannot be imported into an older version of Microsoft Dynamics CRM. This includes major and minor versions. You can install solutions exported from Microsoft Dynamics CRM 2011 and earlier releases of Microsoft Dynamics CRM Online into Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM Online 2015 Update. Solutions exported from Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM Online 2015 Update cannot be imported into earlier versions.

Like most MSDN articles is great for cold hard facts, but it’s written to be consumed by robots and computers, which is my way of saying I sometimes find MSDN articles and CRM SDK very factual but bordering on being hard to understand to non robots.  I will preface this by saying writing documentation is a very difficult job the Microsoft do a great job overall.

I read the article, found it useful/interesting/hard to understand, I reread the article and then thought that didn’t sound right because I thought you couldn’t import CRM 2011 solutions into CRM 2015.

 

What’s the truth about CRM 2011 solutions and CRM 2015

I dangerously decided to use the potentially unreliable world of the internet to find out the truth.

I first came to this forum post

https://community.dynamics.com/crm/f/117/t/146740.aspx

This picture definitely seems to say suggest you cannot import CRM 2011 solutions into CRM 2015.  Microsoft uses package version numbers, which is confusing because what are package version numbers

Package Version numbers

I will take a quick side track from the main topic to understand the package version numbers.  There is an MSDN article called Export a solution for a specific CRM version and this talks about new functionality brought in with CRM 2013 Service Pack 1.

CRM 2013 Service Pack 1 was a major enhancement to CRM 2013 (duh that’s why it was a service pack and not a rollup Hosk) and I’m guessing it must have rejigged some fundamental functionality inside CRM 2013.  So solutions created in CRM 2013 service pack 1 and higher would have dependancies on the new functionality in CRM 2013 service pack 1 which wouldn’t be available in CRM 2013 environments earlier than service pack 1 and CRM 2011 environments.

To combat this Microsoft added some functionality to allow you to export solutions which would work in older versions.

The MSDN article has this table which shows us the package version number

IntroducedVersion Value Solution components introduced
5.0.0.0 Before Microsoft Dynamics CRM 2013 and Microsoft Dynamics CRM Online Fall ‘13
6.0.0.0 Microsoft Dynamics CRM 2013 and Microsoft Dynamics CRM Online Fall ‘13
6.1.0.0 Microsoft Dynamics CRM 2013 Service Pack 1 and CRM Online Spring ‘14

 

I believe CRM 2015 is version 7

Back to Solutions

CRM MVP Jason Latimmer answered the forum post

That was a mistake in the SDK – solutions exported from CRM 2011 won’t be able to be imported into CRM 2015.

CRM 2011 solutions imported into a CRM 2013 environment will function as expected (assuming they use CRM 2015 supported methods) when the organization is upgraded to CRM 2015.

So this suggests you cannot import CRM 2011 solutions in CRM 2015

Next I found this blog post

https://community.dynamics.com/crm/b/magnetismsolutionscrmblog/archive/2014/10/05/upgrading-from-microsoft-dynamics-crm-2013-to-microsoft-dynamics-crm-2015.aspx

Not solutions but upgrades must be CRM 2013 Service Pack 1 or higher

Upgrades to Microsoft Dynamics CRM 2015 must start from Microsoft Dynamics CRM 2013 plus Service Pack 1 or higher.

Finally  I finished with Feridun’s knowledge base

http://fkbase.info/node/224

Solutions

CRM 2013 managed and unmanaged solutions (6.0 and 6.1) can be imported into CRM 2015 (but not CRM 2011)

Verdict

The verdict seems to be you cannot import CRM 2011 solutions in CRM 2015.   This makes logical sense when you consider the changes in CRM 2013 and many of the customizations could be different.

If you had a CRM 2011 solution the best practice would be to upgrade to a CRM 2013/CRM 2015 to check it still worked as expected

So what does this mean

For most people this doesn’t mean anything but if you have a solution you have developed and you want the solution to work in CRM 2015 and earlier versions of CRM then you will need to have two versions.

This probably won’t affect many people because I can’t think of many solutions which would not have changed from CRM 2011 to CRM 2013 (let alone CRM 2015) due to the major GUI rethink in CRM 2013.

It is likely tools and code not touching the front end and using core functionality could be the same.  Core plugin code hasn’t changed much in the from CRM 2011 to CRM 2015 but there is a possibility the CRM 2011 code could be using deprecated methods or the SDK code works differently in CRM 2015.

I would advise people to upgrade the solutions and test the customizations because you can’t be sure they work as expected until you try them.

It does mean if you will need to have two solutions, one CRM 2011 solution and one CRM 2015 solution, in the same way Scott Durow has created two solutions

Why did I blog about this

The likelihood is most people will never have to worry about this scenario, but this is the sort of problem that crops up when people assume they can load up their CRM 2011 solution into CRM 2015.  When you try to do it,  you get errors, a bit of head scratching before you need to import an unmanaged solution into CRM 2013 which you could then export to a managed solution and into CRM 2015.

This is the same version hop you run into if you want to upgrade a CRM version up more than one version e.g. CRM 2011 to CRM 2015, you first have to upgrade to CRM 2013 before you can upgrade to CRM 2015.

 

Upgrade Path

Whislt thinking about solutions, I was thought about upgrading to CRM 2015 and read this blog post CRM 2013 to CRM 2015 Server Upgrade

The blog mentions the upgrade path of CRM must go from CRM 2013 Service Pack 1 to CRM Server 2015.

The only supported upgrade path to Microsoft Dynamics CRM Server 2015 is from Microsoft Dynamics CRM 2013 Service Pack 1 (SP1).

The blog also mentions CRM 2013 server roles are not compatible with a CRM 2015 deployment.  So if I understand the blog correctly it means when you upgrade one server to CRM 2015 the other servers (if you have multiple servers) will become disable and need upgrading too.

I’m not sure when you would have a scenario where you only upgrade some servers but the point about a CRM 2013 server must be at Service pack 1 before upgrading it’s certainly useful to know.

Why Apply rollups before upgrading

When you upgrade CRM two versions e.g. CRM 2011 to CRM 2015, the best practice is to apply the highest rollup or a particular recommended rollup to a certain level before upgrading,

The reason for this is when rollups are applied to CRM they not only include new CRM dll’s/new code and functionality but behind the scenes they can make changes to the CRM database, adding and removing fields.

Adding/removing fields is one reason why you should never create customizations directly agaisnt the CRM database because fields or tables (in reality tables rarely change, but they could!) could be changed/removed during any upgrade or patch release.

Random solution facts

whilst looking for more details on this problem I found this MSDN article, which has a couple of random size issues I wasn’t aware of

Maximum size of solution to import

For Microsoft Dynamics CRM Online the maximum size for a solution is 29.296 MB.

For on-premises organizations, the default maximum size for a solution is 6 MB, but this can be increased as needed.

Really random fact

Hosk Year 2014 in numbers

Whilst reflecting on another year, which has passed, I thought I would review my years in numbers, I appreciate numbers don’t tell you about quality but are merely a metric

Quality is difficult to define so they’re not any metrics on the quality of my CRM, content I have been creating, so I thought I would look at the facts, numbers, views and badges

Looking at the numbers below it seems I have had quite a busy year and I have learnt a lot about Microsoft Dynamics CRM and I have read and written lots of interesting blog posts.

Thanks for everyone who visited the blog, read my tweets or watched a youtube video.  a big thanks to anyone who left a comment, I love comments.#

Hosk Dynamic CRM Blog

I created 213 blog posts this year, which is roughly 4 per week.  In 2011 I published 455 blog posts!

I did a blog on the most view blog post

Hosk Blog Most Popular CRM Posts of the Year

Here is the list of top blog posts with the views on the right

1.  MB2-703 – CRM 2013 Customization and Configuration Certification – 7610 views
2.  CRM 2013 – Setting up Visual Studio with the Developer Toolkit for Microsoft Dynamics CRM – 7478 views
3.  CRM 2013 – Step by Step Update Plugin Tutorial using the CRM 2013 Development Toolkit – 7021  views
4.  CRM 2013 – Understanding Solutions and how they work – 4751 views
5.  CRM 2013 – MB2-703 – CRM 2013 Customization and Configuration Study information – 4362 views
6.  CRM 2013 – quick way to get the guid on a form – 4123 views
7.  CRM 2013 – MB2-703 – Customization and Configuration Certification Solution Test Questions – 3857 views
8.  CRM 2013 – Plugins – Simple update plugin – Redeploying, improving and updating – 3656 views
9.  CRM 2013 – Javascript to get id of current record – 2613 views
10.  CRM 2011/2013 – Javascript to get the object type code of an entity – 2532 views
11.  CRM 2013 – How to set up Field Level Security – 2555 views
12.  CRM 2013 – Workflow to set the current date and time – 2532 views

 

Total Blog Views

It was my best year yet and I almost made it to the half a million views.  It’s to be expected my views should have gone up because each year I will have published more blog posts (total 892 at the moment).

In 2013 I took a year off and only published 34

2014 numbers

 

2014 numbers 1

 

 

The top referring sites in 2014 were:

  1. twitter.com
  2. linkedin.com
  3. community.dynamics.com
  4. social.microsoft.com
  5. stackoverflow.com

 

Microsoft Certificates

I only passed on Microsoft CRM certification this year

MB2-703 – CRM 2013 Customization and Configuration

The main reason I only passed one because I spent ages creating material to help people study for the certification, which you can find clicking the link below

MB2-703 – CRM 2013 Customization and Configuration Certification

Microsoft Community Badges

At some point Microsoft created lots of different badges and then created levels.  I found I was level 7 and the gamer in me wanted to reach level 8, so I did.  Answering questions is a tricky process and anyone who has answered lots of them has my respect.

I made it onto some Leaderboards and yes, before you say it, I know they don’t really mean anything but I view it like being on an arcade machines top 10 list (before someone unplugs it and they reset all the points)

Suggested answers all time Leader Board

https://community.dynamics.com/leaderboards/5.aspx

Verified Answers All Time Leader Board

https://community.dynamics.com/leaderboards/8.aspx

I got my level 8 badge (you need 16000 points), the only real way to get this badge is to answer lots of CRM Forum questions

I answered a bunch of CRM Forum questions which was a great way to learn CRM 2013 and find the most common problems people were experiencing.

985 suggested answers

392 verified answers

This may be enough to get an MCC badge for Jul – Dec to go with the MCC badge I got from Jan 2014 to June 2014 but I’m not sure yet because I haven’t received an email and Microsoft haven’t updated anything.

19452 points (no one really knows how the points work but you get a bunch for having a verified answer)

Hosk Twitter

The number of followers has gone up but I’m not sure what it was last year the only stats I have were taken in March 2014

In March my twitter stats were

  • 3,863 TWEETS
  • 1,283 FOLLOWERS

Today

  • 5569 Tweets
  • 1644 followers

So I have tweeted probably about 2000 tweets and gained 400 followers in 2014

Hosk LinkedIn Blog

This was my first year with a LinkedIn Blog

I published 31 LinkedIn blog posts

https://www.linkedin.com/today/author/24927776

1453 followers

My top 3 viewed blog posts

What is the Microsoft CEO actually saying? 10486 views 95 likes

Annoying practices of bad recruitment consultants – 4640 views – 68 likes

Are people starting to like Microsoft again? 1922 views – 157 likes

Hosk YouTube Channel

I started a youtube channel I think in March.  It has some videos to help you get started with Plugin development and some videos to help pass the CRM 2013 Customization and Configuration exam

Hosk CRM Dev 

49 YouTube videos

40406 video views

271604 estimate minutes watched

188 likes

6 dislikes

20 shares

771 subscribers

 

Top
CRM 2013 – Create a simple plugin in CRM 2013 using the CRM Development Toolkit 7,622 (19%) 74,812 (28%)
CRM 2013 – Setting up Developer Toolkit for Microsoft Dynamics CRM 4,981 (12%) 26,168 (9.6%)
CRM 2013 – Understanding Solutions and how they work in CRM 2013 3,323 (8.2%) 39,571 (15%)
CRM 2013 — MB2 703 — Customization and Configuration Certification Solution Test Questions 2,566 (6.3%) 13,081 (4.8%)
CRM 2013 – MB2 703 – Business Units and Security Roles 1,734 (4.3%) 19,700 (7.3%)
MB2-703 – CRM 2013 Customization and Configuration Study information 1,358 (3.4%) 4,923 (1.8%)
CRM 2013 – JavaScript tutorial using CRM 2013 Developer Toolkit 1,317 (3.3%) 9,539 (3.5%)
CRM 2011/2013 Dialog’s and Custom Workflow example 1,250 (3.1%) 5,646 (2.1%)
Get Certified in MB2-703 – CRM 2013 Customization and Configuration 1,247 (3.1%) 3,570 (1.3%)
CRM 2013 Plugin – Step by Step guide for a Post Account Create Plugin using the Developer Toolkit 1,143 (2.8%) 6,937 (2.6%)

 

 

 

 

 

 

Good CRM design should not make users think

A well designed CRM system is where users use the system instinctively without needing to stop and think – Hosk

I have been reading Don’t Make Me Think!: A Common Sense Approach to Web Usability, the book is great, easy to read and it gets straight to the point, which it needs to because the book is only 216 pages long and was written so it could be read by an executive on a 2 hour flight!

I wish films, books and TV programs would get to the point and stop extending things out, quality not quantity.  The book offers great insight into usability in websites, Steve Krug the author is a usability expert and some they key points I have taken from his excellent book.

1.  Don’t make them think

A website should be so easy and obvious to use the users shouldn’t have to think.  The users should not need to think where to click because it should be obvious.

2.  Users are like sharks

Users scan pages and will click on the first thing which seems might be the right thing to do.  Users keep moving or die, e.g. They will point and click.

3.  Users Love Back buttons

Users love back buttons because they use websites, with a point and click attitude.  Users haven’t got time to think about what to do, they would rather click what seems right.  This usage means they will make mistakes and need to go back often.  It’s a trial and error method of web site usage because the cost of a mistake is rectified by pressing the back button.

4.  Creatures of habit

Once users find a method which works they stick to it and do it again and again and again

5.  Searching Rocks

Users know how searches work and use it a lot as a short cut to get to where they want to go.

6.  Everyone loves to go home

The home button is vital to a website because it means no matter what rabbit hole the user goes down or how lost they get on a website, they can always get back to the start with one click without any thinking

7.  Get rid of happy talk

Happy talk is like small talk on websites.  Lots of words with not much being said, usually happy talk is information about the site, creating the site and other information the user isn’t interested in but the creators found interesting.  You can read more about happy talk here, Common happy talk is

  • welcoming messages
  • details of the process of creating the website such as how long it took
  • information about the design of the website such as rationale
  • superfluous instructional advice

 

Web Usability and CRM 2013/2015

When CRM 2013 (which doesn’t seem long ago) was released the user interface was completely rewritten and it looked fantastic but then users started to use the application and they found the navigation was more difficult in CRM 2013 than in CRM 2011, oops.

The question is, Why was navigation harder in CRM 2013?

After reading the points made in Steve Krug’s book, these points explain why the navigation was difficult

Too much thinking needed

There were times when using CRM 2013 when I wasn’t sure how to navigate to the record/area I wanted to go.  I had to stop instinctively navigating and start to think about how I might navigate there.  I would have these thoughts

  • How do I get too a certain record?
  • Which navigation tool (menu, hyperlink, back button) should I use?
  • Where is the advanced find button?
  • How do I get back?

Some of the reason was due to my CRM 2011 navigation habits, but other problems were because it wasn’t obvious how to navigate in CRM 2013 and I had to keep stopping to think.  Thinking isn’t how people are trained to use websites and slowed down the navigation process considerably, which contributed to the feeling it was harder than CRM 2011.

No Home button/Left hand menu

The removal of the left hand navigation pane was like Windows 8 removing the Start button.  People like knowing there is an easy, quick way to get back to the start.  The best solution to this problem I have seen was the free codeplex solution One Click Navigation which I have reviewed here.  This puts a menu on the top, all the time, ahhh safety.

Creatures of habit – CRM 2013/2015 is too different

Users are used to working with CRM 2011 and CRM 2013 seemed very different and less initiative.  CRM 2013/2015 is different from most web sites and applications which means users can’t use their natural instincts to point and click and muddle their way through.

There is likely to be a degree of uneasiness whenever any users use a new product

Dude, where is my advanced find?

This was one of the most puzzling changes Microsoft made in CRM 2013, suddenly I could rarely find the advanced find button, why would anyone hide this awesome button?  Advanced find in CRM is a great tool because you can skip the navigation and find the records you are interested in quickly and you can save your advanced find as a search for easy reuse.

The advanced find button has been restored in CRM 2015 and can be found on the global command bar and always accessible no matter where you are.

Global Advanced Find is Here in Microsoft Dynamics CRM 2015!

It’s good to see Microsoft to listening to the feedback of the Microsoft Dynamics Community.  I wrote an article on this subject Is Microsoft Listening to the Dynamics CRM Community?,

Slow to Navigate

One of the points I took from the book is users are in a hurry, swimming and swooping like sharks, clicking and not thinking, muddling through, clicking what seems right and pressing the back button if wrong.

CRM 2013/2015 make it hard to navigate quickly, you have to wait for menu’s to animate and then they keep hiding again.

Users of CRM will use CRM everyday and will want to reach power user level, quickly navigating the site without thinking.

Designing Better CRM forms and Improving User Experience

Don’t make the user think

Make the flow of your CRM system obvious, don’t make the user think.  Using the new business process flows can help users along the journey without them getting lost or stopping the process to puzzle out where they should go next.
One of the key terms to think about is how to simply the process because a simple process/forms needs less thinking by the users.
Ways to reduce user thinking and simplify
  • Business Process flows guiding the user
  • Remove unused fields on views, forms
  • Reduce options
  • Change Sitemap and
  • Hide sections/fields until needed
  • Business rules/JavaScript to auto fill values
  • Use Dashboards to show aggregated data
  • Views filtered and sorted to reduce noise
  • group data on a form in logical areas
  • Different forms for different security roles/teams

Test your CRM Solution

A good way to test your form layout and business process logic is to get someone with no experience of using your CRM solution and see how they get on.   You cannot test the processes or forms yourself because you already know how to use it and can’t unlearn the process.  It’s possible to get existing users to test design improvements.
Coding horror blog had a really good blog post on Low-Fi usability testing, whilst reading this I realised CRM forms/solutions rarely ever consider the usability of their forms/system.

Reduce fields and clicks needed on a form

I remember working on a project and the feedback from the intial forms was
It takes 4 clicks more to complete this form than it did with the old system
That form was an epic failure but the message has always stuck with me.  All the forms should take the least amount of clicks and inputs possible to make it as easy as possible for the user.
Simplify your forms and remove anything the user doesn’t really need.  The top of the form should contain the important fields that must be filled in, these will be the first fields the user see’s and has to fill in.

Business Required fields at the top

Users want the Business required fields at the top of the form, this is the first area they look at on each form.  Make it easy for the user and put the fields they must fill in at the top, near each other.  Thought has to be given to logically arranging fields in groups versus putting business required fields at the top.

Correct Field types

Instead of field validation on the values entered in a field, going through the processs
1.  User enters value
2.  Field OnChange event, validates value and displays warning (back to point 1 until passes validation)
You can avoid this by using the correct field type and option Sets with a limited number of choices.  It’s easier for a user to choose from an option set with 3 options than typing a value in manually (again and again).  It’s frustrating for a user to not be able to save a record due to wrong data, finding the field and correcting is a slow process, so getting this right first time is great user experience.

Automate field entry

Workflows and plugins can automatically (where possible) fill in the values of fields in related entities
JavaScript and Business rules can automate field values based on values entered in related fields.
Microsoft Dynamics CRM has plenty of tools to help automate processes, calculate fields, automatically fill in related fields and create related records.
Using OnChange events on fields with Business Rules and JavaScript will not affect form loading times

Hide Section and Fields

It’s possible to simplify a form by hiding fields which are not used.  Field OnChange events allow you to show/hide fields based on interaction with the user and creating a tailored user experience.

Different Forms for Different Security Roles

Different users with different roles are often not interested in all of the fields on a form so there is no need to display them all.  You can create different forms for different users (security roles), hide/show certain fields and arrange fields in a different order (putting the fields they don’t need to fill in at the bottom).  This can greatly simplify a form for different users e.g. less options is less confusing.

Business Process Flows

Business process flows offer a guided/quick navigation through business process which can involve multiple entities. Business process flows work in conjunction with security roles, allowing you to create a different business process for different sets of users.

Extra stuff

An interesting article from CRM MVP Scott Durow on how the Command Bar really works, did you know it’s a ribbon in disguise!

4 things you need to know about the Command Bar

CRM MVP Jukka wrote a good blog

How Would You Change the Dynamics CRM Navigation?

I would recommend not only reading the blog post, but the comments have a great discussion about CRM Navigation

Is Microsoft Listening to the Dynamics CRM Community?

istock_000017297547small

I read this great blog post recently

 Listen to Your Community, But Don’t Let Them Tell You What to Do

The article makes a number of good points but these two grabbed my attention

1.  90% of all community feedback is crap.

Let’s get this out of the way immediately. Sturgeon’s Law can’t be denied by any man, woman, child … or community, for that matter. Meta community, I love you to death, so let’s be honest with each other: most of the feedback and feature requests you give us are just not, uh, er … actionable, for a zillion different reasons.

But take heart: this means 10% of the community feedback you’ll get is awesome! I guarantee you’ll find ten posts that are pure gold, that have the potential to make the site clearly better for everyone … provided you have the intestinal fortitude to look at a hundred posts to get there. Be prepared to spend a lot of time, and I mean a whole freaking lot of time, mining through community feedback to extract those rare gems. I believe every community has users savvy enough to produce them in some quantity, and they’re often startlingly wonderful.

  1. Be honest about what you won’t do.

It always depressed me to see bug trackers and feedback forums with thousands of items languishing there in no man’s land with no status at all. That’s a sign of a neglected community, and worse, a dishonest relationship with the community. It is sadly all too typical. Don’t do this!

I’m not saying you should tell your community that their feedback sucks, even when it frequently does. That’d be mean. But don’t be shy about politely declining requests when you feel they don’t make sense, or if you can’t see any way they could be reasonably implemented. (You should always reserve the right to change your mind in the future, of course.) Sure, it hurts to be rejected – but it hurts far more to be ignored. I believe very, very strongly that if you’re honest with your community, they will ultimately respect you more for that.

All relationships are predicated on honesty. If you’re not willing to be honest with your community, how can you possibly expect them to respect you … or continue the relationship?

It got me thinking how does Microsoft deal with Dynamics CRM community feedback?

The Dynamics CRM Community is awesome

I am constantly amazed at all the great tools/blogs/books/videos/articles created by the dynamics CRM community.  I really enjoy being part of and interacting with the Microsoft Dynamics CRM community and some of the positives that spring to mind

It’s a friendly place

people in the CRM community are always willing to help each, add useful comments

Innovative

I learn loads from tools and blog posts people create.  The content I really enjoy is where people find unexpected workarounds and solutions to problems

Enjoyable

I enjoy being part of the Dynamics CRM community, the more you put in, the more you get out of it.

Positive

The majority of the Dynamics CRM community is a positive group.  Most of the Community energy is diverted to positive endeavors rather than complaining.  I am a great believer in being positive because being positive you create ideas/solutions, but being negative you create nothing but hot air.

Proactive

When the Dynamics CRM community comes up against a problem, it usually find a solution to it pretty fast.  I have found most people who stick around in the Dynamics CRM community are proactive, self motivated people, which you need to be to keep up with the new functionality Microsoft are creating and the speed they are creating it.

Below are some of the activities the CRM community and Microsoft contribute to make up the Microsoft Dynamics Community.

Tools and Solutions

Fantastic Codeplex tools for Microsoft Dynamics CRM

You can read my reviews on my CRM 2013 Tool List

There are great tools not featured on Codeplex, like the great Ribbon workbench (a must have) from CRM MVP Scott Durow

Blogs

Top 25 Dynamics CRM Sites – featured on Dynamics 101

Blogs featured on Microsoft dynamics blog list

Community

CRMUG (I have written a blog post What is CRMUG? Should you join? if you want to learn more about CRMUG)

Dynamics CRM Community 

CRM Forums

Facebook

Twitter – @MSFTDynamics

Conferences

The many Dynamics CRM conferences (convergence etc)

Microsoft

Microsoft have CRM SDK, Technet, MSDN articles, whitepapers (link to all CRM 2013 whitepapers here)

The interaction between the CRM Community and Microsoft I think is pretty good, Microsoft creating lots of great material and the platforms for the Microsoft Dynamics CRM community to collobrate, interact and create great content.

CRM MVP’s

There are 62 CRM MVP’s and they are involved in all areas of the Microsoft Dynamics Community mentioned above.  The CRM MVP’s are a bridge between the CRM community and Microsoft but they are also part of the CRM community.

The concept of CRM MVP’s is a great one.  Fantastic CRM content creators are then able to get sneak peaks and previews of up and coming features in CRM, which they can then feedback to the CRM community.

 

How do you give feedback to Microsoft

I want to focus on how the Dynamics community gives feedback to Microsoft on the Microsoft Dynamics CRM product itself.  This is a vital area for the direction and growth of the CRM product.  The dynamic community is giving feedback generated from their own needs and the needs of their customers.

Why am I writing about Connect Site

Recently I wrote the blog post – CRM 2013 – Why are access teams marooned? where access team functionality was added to CRM 2013 but there is no way to add access team templates to a solution, which makes it difficult to use because you have to create each access team template on each CRM environment.

There was also this post from CRM MVP Leon Tribe – Fixing Lead Conversion in CRM 2013

I remember CRM 2013 and not being able to find the advanced find, so much that somebody made a tool, with just the advanced find button in

https://crmadvancedfind2013.codeplex.com/

Combined with the coding horror post and these I thought I would look into the process of creating product/functionality enhancements for Microsoft Dynamics CRM.

To give this feedback to Microsoft you use the Connect site

https://connect.microsoft.com/dynamicssuggestions

When answering questions on the forum, sometimes people find bugs and sometimes people want functionality which doesn’t exist.  So you have to ether

  • Raise bugs with Microsoft support
  • raise feature enhancements on Microsoft Connect

Raise a Bug

To raise a bug you have to go to Microsoft support and raise a ticket,which I think you do via the CRM Customer Center where you might find the solution before raising a support call.

New Product Suggestion

If you have an enhancement rather than a bug, then you need to use the Connect site to create a new product suggestion but before you do that you should search the list of current Product suggestions because someone might have already created it.

product suggestion

You can either vote on a current new product suggestion or you can create a new product suggestion.  Once a product suggestion has been created people can vote it up.

What do votes means ….? Prices

In theory the more votes you get, the more likely it is to be added to a future release of Microsoft Dynamics CRM.

In the FAQ this is what happens to Product suggestions

Q. What happens to my product suggestions?

A. Your suggestion is delivered directly to the appropriate product development team based on the product line you specify. This process ensures that customers and partners can help shape how future versions of our software will work. During the planning phase, each product development team considers suggestions as possible new features for the next release.

Q. Why hasn’t anyone from Microsoft responded to my suggestion?

A. Microsoft Dynamics product development teams strive to respond to your suggestion within approximately one month of submission*. If you have not received a response on your suggestion within one month of submissions, please email mbsdynps@microsoft.com. *Note: Service level agreement only applicable to suggestions entered into Microsoft Connect

How does the product suggestion process work?

My honest answer would be, ok but could be a lot better.  The process of raising an enhancment works fine but the next stage of the product suggestions going into the product takes a very long time.

What I don’t like about the connect site and new product process

Before we go anywhere I will say this is my personal opinion and it’s based on my experiences and my discussions with fellow CRM developers on connect site.  I appreciate this is a very small, possibly biased selection of people and the experience for the majority could be very different.

The connect site

The connect site feels and looks at least 5 years old, the site is not intuitive or easy to use.  Searching and finding proposed new product suggestions can be clunky, slow and confusing.

This process should be as easy as possible to encourage more people to use the site.

You scroll down to the end of the page and then the washing machine wait icon appears, I can only view 8 items on a page.

Most Voted

There are some links for you to use, you go to most voted and then see a list of resolved items, which were most voted and included.

Vote on resolved items

You can still vote on resolved items, why?

Slow

I often mention to people on CRM forums to raise their enhancements on the connect site but I’m not sure I believe their suggestions have much chance of being added to the product, so why bother.  The reason for this is, it often seems people put enhancements on and then nothing….. very little feedback from Microsoft, not much voting.  Maybe the user gets feedback directly but what about people using the connect site, it just looks like the suggestions are sitting there with nothing really happening.

What’s happening

I wrote a blog post recently CRM 2013 – Why are access teams marooned?, this explains there is no way to add access team templates to solutions.  A product suggestion was added on 27/11/2014

Access Team Template in CRM Solution

It has had 13 votes and Microsoft have a month to respond but after the response it’s difficult to understand what is happening with each suggestion.

Is it resolved?

I see this issue CRM 2013: Adding the “Advanced Find” to the global menu this has been marked as resolved and with the status resolved as tracking.  Which when click on tracking says the product team are tracking this.  How is that resolved?  It’s resolved in CRM 2015.

This item

Ability to set default entity for lookup fields – by Donna Edwards create 01/03/2012

https://connect.microsoft.com/dynamicssuggestions/Feedback/Details/727766

this is set to resolved as tracking, but what does this mean, how is it resolved, surely it’s only resolved once it’s in the Microsoft Dynamics CRM product.

Time of response

It can take a very long time for things to go through the site and onto the Microsoft Dynamics Product.  Adding Field Level security to out of the box fields was added 09/03/2011 and has only just made it into the product for CRM 2015.  Why has this taken so long

 

What I like

There are positives about the Connect site

There is a method to raise product suggestions

It’s good Microsoft have a public process for people to add product suggestions and the voting mechanism is a great for the CRM Community to show support for particular suggestions

It does work

If you look at the list of the most popular suggestions they have mostly been implemented into Microsoft Dynamics CRM.

One of the greatest suggestions was by CRM MVP Neil Benson is

All Dynamics CRM training course materials should be free for everyone to download

It might not be a product suggestion, but this is such a good idea, which has helped lots of people study for the CRM certifications.  It makes sense to encourage and make it easier to study for the CRM certifications so there are more people knowledgeable about the CRM product.  This shows when the connect site works it can be awesome.

Microsoft do comment

I have seen lots of product suggestions with comments from the Microsoft team.  So they are giving some feedback.

Why is this important

I think CRM is an awesome product and I enjoy creating solutions using it.  I appreciate it has some quirks, a few bugs here and there but all products do.

At the moment I think Microsoft is missing getting some great feedback.  I know they have CRM MVP’s who they have a close relationship with but there are thousands  of CRM users/Developers and Microsoft could be using this group a lot better by being more interactive with CRM community regarding enhancements.

The coding horror blog post makes a great point, 90 percent of the enhancements will be rubbish, ridiculous, not workable, not worthwhile but 10 percent could be glorious.

I send people off to the Connect site regularly, this is the correct thing to do but I don’t feel at the moment it’s a very effective thing to do.

In my opinion usage of the connect site would be improved if these points were improved

  • It takes ages for enhancements to make it into CRM
  • Not enough people use the connect site due to lack of feedback or action from Microsoft
  • Make the connect site easier to use

What about the future

What struck me most about CRM 2015 was the fact some of the long standing connect enhancement requests were added to the CRM product and Microsoft in general seem a lot more reactive to opinion under Satya (e.g. Start button coming back in Windows, Microsoft Office for Android etc)

In CRM 2015 some of the new functionality

  1. Field level security on Out of the box fields
  2. Rollup fields
  3. improved business rules
  4. improved searching conditions
  5. Custom help

At the moment I feel Microsoft are listening, but the Dynamics CRM community has too shout really loudly to be heard.

The way the connect site works is a bit of mystery and the lack of feedback from Microsoft adds to the feeling that nothing is happening with the suggestions.  This I believe is reducing the number of people using the connect site, which ultimately will lead to few product suggestions.

 

Summary

I’m probably missing out important aspects from this discussion and hopefully people will comment and correct me, but I feel Microsoft could do better in this area and if they did focus on this Microsoft Dynamics CRM can only get better and it would encourage the CRM community to be more active.

There is scope for Microsoft to utilize the Microsoft Dynamics Community more effectively to help shape the future of Microsoft Dynamics CRM with feedback and suggestions from users.

My experience with the Connect site is it’s not easy to use, the statuses seem confusing and it takes too long for good suggestions to make it into the product.

The conversations I have had with people about the Connect site is people do not really use it because the suggestions take too long and the lack of feedback means it’s not something they can use to pacify customers (e.g. Microsoft is looking into it).

I appreciate Microsoft are a big tanker and it takes time to turn the ship and they are busy adding new functionality, but this type of feedback from the Microsoft dynamics CRM community is extremely valuable, those 10 percent of fantastic ideas are based on people who use the CRM product every day and based on hours/days of project experience.

There seems to be an improvement in CRM 2015 with Microsoft is more responsive to user feedback, if this could continue to the connect site I believe it would lead to greater participation from the CRM community.

CRM Entity ownership – How do you decide?

When you can’t go backwards, make sure you heading in the right direction before you start walking – The Hosk

Studying for the MB2-703 I always learn things I hadn’t realised before or maybe I notice different things as I become more comfortable with fundamentals.

Like rereading a book, you notice things you hadn’t noticed the first time round.

I was reading about Entities which is main part of the CRM 2013 Customization and configuration exam (resources here if you are studying for this).  Most CRM developers/customizers will have created a whole bunch of entities.

Entity Ownership is the same in CRM 2011, CRM 2013 and CRM 2015 so it’s good to learn about it.

When ever you create a new entity, you have to make a choice about Entity Ownership

What is Entity ownership?

When you create a new entity, you have to set the ownership options, How many ownership options are there?

entity ownership

I’m guessing most of you reading are going to say two.

  • Organization Owned
  • User Or Team

but did you know there are other types? Hidden types that only Microsoft can use/made up

I shall let Microsoft and the MSDN article explain

Entity ownership

There are several types of entity ownership. Most entities, including custom entities, are owned by the organization, by a user, or a team. There are some business entities that do not have an owner, such as discount type (discount list), where the ownership is defined by its parent entity discount. The type of ownership defines some of the operations that can be performed on a record. Ownership for an entity is defined in the metadata property OwnershipType. The following table lists the ownership properties.

Ownership Type Description
Organization Owned Contains data involving something that belongs to or that can be viewed by the whole organization. Organization-owned entities cannot be assigned or shared. For example, products are owned by the organization. These entities have an attribute named organizationid.
Business Owned Entities that belong to a business unit. These entities have an attribute named owningbusinessunit.
User or Team Owned Assigned to a user or to a team. These entities contain data that relates to customers, such as accounts or contacts. Security can be defined according to the business unit for the user or team. These entities have attributes named owningteam and owninguser.
None These entities are not owned by another entity.

Business Owned and None!

I will admit I had never thought about the ownership options on the system entities and to think some business entities (new term) which do not have an owner.

I find it intriguing when you see how Microsoft bend the rules when creating system entities and data, so they can create the default functionality in CRM but it’s only when you understand how the entities and ownership works that you can understand how Microsoft have bent these rules and why.

Entity ownership Choice

I find making the choice of entity ownership is always a painful one, it always causes me to spend a few minutes deciding whether it should be organizational or user/team.  I’m always keen to choose organization where possible because it’s neater (when used appropriotly) and doesn’t create those extra fields.

Why is the choice important?

I know most CRM developers choose the default choice of User or team entity ownership and don’t even think about it, in fact I’m sure a lot of CRM developers don’t even know there is an choice about entity ownership (based on the fact I rarely see any choose organization entity ownership)

One reason making the choice takes a bit of time is once you make that choice and save it, there is no turning back.  It’s one of those decisions that cannot be reversed.  If you change your mind you have to delete the entity and start all over again.

Like some of the entity checkboxes – send email, queues, Connections, business process flows.  Once you tick these, they have the cross of doom and can never be unticked!!

Choosing ownership is probably more like selecting if an Entity is an activity, you make the decision and the only way back is deleting and recreating the entity.

So I have made it clear it’s a decision you don’t really want to get wrong and it’s not really that important because if in doubt you can choose user/team ownership and not use owning fields and functionality.

What’s the difference, Why does it matter

To understand why the decision is important you need to think about what happens when you choose one of the options and the security ramification of the decision

When you choose Ownership of User/Team

After you have chosen Entity ownership type of user/team, CRM will create some additional fields to enable the records to be owned by users/teams.

entity ownership 1

It creates fields for OwningUser, OwningTeam, owningbusinessunit and ownerid.

The reason it creates all the fields is for the security roles and the five access levels

  • Global
  • Deep
  • Local
  • Basic
  • None

You have to record the business unit of the user/team so the security role can work out what other users can view the record.

If you selected organization level of Entity Ownership then it has two access levels None and Global.

Organisation ownership means the entity will not have an owner field or any of the other user/team/business unit lookups.  Global or none visibility means the entity will ignore the business units of the users

Practical Considerations of Entity Ownership

So if organization entity ownership only has access levels of none or global when would you use it?

If no one needs to own the records, entities like

  • Config Settings
  • Printers
  • Resources
  • Templates
  • Countries

If in doubt, select User/Team

I have put this rule in because if you find you do need to hide visibility of an entity or think you might then you should select this option

But if the entity doesn’t need to be owned by anyone or there is no need to hide the records from groups of users then make the entity ownership type to organisation and save yourself the bother of having all those needless ownership fields and views and security settings

Changing an entity from organisation ownership to user/team

Scott and Jukka made some good points on twitter and I felt I should update this post with the information.

I mentioned above you can’t go back on your decision but what can happen is the project can happily move forward and then at some point in the future the customer will decide this entity now has some security requirements on the entity.

Changing an entity from entity ownership type Organisation to User/Team is not possible.  What you would have to do is create a new entity with the ownership type user/team.  Export all the data from your old entity and import it into your new entity.  Configure security roles and then delete the old entity.

In other words loads of work, so you have to be very sure

Here are their comments

@BenHosk I always select ‘User or Team’ just in case security requirements comes along later!

@BenHosk @ScottDurow I’ve never regretted setting entity ownership as User, whereas I have seen significant rework caused by Org owned ones.

More reading

Here is another good article on the subject

Practical Dynamics CRM- User-Owned or Organization-Owned Entities?