Wednesday, December 22, 2010

Need to approve email addresses in CRM 2011

As we are running CRM 2011 as dogfood, I found an interesting new feature of CRM 2011. When adding a new user, you have to approve their email for it to work properly, for instance in Outlook where you otherwise will get an error saying that the sending user does not have an email address.

So, if you get this error, just add an email address and press the "Approve Email" button in the ribbon.

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Tuesday, December 21, 2010

Interesting blog article on Microsofts Dynamics in the cloud

The Cloud is hot. Everybody seems to be talking cloud computing like it is the holy grail of computing. I try to have a bit more cold headed view of it since I am often faced with the complexities of integrating systems with each other, I often find that it can be very complex to integrate two systems residing in machines next to each other, adding a level of complexity by placing these machines on the internet does make integration more complex and costly.

The cloud does have its advantages though, for smaller companies, like my own, there is no need to own and run large servers. We, at CRM-Konsulterna, do not run any servers at all. The one server that we actually need, our lab environment, is actually hosted aswell, but on a infrastructure level.

I was tipped by Software Advice about an interesting article on Microsofts push on cloud computing for Microsoft Dynamics. You can read it here: It addresses some quite interesting points from a Dynamics perspective, not only CRM.

I think that you need to understand the background in order to understand why Microsoft are pushing this so hard. The traditional on-premise deployment type of systems has always been Microsofts strongest area and Microsoft has for several reasons, like risk reduction, scalability etc. to have a business that is partner based. It is also heavily focused on adressing the IT part of customers business, which is natural when coming from their background.

The recent years have shown that companies like Google and deliver very competent cloud based services and this seriously endagers Microsofts core business model since it shortcuts Microsoft offers by adressing the business decions makers directly and circomventing the IT-departments. This is a outspoken stragegy for companies like

So, what Microsoft tries to do is to compete on the cloud market and the on-premise market at the same time while still trying to hold on to their partner network and maintain their loyalty. This is of course quite complicated since many Microsoft partners have made a living by installing and selling Microsoft software. There are new models for cloud based service reselling but it does feel like there is going to be a bit of a downside for many partners.

From our perspective, as CRM-consultants, we are happy to offer CRM in any flavor since our main businesses is not selling the licenses but around helping our customers leverage the power of the system by adapting it to their needs. Hence it does not really matter if it on-premise or in the cloud.

However, from a technical perspective, we do recommend either partner hosted or on-premise since that substantially reduces the pains of integrations and adaptions compared to a Microsoft hosted solution. So, our recommendation to our customers is usually to choose partner hosted as that relieves  them of the burden of managing the server etc. and at the same time gives us all the advantages of adapting the system to their needs.

The fact that Hunter Richards mentions about the different architectures of the Dynamics ERP products is true but does not really affect Microsoft CRM since it has a good Cloud platform, even though there are some adaptations that only can be done on on-premise or partner hosted systems, it is a very competent and flexible Cloud system and the new version CRM 2011 is even better.

It will also be interesting to see how Microsoft will mange the partner channel in the future. It is something they, with their current business model cannot do without but at the same time something that slows them down a bit since partners naturally are slower to move than inhouse consultants.

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Thursday, December 16, 2010

CRM 2011 Release Candidate and installation

As most of you dedicated CRM nerds most certainly already know, the Release Candidate for CRM 2011 has been released.

As we at CRM-Konsulterna want to act as we preach, we have of course installed it and are now trying it out.

We are a small company and do not yet have an AD except one for our development environments on our virtual server host that we rent. So, our computers are not part of the domain that the CRM resides in.

An interesting thing about the Outlook client installation was that when we tested the connection, it worked just fine, but when trying to press the OK button in the configuration wizard, it just complained with the following error message "The server address (URL) is not valid.".

After some digging, I found that the reason was that the stored URL that the discovery service returns is actually the computer name, and since our working computers arn't part of the CRM:s AD, it couldn't find it.

