Friday, December 20, 2013

Important Note to CRM 2011 Administrators

If you administer CRM 2011 user accounts make sure and check to see if the user already exists before adding a new one.  I saw an instance where a disabled user already existed for an Active Directory user today and a new account was successfully created somehow.

The person could not log in and I am not even sure how you would resolve this in a supported manner because you cannot delete users in a supported fashion.

-Merry Christmas!

Tuesday, December 3, 2013

Error Installing CRM 2013 and Funny Resolution: Action Microsoft.Crm.Setup.Server.GrantConfigDBDatabaseAccessAction failed

I ran into an interesting error the other day installing Microsoft Dynamics CRM  2013 for a client. The error was:

 Microsoft.Crm.Setup.Server.GrantConfigDBDatabaseAccessAction failed.

Windows NT user or group 'domainname\SQLAccessGroup {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' not found. Check the name again.

We searched high and low for someone else experiencing the same error and we found several blogs and threads where people had resolved this for CRM 2011 and CRM 4.0 by a variety of different means.

Here are some examples and a quick blurb about the resolutions (that I think are all false).

1 - resolution: exit SQL Server Management Studio on all boxes.

2 - resolution: close remote desktop on the SQL Server

3 resolution: clear Kerberos tickets on the SQL server, reset some passwords, etc....

4 resolution: make sure the user is a member of all the created AD security groups on the CRM Install

5 resolution: close SQL Management Studio and disconnect your remote desktop session.

 6 - resolution: delete your AD groups created by the install????

One thing you will notice pretty quickly is that there isn't any real rhyme or reason to these solutions and some of them seem pretty nonsensical, but if you read the comments, these posts did seem to help a lot of people (except number 6), but why????

Let's discuss that quickly...

Upon further examination I have determined that while they may all work, they are not really the solution.

The real reason this is happening in most of these cases is Active Directory replication delays where there is more than 1 domain controller in an active-active scenario.

The real solution is waiting 5 minutes when you get this error and hit retry.  Basically the server install is creating the active directory groups against one domain controller and then it is hitting the other domain controller to perform another action shortly after before the synchronization is finished between the domain controllers.  :). So absolutely anything that takes a few minutes or restarts a server or causes an update on the domain controller would work.  That's why there is no cohesiveness between the resolutions.

- Happy Tuesday!!


Tuesday, November 12, 2013

CRM 4.0 Event.mode Syntax Killed at Some Point in CRM 2011

Don't know why (or with what Update Rollup) event.Mode was removed, but in UR-15, event.Mode does not work as documented here:

It's alright though, in CRM 2011 they have a new construct documented here you can change your code to utilize.

Just  a quick tip for your Tuesday in case you install UR-15 and bump into this!

UPDATE:  It helps to understand how to pass the context as the first parameter as shown in the blogpost below, if you are having trouble after reading the documentation below, check this out:

UPDATE 2:  It seems that this might only be a problem if using IE 10.  There are other CRM 4.0 syntax items that won't work properly for IE 10 that I bumped into also yesterday, but most things still work.


Tuesday, November 5, 2013

Demo Builder is Building Demos on Dynamics CRM 2013

I built a CRM demo for a client the other day using Demo Builder ( ) .  This tool is such a great starting point for demo's because you get a lot of great extra's and demo data that would take you awhile to put together in your own personal organization.  It also comes pre-configured with the out-of-the-box SharePoint integration already set up, along with the partner and customer portals already configured in Azure.  Lots of good stuff.

I had asked a Microsoft representative when the demo builder would start building demo's on CRM 2013 and they stated sometime later in November.  Evidently that came sooner than expected because it is building demo's on 2013 now.  If you do the standard demo (still labeled Polaris) it will build a 2013 org with the demo elements configured..

--Happy Tuesday!

Friday, September 27, 2013

So... Just How Performant Can the CRM 2011 SDK Be?

David Evans replied to a different blog post of mine and pointed out that the product team has done a very large amount of work to make things work quicker through the CRM SDK and shared the video below.   I have heard David Cai tout how he has seen well over 200 rows per second in SSIS though his product.  I thought this was AMAZING considering I was used to Scribe and if I got 15 records per second I was pretty dang happy.  I could run more than one thread at once though if I could chunk up the job properly.

