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!
Microsoft Dynamics CRM Chief Architect
Busy as ever, I am still working on this large CRM project with lots of integrations. Very complex and very interesting.
At the moment we running CRM 3.0 but we are currently looking at upgrading to CRM 4.0 since we need to implement a new datamodell containing more than 40 very tighly connected entities with multiple relationships, self referentail relationships and much more! We are very lucky to be working with CRM 4.0.
The first part of the upgrade we are doing will be to just get everyting working in CRM 4.0 with as little or no code review as possible. We will lift all the code later (i.e. converting callouts to plug-ins, using the new web service and so on) when we have got everything running.
In other words, I first of all needed to get callouts from CRM 3.0 to work properly in CRM 4.0. After the “sleep-inducing-upgrade”, I found that they simply didn’t work. As I had made a few callouts that generated custom accountnumbers and other similar tasks, it became clear that it crashed because of the callouts.
I activated CRM tracing (http://support.microsoft.com/kb/907490/en-us) and soon found that the reason for the callouts not working was that CRM could not find the dll containing callout.base. So, I added the dll (Microsoft.Crm.Platform.Callout.Base.dll, found on the CRM 3.0 CD 1) to the GAC (C:windowsassembly) and then ran iisreset.
After this, the callouts worked just like they should!
On the same topic, if you have a custom virtual directory bellow the CRM website, just add the file: C:Program FilesMicrosoft CRMCRMWebbinMicrosoft.Crm.WebServices.dll to the GAC aswell, since it won’t work otherwise. There are other ways of getting around this problem aswell, but I prefer this solution.
On the first of may I will be on parental leave for 4 months, so that I can really get to know my daughter without my wife getting in the way! 😉
Hopefully I will have time to write a bit on this blog aswell.
Microsoft Dynamics CRM Architect
If you havn’t tried Bio Shock on XBOX 360, you really should!
It’s one of those days, lots of bloggin’ 🙂
Callouts are great, there are a few drawbacks but in general, they’re great. However, you might experience that they aren’t triggering as they should. Well, first thing to check is that callout.config is correct. Does it work on some other system? I have noticed that there are some problems with wich version is set in the top part.
However, there might still be problems with callouts not triggering properly, this might be due to a reinstallation of CRM which actually shuts off callouts, and doesn’t put them back on again. (shame on you installation developers!).
Have a look at the blog bellow for more info on how to put them back on again.
CRM and SharePoint Consultant