CRM – How to get rid of the CRM export to Excel warning message

I found this blog on the Customer Effective Blog (which is one of my favourite CRM hangouts) via clicking on Anne Stanton’s blog (known in the CRM world as the CRMLady) who was commenting on a twitter post of mine which was posted to linkedin.

In other words CRM is a small world but it’s well formed with lots of knowledge people helping each other out.  It also reminds me of the phrase “history repeats itself”, and good CRM blog certainly get repeated all over the place.

I never thought you would be able to remove the message but I am keen to give it a go.


Getting Rid of the CRM Export to Excel Warning Message

When you export to Excel from CRM, when you open the exported spreadsheet in Excel, you will receive the following warning:


This warning is due to a security feature in Excel 2007 and greater that checks the contents of a file to make sure that they match the file extension.  Given that the CRM data is exported using XML and saved with an .xls format, Excel doesn’t think that the format of the file is correct.

While this is probably designed to prevent some legitimate security concerns, it winds up having the opposite effect for people who export frequently from Excel—since this message will be popping up for them frequently, they will be conditioned to always click “Yes,” and as a result be prone to allow more legitimate security warnings to be ignored.

There are two options for getting rid of this warning:

1.  Group Policy – Adam Vero at the “Getting IT Right” blog has a good post on how to globally suppress this warning using group policy.

2.  Per Computer – You can easily get rid of this warning using a simple registry change on your computer.  The following instruction are for Excel 2010.  If you have 2007, the only change would be the location of the registry folder will be …\Microsoft\OFFICE\12.0\EXCEL\SECURITY.  Normal warnings apply—don’t modify your registry unless you know what you are doing.

1. Open your Registry (Start -> Run -> regedit.exe)
3. Right click in the right window and choose New -> DWORD
4. Type “ExtensionHardening” as the name (without the quotes)
5. Verify that the data has the value “0″


CRM 2011 – Coming Soon – David Yack’s new Book – Using Silverlight with CRM 2011

When I heard the mighty Yack (David Yack blog) was writing a book about CRM 2011 and silverlight I thought this was an excellent combination.  I feel I have got to know David quite a bit after watching all the CRM 2011 Development videos which are included in the CRM Development Kit.

I have been interested in what I have heard about silverlight (Microsoft version of Flash!) and would like to learn more about it, I would also like to learn about how you can use it with CRM 2011.  David’s new book is going to do just that because the book is going to do what it says in the title

Using Silverlight with CRM 2011

you can read about him giving a brief description of the book on his blog here

So why am I talking about the book which isn’t released until March.  Well on his blog he asked for people to help proof read the book, I volounteered and today I have been reading some of the book. I cant say much about it but so far I found it interesting and easy to read, it will be a great book for .NET/CRM developers who want to learn about Silverlight and how to use it with CRM 2011.

The only downside to this at the moment is I have only read one chapter and now want to read some more



CRM 2011 – Will CRM Online be on the increase in 2011

When I watched the official CRM 2011 global release, I was interested that Microsoft were really pushing their on-line hosting, saying they had beefed up the amount of servers they had getting ready for the increase in the number of people in the CRM cloud.

For me it seems like Microsoft are replacing creating the operating system and basic office package and instead offering people the choice of Microsoft hosting their CRM solutions.  I can see this type of solution becoming more popular because why do customers really need to buy servers to host CRM applications, especially now that microsoft has enabled some customizations of CRM in the cloud.

I read this article about some benefits of CRM-online

the top five benefits and see if they apply to you:

  1. Subscription-based pricing: You pay as you go, often on an annual basis, unlike conventional on-premise systems where you have to make a major up-front investment in licenses, hardware and software. You benefit from better cash flow and far greater IT flexibility.
  2. Lower overhead: Upgrades, maintenance, and system administration take place in the cloud and are managed by the vendor, so you don’t have to spend nights or weekends supervising a new version upgrade or a failed server. Studies find that cloud-based business software cost 50% less than on-premise software over a four-year period for a 100-employee company.
  3. High availability: Cloud software architectures are designed from the ground up for maximum network performance, so they frequently deliver better application-level availability than conventional, on-premise solutions.
  4. Security: For many companies, the level of security and availability, disaster recovery and back-up provided by a software-as-a-service provider far exceeds that which they can provide themselves.
  5. Ease of access at any time, and from anywhere: SaaS software is “always on,” making it easy to grow your business and support remote workers and locations, or support a highly mobile sales or service team, because people can access the cloud any time, day or night, from any browser, desktop, or mobile device around the globe, 24×7.