In the video below I was blown away.  Literally you will see using the maximum threads per second against CRM Online which hasn't always been known for being the most performant depending on where in the country you are accessing it from. You will see here shortly after 3:10 in the video where in a matter of seconds the process they run revs up to OVER 650 ROWS PER SECOND!  They are running 16 threads, but now I have a new appreciation for just what the SDK is capable of handling if you hit it just the right way.

Check out the video here and just skip to 3:10-ish to see them start running first with one thread and then with 16.  WOW!!!

- I hope you enjoy this video!


Tuesday, September 24, 2013

Dealing With the 8k SQL Server Row Limits in Microsoft Dynamics CRM

Once or twice I have run into a CRM implementation in the course of my work that runs afoul of SQL Server's 8k row limit.  SQL Server has always had a limitation to how big a row in a table can be and SQL Server DB admins and database designers have long had to deal with.  For many applications you have options by using specific datatypes and other constructs to be able to work around these limits, but for CRM you do not have any control over the schema directly, and any kind of manual change would definitely be unsupported.

You can tell if you run afoul with this issue, it will throw a MSSQLSERVER ERROR 576.

There are things you can consider when though when designing your CRM entity structure that will help you get around these issues.   You can also apply many of these same principals in re-design after the fact to help get the problem back under control.

Here they are:

1. Look for entities that could be broken out into 1-M relationships

Maybe you don't need all of those fields in the same entity.  Look for entities that can be broken out into their own entities within the system.  This will alleviate the number of rows and over all  length of the table.

2. Shorten your columns

Don't use a bunch of space if you don't need to for fields.  Give your self enough room, but not so much room that you will never possibly use it all.

3. Look to see if there are fields you don't need

If there are fields in your source system that you know you never use, don't migrate them to the new system.  also if you find that there are unneeded columns in your Dynamics CRM system already, delete them.

4.  Look to see if there is any other logical way to break up your entity into multiple entities.

Maybe you don't have clear cut 1-M relationships all in the same table but maybe you are modeling something that is really more of a 1-1 relationship in your entity design.  Maybe you combined these at first for simplicity's sake, but breaking these out could also help if you are running up against this limitation.


Again, this is not a really terribly common issue in CRM implementations, or it hasn't been in my experiencem but if you run into this you will know that there are ways to work around this.

I also know this list probably isn't exhaustive, so feel free to add more things in the comments.


Friday, September 6, 2013

Solid Reasons Not To Do Direct Database (T-SQL) Operations on Dynamics CRM Database From the Pros

I got an email this morning from an old college classmate of mine in kind of a exasperated tone with a one word subject "HELP!".  It turns out that she has fellow IT folks that want to replace some updates she is doing regularly using workflow that have worked fine for a long time with nightly T-SQL batch jobs pushing the data from their data warehouse back into CRM, even though it was already in CRM to begin with.

I decided to delve into this a bit to see what are the real reasons for why this shouldn't happen.  I knew some but I also asked some of my other MVP buddies to get their feedback.  Here is what I came up with.   Feel free to use these arguments if you need to explain to your IT department why manual database operations are a bad idea.

Jamie Miley 
  • If you are using Auditing in CRM, it won't reflect any changes done by manual database update.
  • Modified, by, modified on, etc... will also not be adjusted properly
  • PrincipleObjectAccess table will not be updated based on manual updates and so permissions will not be properly set on any inserted, updated, deleted records.
Scott Sewell
  •  Database updates to CRM, if you did updates to something that affects security (owner, business unit, etc...) no updates would occur to PrincipleObjectAccess table
  • Updating Name fields will cause issues because lookups tend to cache names

Damian Sinay:
  • Plugins and/or workflows won't fire
  • Also caching is an issue, any cached data won't be invalidated by a database operation.
Gustaf Westerlund
  • If you are not 110% sure what youa re doing you are risking the stability of the entire system.
Julie Yack
  • It’s bad karma to do unsupported stuffs when a supported way will do it.
Carston Groth
  • Relations might get lost if you´re only performing the action on one datebase table ignoring all related tables
