CRM 2016 – Failed to generate excel

There is an odd bug which I found when I selected all the fields on an opportunity record in an advanced find and then tried to export the records to excel.

Data import error 2

What made this error annoying was the download log file was greyed out, so it was difficult to investigate.

The reason for the error is because there are two fields with the same Display name, in this case it was two fields with the name Proposed Solution.

excel error

To resolve the error you need to rename one of the fields and you will be able to export from Excel again.

You could also not select the duplicate fields and this will work around the error.


Hosk’s Top CRM Articles of the week – 27th June


I hated every minute of training, but I said, ‘Don’t quit. Suffer now and live the rest of your life as a champion.

Muhammad Ali


  • A company can save money on all parts of the business, but never on ideas #HoskWisdom
  • Training and learning are not the same thing. Many people learn nothing from attending training sessions. #HoskWisdom
  • Learning can happen anytime and anywhere you want it to #HoskWisdom
  • Stay curious and question everything #HoskWisdom
  • A CRM project is a way to align your business objectives with a CRM solution #HoskWisdom
  • Curiosity leads people to opportunities, courage turns opportunities into success #HoskWisdom
  • If you think you are always right, then you are wrong more than you know #HoskWisdom
  • If you want to make strategic decisions you must make time to think #HoskWisdom
  • Tell customers what to expect in their CRM projects so they don’t overreact to bumps in the road #HoskWisdom
  • The value of a CRM project to a customer should be more than the price #HoskWisdom
  • Justify the price of a CRM project, do not apologise for it #HoskWisdom
  • Every CRM project is a success or failure before it has started #HoskWisdom
  • You don’t get requirements from companies you get them from people #HoskWisdom
  • Don’t react, instead think then act #HoskWisdom

Want #HoskWisdom then follow #HoskWisdom or follow @BenHosk

Article of the week


Best of the Rest

comparing CRM Online with CRM On Premise

Why Code Readability is important

Forms in Microsoft Dynamics CRM 2016 which can’t be missed

MB2-712 – CRM 2016 customisation and configuration Hosk study notes

interesting way of using a blog
Microsoft Dynamics CRM 2011 Notebook
Microsoft Dynamics CRM 2013 Notebook

Dynamics CRM’s invisible man: the Delegated Administrator

Unhandled Exception: An easy guide to interpret Dynamics CRM error messages

Thoughts on CRM Design and converting user requirements to CRM solutions

CRM diagnostic now available in Office 365 Support and Recovery Assistant (SaRA)

CRM 2016 – What you need to know about Themes

Migrating old CRM KB Article data to the new Knowledge Article

The importance of keeping the same guids between CRM instances

Unhandled Exception: An easy guide to interpret Dynamics CRM error messages.

CRM 2016 – Import error – A validation error picklist is outside of the valid range

Koen’s CRM Blog – CRM Giants

Why isn’t code reused in Microsoft Dynamic CRM projects?


Today’s Employees Expect Their Employers to Be Digital…Are You?

This Is What Actually Happens to Your Body When You Don’t Get Enough Sleep

Netflix is on a path to dominate the world, but will its culture survive?

Microsoft: Nearly one in three Azure virtual machines now are running Linux

The Management Myth

Google Reveals Its 9 Principles of Innovation

Don’t just code: Career advice from the programming masters

Where the web is going in 2016

The Hosk is currently reading

Useful Hosk Links

Hosk list Of CRM 2013 Tools

A list and review of CRM 2013 tools, this will probably work in CRM 2015 as well

Hosk’s CRM Developer Articles

A collection of my favourite CRM Developer articles I have written

MB2-703 – CRM 2013 Customization and Configuration Certification Information

All the CRM 2013 content to help you pass the exam

HoskWisdom – Hosk Developer Quotes

 Words of Wisdom from the Hosk.  I have written over 1000 articles, surely I should have said a few memorable things

CRM 2016 – Import error – A validation error picklist is outside of the valid range

Hosk the master of the CRM error blog post said no one ever, steam rolled into another frustrating error.  Exporting and importing data rarely goes without problems because data always finds a way to get itself into a non importable format

The task

I was importing 300 opportunities from a CRM 2015 Online instance to a CRM 2016 online instance.  There was much data and the customer didn’t want to pay so I was using free solutions and not Kingsway SSIS or Scribe

Instead I am using the excellent Lucas Alexander’s Dynamics CRM Configuration Data Mover v1.10.  If you have used the CRM configuration data mover before it’s awesome and you should definitely check it out.

If you haven’t heard or have never used the Dynamics CRM Configuration Data Mover then read the introduction blog page below

Introducing the Alexander Development Dynamics CRM Configuration Data Mover

If you want to know about the guids or understand a bit more about my thoughts on the CRM Configuration data mover read the blog post The importance of keeping the same guids between CRM instances

Import error

I was important an opportunity record and I got this error message using Dynamics CRM Configuration Data Mover.

If you have never used the Dynamics CRM Configuration Data Mover read the introduction blog page below

Introducing the Alexander Development Dynamics CRM Configuration Data Mover

If you want to know about the guids and understand my thoughts on the CRM Configuration data mover read the blog post The importance of keeping the same guids between CRM instances

2016-06-22 23:52:06,459 RECORD ERROR: a4115b45-e37e-e511-812b-fc15b426e6e8, opportunity, OPERATION: CREATE, MESSAGE: A validation error occurred.  The value of ‘crm_picklist’ on record of type ‘opportunity’ is outside the valid range.

As error messages go this is pretty informative, I looked at the field and found it was a picklist.  Out of range errors usually occur when your code goes through a loop and tries to reference a value in an array with a number larger than data in the array.

I searched the Hosk CRM blog for the answer because I remember a similar issue with Status Reason.

I found this blog post, which was interesting but didn’t help

CRM 2015 – how to find Statecode value

Next was this one, it seemed

CRM 2013 – Understanding Status and Status Reason – think before deleting them

which pointed to this blog

CRM 2013 – What happens when you delete a status reason currently in use

I felt these were pushing me down the right path and the problem was probably linked to OptionSet items which were referenced on the records but which had been removed.

The way OptionSets work is they have a text value and in another database field they contain an integer.  I was guessing those records which didn’t import had an integer number which didn’t exist in the new CRM system but how could I find them.