The simple fix is to add an entry in the local hosts file located in "C:\Windows\System32\drivers\etc\hosts" (if you installed windows to C:\Windows of course).

There is probably some entry in the database, where this is located as well, I had a quick look but didn't find it. If you know where, please let me know. The registry serverurl in the MSCRM key does not seem to be right. At least it does not change the webservice displayed in the customizations pages of CRM.

CRM 2011 looks and feels, really good, there are some minor buggs but it is a large step from CRM 4 which is a very good application as well.

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Tuesday, December 07, 2010

Customer databases and Wikileaks

The latest news concerning wikileaks have some very important implications on CRM systems or xRM systems in general for that matter. How do you set the system up to avoid large information losses? There are some general things to be taken into consideration and some specifics for Microsoft Dynamics CRM.

For many companies, the list of customers, cases, interesting leads and business opportunities are among the most critical information the company has. If it gets into the wrong hands, the effects can be anything from embarssing to fatal. The latest weeks news concerning wikileaks has put this risk into some new light and it is a good time for companies to really put the right focus on this and handle the problem before it is too late. A competent CRM system like Microsoft Dynamics CRM, can, if security issues have not be properly addressed, be a great tool to very quickly export a lot of very business critical information.

There are some general tips that you really should address:

- How critical is the data? Which data is the most critical? Try to focus on the most important data instead of trying to set up fine masked security to cover all data. This will give you a bigger bang for the buck and also get the changes up and running quickly. Remember the fact that the chains often breaks at the weakest link, so focus on this link first.

- What legal aspects of the data do you have? Do all employees sign non-disclosure agreements and do they understand the severity of actually taking along some data to a competitor. In reality it is very hard to drive legal actions based on this but making sure all employees have understood the severity, will act proactivly to reduce the risk.

- Who can access the data? Usually not only the employees, IT-consultants, CRM- and ERP-consultants, and other contracted people might also have access.Trying to reduce the number of contractors, and signing company global NDA:s with contractors is usually a good idea.
- Where is the data stored? In these cloud computing times, this is not always a simple question. Data might be stored in a country with very rigid anti-terrorist or anti-piracy laws allowing government or other agencies to demand access to the data. If these government agencies judge that it be in their contrys best interest to send this information forward, this might also be done. Might sound a bit paranoid, but security policy is more about being paranoid than being naive. I would recommed hosting the system yourself or at a local partner. Preferably a partner of similar size to your own company since this will give you the same amount of flexibility and beaurocracy. This local partner will also be under the same national laws as your own company and have a more intimate relationship with your business than a huge corporation with a global hosting service.
- What is the weak link in the handling of data? It does not really matter if the CRM system in the cloud has astronomical encryption in the database and data transfers, if the people using the system have the same password in the CRM system as they have in all other online services like Facebook or Hotmail. Numerous examples have shown that people do share passwords between sites, and that cracking one site usually unlocks a lot more. An example can be a person using the same password for their local childcare portal as they do for their CRM at the global company they work for. The simple childcare portal, might be easily hacked with normal methods like SQL-injection and the passwords generated from this can then be used to access the global company CRM.
There are still more general principles to follow, I will not list them all here, if you have any you find particulary important, please leave a comment!
So, how do we handle this in Microsoft Dynamics CRM? There are several techniques that can be used but it is a constant battle between giving your users the power to really work with the data and making sure that the data is safe. Bellow are some of the more common ways of handling this:
- Security Roles and business units. The basic security architeture of Microsoft Dynamics CRM is really versatile and has very good support for separating users and data into different business units and then setting user roles to restrict access based on these business units. For instance, a team of telesales personell with a very high turnover of employees, can be set to only have read and write access to their own customers and opportunities and their team manager has the task of delegating the ownership of leads or opportunities to them. By using different roles, the senior sales team can on the other hand have access to all customers and business opportunities in the system. If a good separation of data can be done based on business units and security roles, this is a very good method since it is easy to set up and change, and still has very deep functionality in Dynamics CRM, going all the way down to the Filtered Views in the Dynamics CRM SQL-database.