Joel Lindstrom

  • Biggest reason is that it will appear to work initially but problems will crop up later and you won’t be able to connect the dots to the real issue because the issue won’t be caught by the normal error reporting mechanisms.

Customer manually loaded contact records and later couldn’t reassign them. Turned out to be because in their manual load they didn’t populate businessunitid. The contacts worked, but couldn’t be reassigned later because that field wasn’t populated, but the error message generated didn’t explain what the problem was, because records created in a supported way always have that field populated

Different customer manually overwrote the createdby and modifiedby using unsupported T-SQL. Records initially appeared to work OK; however, when users attempted to forward the message in CRM, they got an error. Again, since this was a delayed error situation that showed up months later, it was very difficult to find the real reason for the error—all diagnostics did not show the real problem.

So to me, that is the biggest reason not to create records in an unsupported way. It is very difficult to verify that it is correct because standard system data validation does not fire, and if you miss anything, the real problem may not show up for months and will most likely be outside of the normal error reporting mechanism. You are on your own. Was it worth it?

In Conclusion

In the end, I think these are all great ideas regarding the issue.  I really just want to echo Gustaf above.  The fact is that it is considered unsupported for a reason.  Microsoft doesn't want to deal with it either.  All unsupported customizations are adding serious risk to your entire implementation as Microsoft would be entirely within their right to wipe their hands of the entire implementation when they can show that these types of things are being used.  The API and SDK are there for a reason, please use them. There are ways to do almost anything you could be trying to do that would cause you to go an unsupported route.  This is where a good partner can really steer you in the right direction.  You have already invested a lot of money on your Dynamics CRM implementation in software costs and in most cases consulting time to put it into place and get it customized properly, protect that investment!

- I hope this helps!


Sunday, July 21, 2013

Definitive Guide to Installing Microsoft Dynamics CRM 2011 on Windows Server 2012

I see a lot of questions come across the forums about installing Microsoft Dynamics CRM 2011 on Windows Server 2012, which is now fully supported since UR-13 came out.  It seems that there are a lot of manual steps you have to take before you start to avoid getting halfway through the install only to have it fail partway through, requiring you to do an uninstall, fix the issue, and re-install.  This often times leaves extra AD groups and other things that need to be cleaned up afterwards so hopefully I can save you some trouble up front.

Here we go!  Let's start with the SQL Server Configuration.

SQL SERVER 2012 Install and Configuration

I am going to assume that if you are installing CRM on 2012 then you are probably using SQL 2012, which may not be true, but their isn't too many  differences in the SQL Server install, we will run through a few things anyways though.

1. When installing SQL Server, or after you installed SQL Server (you can add them after install), you will want to make sure you install a couple features on your SQL Server

- Full Text Indexing
- SQL Server Reporting Services - Native

2. You will want to specify a domain user for your reporting services service as in installs where SQL Server is broken out from the app server, only a domain user (not a local user) will work.

3. You will want to set SQL Server Agent Service to start automatically in SQL Server Configuration Manager

4. Take a moment and install the IIS web server role on your Windows Server installation to handle the web interface for SQL Reporting Services and host it's web services

5. SQL Reporting Services will not be configured out of the box, you will have to do that, we will take a moment and look at this.

   - Open Reporting Services Configuration Manager, it was installed
with the SQL Server feature install.
   - Click on the section for Web Service URL and accept the default values given, or configure your own.

   - Now click on database, follow the wizard and specify the database information and create your report server database.

CRM Service Accounts

There are several service accounts you will need to create to install CRM on Windows Server 2012.  This process is no different than what you needed to do for Windows Server 2008 so I will link you to the Technet document that provides all the specific information about the 4 different service accounts you need to create for your CRM install.

  -  Get the service account information here: 

    NOTE: If your account names are long enough that the domain\usernames names are truncated (pre-win2k standards)  in comparison to the username you have to use the domain\user truncated form for the service accounts when configuring CRM.  It will fail and will tell you the credentials are invalid immediately if you don't, so you may catch this on your own, but wanted to draw your attention to it.  :)

Configure the Update Patch

Since UR-13 Microsoft officially supports Windows Server 2012, but that doesn't mean that the current server installer supports it.  The web download installer is slip-streamed with UR-6 but that won't install on Windows Server 2012 without some configuration.