Looking at the opportunity records I could see this field was a required field but there were 80 records which were blank.  The blank records means CRM didn’t know what to show but how could I tell what integer value was held?

My previous problem was investigated by using SQL queries (look at CRM database data but don’t change it – Why you shouldn’t put unsupported customizations in Microsoft Dynamics CRM)

I wondered if FetchXML would return the integer values.

I used the awesome XRMToolBox which has the great FetchXML Builder by Jonas Rapp in it.

Data import error 1

You can download this in the Plugin store.  I had some problems with the plugin store but found a solution – XRMToolBox – loadFromRemoteSources error

I created a fetchXML query to select the opportunity records and the field from the error

Data import error

You can see the some of the records are bringing back text values which are no longer valid values for the global OptionSet.  When I imported these records into a new CRM instance this invalid values caused an import error.

When you remove OptionSet values make sure you migrate the records with those values before you delete the value and you will avoid this problem.

A great feature of the FetchXML builder is you can run query and then click on the records which opens them in CRM.

The problem was many of the records were inactive (Won/Lost) which meant I had to reopen them to update this field.  This then reset the won date which caused a bit of a headache.   There was a field of last updated, so I used that to set the date of won/closed

There is a slight but in the FetchXML builder which when you open a record by double clicking the results

it puts a double forward slash before the main.aspx, this stopped me from reopening the record but if removed one of forward slashes then I could click the reopen button

so from


I could then edit the records and fix the records which weren’t importing.

Failed to Generate Excel Error

I was getting a bit concerned because I was only missing 50 records, I thought I could manually import these but when I tried to export the data from CRM to Excel I was getting this error

Data import error 2

This was a bit of show stopper because it didn’t give me any details about the cause of the potential problem.  I was trying to export all the fields from the opportunity and I was wondering if this was too much data but when I tried to remove the fields with no data I was still getting the error.

I could export the data using FetchXML but it didn’t allow me to copy the header and there was a lot of columns.

If you get this error this blog post has a potential solution

How to Solve the ‘Failed to Generate Excel’ Error When Exporting in Microsoft Dynamics® CRM

It thinks the error is caused by different columns having the same name but I haven’t checked this out yet.





CRM 2016 – The importance of keeping the same guids between CRM instances

Everyone wants to learn the same thing from painful situations: how to avoid repeating them.

Gary Zukav


I worked on a CRM project where the configuration data had different guids between CRM environments.   The project contained 10 complex workflows which referenced these records in CRM, when deploying, the workflows were manually repointed to select the records in each CRM environment, this manual step could take between 30 to 60 minutes.

In this post I discuss the role of guids, how to avoid workflow problems using the CRM configuration data mover tool which creates data in a different CRM instance with the same guid.

The task

Importing 300 opportunities from a CRM 2015 Online instance to a CRM 2016 online instance.  There wasn’t much data, the customer didn’t want to pay so I used free solutions and not Kingsway SSIS or Scribe

Instead I am using the excellent Lucas Alexander’s Dynamics CRM Configuration Data Mover v1.10.

If you have never used the Dynamics CRM Configuration Data Mover read the introduction blog page below

Introducing the Alexander Development Dynamics CRM Configuration Data Mover

The purpose of the data mover is to move data between CRM instances and the records keep the same guids.

Why is it important to keep the same guids?

Guids are unique identifiers (guid stands for Global unique identifer) and when you create a new record, CRM automatically creates them for you.  Every record in CRM has a guid, these are used in lookups when selecting records.

A lookup record is an EntityReference, which has the entity type and guid.  In my Hosk Dev tip I recommend you always add an ID suffix to lookup fields so they are easy to spot

Hosk CRM Dev Tip – add ID suffix to lookup fields

Once you get the guid of a record you can use this in code to retrieve details on the record and use it whilst debugging  your code. One reason why CRM developers want to retrieve the guid of a record – Quick way to get the guid on a form, my current favourite way is using bookmarklets

When you import data into a new CRM instance it creates the records and assign those records new guids.

Records with the same name but different guids cause problems in workflows which use lookup fields.  Inside those lookup it has a guid which doesn’t exist in different instances of CRM and the workflows won’t work.  The workflows show you this by unpublishing themselves when deployed in a solution to a new CRM environment.

If you use the CRM configuration data mover it copies the records across and the data has the same guids..

CRM configuration data mover highlights

I will cover the CRM configuration data mover in more detail in a future blog post but here are a few highlights

  • You use FetchXML to retrieve records, this allows you to filter record you want to copy
  • It has an update and create checkbox for each step
  • It easily syncs data between CRM instances with a push of one button
  • You can move Access teams (currently no way to export/import access team templates between CRM instances – Why are access teams marooned?, also read The benefits of Access Teams)
  • It can be run from command line to make it part of your build
  • It makes the build process easy
  • It keeps the same guids
  • It can map guids of records used e.g. user records

I wouldn’t recommend this tool to copy lots of data across, it not designed for bulk copying and might result in a situation where half the data has copied across.

Configuration record

A different way to avoid the guid problem is to create a configuration/System Settings entity which you can use to hold global settings used in your customisations.

Having a configuration entity encourages developers to put global configurations in the entity rather than inside the code or on each entity.  Standard approaches to development make it easier for teams to create one solution and easier to debug.

A configuration entity is easier for the team to the global configuration settings which when changed and can cause CRM to act in an unexpected way.

I have seen CRM teams create one entity and add fields as needed but I prefer to create a simple entity with a name and value field.  This way you can add more configuration settings by creating record rather than having to update an entity and add fields.  What ever system you use this code should be standard code used in different projects, this allows you to create reusable code and customisations.  Why isn’t code reused in Microsoft Dynamic CRM projects?

The reason this stops the workflow guid problem is workflows reference a field on the configuration entity which you can set at runtime and configure once on each environment.  When you change a workflow it will point to the configuration entity which is the same in each environment.

This method encapsulates what changes and separating it from the rest of CRM.

Manual method

It‘s possible to export records from Microsoft Dynamics CRM, tick the import button, save the record as a CSV.  This will give you the guid for each record in the export (explaining how the enrich/import data works, it uses the good to reimport the data to the correct record).

The records are imported, setting the guid for each record, keeping the same guid between CRM instances.  This method works but involves manual manipulation of excel records and CRM developers have better, more interesting things to do.

