Sunday, May 31, 2015

Microsoft SharePoint and Dynamics CRM -- Better Together: Part 6

Using Both Microsoft Dynamics CRM and SharePoint

By integrating SharePoint with Microsoft Dynamics CRM, you can easily add this extensive functionality to your solution. Dynamics CRM 2015 includes built-in integration with SharePoint so you can show related documents within a Dynamics CRM form. Dynamics CRM supports integration with SharePoint Server 2010, SharePoint Server 2013, and SharePoint Server Online.
An article in MSDN illustrates the integration options: 
SharePoint integration enables you to store and manage documents on SharePoint in the context of a Microsoft Dynamics CRM record, and use the SharePoint document management abilities in Microsoft Dynamics CRM, such as checking the document in and out, viewing version history, and changing document properties. 

Because both SharePoint and Dynamics CRM are available deployed in the cloud or on premise, there are several permutations of how you can handle authentication and integration. 

You can integrate with SharePoint in two basic ways:
  • Client-to-server integration with SharePoint: This uses the Microsoft Dynamics CRM List Component in the sandboxed environment of SharePoint.  Client-to server integration is supported for both online and on-premises versions of CRM and SharePoint.
  • Server-to-server integration with SharePoint (CRM Online only): This does not require you to install the Microsoft Dynamics CRM List Component in the sandboxed environment of SharePoint or any other additional software to have the SharePoint document management functionality within CRM. After you enable server-based SharePoint integration for your organization, you can’t revert to the client-based authentication method. Server-based integration is supported for SharePoint Online, and SharePoint on-premises only if you have Microsoft Dynamics CRM Online 2015 Update 1.

You can automate many functions such as creation of document libraries triggered by events in Dynamics CRM.  For instance, when an opportunity moves to the stage when a proposal is prepared, you could create folders for the solicitation as well as the proposal, and associate them with the opportunity.    You might also want to use standard document templates to populate the folders.  

Friday, May 22, 2015

Upgrade Dynamics CRM 2011 to 2015 Before Adding New Features

If you are considering upgrading from Dynamics CRM 2011, you will save significant time and effort by upgrading before you implement new features and fixes that you may have accumulated over the last few years.

A major upgrade offers the chance to do some spring cleaning, eliminating unused items and streamlining the user interface.  Moreover, Microsoft may have anticipated some of the features you have been seeking and included them in the product.

Here is a good place to start in reviewing what is new:

Dynamics CRM 2013 and 2015 include a major overhaul of the user interface compared to the 2011 version, so you will need to prepare your users for a bit of future shock.    The good news is that you gain instant multi-browser and mobile device support.

You will save time and money because both the upgrade and the new enhancement require testing, so why not do both and the same time and test once?

If moving to the Microsoft CRM Online cloud is in your plans, the upgrade is an opportunity to take the leap.  Once your organization is on Dynamics CRM Online, you will automatically be required to stay current with upgrades anyway.

Be sure to upgrade all the way to the latest current version, Dynamics CRM 2015, rather than stopping with 2013.  The old practice of waiting for a few minor versions doesn't hold up very well. 

Wednesday, May 20, 2015

Upgrading Dynamics CRM, Part 3

This is adapted from the InfoStrat White Paper "Upgrading Dynamics CRM." Download the full whitepaper here:!upgrading-dynamics-crm/c15ht

Microsoft provides a number of Migration Tools to assist you with the move to CRM 2015.

These include both documentation and tooling available within the application. The documentation can be found in the SDK and on the web and covers the process you need to go through to upgrade forms and the design considerations related to how your forms will appear on the mobile and outlook clients.  The in-app tools are in the form designer.  The first thing you need to understand is how to identify the CRM 2011 form and the CRM 2013 form.  Many CRM 2011 forms are all labeled “Information” since this was the name used for the default form prior to CRM 2013.  In CRM 2103 a new set of V6 forms was created which were labeled using the Entity name by default (e.g. “Contact”). You also now have the ability to activate and deactivate forms.

If your goal is to continue to use the CRM 2011 “Information” form style, you have multiple options to get to that format in a CRM 2013 form.  You can either create an entirely new form with the same components or you can merge the CRM 2011 form contents into a new 2013 form.  To use the merge method, you would create a new CRM 2013 form, open  the CRM  form editor and find the button at the top of the screen called “Merge Form”.  When you click that button, you are presented with a Lookup dialog that allows you to select the 2011 form.  When you choose a CRM 2011 form and import it, your customizations from CRM 2011 will be added to the bottom of the 2013 form.  Note that issues have been reported where the merge creates downstream problems due to duplicate Ids.  The issues do not appear until you have to export a CRM Solution and import it into another environment.  If you intend to use the merge you should test this scenario carefully before putting too much effort into upgrading forms this way.