1. Create a Config.xml file in the same directory as your installer.
2. Go to
3. Search for ‘KB2434455’ and install the windows update catalog
4. Click Add for “Setup Update for Microsoft Dynamics CRM Server 2011”
5. Click View Basket
6. Click Download button
7. After download, un-zip the cab file for the 1033 version (if en-us) for your architecture and copy the              .msp file to a directory you will create called c:\temp (if it doesn't exist already)
8. Copy the following text to your Config.xml file
<Patch update=”true”>C:\TEMP\Server_KB2434455_amd64_1033.msp</Patch>
9.  Save the file
10. Do NOT run the CRM installer YET!

App Server Configuration on Windows Server 2012

Ok, now comes the really important stuff that will save you a ton of time by preventing uninstalls and reinstalls during this process.  There are several features you will need to install manually and maybe one you need to remove prior to your install.  Failure to do these steps will result in the installation starting but not completing successfully.  This will then require an uninstall and a re-install, so make sure you take care of all of these up front.

  - Install (Role) IIS role
  - Install (Feature) Windows Identity Foundation 3.5
  - Install (Feature) Windows Search Service
  - Install (Feature) 2.0 to 3.5 .Net Framework

We need to take a moment to elaborate on the last one Install (Feature) 2.0 to 3.5 .Net Framework. This isn't nearly as easy in many cases as it should be.  As it turns out it doesn't install the sources on the system and the ISO is required in some circumstances.  This makes it a little tougher.

Almost every time I try to install this I have to do it manually using the methodology here:

Essentially you have to use the dism tool via administrator command line and specify the source location on your source media.  It's pretty straight forward on Daniel's post linked above.

Starting the CRM Installer So It Uses Your Configuration File

1.  Launch a command prompt as administrator
2.  Run the CRM Installer with parameters to tell it to use your Config.xml file
        I.E.  C:\{CRM SetupMedia}\SetupServer.exe /config config.xml
3.  Setup will launch and you can continue.  It should state that Setup has finished downloading the    update!!!  This is important.  If it states that no update was available, something is wrong with how you  hooked up the update patch file and your config file.

Now you just need to follow the rest of the install process as usual.

Install Update Rollup 13 (or the newest) on the Server

Not much to say here, but here's the link to UR-13:

Install SRS (SQL Reporting Services) Data Connector

This is installed on the SQL Server that also acts as your SQL Reporting Server for CRM (does not have to be the same SQL Server you use for your CRM Server SQL Server)

1. First install Windows Identity Foundation 3.5 from windows server manager from the features section
2. Now insert or copy your CRM media to/on your SQL Server (if not also your app server), and navigate to the CRM installation media and to the /SRSDataConnector folder.
3.  Run the installer as administrator and install the connector
4. Apply UR-13 for the SRS data connector to the same server.
5. Add your reporting services service credentials (can be found in services on the SQL Server or in Reporting Services Configuration Manager) to the PrivReportingGroup.
5. Restart the SQL Server that you are using as your SQL Report Services server.
6.  After your restart, access CRM and try to open an out of the box report, if it fails, you may see an rsItemNotFound error, but you may not.  If you do you need to publish the out-of-the-box reports manually.
7. If you do need to publish manually consult the quick blog here.  It has it laid out beautifully.

Items Not Covered
- Email Router (update to come)

- I hope this helps!

Tuesday, July 16, 2013

Use CSV Files not Application Adapter to Migrate From to Microsoft Dynamics CRM 2011 with Scribe Insight

I have done a couple migrations from to Microsoft Dynamics CRM these days and this time I ran into a quick gotchas I thought I would point out.

Use exported .CSV's to migrate data using Scribe from  Save the Scribe application adapter for ongoing integration with other systems.

There are two reasons for this, it is faster, and you won't bump up against the SFDC dreaded 24-hour API usage limit.

SFDC BUG:  In the .CSV exports when trying to migrate OpportunityContactRoles to the stakeholder connection in CRM I found a bug.  In the Scribe adapter you could  see the isPrimary boolean value to denote a primary contact on an opportunity, which is on the form.  This just wasn't there in the .CSV exports from SFDC.  I don't know if other entities have issues like this where certain schema elements are missing from .CSV data dumps, but it's worth noting.

- I hope this helps!

Wednesday, July 3, 2013

Microsoft Releases Visual Studio 2012 Update 3 Without Releasing the Corresponding Remote Debugger Tools ??

So, as some of you know I have been doing a lot of Windows 8 Windows Store App development for CRM lately.  As it turns out, the only way to debug specifically for an ARM device is to debug remotely by direct connection to the ARM device.

The instructions state explicitly that you need the same update version for your remote tools as you have for Visual Studio 2012 which presents a problem when Microsoft fails to release as Update 3 for the remote tools and repoint all of their download links to Update 3, making Update 2 virtually unavailable.

I finally found an ISO installer for Update 2 here:

-I hope this helps!

Friday, June 28, 2013

SSRS Prefiltering for Microsoft Dynamics CRM 2011 On-Premise in a Snap, The Simple Scenario That Most People Want.

I feel like I had to poke around way too hard to get the easy answer of how to prefilter SSRS reports the way I see it in the system.  This example uses SQL-Based FetchXML based reporting on CRM 2011 On-Premise

This allows you to:

  • Run a report on just the record you are in from the entity form
  • Run the report from a view on just the records in the view or just selected records within that view
  • Run Advanced Find style filtering on your report if just ran from the reports section.
There are two steps:

1. You need to modify your query to include a specific prefixed alias.  This signals CRM to pass in the context of the records and filtering to apply by parsing in a subquery.

An example query without pre-filtering:

SELECT accountid, name FROM FilteredAccount

The same query with pre-filtering enabled:

SELECT accountid, name FROM FilteredAccount AS CRMAF_FilteredAccount

So that's all you need to do at the report level to enable pre-filtering

2. When uploading the report, you need to choose the "Related Record Types"  and add Forms for related record types, lists for related record types to the "Display In"  section.

-I hope this helps!

Wednesday, June 26, 2013

Connecting to CRM 2011 Through iOS (initial thoughts)

There is a good chance that in the near future I am going to have to start writing some CRM 2011 connection stuff for iOS.  Also, someone on LinkedIn asked me today what my thoughts were.

Some initial ideas:

I don't write much Objective-C. We use Xamarin quite a bit at RBA, which allows us to write most of the app once (in C#) and then just re-write the UI layer for iOS or Android.

For the connection you can do a couple of different things. Depending on what the app is for, you can create a SOAP-based .NET web service to broker the connection and pass data back and forth, otherwise you can usually use something similiar to a SOAP-only client like the one that is here: (again, this will only work if your underlying app is still C#)

Here's some other great general information and links on non-.NET client development.

Tuesday, June 11, 2013

Format of Jscript SOAP Responses in Microsoft Dynamics CRM 2011 Organization Service has Changed in UR 12!

You used to be able to pass in your response.responseXML.xml into a function like the one below to parse out a response and pull individual attributes.

function parseResponse(responseXML, attributename) {

    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    for (i=0;i<x.length;i++)
      if (x[i].childNodes[0].text == attributename)
         //we decode the base 64 contents and alert the HTML of the Iframe

PROBLEM:  With UR 12 and above you can still use this type of function but the responseXML property no longer exists on the response object.

SOLUTION: now instead of passing in your myresponse.responseXML.xml property of your response, now the property of your reponse is just in a  new response property, so the new syntax would just be myresponse.response

I hope this helps!!


Wednesday, May 22, 2013

Arrrggghhh!! Mind Blown!

Pretty sure my mind just blew.  Guess it's time to restart Visual Studio.  Errors get really funky when you have .xaml files open sometimes.  WOW!!

Name of client is blacked out.

Hope this gets a laugh or two!

Friday, May 17, 2013

Using RetrieveAttribute Request in CRM 2011 To Get the Label Value for an OptionSet

Here is a quick way to get a label for an OptionSet value in Microsoft Dynamics CRM 2011 using RetrieveAttributeRequest.

private string GetCRMOptionSetLabel(IOrganizationService service, string entityname, string optionsetname, int value)
    RetrieveAttributeRequest reqOptionSet = new RetrieveAttributeRequest();
    reqOptionSet.EntityLogicalName = entityname;
    reqOptionSet.LogicalName = optionsetname;
    RetrieveAttributeResponse resp = (RetrieveAttributeResponse)service.Execute(reqOptionSet);
    PicklistAttributeMetadata opdata = (PicklistAttributeMetadata)resp.AttributeMetadata;
    var option = opdata.OptionSet.Options.FirstOrDefault(o => o.Value == value);

    return option.Label.LocalizedLabels.FirstOrDefault().Label;

- I hope this helps!

Friday, May 10, 2013

I Will Presenting CRM and SharePoint Integration at the Denver CRMUG May 15th!!

My colleagues from RBA Consulting and I will be in Denver on May 15th at the Denver CRMUG.  We will be presenting on the topic of CRM and SharePoint integration and will go well beyond what you can do out of the box.

Date:  May 15th
Time:  4:00 pm - 6:00 pm

7595 Technology WayDenverCO80237

Some topics we will be covering:

  • Document Management
  • Contextually appropriate templating using content types
  • Portals
  • BI Dashboards

Learn more and get registered here:


Wednesday, May 8, 2013

CRM MVP Developers Doing the Google Hangout Thing!!

Today I participated in a Google Hangout for the first time along with some fellow CRM MVP's (Donna Edwards, Daniel Cai, and Dave Berry).  The top of the conversation was development where we went through our thoughts on HTML5 vs Silverlight, JSON, JQuery, Jscript, Polaris, Orion, etc.. from a developer standpoint.

You should watch the video here:

BONUS:  at 53:40, I decide to go FULL PIRATE! :)


Thursday, May 2, 2013

The Current State of the WinRT Connection Code for CRM 2011

So, for the last week I have been working with the CRM 2011 connection code for WinRT released here:

Below are some general observations:


  • It appears that they have covered their bases and things are pretty well set up Office 365 Online orgs and IFD on-premise orgs.  It seems like this would be workable in those particular scenarios.
  • Easy connection methodology built in.
  • Native connection from your app to CRM 2011.


  • Is not currently set up for AD auth on-premise orgs
  • While the authentication mechanism technically supports WLID authentication, there is no built in mechanism that I can find to to register your device and get a device username and password.  This presents a problem and makes this scenario unworkable for Windows Live auth for windows store apps where because before you could use the application you downloaded you would have to download the CRM SDK and run the command line tool to register your device and use it first.

- That's my two cents right now.

Thursday, April 25, 2013

Strange Address Behavior On Account and Contact in CRM 2011

I have noticed that if you put a customer address sub-grid on an account or contact form you can see the two out of the box addresses that are created when you create the record.

Just a note about these.  Do not delete them.  If you do the record won't work right and you will not be able to update your record until you re-create them.


-Happy Thursday.

Monday, April 15, 2013

CRM Gamified Can Help You Boost Your User Adoption for CRM 2011!

The topic of gamification is not new, but CRM Gamified just released a great solution that allows you to apply it to Microsoft Dynamics CRM.  Gamification plays on ones natural competitive instincts (like playing a game), but in a non-game context.

Gamification can be useful in the CRM context as user-adoption can be lackluster when users aren't incentivised properly to use the new system.  By turning it into a game of sorts you can improve the drive towards full-adoption.

Here is a terrible picture of me from Convergence 2013 trying out one part of their app.

At least I won an XBOX 360 for my humiliation.  :)   But seriously, I recommend you check out their solution at

Wednesday, April 3, 2013

Azure Service Bus Changes to CRM 2011 Integration Changes (ACTION REQUIRED!!)

Azure Service Bus Changes to CRM 2011 Integration Changes (ACTION REQUIRED!!)

Word was just released today about impending changes to some Security around the CRM 2011 to Azure Service bus integration capabilities in CRM

This means that you need to make some configuration changes on your end or your Azure Service Bus integrations WILL STOP WORKING.

The go live date for the new Certs is different by region, they are below:

North America: 4/28/2013
EMEA: 7/26/2013
APAC: 7/25/2013

Get more info here:

-Hope this helps!

Microsoft Dynamics CRM 2011 Data Import Wizard Appears to be Broken in Google Chrome

Thanks to a blog reader it has come to my attention that the data import wizard seems to be broken if used from Google Chrome.  The "Choose File" button does not product a dialog.  It currently isn't doing anything.

I have tested this in versions 25.0.1364.172 m and version 26.0.1410.43 m

For now, if you want to use the Data Import wizard, use IE or FireFox.

This has been reported to Microsoft.

-Have a great day!

Monday, April 1, 2013

CRM 2013 Release Date will be Q1 of 2015

CRM 2013 Release Date will be Q1 of 2015!

More details to come....

 Maybe... ;)