I have worked on projects in the past which created its own import/export console app, this worked but many hours were spent maintaining and debugging the tool.  It’s better to use the Dynamics CRM Configuration Data Mover.

Get a deployment process

Data copying and keeping CRM instances in sync is important but its one of many parts of a deployment process.

You need a standard deployment process.  Deployment process and checklists are great with repeatable static lists of tasks where you need to do multiple steps in a set order.  Read the blog post below for ideas

CRM 2015 – Best practices for CRM Deployments

You should automate as much of the deployment process as possible, this

  • Reduce errors
  • Stop wasting developers time
  • Quicker
  • Allows people to deploy without knowledge part of the deployment process

A few other thoughts

I few of blog posts on keeping your Dev environment in good order and best practices

MB2-712 – CRM 2016 customisation and configuration Hosk study notes

There is no end to education. It is not that you read a book, pass an examination, and finish with education. The whole of life, from the moment you are born to the moment you die, is a process of learning.

Jiddu Krishnamurti


I recently passed the MB2-712 – CRM 2016 customisation and configuration certification, you can read my thoughts on the MB2-712 – Microsoft Dynamics CRM 2016 Customization and Configuration certification

The certification covers a lot of big areas in Microsoft Dynamics CRM and you will need to make a lot of notes.  If you have taken earlier custom and config certifications a lot of this information can be found on my

I have some previous study notes for the CRM 2013 custom and config certification, much of which is still relevant (security, solutions, Business Rules, etc).  You can find those study notes on the link below

MB2-703 – CRM 2013 Customization and Configuration Certification Information

CRM 2016 Hosk study notes

The notes focus on CRM 2016 functionality which I hadn’t used, has been updated or I didn’t cover in my previous study notes.

These are just study notes, you will need to understand the functionality and use it before you take the certification.

If you are studying for the certification and you work for a Microsoft Dynamics partner make sure you check out the E-Learning online course – Microsoft Dynamics CRM Team – CRM 2016 Customization and Configuration 80729: Customization and Configuration in Microsoft Dynamics CRM 2016

A lot of the notes  from many excellent technet articles created by Microsoft, which shows they do a great job with their documentation.  Below is just parts I use to study but you should read the article to understand how the functionality works

Business rules

  • Condition is criteria/if statement
  • Action changes values/updates
  • You cannot set to business recommended – must use JavaScript
  • Actions occur when conditions evaluate to true, the AND/OR must be true
  • You can’t mix multiple conditions they are either AND or OR
  • Set scope to Entity if you want a business rule to run on the server, not just on the client side
  • Business rules are not triggered when you save a record
  • Business rules are triggered when a record is opened or when a field is changed which the rule conditions are set to check e.g Form OnLoad and Field OnChange
  • Business rules action will run only if condition is true
  • Business rules work at a field level – not triggered by tabs or sections
  • Scope – All forms is all forms including Quick Create
  • Scope – Entity runs on the server and client
  • Scope – single form – business rules only run for this form
  • If/Else is needed to show and hide fields
  • Nested IF/ELSE not available

Business rules actions can

  • Set field Value
    • Field
    • Value
    • Formula
    • Clear
  • Show error message
  • Set Visibility
  • Set default value

Business Process Flows

  • Enabled from the entity definition screen
  • Once Business process flow is enabled you cannot disable
  • A business flow has a primary entity but can span multiple
  • 3 out of box Business process flows enabled by default
  • 12 additional BPF’s which can be enabled via Settings à data management
  • Once enabled you have to disable each individually
  • One entity per stage
  • Stage category is just for reporting – it’s linked to a global option set (which you can change)
  • Step name = fields shown on the business process flow
  • Branches can be only 5 levels deep
  • Maximum 30 stages
  • Maximum 30 steps per stage
  • Relationships doesn’t need to exist between entities
  • Other entities must have Business process flow enabled
  • Relationships are 1:N
  • Security roles can be assigned, options will be disabled
  • Each entity can have no more than 10 activated business process flows
  • Each process flow has a maximum of 30 stages
  • Multi-entity process can use no more than five entities.
  • You can only run one business flow for each record
  • Current process and stage is a unique identifier. This allows the user to return to the process at a later time.
  • Business process flows can be associated with security roles, so only users with specific security roles will see the business rules.


  • Yammer is subscription based and requires an enterprise account
  • Once Yammer is enabled there is not an option to go back to activity feeds


  • Personal charts can be shared with users or team
  • Charts can be exported as a Chart XML file and imported (use XRMToolbox in real life)
  • With a Chart you can
    • Select the entity
    • Select fields you want to aggregate (sum, count)
    • Select chart type
  • Aggregate options
    • Count: All
    • Count: Non empty
    • Avg
    • Max
    • Min
    • Sum


  • You can display
    • Charts
    • Lists
    • Iframe
    • Web resources
    • Social insights (if you have Microsoft Social Engagement)
  • Dashboards can be made available for tablets
  • System Dashboards can specify security roles which can view each dashboard
  • In properties you can enable dashboard for tablets and individual sections for mobile

Rollup fields

  • Rollup fields recalculate once an hour
  • Rollup fields supported – Whole Number, Date and Time
  • Rollup fields not supported – Option set and Lookup
  • Aggregate value of records related to a specific record
  • Rollups fields are asynchronous, they don’t run in real time
  • Rollup fields can be run by workflows or business rules
  • Read Microsoft Dynamcis CRM 2015 Rollup Fields: The Gotchas
  • Rollup fields can be refreshed manually or triggered by a workflow CalculateRollupField message
  • Changes to rollup fields DO NOT trigger a workflow processes

Available Functions

  • Sum
  • Count
  • Min
  • Max
  • Avg
  • Rollup Fields are automatically rolled up 12 hours after they are created.
  • You can manually Rollup a field at any time by clicking the Refresh button on the rollup field.
  • You can only have a maximum of 10 rollups per entity, and 100 per organization.
    • This is configurable for on premise deployments, but be aware of potential performance implications
  • A rollup field can’t be included in other rollup fields
  • Data from Rollup field are not stored by CRM auditing, so there is no real way to store historical values of a rollup field.

  • Access to rollup data can be secured using regular field security permission to ensure that it is only available to authorized users if needed.
  • When a rollup field is created on any entity, the platform automatically creates two other fields to store metadata for the field calculation timestamp and status of last operation. These are suffixed with “_date” and “_status” accordingly.
  • “_date” stores a timestamp when the rollup field was last recalculated and “_status” shows result of operation in numeric value, these statuses reflect:
    • Not Calculated
    • Calculated
    • Overflow Error
    • Other Error
    • Retry Limit Exceeded
    • Hierarchical Recursion Limit Reached
    • Loop Detected

  • Seamless integration with the user interface. You can include the rollup fields in forms, views, charts and reports.
  • Rollup fields are solution components. You can easily transport the rollup fields as components between organizations and distribute them in solutions.
  • Rollup fields and the calculated fields are complementary to each other. You can use a rollup field as a part of the calculated field, and vice versa.