Our recommendation overall is to consider the option of redesigning your forms from scratch and compare the level effort for this option vs. the merge after doing some initial trials.  There is no one right answer to this question and the option you choose will depend on the complexity and design history of your current forms.  There are also significant advantages to some of the new components which are included in the new default V6 forms which are worth considering.

For more details see:


Microsoft Dynamics CRM Online Upgrade Policy[1]

If you are using Microsoft Dynamics CRM Online, your system will be automatically upgraded within set intervals.   You do have some flexibility on scheduling these updates and choosing which updates to apply but there are rigid rules in place to help keep your Online instance in synch with the latest versions of the software.

Microsoft delivers new features and improvements to the CRM Online service twice a year through service updates.  Microsoft advises customers to run the latest version of the service. In early 2015 Microsoft offered customers the ability to provide consent prior to updating their CRM organization. Customers today have a wide choice of days to choose from to best suit their business, and we will continue to provide that flexibility for service updates. In spring of 2015, customers will have the choice to take the two updates as they become available, or take only one update per year. If a customer chooses to take only one update per year, this update becomes mandatory and the customer will be required to take the update during the available dates for that particular release.

In other words, at any given point a customer must be on the current version (n) or a version prior (n-1). For example, if you are on CRM Online Spring ‘14 (n-2) and chose not to take the available CRM Online 2015 Update (n-1), then you would need to take CRM Online 2015 Update 1 (n) as a mandatory update.

Recent versions of CRM Online

Microsoft Dynamics CRM Online Spring ‘14 (6.1.0) June 2014
Microsoft Dynamics CRM Online 2015 Update (7.0.0) December 2014
Microsoft Dynamics CRM Online 2015 Update 1 (7.1.0) Second Quarter 2015

Checklist for the CRM Online update

Most of the update process is handled by Microsoft. However, there are a few things that you must do to prepare.
  1. Know when your update is scheduled.

    You will be informed of a pending update in multiple ways. See
    How will I know my organization is ready to update? in this topic.
  2. Involve your Microsoft Dynamics CRM partner.

    If you have a Microsoft Dynamics CRM partner of record, we strongly recommend that you contact them for guidance and assistance. If you do not have a partner, you may consult the Microsoft Dynamics Marketplace to identify a partner. Please note that there may be charges from partners for their services.
  3. Watch for communications from Microsoft.

    Microsoft will send you several communications about this subject to keep you informed about the update. They also display a notice to the users of your system in the CRM message bar. In addition, they send email communications to users that have the System Administrator role in CRM. Please make sure the email accounts associated with those user accounts are valid and being monitored. Communications will come from, or for partners, you will also receive communications from the Microsoft Dynamics CRM Partner Team:
  4. Verify your customizations are compatible.

    You should take the time before your update to verify that customizations are compatible using the
    CRM Custom Code Validation Tool. You should do this early enough that you have time to fix any identified issues. Additionally, Microsoft will run a number of automated tests and if any of those tests fail in your instance, we will email the administrator a list of potential issues we have identified.
  5. Create a non-production (Sandbox) instance in which you can test your customizations.

    Ideally, you should test your customizations prior to update. This will also give you the opportunity to verify compatibility of any third-party customizations. If you identify any potential issues, please work with the solution provider to correct any issues that arise. More information:
    Manage CRM Online Sandbox instances
  6. Notify your users prior to the update of CRM.

    It is a best practice to notify your users that the system will be unavailable during the update. To get more resources to prepare users for the update, please visit
    Microsoft Dynamics CRM Help & Training.
  7. Watch for Update Completion or Reschedule emails from Microsoft.

Once your organization is updated, you’ll receive a notification from CRM Online indicating that your organization is ready to use. 

In-product alert
Admin Center
Update scheduled All Admins Yes Yes Yes
90 days before update All Admins No Yes Yes
30 days before update All Admins No Yes Yes
15 days before update All Admins No Yes Yes
7 days before update All Admins Yes Yes Yes
7 days before update if Admin approved Users No No Yes
Schedule confirmed by Admin All Admins No Yes Yes
Update in progress All Admins and Users No No Yes
Update successful All Admins and Users No Yes Yes
Fallback to secondary update All Admins No Yes Yes
Update rescheduled All Admins No Yes Yes