Friday, March 29, 2013

Successful Downgrade of a Dynamics CRM 2011 Database from SQL 2012 to SQL 2008 R2

DISCLAIMER: I do not take any responsibility for any damage done by using this process.  I do not think it would be considered "supported" by Microsoft either.  This post is for education use only.  My scenario was  creating an organization for UAT only.  The real production org during our migration is not going to go through this process.

Let me start by saying that this is not a normal scenario.  Usually you are only going the other way.  But we took a copy of a client org out of a SQL 2008 R2 environment to do some work on it and then we needed to re-upload it to their instance as a UAT org and to test a process by which we were going to merge their two client organizations.

What we missed in the process was that we did our work in our sandbox environment and, in the process, upgraded the organization database to SQL 2012.  This presented a problem when trying to re-attach the org in their environment.

I first tried to use the copy database functionality and even export data functionality in SQL Server Management Studio as I found on some blogs to try to "downgrade" the database.  This did not work, I got errors using both methodologies for various reasons.

I decided to try one last thing and script out the database entirely in version 2008 R2 scripts and push it into the environment and see if Deployment Manager would accept it.

First, in the SQL 2008 environment I created a shell database with the same name to script everything into.
Then in the source SQL 2012 environment I right clicked on the database - clicked "Tasks" - and clicked "Generate Scripts".