The text below comes from this technet article

Rollup calculations

  • Mass Calculate Rollup Field is a recurring job, created per a rollup field. It runs once, after you created or updated a rollup field. The job recalculates the specified rollup field value in all existing records that contain this field. By default, the job will run 12 hours after you created or updated a field. After the job completes, it is automatically scheduled to run in the distant future, approximately, in 10 years. If the field is modified, the job resets to run again in 12 hours after the the update. The 12 hour delay is needed to assure that the Mass Calculate Rollup Field runs during the non-operational hours of the organization. It is recommended that an administrator adjusts the start time of a Mass Calculate Rollup Field job after the rollup field is created or modified, in such a way that it runs during non-operational hours. For example, midnight would be a good time to run the job to assure efficient processing of the rollup fields.
  • Calculate Rollup Field is a recurring job that does incremental calculations of all rollup fields in the existing records for a specified entity. There is only one Calculate Rollup Field job per entity. The incremental calculations mean that the Calculate Rollup Field job processes the records that were created, updated or deleted after the last Mass Calculate Rollup Field job finished execution. The default maximum recurrence setting is one hour. The job is automatically created when the first rollup field on an entity is created and deleted when the last rollup field is deleted.
  • Online recalculation option. If you hover over the rollup field on the form, you can see the time of the last rollup and you can refresh the rollup value by choosing the Refresh icon next to the field, as shown below:

Rollup field considerations

  • A workflow can’t be triggered by the rollup field updates.
  • A workflow wait condition cannot use a rollup field.
  • A rollup can’t reference a calculated field that uses another calculated field, even if all the fields of the other calculated field are on the current entity.

Calculated Field

  • Calculated fields are not simple fields – they are Field Type – Calculated
  • You can’t convert a simple field into a complex field
  • You can calculate value on the entity and related parent entity
  • You cannot calculate related records
  • You cannot change the field type after initial save
  • You can always change the calculated expression/formula

Hierarchy security

It’s in addition to your current security.  It extends the current security model.  This works on top of your existing security levels

  • You can choose managerial or position but not both.
  • It works at a position level or managerial level


  • A manager must reside in the same business unit or the parent business unit of the person they manage
  • Manager is defined on the user record
  • The manager must have read access enabled on entities


  • You must set the managers
  • Managers have read, write, update, append and append-to for direct reports. NOT DELETE
  • Non – Direct reports – have only read only access data. (you can only see it)
  • It works within the business unit structure


  • Does not use the direct report model
  • It works beyond business units, e.g. it position spans business units
  • Spans business units
  • The more levels can effect performance for the higher
  • Optimal performance is around 4 levels, maybe 5
  • You can set individual entities to be used in the hierarchy management
  • Position hierarchy can span business units.

Videos on Hierarchy security


Technet/msdn articles on hierarchy security

App for Outlook

Works in a server level – works with outlook or OWA (exchange service)


  • Tablet
    • Dashboards
    • Offline Drafts – create new records
    • Open in a default browser
    • Offline search
  • Phone
    • Hide from phone (similar)
    • Fields, sections, tabs and lists

Dynamics CRM license options

  • Essential – no access to sales or marketing functionality
  • Basic – access base CRM functionality – Account, contract, lead, cases
  • Professional – access sales, services, marketing
  • Enterprise – Everything + MDM, Parature etc

These notes are from the Slides

Email – Mailboxes

  • Each user/queue enabled for email has a mailbox record
  • Mailbox record defines email synchronisation for the user
  • Incoming, outgoing, and appointments. Contacts & tasks
  • Each mailbox must be approved and enabled before emails can be sent
  • You can check the status of mailboxes in the Server-Side Synchronisation monitoring
  • System Settings – Email sets the default synchronization and emails settings

Dynamics CRM 2016 supports a few different methods for processing email:

  • CRM for Outlook
  • The Dynamics CRM Email Router
  • Server Side Syncing

Multi-Entity Quick Search

  • Out the box, this new search feature will search across the following entities:
  • You can select up to 10 entities for a quick search
  • You can choose any of the 90 visible entities
  • Any custom entities
  • It uses the Quick Find Search settings for each entity
  • Default entities – Account, Contact, Lead, Opportunity, User, Competitor, Activity, Case
  • Out of box, the multi-entity quick find is defaulted to search seven entities in Dynamics CRM:
    • Accounts
    • Contacts
    • Leads
    • Opportunities
    • Users
    • Competitors
    • Activities

It’s hidden in Settings à Administration à System Settings à General tab and there is a button Quick find


  • The default theme is called CRM Default Theme
  • The default theme is type System and Default Theme = Yes
  • Themes cannot be included in Solutions.  This means you need to export and import them between organisation.
  • After importing a theme you must publish it.
  • When you publish a theme, previously published theme will become unpublished

This technet page has some good limitations

What can you change or adjust with themes?

  • Logo
  • Logo tooltip
  • Navigation bar color
  • Navigation bar shelf color
  • Header color
  • Global link color
  • Selected link effect
  • Hover link effect
  • Process control color
  • Default entity color
  • Default custom entity color
  • Control shade
  • Control border

Theme limitations below are from the technet article

  • Even though the theme colors are applied globally throughout the application, some legacy UI areas, such as gradient buttons, will retain the default colors.
  • Certain areas must use dark or light colors to contrast with the default icon colors. The icon color isn’t customizable.
  • An entity can’t be displayed in different colors under different Sitemap nodes.
  • The Sitemap nodes colors aren’t customizable.

Solutions Patches