I saw this video from Software advice where they interview Brad Wilson from Microsoft who is discussing how customers will easily be able to switch from on premise to the cloud easily.  This could be important factor in allowing customers to switch easily to suit their needs.  In the previous video with Brad he said that the cloud offering my microsoft costs a third of the price of salesforce, that is a very big saving for a large company.


CRM 2011 – Custom Activity types

I saw this article on the the power object blog.  Custom activity types is something on my todo list of things to check out.

I have a possible need for some custom activity types.  A user wants to create activities for themselves but they aren’t always just email/phone calls etc.

Here is the link to the article, you should definitely check the blog out because they always have a few interesting articles to look at.

What I like about this article is it is short and sweet and gets to the point straight away.  Which is very useful when you just want to know how to do something.  They also offer help to people who need it (like the A Team) so if you have any questions or need any help with CRM, give them a call


CRM 2011 allows a user to define his/her own activity type. For example, if we want to conceptualize sale transactions as activities, and report, analyze and view them on a par with the out-of-box CRM activities, we can define our new custom entity as an activity type. In 3.0 and 4.0 this would not have been possible (at least in a supported fashion); in CRM 2011 it is quite easy.

When creating the custom entity, such as “Sale Transaction” below, check the boxes labeled “Define as an activity entity” and “Display in Activity Menus”, as shown below. Save, publish, and you’re done!


Having defined our custom entity, we can now see it in the Activities tab of the Workplace ribbon toolbar under the pull-down list called “Other Activities”:


Since we checked the “Display in Activity Menus” checkbox on our custom entity definition screen, Sale Transaction appears in the pull-down list along with the nine standard activity types when we create a new activity:


The Sale Transaction record itself is structured much like the other activity records. For example, you can regard it to other entity types, set an Actual End date, and mark the activity as complete:


Finally, we see that in the list of a contact’s completed activities, the sale transactions appear alongside the other activities with this record.


CRM 2011 Metadata Browser Project on Codeplex

I had blogged previously that the metadata browser had been removed from CRM 2011, I don’t really understand why you would remove this functionality but if you want to read about that you can here

Clearly Rhett Clinton at the excellent MSCRM Bing’d blog was also missing this feature.  So Rhett being a CRM a great contributor to the CRM community went and build a Metadata browser in silverlight, awesome.

Find out more about it here

you can also find the project on codeplex on the link below

some of you may already be using another one of Rhett’s awesome CRM projects, the truly brilliant Javascript CRM 4 to CRM 2011 converter.  This is not only a great way to convert your CRM 4 javascript but it also a good way to learn the new syntax, which has changed  a fair bit.

find out more about that here

Awesome work from Rhett, his blog is also a good source of information and interesting articles.


SharePoint 2010 Architectures Overview

If you are doing any development in CRM 2011 you will at some point find yourself doing some Sharepoint 2010 integration work.  CRM 2011 does help you a bit but you will also have to do some work to find out how SharePoint works and like a lot of things in CRM  it can be tricky.

I saw this web page today which is an overview of the SharePoint 2010 Architecture

This is a nice and concise document and certainly one to bookmark for later, it could also be a suprise for some people who think SharePoint is a internet version of a company drive to store documents.

Summary: Learn about the architectures of Microsoft SharePoint Foundation 2010 and Microsoft SharePoint Server 2010, including the platform stack, the Microsoft ASP.NET-IIS integrated request pipeline, the server and client object models, and the execution process system for sandboxed solutions and farm solutions.

Applies to: Microsoft SharePoint Foundation 2010 | Microsoft SharePoint Server 2010

Provided by: Ricky Kirkham, Microsoft Corporation


CRM 2011 – OptionSetValue returned in LINQ only returns int value

I was using LINQ to retrieve multiple rows and I am loving that but I was doing a linq query to get the different address for an account.

This worked fine except I wanted to check the address type by name.  So I wanted to retrieve the Primary address.  I found out that in LINQ, optionsetvalues only return the int number value and not text/label.  To get the label you have to look it up using the metadata service.  ARGHGHGHG how frustrating.  I was searching OptionSetValue, metadata search and couldn’t find anything for ages until I saw that the samples has a couple of projects all about metadata calls.