The settings for the scripts are below:

1. choose to script the entire database and all objects

2. Here are the base options, click the "Advanced"  button to set the advanced options you will need.

3. Match the options from the next three screen shots

4. Now generate your script file.

5. If this file is big it might not open and run in Sql Server Management Studio.  If this is the case, use the command line tool sqlcmd.exe  to run the query on the target machine.  I had to do this with mine because my script file was over 900 mb.  If you need help with sqlcmd.exe syntax, use this MSDN article:

IMPORTANT: Specify an output text file when you run it with the -o option.  When you run the script you will see some errors at the top of the output file because it will try to script some security objects, this is ok, there should be no expectations that it would successfully be able to find these security objects in the target system, like AD groups by GUID and such.   Eventually you will start seeing the rows affected lines (usually 1 row at a time) being inserted.  This will take hours.  For a 950mb script file it took me about 3 hours to run.

When it was all done there will probably be a warning at the end of the file (not an error) about the large indexes CRM uses in some cases).  This is normal and can be ignored.

6.  Rename your org database (if desired), and import it via normal mechanisms in deployment manager.

For me it took the org as expected and it functions normally.

- I hope this helps!

DISCLAIMER: I do not take any responsibility for any damage done by using this process.  I do not think it would be considered "supported" by Microsoft either.  This post is for education use only.  My scenario was  creating an organization for UAT only.  The real production org during our migration is not going to go through this process.