Technet – Use segmented solutions and patches to simplify solution updates

  • A patch represents an incremental minor update to the parent solution. A patch can add or update components and assets in the parent solution when installed on the target system, but it can’t delete any components or assets from the parent solution.
  • A patch can have only one parent solution, but a parent solution can have one or more patches.
  • A patch is created for unmanaged solution. You can’t create a patch for a managed solution.
  • When you export a patch to a target system, you should export it as a managed patch. Don’t use unmanaged patches in production environments.
  • The parent solution must be present in the target system to install a patch.
  • You can delete or update a patch.
  • If you delete a parent solution, all child patches are also deleted. The system gives you a warning message that you can’t undo the delete operation. The deletion is performed in a single transaction. If one of the patches or the parent solution fails to delete, the entire transaction is rolled back.
  • After you have created the first patch for a parent solution, the solution becomes locked, and you can’t make any changes in this solution or export it. However, if you delete all of its child patches, the parent solution becomes unlocked.
  • When you clone a base solution, all child patches are rolled up into the base solution and it becomes a new version. You can add, edit, or delete components and assets in the cloned solution.
  • A cloned solution represents a replacement of the base solution when it’s installed on the target system as a managed solution. Typically, you use a cloned solution to ship a major update to the preceding solution.
  • Version numbers are compared when solutions are imported.
    • Newer versions will replace existing versions of the solution.
  • Version Number
    • Up to four numbers separated by decimals
    • Appended to solution name to create exported filename

Entity Assets

  • Specify exactly what should be included in the solution
  • Includes tabs to select specific,
    forms, views, charts, fields,
    relationships, messages,
    Business rules and Hierarchy
  • Assets can be can be added later
  • Must be defined for every
    entity added to the solution

Technet – Create patches to simplify solution updates

Read this on solutions segmentation

Types of Solutions

  • System solution: – The default solution, when you go to customization.
  • Unmanaged solutions: Editable solutions which act as a contrainer for customizations Container for unmanaged customizations. Deleting an unmanaged solution doesn’t delete customisations or data.  You can export an unmanaged solution.  When you import an unmanaged solution you must publish it.
  • Managed solutions: non editable.  Deleting a managed solution delete customisations and data.
    • Created by exporting an unmanaged solution (you cannot export a managed solution).
    • Can’t change the customisations inside a managed solution
  • Managed Patches: Updates and fixes that can be pushed out to Managed solutions that allow updated specific components and not having to overwrite the entire contents of an existing solution.

Quick Create forms

  • you can define multiple quick create forms, only one quick create form can be used by everyone
  • The form everyone will use is set using the form order.
  • Quick create forms cannot be assigned to security roles
  • You cannot switch quick create forms
  • You can disable quick create forms by unticking the Allow Quick Create option on entity settings

The following controls cannot be added to quick create forms:

  • Sub-grids
  • Quick View Forms
  • Web resources
  • Notes
  • Bing Maps

Quick View Form

Technet info –

  • Allows you to view information about a related entity from within a form of another record. E.g. see a contact details on an account.
  • You add a quick view control to an entity
  • It can be for lookup fields which exist on the entity
  • You must save and publish the main form before the quick view control changes will be visible
  • You can only view the information not edit with a quick view control
  • Multiple sections are allowed
  • Only one tab

Status Reason Transitions

if you add Status reason transitions, you must include one inactive status for each status.


Actions that Trigger Cascading Behaviour for 1 to many relationships

  • Assign
  • Share
  • Unshare
  • Re-parent
  • Merge
  • Delete


  • 1 to Many relationship creates a native hidden intersect entity
  • Intersect entity is managed by CRM, cannot view or customize.
  • If you want to record information in the many to many relationship entity then you need to create a new entity, which you can edit/add fields/report on.
  • Native = CRM creating intersect entity
  • Manual = creating a new entity


  • Ad Hoc relationships – do not need relationships to be created
  • Allows you to connect records
  • Connections can be used in queries and reports
  • Connection role provides a description


  • Tabs
    • Can have one to three columns
    • Must contain at least one section
  • Section
    • Contains one to four columns
    • Can show
      • Fields
      • Sub Grids (lists or charts)
      • Notes
      • Iframes
      • Web resources
      • Bing maps
      • Spacers (blank space)

Additional components

  • Spacers
  • Timer
  • Knowledge base search
  • Social insights

Sub-grid for Access Teams (must enable entity for access teams)

Multiple forms

  • Enable specific security roles to access forms
  • Can remove security roles from forms
  • Form order determines which form a user sees
  • Enable for fallback is the form for users who security role is not assigned to any form.

CRM Mobile

  • Only first 5 tabs or 75 fields/10 lists appear on mobile client
  • Set available on Phone checkbox to show/hide tabs in mobile
  • Collapsed tabs still count
  • Only 5 tabs will show even if it’s less than 75 fields
  • You have to put fields in the first five tabs for them to appear in a mobile client
  • Mobile can have specific mobile only controls (sliders)

Hosk’s Top CRM Articles of the week – 20th June


“Remember to always be yourself. Unless you suck.”
Joss Whedon

If a product isn’t easy to use then people won’t use it #HoskWisdom

What I love about the Microsoft Dynamics CRM community is there is always someone willing to help you #HoskWisdom


Someone asked me this week if they thought at some point I might run out of #HoskWisdom and I said don’t worry, I’m full of it 🙂 (drum beat followed by symbol clash)

If you can meet writing coding and boring non code tasks
And treat those two impostors just the same;
ours is the Earth and everything that’s in it,
And – which is more – you’ll be a Man, my so

Article of the week

CRM Article of the week

Hands on application integration dynamics CRM using azure service bus

Great article on using Microsoft Dynamics CRM Online with the Azure service bus, it’s a step by step guide

Best of the Rest

Software boundaries and limits for Dynamics CRM 2015/2016/Online Part 1

Microsoft buys LinkedIn – What you need to know

Deprecation announcements with Dynamics CRM Online 2016 Update 1 and 2016 Service Pack 1 

CRM 2016 – How to find the default currency without going into Office 365

An Introduction to Office 365 Groups for Dynamics CRM

salesforce license pricing is more than 2.5 times the price of comparable Microsoft licenses before sandboxes etc

Find out more about the new courses and exams

35 Best Dynamics CRM Blogs of 2016 

CRM 2016 – XRMToolBox – loadFromRemoteSources error

Gotcha Working with Dynamics CRM Web API: Grammar

Getting Started with Fiddler and CRM

Improved Iconator for XrmToolBox