“All Admins” includes CRM system administrators and Office 365 Global administrators


Because Microsoft provides major upgrades to Dynamics CRM every two years and minor upgrades every six months or more often, customers need to proactively manage their CRM systems and be aware of what is coming out and when and learn how it will affect their current systems.  They must have policies and procedures in place to schedule, test, and deploy new versions on a regularly scheduled basis so they can benefit not only from the improved features and functionality but also to be fully supported by Microsoft.

This is particularly important in the Microsoft Dynamics CRM Online world where customers are required to be running the current version of the product or the version immediately prior. 


[1] Much of the below information is taken from

Requests for Proposals and the Iron Triangle

One of the unchanging truths of project management is the tradeoff between time, features, and cost.  This relationship is called the project management triangle, iron triangle, or triple constraint.

Source: Wikipedia

The project management triangle has implications for organizations which issue requests for proposals (RFPs).  Typically, the goal of the RFP is to solve for price and to hire a vendor to provide services or a solution.

The more information that an RFP provides on the schedule and scope, the more accurate the cost can be.  Without sufficient details on the scope of a project, the vendor is forced to guess.  One guessing approach is called time boxing.  In this method, the vendor established a schedule and then determines the cost for a typical team to provide services for a comparable project.   Time boxing means that some features must be discarded in order to meet the schedule and cost.

The absence of requirements details, or the inclusion of vague and open-end requirements drives up the cost of bids to cover risk.  Unspecified deliverables have unspecified costs. The result is often that no acceptable proposals are received.

Typically, the budgeted cost is not revealed to the bidders.  Conventional wisdom is that sharing the budget would stop bidders from offering a price lower than the budget and hence make a bargain impossible. 

The reality is that a budget can help vendors come up with realistic and accurate pricing, as well as offering a viable project approach. 

If an RFP contains only one of cost, scope and schedule, it is unlikely to result in a successful procurement.  The best approach is to include all three and ask vendors to show how they can solve the problem best within these constraints.

Monday, May 18, 2015

Upgrading Dynamics CRM, Part 2

This is adapted from the InfoStrat White Paper "Upgrading Dynamics CRM." Download the full whitepaper here:!upgrading-dynamics-crm/c15ht

On-Premise Upgrade Steps

Upgrading from CRM 4.0 to CRM 2011
There are two different types of upgrades:

1. In Place – use existing servers and upgrade the existing live system in place.

2. Migration – Set up a new server environment and migrate the CRM organizations from CRM 4.0. We recommend the Migration Upgrade approach as it provides the ability to test the upgrade multiple times, allows for performance benchmark testing and leaves your existing CRM 4.0 environment in tact in case a rollback is necessary.

Here is a step by step guide to migrating using the recommended Migration approach[1]

1.   Perform a fresh install of Microsoft CRM 2011 on a new server(s).   You can have one server that hosts both the web application and the SQL databases or you can have two servers, one to host the web application and one to host the SQL databases.

2.   Make a backup of your existing CRM 4.0 SQL organization database using SQL Server Management Studio (it will have a name like OrganizationName_MSCRM).
3.   Physically copy the backup from step 2 to your new server that will be hosting the SQL Server databases behind your CRM 2011 install.
4.   Create a new SQL Server database on your new server hosting the SQL Server databases for CRM 2011 using SQL Server Management Studio.

5.   Restore the backup from step 2 over your new SQL Server database from step 4.

 6.   Open the CRM 2011 Deployment Manager software that is running on your new server that is running the CRM 2011 web application.   Click on the Import Organization Wizard. 

 When migrating from CRM 4.0 to Dynamics CRM 2011, there are no changes in customizations required, as CRM 2011 supports all CRM 4.0 JavaScript, plugins and DLLs. However, Dynamics CRM 2013 does not support some CRM 4.0 DLLs, SDKs, JavaScript and plugins.  The Legacy feature check tool from Microsoft helps to check all customizations which are unsupported by Dynamics CRM 2013.

Upgrading CRM 2011 to CRM 2013

In all cases you will want to run the legacy feature check tool and address any plugins and JavaScript issues reported. This is particularly true if the application you are upgrading was originally developed in CRM 4.0 or earlier. Now the migration process to Dynamics CRM 2013 from CRM 2011 can be started. The customizations from CRM 2011 are supported by Dynamics CRM 2013, so only the CRM 4.0 plugins need to be re-written for CRM 2011. The other option is to remove all CRM 4.0 customizations, migrate it to CRM 2011, and then to Dynamics CRM 2013, after which the customizations can be implemented in Dynamics CRM 2013.

 There are multiple approaches available to upgrade CRM 2011 to CRM 2013.  In all cases the process begins with installing a new instance of CRM 2013.  Once the new instance is created, the options generally consist of:

1.    Install a new CRM Application Server using another instance of SQL (different from the instance used for CRM 2011).

2.    Install a new CRM Application Server and upgrade the CRM 2011 instance in place using the same SQL Server in place.

3.    Upgrade the entire application in place

We believe only Option 1 presents an appropriate level of risk, assuming that the application can be “frozen” for the time it takes to perform the final iteration of the upgrade.

Data Migration Design

As with the application upgrade, there are multiple options for migrating data in an upgrade from CRM 2011 to CRM 2013

1.  Back up the CRM 2011 SQL Server database and restore to the CRM 2013 SQL Server database, then import the CRM 2011 Organization using the CRM 2013 Deployment Tool. This will migrate all data without a separate data import.

 2.  Export data from CRM 2011 and import into CRM 2013 using the CRM Import Tool, SQL Server Integration Services (SSIS) or a third party tool such as Scribe.

We strongly recommend Option 1 because Option 2 is very high effort and is error prone.  Option 2 gives the most control and might possibly reduce rework if functional upgrades are being accomplished with the version upgrade, but the effort and risk generally outweigh any advantage.

Multiple Iteration Upgrade Approach

The only way to reduce the risk and schedule impact of the upgrade is to try to anticipate the issues that will be found in the upgraded application.  This can be accomplished by a combination of manual inspection and automated code checking. 

A manual inspection and analysis of the CRM 2011 application will be performed and will compare the implementation techniques used to the list of changes in CRM 2013.  For the automated code checking, there is a tool provided by Microsoft called Microsoft Dynamics CRM 2013 Custom Code Validation Tool which can check JavaScript customizations.  It is important to note that both the manual inspection and the automated tool will only produce a list of what might need to be technically replicated in CRM 2013 from CRM 2011.  These processes do not address the issue of what is the least effort and best practice to accomplish the same goal functionally in CRM 2013 that was accomplished in CRM 2011. 


The Custom Code Validation Tool in particular tends to produce large numbers of false positives in situations where code that is actually supported and not a problem is marked as potentially needing to be fixed.   These can be very extensive and include:

·         JavaScript code which supports an HTML web resource and interacts with the DOM of that web resource.
·         Code in JavaScript libraries to test for browser compatibility.

It can be highly inefficient to walk through validation results finding every place that needs attention only to discover either that there is no problem or that fixing the problem just replicates approaches that may be obsolete.  We suggest instead a multiple iteration approach which may be both more efficient and more effective.  In this approach for the first iteration the validation is run and then the application is upgraded and tested and test results are recorded.  These results of testing are then reviewed together with the results of inspection and automated code validation to produce a Mitigation Plan.  The Mitigation Plan documents areas that need attention and the decision whether to fix or replace with a more effective use of CRM 2013 features.  Based on the Mitigation Plan, one or more iterations of the upgrade process are performed.

Sample Step-by-Step Plan:

1.  Perform the inspection and code validation on CRM 2011.

2.  Install CRM 2013 in a new environment.

3.  Back up the CRM Application database from CRM 2011.  By default this is _MSCRM.

4.  Restore the CRM Application database from CRM 2011 on to the new SQL Server database supporting CRM 2013.

5.  Using the CRM 2013 Deployment Manager, import the Organization.

6.  Perform regression testing on the upgraded application and record issues discovered.

7.  Perform and record any immediate fixes to make the application usable for testing.

8.  Review test results, inspection results and code validation results and create a Mitigation Plan which defines what is to be fixed and what is to be replaced.

9.  Estimate time needed for the upgrade and determine feasibility of freezing the application long enough to complete the upgrade.  If feasible, proceed, otherwise develop an in place mitigation approach for CRM 2011.

10.  Freeze the application.

11.  Re-do steps 3 and 4 and use the Mitigation Plan to complete the upgrade


Upgrading CRM 2013 to CRM 2015[2]

CRM 2015 requires the following system products:
·         Windows Server 2012/2012R
·         SQL Server 2012
·         Windows client – Windows 7 and Windows 8
·         Internet Explorer 10/11
·         Exchange Server 2010/2013
·         Outlook 2010/2013

The Server Upgrade Process is a one-way process (CRM 2015 cannot be uninstalled).