Monday, March 11, 2013

Dynamics XRM Application Speed Builder Now Supports Access and Relationships

Jason Lattimer and I have released the next version of the Dynamics XRM Application Speed Builder.  The new version adds support for:
- Microsoft ACCESS as a datasource (previously only supported SQL Server)
- Full Relationship Support (allows you to explicitly specify relationships, but will also optionally build them based on relationships that already exist in your data source.
Overview from the CodePlex Page:
The Dynamics Xrm Application Speed Builder will analyze databases, then create the entities, attributes, relationships and forms in CRM for you.
The current functionality will read a SQL Server or MS Access database and create new CRM entities, attributes, and relationships based on the existing table structure. Metadata required to create the objects is pulled in and data types are matched up with their corresponding CRM types to reduce the work needed to get things created. At the same time most everything can be overridden before being created just in case your source database isn't perfect :) Last but not least we've included the option to drop all the newly created fields on the main form to give you a head start for creating the first user interface. 
Download the new version here:

Friday, February 22, 2013

Dynamics CRM 2011 SDK 5.0.14 is Out, Contains Solution Downleveling Tool

Yesterday, Microsoft released the newest version of the Microsoft Dynamics CRM SDK and it contains a much needed feature called a solution down-leveling tool. 

This allows you to take exported Polaris release solutions and import them into UR 6+ environments.  The problem is that the new entities that contain the new forms have new system entities attached to them that older systems don't have.  This tool will strip out those dependencies so you can import the solution successfully into older systems.

Get it at the link below:

-Happy Thursday!

Tuesday, February 19, 2013

CRM 4 Client Side SDK Will Not Work In Orion Release

Heads up, if you still use the 4.0 client-side SDK you won't be able to in Orion.  It's not supported and it won't work.   You might want to start migrating those customizations over if you are going to be planning an upgrade to the Orion release.

-Happy Tuesday!

Saturday, February 16, 2013

If You Have Trouble Connecting up to CRM Online (O365) Using the Outlook Client

I don't know why but it seems like lately using the old "CRM Online" in the server URL doesn't work anymore.  I seem to have to use "" now.

I know Chris Cognetta from Tribridge has also blogged this, I haven't seen the article, but I am not the only one that this has caught off guard.

-Happy Saturday!

Tuesday, February 12, 2013

Cross Browser Compatibility is Here for Microsoft Dynamics CRM 2011!

I know I am not the first person to drop this bit of information, but just in case any of my readers missed it you can now access CRM 2011 with other browsers besides IE now that UR-12 is here.

The additional browsers are:
- Chrome
- Firefox
- Safari (on OS-X)

Still coming are:
- Safari (IOS)

Have a great Tuesday!

Saturday, February 9, 2013

Is Surface Pro a Virtualized Environment on the Tablet?

On this inaugural day of the Surface Pro I got the 128 Gb version with the Type Cover (blogging on it right now). 

I tried to see what kind of serious chops it had and I thought I would try to install Battlefield 3 to test out the processor and graphics power vs my 3 year old machine that drives Battlefield 3 pretty well. 

It wouldn't run after the install and gave an error saying that "This game will not run on a virtualized environment".  So there isn't anything out there yet as I fear I might be the only one to try this so far on the first day. 

I am about 97% through the download and install on Battlefield Bad Company 2 on Origin right now and so  should be able to let you know soon if it works with older versions of the game.

- Jamie

Tuesday, February 5, 2013

Arg... I tried to install Win 8 and CRM for Outlook on an old Pentium 4 I had lying around.  Got a lot of this.

Gosh that darn spinner runs well, even on crappy computers.

- Jamie :)