Create an SLA to contact Leads

Thoughts on the MB2-712 – Microsoft Dynamics CRM 2016 Customization and Configuration certification


write less code

7 deadly career mistakes developer make


WHAT! – Germany have a 100% record in World Cup shoot-outs, winning all four and missing only one of 18 penalties.  Now they have an app to help them, read more here

Microsoft once had to rebuild a critical product because even its own managers couldn’t figure out how to use it


A Leadership Lesson From Eisenhower’s Stoic Reversal at D-Day

Useful Hosk Links

Hosk list Of CRM 2013 Tools

A list and review of CRM 2013 tools, this will probably work in CRM 2015 as well

Hosk’s CRM Developer Articles

A collection of my favourite CRM Developer articles I have written

MB2-703 – CRM 2013 Customization and Configuration Certification Information

All the CRM 2013 content to help you pass the exam

HoskWisdom – Hosk Developer Quotes

 Words of Wisdom from the Hosk.  I have written over 1000 articles, surely I should have said a few memorable things

CRM 2016 – How to find the default currency without going into Office 365

Before you do anything, always stop to think #HoskWisdom

I was tasked with moving a customisations, data and config from one CRM Online instance to another.

I was only a CRM System Administrator and didn’t have access to Office 365.  I was checking some of the settings and wanted to know the default currency.

The default or base currency is set when you create your Microsoft Dynamics CRM instance, it’s usually set to the country where the organisation is based.

If you add more currencies you have to keep the exchange rate up to date but CRM calculates all values in the base currency and converts them using the exchange rate on the screen.

If you want to learn more about currencies in CRM this blog is excellent


I headed over to check the currency section of Microsoft Dynamics CRM

Settings –> Business Management –> Currencies


Having two currency fields meant I didn’t know which one was the base currency field

I tried to use the FetchXML builder to see if there was a field which specified which currency was the default currency but there isn’t.  I never realised the Currency entity has the schema name of transactioncurrency.

Using my Sherlock detective skills the currency with the earliest CreatedOn date would be the first currency record and likely to be base currency.  I’m guessing the base currency would be the one with 1 exchange rate.

Currencies 1

I didn’t want to guess because assumptions can cause problems and bugs in Microsoft Dynamics CRM.

I decided to open the currency records and when I opened GBP and it told me it was the base currency.  The exchange rate is read only

Currencies 3

The EUR exchange rate was editable and it didn’t tell me it was the base currency.

Currencies 2

CRM 2016 – XRMToolBox – loadFromRemoteSources error

Do not wait; the time will never be ‘just right.’ Start where you stand, and work with whatever tools you may have at your command, and better tools will be found as you go along.

George Herbert


The latest XRMToolBox  is fantastic, its awesome  you can download the external plugins from the plugin store by clicking on the plugin store button.

XRMToolkit plugin store

If you are not using the XRMToolbox then download it here and go to the plugin store and you will find something useful which will save you hours of manual work.

loadFromRemoteSources error

I opened up the XRMToolbox and got the error below when I tried to use the plugin store


This error is caused by an assembly (dll) being loaded from a remote source and be granted full trust

You can find information about the error on the page below

This stackoverflow page helped me understand the issue

In the xrmtoolbox config file you can have the element – loadFromRemoteSources and this can have a true or false value.  To make the PluginStore work we need to set the trust to true.

In the folder you should find a file called


Below is the code I put at the bottom above the configuration

<loadFromRemoteSources enabled = “true” />

Here is a picture, to show you where I put the lines

XRMToolkit plugin store 1

Save the XrmToolBox.exe.config and open the XRMToolbox again and now the plugin store should work.



Microsoft buys LinkedIn – What you need to know

Price is what you pay. Value is what you get.

Warren Buffett

In recent years Microsoft has acquired many which have been a mixture of success and failure (Nokia).  When a company creates billions in profits, you need to invest the money to generate more money and fit in with your strategy.   This article will highlight key points in the acquisition and how it fits in with the current Microsoft Dynamics strategy.

What do we know

I have taken interesting facts and snippets from various and ever expanding list of articles on the subject.

Microsoft has brought LinkedIn for $26.2 billion and $196 per share in an all-cash transaction

facts from bloomberg article – Microsoft to buy LinkedIn in deal value at 26.2 billion

  • LinkedIn will retain its brand, culture and independence and Jeff Weiner will remain chief executive officer of the company, Microsoft said in a statement Monday.
  • The offer values LinkedIn about 91 times earnings before interest, taxes, depreciation and amortization, according to data compiled by Bloomberg.
  • The deal is the largest under the tenure of Microsoft CEO Satya Nadella
  • LNKD up ~47% to right near the takeover value.
  • Shares of MSFT, though, are down almost 3%.
  • LinkedIn’s book value is just $4.6 billion (so they have paid 6 times their book value)

  • LinkedIn didn’t make money last year, posting a loss of $166 million in 2015. The loss accelerated in Q1 to $45.8 million/quarter.

one of the largest tech acquisitions since the the peak of the dot-com era, when AOL spent $162 billion to buy Time Warner. (The only larger one has been Dell’s $67 billion purchase of EMC, announced last year.)
This presentation has some good figures –  public presentation.
  • 19 percent growth year over year (YOY) to more than 433 million members worldwide
  • 9 percent growth YOY to more than 105 million unique visiting members per month
  • 49 percent growth YOY to 60 percent mobile usage
  • 34 percent growth YOY to more than 45 billion quarterly member page views
  • 101 percent growth YOY to more than 7 million active job listings
Microsoft and LinkedIn will host a joint conference call with investors on June 13, 2016, at 8:45 a.m. Pacific Time/11:45 a.m. Eastern Time to discuss this transaction.
The call will be available via webcast at and will be hosted by Nadella and Weiner,
Never in my wildest dreams, could I have imagined what would happen in the next 7½ years. Our team has grown from 338 people to over 10,000, our membership from 32M to over 433M and our revenue from $78M to over $3 billion.


Microsoft-LinkedIn deal to benefit Office 365, Dynamics CRM

The Microsoft-LinkedIn deal, which is expected to close by the end of the calendar year

Microsoft Dynamics CRM and LinkedIn current integration

Sales navigator is an existing integration between Microsoft Dynamics CRM and LinkedIn created sometime around June 2015.  I will admit to not knowing this and never seen it.
I’m not sure the quality of the product but it was an important step in creating a good relationship between the two companies.  Learn more in the articles below