Two Methods to Upgrade:

·         In-place (Install media on current servers)

·         Migration Upgrade (preferred): Deploying a new CRM instance and separate database and then migrating your organizations from one database to the other.  This approach is recommended so that you have the ability to fall back to the CRM 2013 system if you need to.

Note that CRM 2013 must be at SP1 or higher

One of the important things about upgrading from 2013 to 2015 is the mandatory change in the database structures of CRM.   Prior to actually upgrading your organization, Microsoft applies a set of diagnostics to that organization to determine if it is safe to upgrade the organization.  If it isn’t you will be told what is wrong and how to correct.  If there is an issue, click on the “More Info” button that will link to an article explaining the issue and how to correct.

Issues that can be taken care of for you will be presented as warnings.  Warnings inform the user of necessary changes to the organization in order to upgrade.

When 2013 was introduced, Microsoft modified the core database structure and collapsed a series of tables to optimize for efficiency.  To enable existing customers to run their old CRM systems, Microsoft enabled customers to run in the old database state Microsoft calls the expanded state.  For 2015, the merge process is mandatory for the upgrade.  This enables a higher performing CRM system.

f your database is not in the merged state, Microsoft will merge it during the upgrade.  If the database cannot be merged, the upgrade will cease and the owner notified and told of what is wrong.  You will need to correct the issue prior to upgrading.

The Solutions Framework is the means by which you move customizations from one CRM organization to another.  With CRM 2013 Service Pack 1, Microsoft has added the ability to export a solution to a specific version of CRM.  CRM 2015 solutions will integrate with CRM 2015 deployments but will not be importable into CRM 2013 deployments. Microsoft does not support CRM 2011 solutions coming directly into CRM 2015. 

For customers who upgrade to CRM 2015 who have not upgraded to use CRM 2013 “V6” forms, the older V5 forms (“Information forms”) will be imported into CRM 2015 and will continue to work as they did in CRM 2013. The CRM form designer will retain the ability to migrate forms to V6 forms.  As Microsoft adds new capabilities and features to CRM 2015, however, these will be added only to the new forms and not to the old forms.

Friday, May 15, 2015

Upgrading Dynamics CRM, Part 1

This is adapted from the InfoStrat White Paper "Upgrading Dynamics CRM." Download the full whitepaper here:!upgrading-dynamics-crm/c15ht

Microsoft offers major upgrades to Dynamics CRM every two years and minor upgrades every six months or more often.  In order to benefit from the latest features and functionality of these new versions, you must upgrade your CRM implementation from time to time.  For Microsoft Dynamics CRM Online users, your system will automatically be upgraded as new versions become available.  Microsoft also ceases to provide mainstream support for older versions, typically two releases prior to the current release.
In each instance of a major Microsoft Dynamics CRM release, new features have been added that may require you to change your solution if you want to take advantage of them.  For instance, Business Process Flows were first introduced in Dynamics CRM 2013. To effectively use this new automation feature, you would need to analyze how you would like to map your business process flows to CRM Business Process Flows and design an effective user interface on the appropriate forms. 
In major upgrades, custom code which worked in earlier versions but will no longer be supported in future releases may be “deprecated”, meaning that it will not work in a future release.  You do not have to make any changes when these warnings appear in a release, but it does suggest that you keep them in mind when planning other changes or updates.
As a Microsoft Dynamics CRM customer, it is important to understand the new features and functionality and determine the best timing and approach to bring your application to the latest version.

A Brief History of Microsoft Dynamics CRM

Microsoft introduced its CRM product in 2003. A minor upgrade version 1.2 was released soon after. Two years later, version 3.0 was released in December of 2005, skipping version 2.0.   Version 4.0 appeared in December 2007, and the first cloud version of Microsoft CRM – Dynamics CRM Online -- was introduced several months later.  The next version of the product was Microsoft Dynamics CRM 2011 introduced in February 2011. For CRM 2013, Microsoft changed its upgrade approach to upgrading cloud versions first, then on premise versions. The on premise version of Dynamics CRM 2013 was released in November 2013.  The latest major version of the product -- Dynamics CRM 2015 -- was released in in the fourth quarter of 2014.

On Premise
Cloud (Microsoft Dynamics CRM Online)
January 2003
December 2005
December 2007
March 2008
February 2011
January 2011
November 2013
October 2013
December 2014
November 2014

As of this writing, it is estimated that Microsoft has 40,000 customers using Microsoft Dynamics CRM [1]