I Will Be Presenting at the CRMUG This Thursday!

Hello Everyone, I will be demoing some more advanced Sharepoint and CRM integration concepts at the CRMUG on Thursday February 7th at the MTC (Microsoft) at Centennial Lakes in Edina. Come check it out if you are in the Twin Cities area.

Register here:


Tuesday, January 29, 2013

New Kid, Changed Jobs, WOW!!

So much going on these days.  William was born earlier this month and I have also just started with a new employer.  I promise to get back into the swing on things soon but so much has been changing.  In the mean time you should take a look at our my new company RBA, Inc.

I will also be presenting on their behalf at the CRMUG in Minneapolis in February.

Saturday, January 12, 2013

Check Out This Great Article About Being a CRM MVP From Gus Gonzalez!

Check out this great article about what it's like being a CRM MVP from Gus Gonzalez.  It features many prominant MVP's in the Microsoft Dynamics CRM community.  Including myself ;)

Bonus:  Scott Sewell evindently is an aspiring cat juggler.

Check it out:


Wednesday, January 9, 2013

Welcome William Theodore Miley!

We are pleased to welcome our third (and probably final) child into this world, William Theodore Miley. 

Mom and baby Will are doing great!


Tuesday, January 1, 2013

I Have Been Re-Awarded MVP for 2013!

I am ecstatic to say that I have been re-awarded MVP for 2013.  This is a great honor and I am very glad to  to have received it.  I will admit that I didn't think I had been renewed because I didn't see my email and everyone else was shouting from the rooftops about their renewal.

Turns out the darn thing was in my spam folder.


Happy New Years!