- Disabling Excel export. Probably the most risky function in Dynamics CRM in regards to data theft from employees, is the Excel button. It can export any data the user has access to. There is a flag in the security roles, where this function can be switched off. It should be for all but powerusers, analysts and management.

- Limiting Excel export size. There is a way of manipulating the Dynamics CRM database to only allow a certain amount of rows in an excel export. As I have understood it, it is really a way of easing the load on the server and not really meant as a means of protecting data. It can only be set on a system wide way, which will limit the use of Excel for all users. You can read more about it in this blog entry, have a look in the comments, since it tells you how to set this for CRM 4.

- Custom Plugin code. Writing code that uses more complex functionality and filters the data can also be used. It need to trigger on the Retrieve, RetrieveMultiple and Execute methods. This is of course the moste versatile method. Even though it can be used to filter data that is accessed from the Dynamics CRM GUI it does not affect the Filtered Views in the database, so it is not a 100% solution but will work in most cases.

- Unsupported customizations. There is of course the dark side of customizations as well, by rewriting the database with new stored procedures, views, by modifying the existing CRM functionality, very deep changes can be made. This is not something I recommend since it will usually require deep reverse engineering and will seriously affect the upgradablity of the Dynamics CRM system.

This is a complex area and I would be happy to discuss it with you. Please leave a comment with your views on the subject. All comments are moderated to avoid spam.

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Tuesday, November 02, 2010

Lecturer at certification preparation courses

CRM-Konsulterna and Informator, have agreed on a partnership and as part of this I will be one of their regular Dynamics CRM lecturers. Since Microsoft are changing their partnership program, with a lot more focus on certification requirements, we are kicking off with two certification preparation courses for the Application and the Customization exam. If the interest is good, we will most certainly arrange courses in Installation & Configuration and Extending Dynamics CRM as well. Later on we are also planning some Microsoft Official Dynamics CRM courses, both CRM 4.0 and CRM 2011.

So, make sure that you and you consultants are up to speed and join me for an instructive and very hands-on course that will certainly prepare you for the types of questions you will be facing in the exam.

The courses will be held at Informator in Stockholm, but if you have interest in attending a course in some other place, please let me or Informator know and we'll see what we can do!

At the following links you can read some more about the courses:
CRM 4.0 Application

CRM 4.0 Customization

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Importing organizations with custom reports

The import organization tool is very useful for setting up test or development environements with full production level data. However, I ran into a problem importing today, when importing the organization, I got the following fatal error:

System.InvalidOperationException: ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.

After a bit of googling I found that this had been discussed in the CRM forums:

Since I imported the organization, mainly to work with duplicates processing, I just removed all custom reports from the CRM database manually and the import went just fine.

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Monday, November 01, 2010

CRM 2011 and Internet Facing Deployment

I have now had the time to look quite a bit at CRM 2011 beta and it looks really good. The Dynamics CRM team at Microsoft have been really busy.

One of the features I really liked about CRM 4 was Internet Facing Deployment. It opens a lot of doors and my current company offers it quite a lot.

I had a look at this feature in CRM 2011 beta and it is both a really interesting feature and a disappointment. It is based on a completely new architecure, called Claims based authentication which allows any type of authenticator to authenticate users for Dynamics CRM. For example, LinkedIn, Facebook or Windows Live ID could be used to authenticate user in Dynamics CRM.

This is really interesting since it allows for many types of authentication providers, even custom made. However, since the technique is a bit more complex than the old IFD technology in CRM 4.0 it will also require some more configuring. As far as I have understood it is for instance dependant on Active Directory Federation Service 2.0.