You can find them here

it was annoying at the time because I had just figured out how to return the values in LINQ and I didn’t want to hard code the values to the int optionSet values because I thought it wouldn’t work if someone added in new address types but it wouldn’t still work if I used the address type string name.
Microsoft.Xrm.Sdk.Client.OrganizationServiceContext orgContext =                           new Microsoft.Xrm.Sdk.Client.OrganizationServiceContext(_service);
IEnumerable<CustomerAddress> addresses = from c in orgContext.CreateQuery<CustomerAddress>()                                                             join aa in orgContext.CreateQuery<Account>() on c.ParentId.Id equals aa.Id

where (c.ParentId.Id == new Guid(“92eb0d0e-b22e-e011-9645-00155d106b02”))

select c;



foreach (CustomerAddress ca in addresses)                    {

System.Console.WriteLine(ca.AddressTypeCode + ” ”

+ ” ” + ca.CustomerAddressId
+ ” ” + ca.AddressTypeCode.Value

+ ” ” + ca.Line1

+ ” ” +  ca.Line2

+ ” ” + ca.Line3);

OptionSetValue opp = ca.AddressTypeCode;

System.Console.WriteLine(” ” + ca.CustomerAddressId.Value);


CRM 2011 – You can Delete business units

One thing I have always found a little bit odd about Microsoft’s Dynamic CRM is once you have made a new field, business unit and many other things you cannot change value’s on it.

I’m not entirely sure what goes on in the background and what is setup but clearly the name of the variable is used to setup security or privledges, it must be the name rather than the ID because you cannot change it.  It doesn’t seem like good practise to me but its where we are.

in CRM 4, once you created a business unit you could never get rid of it, so you better not misspell it.

But CRM 2011 allows you to delete the business unit, not that I have been deleting any business units but I did read it in the latest Customer Effective Blog

Say Goodbye to Abandoned Business units in CRM 2011

This is one of those useful changes to know but I hadn’t seem mentioned anywhere.

The customer Effective Blog for those who aren’t subscribed to it is a great source of interesting and useful CRM information

Microsoft Executive Interview – Trends in CRM over the last 10 years

I saw an interesting interview on Software Advice’s blog.  This is the first interview of a week of interviews.  You can go to the blog here to check it out directly

The interview takes place in Redmond, Washington and in this interview they ask Brad Wilson, General Manager of CRM Dynamics his thought on the state CRM.

He make an interesting observation, he puts forward the idea that CRM systems have moved from optional to a something businesses need to take advantage of be on top of, otherwise they run the risk of falling behind their competitors.

The other main point I took from the video is Brad thinks the biggest obstacle with the success or failure of CRM systems over the last 10 years is users rejected the CRM system.  Either not liking the solution or finding it difficult to use and customize to their needs.  This is one area Microsoft CRM dynamics is quite strong, it has a good solid base platform but has put a lot of effort to make it easier (especially in 2011) for you to customize the CRM solution.

Lastly he points out that CRM systems are becoming more popular because they are cheaper.  I think competition and particularly from Microsoft is pushing this point.

The video was an interesting snippet and tomorrows should also be interesting because it has the title – Will Microsoft Dynamics CRM 2011 slow Salesforce?

Here is the video

CRM 2011 – How to use guids in LINQ queries

This took me a bit of time to work out but in the end it’s very simple.  You can’t just reference a guid as a string, you have to create a guid type or cast it to be a guid.  Amusingly I had to select the guid to make find out what the guid was which totally defeats the object but I wanted to know what it was.

In the end it turned out my initially code didn’t work because I had missed a digit off, .NET to be fair did tell me my guid need to be 32 digits.

Create a guid

Guid myGuid = new Guid(“92eb0d0e-b22e-e011-9645-00155d106b02”);                             IEnumerable<Account> accounts = from a in orgContext.CreateQuery<Account>()

where (a.Id == myGuid)


Name = a.Name,

Address1_County = a.Address1_County,

Id = a.Id


Casting the String to a guid

IEnumerable<Account> accounts = from a in orgContext.CreateQuery<Account>()

where (a.Id == new Guid(“92eb0d0e-b22e-e011-9645-00155d106b02”))


Name = a.Name,

Address1_County = a.Address1_County,

Id = a.Id