Microsoft previous acquistions

This article has a good overview of Microsoft acquisitions: Its biggest hits and misses, it has some interesting facts

  • Nokia – $7.2 Billion – 2014
  • Minecraft – $2.4 billion – 2014
  • Yammer – $1.2 billion – 2012
  • Skype for $8.5 Billion, 2011
  • Visio – $1.375 billion – 2000
  • Navision –  $1.45 billion – 2002
  • aQuantive –  $6.3 billion – 2007
  • Rare – $375 million – 2002
  • Tellme Networks – $800 million – 2007

Big acquisitions are fraught with danger and depending what made up figures you read but many articles suggest mergers fail 70 to 90 percent of the time.  When Microsoft previously made big purchases, they have not always gone well, Nokia being the standout failure (I loved my first Nokia mobile).

Microsoft and LinkedIn will need to work hard to make this a success.

What does it mean for Salesforce

With Microsoft buying LinkedIn, I questioned LinkedIn’s current integration with other applications, how many are there and what will happen to them.  LinkedIn is not integrated with many other applications.

The sales connector mentioned above integrates with Microsoft and Salesforce, I was expecting lots of applications to integrate with LinkedIn.  The article below explains the small number of integrations

LinkedOut: CRM companies squawk over LinkedIn’s API policies

It seems LinkedIn is selective about what companies can integrate with LinkedIn, the value of LinkedIn is the people it has in it’s database who are using it’s website.

The lack of companies which integrate with LinkedIn shows a sense of direction and a clear strategy.   Satya has played nicely with Salesforce last year creating a partnership, which is discussed below

Will Satya share LinkedIn with Salesforce or will he turn the screw and allow Microsoft Dynamics to create a competitive advantage by only integrating with Microsoft.

Why did Microsoft buy LinkedIn

In the public presentation it has the slide below showing both company mission statements


Empower every person and every organization on the planet to achieve more


Connect the world’s professionals to make them more productive and successful

They share elements of a common goal of helping people and organisation work productively by working together, Microsoft uses technology to help connect people, LinkedIn uses it’s website.  The key element is people and LinkedIn have 433 million people who Microsoft can try and tap into.

Microsoft strategy is Cloud first, mobile first and

In this article We just talked to Satya Nadella and Jeff Weiner about why Microsoft decided to buy LinkedIn Satya mentions the points he considered

  1. Does it help Microsoft expand the addressable market?
  2. Does it help “ride some new technology waves that are secular that are increasing engagement with users?”
  3. Is it core to Microsoft – “is it something where Microsoft can uniquely differentiate?”

Buying LinkedIn fits into Microsoft’s cloud strategy which is an area Microsoft needs to keep pushing into if it’s going to convert itself to a cloud solution company from a desktop solution company.

These quotes from here highlight the potential of the deal

It helps us differentiate ourCRM product with social selling. It helps us take Dynamics [Microsoft’s suite of business management software] into new spaces like human capital management with recruiting, and learning, and talent management.

He also said that the deal would help Microsoft target “sales professionals, talent people, and recruiting folks, as well as marketeers who are looking for B2B marketing targeting.”


This quote gives a strong indication where the future lies for the LinkedIn/Microsoft, it’s taken from Satya’s LinkedIn Memo

It requires a vibrant network that brings together a professional’s information in LinkedIn’s public network with the information in Office 365 and Dynamics. This combination will make it possible for new experiences such as a LinkedIn newsfeed that serves up articles based on the project you are working on and Office suggesting an expert to connect with via LinkedIn to help with a task you’re trying to complete. As these experiences get more intelligent and delightful, the LinkedIn and Office 365 engagement will grow. And in turn, new opportunities will be created for monetization through individual and organization subscriptions and targeted advertising.


It sounds good in theory, we need to see how it will work in practice, we wouldn’t want a LinkedIn version of the paperclip!

Here is a good article 6 Ways the LinkedIn Acquisition Will Improve Microsoft Dynamics CRM

Will it be successful?

Most acquisitions fail because the company buying is focused on what benefits the company being brought can bring, successful acquisitions focus on the benefits they can bring to the company they are purchasing.

Now LinkedIn is owned by Microsoft, it can pursue a long-term strategy, focusing on integrating with Microsoft and not waste time, effort and money on short term strategies.  Microsoft can if they choose speed up LinkedIn’s development and growth

Integrating LinkedIn with Microsoft office products/Office 365 and Microsoft Dynamics products can add value to the LinkedIn and give Microsoft a unique differentiator..

One area LinkedIn is lacking is the integration of it’s data with companies, this could happen with integration with Office 365 and Microsoft Office products.

The value of LinkedIn isn’t the technology but the people registered on LinkedIn, these are of great value to Microsoft.  Microsoft has overpaid in today‘s market but this might turn out to be a great investment in 5 to 10 years time.

Without Microsoft LinkedIn has a great business model, LinkedIn haven’t monitized their platform much, improvements in this area will bring larger profits.  Being owned by Microsoft should help and could prove profitable for both Microsoft and LinkedIn.

Letting LinkedIn be its own company is a great move because it was doing a good job in a different way to Microsoft, so instead of disrupting it, let it continue.

Whats the buzz in the CRM community

There will be more news and articles in the days to come but yesterday I saw these

Microsoft + LinkedIn == True

Hosk’s thoughts

Microsoft have overpaid but when there is cash in the bank and slowing growth you feel you should act.  The 433 million users will be a massive benefit to Microsoft and buying LinkedIn they purchased the leading working network site.

Most professionals use LinkedIn and Microsoft Office products, integrating them will save time and add value to those people who use them.

inkedIn integration to the Microsoft Dynamics products will give Microsoft a competitive advantage Salesforce and other CRM products won’t be able to match.

The price Microsoft has paid is a testament to the progress LinkedIn has made because of LinkedIn size, it would be difficult for Microsoft to compete by creating it’s own platform, Microsoft needed LinkedIn more than LinkedIn needed Microsoft.

Buying LinkedIn fits in with Microsoft’s cloud strategy and helps them to continue to grow in this market.  LinkedIn will become a profitable company on its own but working with Microsoft both companies can benefit.