I tried setting it up correctly in CRM 2011 beta in a demo environment, with a set up similar to CRM 4.0 with authentication using the AD, which I believe probably still will be mostly used (maybe Live Id will be used quite a lot as well) but after a couple of hours felt that my skills in Active Directory in Windows Server 2008 R2, Federation Service 2.0 and the more technical details of claims based authentication have some rather large white areas, I left it alone.

It is a very interesting technique and I hope that there will be good how-tos around for how to set this up correctly, most preferably a wizard or two, for AD and Live Id authentication.

Another interesting aspect of this is the legacy support of IFD customizations from CRM 4.0. Since this technique is quite different from how this is handled in CRM 4.0, I wonder how Microsoft are going to create full legacy support for old applications, since they are within the "supported" framework which according to Microsofts promises, should mean they are auto-upgradable.

If you have anything to add on this subject, feel free to add a comment. Especially if you know of a good instruction of how to set this up correctly! 

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Wednesday, October 27, 2010

External Connector for SPLA/Hosted CRM

Many of my customers are aquiring Dynamics CRM through the Service Provider License Agreement (SPLA) which more commonly is known as Partner Hosted. We are working closely with Hermelin IT-Partner ( for this service as they are an excellent provider of IT-infrastructure.

One of the licensing issues I have been discussing with Hermelin IT-Partner and Crayon, a Swedish Microsoft Licensing specialist partner, is how the External Connector is licensed for SPLA.

The External Connector is, as many of you probably know, a special license that is required to license external users to work with data in Dynamics CRM, without working with the normal GUI (requires full license). Despite the name, it just a license form and does not contain any code at all.

Typical scenarios where the external connector is required is for customer portals, case registrations by customers etc. where the portal or other software works directly with the CRM webservice or database. I have had extensive discussions with Microsoft concerning implicit information, like data warehouses and how these are to be licensed but have as of now only got the answer that as long as there is some interaction with the data, like drill-down, a license is required. If there are many users, the Application Platform Agreement is what is recommended. The external connector cannot be used in internal scenarios as it explicitly only gives accessrights to non-employees and the similar.

For an on premise solution, the external connector is typically priced in the area of €25 000 or $30 000 which is quite hefty and a very large pricetag for a small company making it more or less impossible to buy.

So, when working with Dynamics CRM licensed in SPLA, how does the license agreement work? Crayon sent us the following sections concerning this:

For Dynamics CRM 4.0 Service Provider :
You do not need a SAL for external users who access Dynamics CRM 4.0 without using Dynamics CRM 4.0 Client for Microsoft Office Outlook and Microsoft Dynamics CRM 4.0 Web Client software.  External users means users that are not (i) a customer’s or a customer’s affiliates’ employees, or (ii) a customer’s or a customer’s affiliates’ contractors and agents.

So, surprise, you don't need it at all! This is something I think is great since that really opens up the possibilities of really leveraging the full power of Dynamics CRM for our customers even the smallest with only a couple of users.

It also has some other implications, namely that a customer that currently licenses Dynamics CRM as on-premise via Volume Licensing or by renting the licenses and currently are using the external connector, really should start looking at moving to partner hosted since that will remove the quite hefty cost of the external connector. It typically also comes with a SA of about 1/3 the cost per year so it is an ongoing cost.

I hope that Microsoft will be harmonizing this with the rest of the "power of choice" so that it will be more reasonably priced also for on-premise solutions.

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Thursday, October 21, 2010

Dublicate detection window too small...

Had an interesting error reported by a customer today. It seems that in the Swedish version of CRM 4.0 the duplicate detection window showing found duplicates is too small. You cannot see the buttons:

This is a bit trick to fix since this form is not customizable and I think the only supported way of actually fixing it is changing the amount of text at the top by exporting the tags.

There is, however, a very small unsupported change that you can do that will enable the scrollbars which will allow you to scroll down to see and press the buttons.

Open the file: CRMWeb/Tools/DuplicateDetection/ViewDuplicates/ViewDuplicates.aspx

and edit the tag to instead. It will give the following result:

Which will allow the user to scroll down and see and press the buttons.

The risks of this unsupported fix is that it might be overwritten in update rollups, but it would destroy anything and there are no risks when upgrading to 2011.

I really would like Microsoft to fix this bugg though...

If anyone has some other solution to this, that is supported, please leave a comment.

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Thursday, October 14, 2010

Publishing reports for external use

Recently I have been working quite a lot with reports and I must say that the new GUI in Reportdesigner for SQL RS 2008 is really a nice facelift.

I have been working with autogenerating reports as PDF:s as I have previously blogged about. It is a bit more complex to do in SQL Server 2005 and later since you have to work with two webservices that have similar class names, which I must say is a real stroke of genius. If there is interest, I might be looking into writing some about this.

An interesting thing I noticed about this is that despite the fact that the report previously has been published for external use, each update of the report will require you to republish it in order for the changes to stick. You can otherwise get some really interesting inconsistencies.

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Wednesday, September 22, 2010

Problem with installing CRM on machine with Microsoft .NET Framework 4 installed

I was setting up a VPC today and during the checks I got the following error:
"ASP.NET 2.0 is not installed"

Very weird. I had it installed and I tried repairing the installation and running aspnet_regiis -i on the ASP.NET 2.0 framework. After some googling I found that this was due to Microsoft .NET Framework 4.0 installed and this excellent blog explaining what was wrong and how to fix it. I did, however, have to remove the ISAPI filter for .NET Framework 4.0. Check it out here:

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Thursday, September 09, 2010

New webpage for CRM-Konsulterna

The work with starting the new company is coming along fine. We recently launched the new website where we tell everyone who'd like to know I bit more about the company and what we offer.

It is currently available only in Swedish, but Google Translate will probably work if you really want to read it and feel a bit weak on the Swedish.

We will try to attract the best Microsoft Dynamics CRM consultants in Sweden and hope to build a very interesting company where we can all excel and really bring value to our customers.

Please have a look!

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Tuesday, September 07, 2010

IFD on Windows Server 2008 R2 problem with plugin registration

A customers system I was working on today has just been reconfigured to and IFD setup. The server is a Windows Server 2008 R2 and I had made sure that it worked on port 80 with NTLM/AD internally. However, when I tried to connect the plugin registration wizard in the normal manner, it just gave me an error:

"Request IP Address has different address family from network address."

I found and interesting thread on Egghead café where some guys had run in to the same problem.

So I did as they suggested, added the servername to the hosts-file to the IP If you don't know what this means, it works as a local DNS. The IP is assigned to always be the local computer and "localhost" is usually directed to this adress. You can try by browsing to it if you havn't tried.

The hosts file can be found in C:\Windows\System32\Drivers\etc\hosts. There are usually an entry or two in there so you can usually figure it out, the syntax is simple: servername

If you tried pinging the servername before doing this, you would get the IP v6 address, after doing this, you will get an answer from and after confirming this, you should have no problems getting it up and running.

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Wednesday, August 25, 2010

Focus to give value

I am currently in the middle of the blizzard of getting the company I am starting, up and running, taking care of all the customers we are moving from Hermelin IT-Partner, managing all the administration and so on. For us, you and me, who work with CRM, a customer centric approach should be obvious, so the customers are of course first why the webpage is still a bit slim.

One of my strong visions for the company is to be very focused. We will focus on the market leading CRM system, Microsoft Dynamics CRM and no other CRM systems or other systems at all. It is a very dynamics system and the possibilities are endless. On top of that there are huge numbers of third party products available and the only way of giving customers the best possible recommendations and services on how to adapt the CRM system and which 3:rd party product will give the customer the best bang for the buck is to focus. It is hard enough with just such a huge system as Microsoft Dynamics CRM, that working with more than it is just not possible.

Lauren Carlson at Software advice has assembled a list of their 15 favorite verticalizations for Microsoft Dynmaics CRM. It a good list to have in the back of you head when speaking to customers, why invent the the wheel twice? Have a look at it here: . These most certainly will give your customers a bigger bang for the buck.

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Friday, August 20, 2010

Working with language translations and Dynamics CRM

I was recently preparing a demo for a potential customer here in Sweden, my last task at Logica, a company I am now leaving, which is a bit sad since I like the company and most especially my colleageus there.

When preparing this demo I was working with an english version of CRM but the demo was to be all in Swedish and the potential customer was a state-owned company which does all it's work in Swedish. Hence I needed to translate some of the customizations I had made and I had also used the eService accelerator and need to translate this aswell.

I hadn't actually done any translations previously, it had always been my colleagues doing this and it was a good lesson.

I exported the translations, opened the zip and started working with the translations in the xml. Wrong... despite the fact that it is xml it is actually an Excel document and I hadn't read that part and since my CRM server didn't have Excel installed, I didn't see the icon you can see when you do have Excel installed.

So, I was using Visual Studio to edit the translations and it was a bit of a hassle since it was quite a large document and visual studio didn't really like it.

Well, after some time I noticed that it had some tags saying it was an Excel document. So, I opened it in Excel and voilĂ  a lot easier to work with. So, just a suggestion, don't do the same misstake and sometimes, RTFM.

Another thing I found was that it was a bit hard finding the  right attributes in the rather large list and the solution was quite simple. When adding an attribute and entering the english display name, I added a string at the end, for instance "GWCRM". I could then use this as a search string in Excel when editing it, to find the correct displaynames to change. And when adding the swedish translation, I removed the "GWCRM" part at the end of the English.

This is the last day at Logica, all my best to my wonderful colleagues here and I wish you all the best of luck with your future business!

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB

Thursday, August 12, 2010

32 bit apps in 64 bit IIS 7

I havn't been working that much with IIS 7 and not on 64 bit environments yet. Always easier to work with what you know but sometimes you just have to get out of that comfort zone and grasp the new!

IIS 7 has a very different GUI from IIS 6 and there are many changes under the hull aswell.

I was trying to install the eService Accelerator on a 64 bit environment with IIS 7 on Windows Server 2008 R2 and the example portal (Fabrikam) gave me the following error:

Could not load file or assembly 'Microsoft.Crm.Sdk' or one of its dependencies. An attempt was made to load a program wih an incorrect format.

A little digging around and checking some blogs I found the error, the app pool was set up to not support 32 bit applications. The fix is to mark the app pool, click advanced settings, and under the general section, change the "Enable 32-Bit Applications" to true. Then you can just confirm this by updating the webpage.

Gustaf Westerlund
President, Chief Architect and co-Founder at CRM-konsulterna AB

New times!

I am starting a new company together with Hermelin IT Partner ( This new company will be named CRM-konsulterna, (CRM Consultants in Swedish) and will focus on Microsoft Dynamics CRM and related products only. We will drive to attract the foremost Microsoft Dynamics CRM consultants in Sweden and be the Dynamics CRM partner for customers in Sweden and also be the driver of Microsoft Dynamics CRM in Sweden in general. However, Rome wasn't built in a day and neither will this.

Are you interested in joining us or want to learn more of how we can help your company reach new heights, please send me an email at and I think you can figure out what you need to change in that adress.

Gustaf Westerlund
President, Chief Architect and co-Founder at CRM-konsulterna AB

Thursday, June 17, 2010

Understanding the user

In all computer systems in general and in CRM systems specifically, it is essential to understand the world of the end user. The following movie gives some very interesting insigths into the current trends of how the users are changing. Are you changing with it or are you going to try to turn back time?

Gustaf Westerlund

Microsoft Dynamics CRM Chief Architect


Monday, June 14, 2010

Webservice loading strange workflows

Had an interesting problem today. I want to trigger workflows from an aspx-page by finding the right one by name and for some reason, I got an exception that the workflow had to be flagged to allow manual activation or to be run as a subworkflow. This was very strange since I several times checked the workflow and it was not only published, but both the flags for manual activation and run as sub workflow were checked.

So, I applied my principle of first trying to find where the error was instead of finding what it was.

By tracing and checking some, I found that the webservice actually returned 4 workflows with the exact name I was looking for. I tried to load some of them in the GUI by changing the URL and they did load but they were strange some how since I could not change them. 2 were drafts, 2 were published, 2 were marked as runondemand and 2 were not. The last one proved to be the right one (both published and runondemand).

So, I had to change the code for fetching the GUID for a workflow with a specific name, so that it also checked that the workflow was both published and was allowed to be run on demand. So, if you run into similar problems, you know what to do.

Gustaf Westerlund
Microsoft Dynamics CRM Chief Architect

Wednesday, June 09, 2010

How to remove a windows service

Today I needed to reinstall CRM on a VPC and for some reason the Async Service wasn't unregistered properly. When I tried uninstalling it using installutil with the following command:

"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\installutil" /u "C:\Program Files\Microsoft Dynamics CRM\Server\bin\CrmAsyncService.exe"

it couldn't find the file. Seemingly, the uninstaller had a job half way and removed the file but not unregistering it as a service. So, how to uninstall? Looking around a bit I found the following command did exactly this:

sc delete MSCRMAsyncService
Good to know, if needed.

Gustaf Westerlund
Microsoft Dynamics CRM Chief Architect

Wednesday, March 03, 2010

New version customization manager

My friend and colleague Daniel Halan has released a new version of his program CRM Customization Manager. It is a very very useful tool for handling customizationfiles for Microsoft Dynamics CRM. It can handle exporting from one system and importing to another from the same GUI. You can choose to export only javascripts, you can change the datatype of attributes and keep the data.

It is an essential tool for all Dynamics CRM professionals and Daniel is way to alturistik in my view to be giving it away for free.

You can read more about it and download it here

Gustaf Westerlund
Microsoft Dynamics CRM Chief Architect


Monday, March 01, 2010

Reporting Services Windows Service wouldn't start

I created a new differencing disk of a CRM virtual machine today and I had some troubles getting Reporting services up and running. The service simply wouldn't start. I had previously used the same virtual harddisk base for other systems so I found it a bit strange, it should work.

When I looked in the event viewer it showed the error "Report Server (MSSQLSERVER) cannot connect to the report server database.".

I looked around a bit on the net and found a reference to the following which helped:

I concernings increasing the timeouts of pipes in the system to 60 seconds instead of 30. This might be needed on VPC:s that are not so fast and might not get the service up and running fast enough.

Gustaf Westerlund
Microsoft Dynamics CRM Chief Architect


Saturday, February 20, 2010

Marking an appointment as finnished from Outlook

One of the best features of Dynamics CRM is the integration to Microsoft Outlook. In comparisson to competing CRM systems, this is really one of the strongest unique selling points of Dynamics CRM.

However, even though it is really good, there are some parts of it that could use some touchups and until that happens, some workarounds would be good.

One of these issues, is that appointments can easily be created from Outlook and mapped to some object in CRM. This is easy and very few click. Nice. But, when this appointment is completed, it is a bit more complex and a lot more clicky. First you have to open the appointment in Outlook, then open the appointment in the CRM form. From there, you can press the "Save as completed" button, which is a bit tedious and many users find this a bit strange and I am having a hard time explaining why you have to do it this way, it isn't very obvious or logical. The best solution would be that the CRM addin had a button which could mark appointments and other activities as completed. But that just isn't there yet.

So, is there a workaround, yes, of course there is. It isn't perfect, but it will work.

Define some text, like for instance "Completed" and then tell the users to put Completed as the last text in the description field or in the subject field.

Then create a workflow in CRM that triggers for updates on the field where you expect the text. Then let the workflow check if the end of the content of that field is "Completed" and if so, set the appointment as completed.

The same functionality could of course be implemented in a plugin instead, but that requires a bit more programmatic skills.

The functionality of adding a button to Outlook can of course also be developed with Visual Studio Tools for Office (VSTO), and that could of course be used to automatically update the appointment as completed.

So, that might help you out a but I really hope that the CRM Client for version 5 will deliver this functionality since it isn't very hard to do when the rest is there.

Gustaf Westerlund
Microsoft Dynamics CRM Chief Architect


Friday, February 19, 2010


A few weeks ago a new colleague started working here at the Dynamics CRM group at Logica Sweden. His name is Fredrik Strandin and he is a very skilled developer. He mentioned that part of the reason he contacted Logica for a position was that he was following this blog and liked it. A huge complement and I am very grateful for it. It is hard to know how many people actually are following this blog and what I write, so please leave a comment if you like. The best inspiration to writing more on the blog is praise from readers of the blog.

I would also like to point out that I really enjoy working for Logica. It is a very friendly company with a very good customer approach. Of course, no company is perfect and a company with 40 000 employees can sometimes be a bit bureaucratic but then again we have resources to approach the largest, coolest and most difficult of CRM projects. So, if you, like Fredrik would like an opportunity to come work with this most extraordinary team of Dynamics CRM professionals, please contact me, we are always looking for driven and skilled people. Just call the main Logica phone number and as for Gustaf Westerlund in Sweden. We have offices in about 40 countries around the world, so it doesn't really matter where you live :).

Gustaf Westerlund
Microsoft Dynamics CRM Chief Architect


Back to old times

Today I got involved in a project I havn't been working in for about 2 years, a CRM 3 project that now was upgraded and there were some issues with callouts not executing properly on the production system but there were no problems on the test system. So, there probably wasn't a code error.

After activating the crm tracing (alway a good thing to do when CRM is missbehavn') it was quite clear that it couldn't find the dll Microsoft.Crm.Platform.Callout.dll which of course is required by CRM 4 if you want to execute workflows since this assembly contains the classes that are inherited from in the callouts. It is a bit strange that this dll isn't included in CRM 4 since callout are supposed to be seemlessly upgradable to CRM 4 and this is the one little stich that is missing. So, just had to dig it up and deploy it to the GAC and the callouts started working as they should.

During this I also thought there might be errors in with the assembly being unsigned and after some looking around, I found that in Visual Studio 2003 it isn't found in the project settings so you have to fix it manually in the assemblyinfo.dll. However, this doesn't seem necessary event though it doesn't hurt.

So, what did I learn?
1. When in doubt, switch on CRM tracing.
2. Make sure you have a good store of all dll:s that CRM uses so that you quickly can find them. How many of you have the Microsoft.Crm.Platform.dll in the CRM 3 hosted version? It is quite rare and can be found on the installation disks but not anywhere on MSDN. If you need it, drop a comment. I approve all comments due to all the #¤#¤¤# comment spammers so you can enter your email and ask me not to publish the comment, and it wont be subject to email harvesters, if you want me to email you the file.
3. Don't take promises of seemless upgradablity too serious. MSFT have done a great job with CRM, you don't even have to recompile (and consider that CRM 3 uses .NET 1.1 and CRM 4 .NET 2.0 from an IIS perspective) so always do a test upgrade a couple of times before you do it live and make sure to write down all the steps you are taking. Let's hope the upgrade from CRM 4 to CRM 5 will be truly seemless!

Gustaf Westerlund
Microsoft Dynamics CRM Chief Architect


Friday, January 08, 2010

IIS Diag

Christmas has passed and the new year is here, I wish you all a happy and prosperous new year with lots of nice Dynamics CRM business!

We have had some issues with an IIS (Internet Information Server) concerning authentication, application pools, certificates and similar. Since this is quite common and difficult to analyze there is a nice tool from Microsoft to help you with this, the IIS Diag. It can be downloaded here:

Gustaf Westerlund
Microsoft Dynamics CRM Chief Architect