Upgrading from Microsoft Dynamics CRM 2013 to 2015

Sorry it’s been so long since I have posted anything. But, here is an excellent video released by the Microsoft Dynamics team about Upgrading from Microsoft Dynamics CRM 2013 to 2015.

Microsoft Dynamics CRM History

Take a stroll down memory lane.

MVP Jukka Niiranen has released a great visual timeline of the history of CRM from Microsofts acquisition of iCommunicate all the way up to the upcoming Convergence 2015.

Check out the Timeline

CRM Team Development: Application Lifecycle Management

In case you missed it Shan McArthur gave a great talk on CRM Team Development and Application Lifecycle Management at Convergence. If you did you can check out Shan’s talk on XRMVirtual that he gave on this topic back in November.

Supported vs Unsupported

As CRMLady mentions in her article, To the SQL Guru Audience – Can I write directly to the Microsoft Dynamics CRM SQL Database? , If I only had a dollar for every time.. Tonight this question was brought up by someone at my local SQL Server user group and I’m sure it is in my top 10 CRM questions I get right along with “will it work on my iPad”. Luckily this time I could point them to CRMLady’s article which is the simplest and clearest outline I’ve seen of what is supported and unsupported on the CRM SQL Server.

There is also another great article from several months ago by Gustaf on describing Unsupported Customizations. In addition to helping define what are unsupported customizations, he gives suggestions on what to do when you have to go down the road of making unsupported customizations to your CRM system.



CRM 2011 Update Rollup 10 to be Released to Windows Update

CRM 2011 Update Rollup 10 to be Released to Windows Update

Microsoft is slated to release Update Rollup 10 for CRM 2011 today for download through Windows Update. This rollup includes many bug fixes, twice as many as the last rollup.

For full details on Update Rollup 10 you can view kb2710577 at http://support.microsoft.com/kb/2710577 .

The Microsoft Dynamics CRM PFE team has a great podcast that goes over the rollup http://www.blogtalkradio.com/pfedynamics/2012/08/17/microsoft-dynamics-crm-2011-update-rollup-10-podcast .

There is also a Wiki page where you can find additional information on the Rollup at http://social.technet.microsoft.com/wiki/contents/articles/13437.update-rollup-10-for-microsoft-dynamics-crm-2011.aspx

Windows 8, Internet Explorer 10 and Office 2013

There are no major features being added through this rollup, but it will contain a number compatibility improvements. This includes compatibility for Windows 8, IE 10 and the Office 2013, which are all due to be released shortly and will be showing up in the workplace over the next several months.

In addition to installing Update Rollup 10 on your CRM 2011 server there are also some features outlined in the KB’s below that you may need to enable on the client machines for CRM 2011 to work properly with these new products.

Kb2744954 – Support with Microsoft Dynamics CRM 2011 and Windows 8

Kb2743941 – Support with Microsoft Dynamics CRM 2011 and Internet Explorer 10

Kb2744957 – Support with Microsoft Dynamics CRM 2011 and Microsoft Office 2013 Preview

A full list of the Compatibility for CRM can be found in kb2669061.

SQL Server 2012

CRM 2011 has been compatable with SQL Server 2012 since Update Rollup 6. However, if you are using SQL 2012 you are incouraged to upgrade to Update Rollup 10 as it includes improvements for SQL Server 2012.

OrgDBOrgSettings Tool

OrgDBOrgSettings Tool for Microsoft Dynamics CRM 2011 was released, which allows you to enable some of the regkey enabled features per Organization instead of to the entire CRM Server.

Server Performance and Optimization

Optimizing and Maintaining the Performance of a Microsoft Dynamics CRM 2011 Server Infrastructure Document was updated with additional chapters on Optimizing the Performance of Queries and QuickFinds.


Using Xrm.Utility.openEntityForm with Custom Parameters

Limitations to the Xrm.Utility.openEntityForm

I recently ran into an issue where I was trying to populate the regarding object on a new Appointment form. I was able to pass the id and name fine, but when I added the regardingobjectidtype parameter I received:

When I checked the error logs I found:

CRM Parameter Filter – Invalid parameter ‘regardingobjectidtype=account’ in Request.QueryString

As it turns out you cannot set the values for partylist or regarding lookups as documented here. It did not surprise me that partylists can not be populated. But I knew the owner and customer fields could, and since they work similarly to the regarding I assumed it would too.

The Work Around

CRM allows you to create your own custom parameters, so you can send additional information into the form that can be picked up by a form script.

Creating the Custom Parameters

1. Open the Form Editor and Press the Form Properties Button.

2. Select the Parameters Tab.

3. You may then click on the Add Button to create a New Parameters. Make sure to give it a name and set the type.

To pass the information for the Regarding Object we will need to create the following three parameters.

Name Type
parameter_regardingname SafeString
parameter_regardingid UniqueId
parameter_regardingtype SafeString

Sending the Custom Parameters

The following script can be called to open a new Appointment Form and pass the regarding object information to our three custom parameters. You can attach function to a button using the CRM Ribbon Workbench.

