Tuesday, November 02, 2010

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: http://social.microsoft.com/Forums/en/crmdeployment/thread/53c616e8-c454-48ec-9962-759071a82358

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

www.crmkonsulterna.se

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

www.crmkonsulterna.se

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 (http://www.hermelin.com/) 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

http://www.crmkonsulterna.se/

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

www.crmkonsulterna.se

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

www.crmkonsulterna.se

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:

http://crm.vdsnickt.eu/2010/05/ms-crm-4-0-setup-error-asp-net-is-not-installed/

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

www.crmkonsulterna.se

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! http://www.crmkonsulterna.se/

Gustaf Westerlund
CEO, Chief Architect and co-Founder at CRM-konsulterna AB
http://www.crmkonsulterna.se/

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.
http://www.eggheadcafe.com/software/aspnet/31655329/-crm-4-on-2008-server--ipv6-related-problem.aspx

So I did as they suggested, added the servername to the hosts-file to the IP 127.0.0.1. If you don't know what this means, it works as a local DNS. The IP 127.0.0.1 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:

127.0.0.1 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 127.0.0.1 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

www.crmkonsulterna.se

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: http://www.softwareadvice.com/articles/crm/microsoft-dynamics-crm-industry-solutions-our-20-favorites-1082010/ . 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

http://www.crmkonsulterna.se/

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

www.crmkonsulterna.se

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

www.crmkonsulterna.se

New times!

I am starting a new company together with Hermelin IT Partner (http://www.hermelin.com/). 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 myfirstname.mylastname@crmkonsulterna.se 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

http://www.crmkonsulterna.se/

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

Logica

www.logica.com

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
Logica
www.logica.com

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
Logica
www.logica.com

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 http://blog.halan.se/.

Gustaf Westerlund
Microsoft Dynamics CRM Chief Architect

Logica
www.logica.com

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:

http://support.microsoft.com/kb/839803

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

Logica
www.logica.com

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

Logica
www.logica.com

Friday, February 19, 2010

Hybris

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

Logica
www.logica.com

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

Logica
www.logica.com