The main criticism with the acquisition is the price, Microsoft have overpaid big time but this is only a consideration in the short term and it was money Microsoft had in cash!  I will end with the same Warren Buffet quote

Price is what you pay. Value is what you get.

Warren Buffett

Good Articles

Thoughts on the MB2-712 – Microsoft Dynamics CRM 2016 Customization and Configuration certification

In school, you’re taught a lesson and then given a test. In life, you’re given a test that teaches you a lesson.

Tom Bodett

I  took the MB2-712 – Microsoft Dynamics CRM 2016 Customization and Configuration certification last week and will share my thoughts on certification

The CRM version is back

Microsoft removed the Microsoft Dynamics CRM version for the CRM 2015 Dynamics CRM certifications but have added it back.  It‘s good because you can tell what certification CRM professionals has, giving you an idea if they studied new functionality in the latest version of CRM.

Certifications are a great motivator to learn the new features in Microsoft Dynamics CRM, using new features on projects is delayed by a half a year to a year because solution architects don’t match requirements with the functionality which is still in development or not released when the solution was designed.

Reasons you don’t get to use new functionality

It’s great to learn and use new Microsoft Dynamics CRM functionality in a project but often CRM professionals don’t get to use the latest Microsoft Dynamics CRM version because

  • Working support on older CRM versions
  • Large projects can take a year or more and solutions designed on older CRM versions
  • New functionality isn’t needed for project
  • It’s a risk using new functionality, with version 1 often containing limitations or not working properly (Business rules, CRM Mobile, etc)

CRM professionals need to keep up to date with new CRM versions and related products in addition to working on projects because the next project you work might use the new functionality.  The best way to stay up to date with new features and products is reading articles on twitter or blogs.

Reading about new functionality is useful but a passive way of learning which leads to a high level understanding.  CRM Professionals need to understand

  • What new functionality/product is?
  • What does it do?
  • What scenario’s should it be used in?
  • What are the limitations?

CRM professionals need theoretical and practical knowledge of CRM features.  I recommend CRM developers start with the CRM SDK before opening CRM and using the new features.

Experience with new features is important for CRM professionals because you have to understand the limitations of Microsoft Dynamics CRM to make sure you pick the right customisation for the right job.  This is why .NET developers struggle with CRM development, a lack of experience.

Studying for Microsoft Dynamics CRM certifications combines learning about new functionality and trying it out because the best way to studying for a CRM certification is by looking at new features and

  • Try it
  • Learn it
  • Study it
  • get certified in it

If you are not convinced by the value of Microsoft Dynamics certifications, check out the benefits of CRM certifications

It‘s big

The MB2-712 certification is big, covering a lot of functionality in Microsoft Dynamics CRM, look at the certification criteria here

  • Configure settings
  • Security – Business units, teams, access teams, security roles
  • Solutions
  • Entities
  • fields, views, forms
  • Business rules
  • Business process flows

Some of areas are massive, security and solutions are complex areas of Microsoft Dynamics CRM, it’s vital a CRM professional understands those areas in depth.

The E-Learning training course is over 12 hours long, you must be logged into partner source to use the training

80729: Customization and Configuration in Microsoft Dynamics CRM 2016

I’m not a fan of video learning because you can’t skip the parts you know and I find it difficult to sit and focus on long videos.  Microsoft do a good job of overcoming these problems by splitting up the videos into small sections.

One improvement would be to make the test questions similar to the questions exam questions, giving people an idea of the standard they needed to pass the certification.

The criteria is big, covering commonly used functionality, such as fields, forms, views, security and solutions.  Many CRM professionals will know these areas because they use them regularly.

The exam is the same but different

I’ve taken the customisation and configuration certification from CRM 4 onward, this is my 5th customisation and configuration certification.

In the past the certifications focused on the new features, this made sense because it differentiated the certification from earlier CRM certifications, concentrating on learning the new features.

This exam was different, I’m not sure if it‘s because there wasn’t lots of new features but the exams tone  was different than earlier certifications.

The questions were more realistic in testing skills CRM professionals use in regularly.  A few questions were like requests I received from end users.   This differs from earlier exams where the questions focused on testing the user’s knowledge of CRM.

There are still some ridiculously odd/badly worded questions, I needed to read some questions 5 times to get close to understanding the question was asking.  It puzzling Microsoft can let such poor questions to make it into the final exam.

The tone of the questions was a lot better, so well done to the Microsoft.

After finishing the exam, I felt much of my studying wasn’t needed and many areas I focused on didn’t come up in the exam.  I’m not sure if my notes were too detailed or it was the change in type of questions.  In earlier exams you needed to understand the limitations of functionality in detail.

Proctored Exam

Taking a certification is a big hassle, the test centres are often small buildings in odd locations with habit of closing down regularly.  It can easily take half a day taking a CRM certification with the drive to and from the test centre, the need to get to the test centre early.

Pearson VUE and Microsoft allow you to do proctored exams, which means you can do an exam using a computer which has a webcam and microphone, awesome.

I booked the exam in the morning to do in the afternoon (booking test centre exams often done weeks in advance to get a decent time slot).  As long as you have a laptop with Windows 7, 8 or 10, a webcam and Microphone you are probably OK to do the test from home or the office.

You will need to jump through a few hoops, clean your desk, covering pictures and bookshelves, emptying pockets, no interruptions, closing all applications on your computer.   This is good policy because you don’t want people cheating but it can take 15-20 minutes to go through your room with the “greeter”.

The exam time has dropped, you now get 1 hour 30 minutes for 48 questions.  I’m sure it was 2 hours, giving you time to go through the questions twice and have 20 minutes left.

A couple of things to note about the proctored exam, finding the url is a bit tricky, it wasn’t obvious and the link to the exam was small but this tells you what to do

  • To begin your testing session and connect to a Greeter: sign-in to, click “Your benefits & exams” to view your appointments, and then choose “Start a previously scheduled online proctored exam.”

If you are going to take the proctored exam make sure you run through the test exam, to make sure the software will work on your machine without problems.

The exam ends suddenly ends, it tells you if you have passed or failed and then exits, it left me wondering if I needed to do anything else.

Proctored exams are great, well done Microsoft.


I passed the exam with a score of 800, the bbenefit of the certification  is learning new features and functionality which I hadn’t before but only read about

The training videos are great and credit to the trainer and the slides are a great resources for revising.  It was enjoyable but I’m glad its done.