function openNewAppointment() {

//set the parameters to pass to the new form  var parameters = {};

var Regarding = Xrm.Page.getAttribute(“regardingobjectid”).getValue();

parameters[“parameter_regardingid”] = Regarding[0].id;

parameters[“parameter_regardingname”] = Regarding[0].name;

parameters[“parameter_regardingtype”] = Regarding[0].entityType;

//Open the new form



Reading the Custom Parameters

The following script can be used to retrieve the Custom Parameters and then use that information to set the regarding object on the appointment.

function loadRegarding(){

// Get the Value of the Regarding through the Customer Parameters

var param=Xrm.Page.context.getQueryStringParameters();

var regardingId=param[“parameter_regardingid”];

var regardingName=param[“parameter_regardingname”];

var regardingType=param[“parameter_regardingtype”];

//Populate the Regarding if there is one

if (regardingId != undefined)

{Xrm.Page.getAttribute(“regardingobjectid”).setValue([{id:regardingId, name:regardingName, entityType:regardingType}]);}



Opening Forms using the Xrm.Utility.openEntityForm


In Rollup 8 the Xrm.Utility.openEntityForm method was added. This method allows you to easily open a CRM form from javascript. Being able to open a form from javascript is not a new feature as have been able to build out a url for opening a form. However, the openEntityForm significantly simplifies the process and makes it much cleaner.

Using the openEntityForm

Opening a New Form

To simply open a form for creating a new record you can use the following line of code. Simply replace account with the entity of your choice.


Open a Form with an Existing Record

If you want to open a specific record you just add the guid for that record like this:


Open a Form and Setting Values

You can set values on the form by sending along a list of parameters.

var parameters = {};

parameters[“formid”] = “b053a39a-041a-4356-acef-ddf00182762b”;

parameters[“name”] = “Test”;

parameters[“telephone1”] = “(425) 555-1234”;

Xrm.Utility.openEntityForm(“account”, null, parameters);

For more on openFormEntity see http://blogs.msdn.com/b/crm/archive/2012/07/18/new-xrm-utility-functions-in-update-rollup-8-for-microsoft-dynamics-crm-2011-and-microsoft-dynamics-crm-online.aspx#openEntityForm


In addition to a new method for opening a form, openWebResource was added to let you open a web resource from javascript.

Xrm.Utility.openWebResource(webResourceName,webResourceData,width, height)

For more on the openWebResource see http://blogs.msdn.com/b/crm/archive/2012/07/18/new-xrm-utility-functions-in-update-rollup-8-for-microsoft-dynamics-crm-2011-and-microsoft-dynamics-crm-online.aspx#openWebResource






Automating SVN

Last week we went over the basics of SVN. This week we are going to talk about saving some time by automating your SVN processes.

To automate your SVN process you can either create scripts to launch your SVN client of choice or you can program your own SVN client.

Automating TortoiseSVN

If you are using TortoiseSVN there are command line parameters you can send to the client to automate many of the SVN processes. If you are using another SVN client you will need to check what command line parameters it supports.

Details on the TortoiseSVN Commands can be found at http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-automation.html

Making your Own SVN Client

Why would you want to spend time making an SVN client when there are so many out there?

Well for starters in order to automate the SVN processes using the Client Commands, that client needs to be installed on that computer. Do you want to be installing SVN clients everywhere?

Another draw back to the TortoiseSVN Commands is that it only opens the appropriate screen and does not complete the action for you. If you send the branch command it will open the branching window and populate all of the information you sent, but you still have to enter a comment and click the button on the screen. That’s usually not the level of automation I want.

Here is where the old saying “If you want something done right, you’ve got to do it yourself” comes into play.

You can create your own SVN Client using the SharpSVN API available through http://sharpsvn.open.collab.net/ .

Which to Use and When?

Both options have there benifits. While they might not be as powerfull as the API, it can be a lot quicker to create a batch script that launches your SVN client.

Personally, I have been using a mixture of the two. I automated processes for things like checking out, exporting and branching through the SharpSVN API, while the processes for committing changes I do through TortoiseSVN Commands. The process for commiting can get complicated and this is also the one area that I typically want the UI to come up, so I can see what files were changed.

SVN Tools – Getting Started with Source Control

This week we are going back to basics and talking about an important topic for any type of developer, Source Control Management.

What is SVN?

SVN is a common abbreviation used by programmers for Subversion. It is a repository where code and other files can be stored. Both the current version as well as historical copies of previous versions are stored within this repository.

Basic SVN Commands

  • Add
  • Checking Out
  • Update
  • Commit

When you start out with SVN you will need to use the “Add” command to create a new folder or “Add” a file. If you are working with an existing repository, you can use the “Check Out” command to make your own copy of a folder from SVN. If changes are made to the SVN folder after you check it out you can use the “Update” command to sync your local copy of the folder with what is now in SVN. After you have made your changes you will want to check them back into SVN using the “Commit” command.

Commit Small and Often

When you start out with SVN it is easy to get into the habit of checking in all of you code changes at once. If you lump all of your days or weeks changes together it makes it much harder to manage the code. To get the most out of SVN you will want to check in smaller more logical chunks of code. If you make a bug fix in the code check that individual bug fix in with its own commit, don’t let your changes build up.

Advanced SVN Commands

  • Branch – Creates a copy of a
  • Merge
  • Diff

SVN is more than just a backup system for your files. It allows a team or a single developer to track and manage changes they have made to the code base. You can create copies or “Branches” of your project, allowing you to develop and test new features before intergrating or “Merging” them back into your main code or “Trunk”. Multiple branches are supported so developers can independently work on adding features to the same project. When your changes are ready to be merged back into the trunk you can view all of the changes between two versions of the code using the “Diff” feature.

SVN Software

There are a number of SVN servers and even more clients. Here is a SVN Server and Client that I recommend you give a try if you are new to SVN.

If you are working with a team, you will want to check what software they may already be using. As you would not want to setup another SVN environment, if there is already one in use.

VisualSVN – SVN Server

Visual SVN is an easy to use and fully functional SVN server built for the Windows Platform.

Visual SVN Server is available at http://www.visualsvn.com/server/ . Once you have downloaded and installed the Visual SVN Server check out the Getting Started section of their website for details on configuring your SVN Server.

TortoiseSVN – SVN Client

TortoiseSVN is an easy to use SVN Client for Windows machines. It gives you a nice UI so you don’t have to be typing out commands. It even hooks into the file explorer, so you can quickly check in changes.

TortoiseSVN is available at http://tortoisesvn.net/ .

Here is a quick video to get you started with TortoiseSVN.

For more information on using TortoiseSVN Client check out the tutorial at http://www.igorexchange.com/node/87 .

Other Flavors of Source Control

SVN is not your only choice for version control like Mercurial, CSV or Perforce. A couple of note for CRM Developers are:

Team Foundation Server (TFS)

As many Dynamics CRM Developers work for Microsoft Shops, a talk about source control would not be completed without mentioning Microsoft’s application lifecycle management solution called Team Foundation Server (TFS). TFS is more than just source code management and includes Work Item Tracking, Build Automation, Reporting and Project Management.

If you are looking to create a collaborative and agile team you should take a look at implementing Team Foundation Server.

TFS is not a quick install and your done deal, it is a change in the way of life for your developers, testers and project managers. You wouldn’t just install CRM for a sales team and walk away thinking that they will suddenly become this well oiled sale closing machine because you have installed a great program for them to use. There is a lot of up front time investment to get your team off the ground with TFS, but the investment can payoff in the long run.


Unlike most other source code management systems GIT creates a local repository on your machine. As needed you can update your repository by “pulling” down the latest version from a remote repository. If you have changes you would like to have added to the remote repository you can “Push” them up to the server. This pushing and pulling concept has made GIT widely used with the Open Source Community.

With other source control systems you are connecting directly with a central repository server every time you check code out or commit changes. This can be a problem if you are disconnected from the network. If you spend the day out of the office working on your laptop you have to wait until you get an internet connection before you can check in your changes.

You can download GIT through http://git-scm.com/ . Their site also has some great information in the Documentation section to get you started with GIT and source control.


GitHub is a hosting provider for GIT repositories. They offer free hosting for Open Source projects, and you will find that many open source projects have taken them up on this offer.

The recently released a windows client, which you can download from http://windows.github.com/ . As an added bonus the client is built using the Metro UI, so



CRM Tool of the Week – CRM Option Set Utility and Community Library

Last month the Solution Extender from TanGuy was featured. It looks like TanGuy has been busy making CRM tools and has released another great tool. This time he has released a tool for creating Option Sets in CRM 2011.

Improvements in CRM 2011

One of the most time consuming CRM configuration tasks in CRM 4.0 was to setup a Picklist. The process was slow and if you had a picklist you used through out your CRM, you would have to keep creating the same list over and over again.

With CRM 2011 the process for creating picklists was streamlined. They made it much quicker to add an item to a picklist and you can now create option sets that can be used globably for multiple picklists.

While the time it takes to setup a large picklist in CRM was greatly reduced in CRM 2011 over the pain staking process in CRM 4.0, it still can take a long time. The CRM Option Set Utility lets you easily and quickly create option sets.

CRM Option Set Utility

The CRM Option Set Utility is an easy to use utility that will let you create or edit an existing picklist more effeciently. This tool lets you load an optionset from directly from a csv file.

Download the CRM Option Set Utility

You can download the CRM Option Set Utility from  http://www.crmoptionset.com/

The Community Library

My favorite thing about this tool is that it also has a Community Library for shared option sets. You can share option sets you have created or you can download optionsets others have made available through the Community Library site.

The CRM MVP’s have already started to contribute some great optionsets and hopefully there will be more added by the community. Some of the Option Sets that are already available are:

  • US State Option Sets from Donna Edwards
  • University and Colleges from Jerry Weinstock
  • ISO Countries from Neil Benson

There is even a list from Jerry Weinstock of the Contries Competing in the 2012 Olympics.

To view and download Option Sets you can visit the Comminity Library. If you would like to contribute an option set of your own there is a form at the top of the page for submitting an option set to the library.