The haunted house of callouts

0 comments

Posted on 8th January 2009 by Jukka Niiranen in Configuration

, ,

One of the integrations implemented for our CRM environment includes a feature that writes entries to a dedicated Error Log entity. This can be a convenient way to provide the end users access to error notifications, when the process itself is asynchronous and does not provide a way to prompt the user.

During the development project of this integration, frequent updates were made to this callout dll file and I received new versions to be deployed from the developers almost on a daily basis. After one particular update, we were surprised to notice that the callout was still writing an error messge into the custom entity, which was not supposed to be there. In fact, the whole message string no longer existed in the dll file. Where did his ghost messages appear from?

It turned out that merely stopping and starting IIS does not guarantee that the previous version of a callout would not remain in the cache. If there are any workflows associated with the entities that the callout references, these can keep the old version of the dll loaded up in memory, thus creating the “haunting” effect described.

As a lesson learned, whenever I need to update a callout dll file, I now go through the following steps:

  • Stop the CRM Workflow Service (net stop mscrmworkflowservice)
  • Stop IIS (iisreset /stop)
  • Replace the callout dll
  • Start IIS (iisreset /start)
  • Start the CRM Workflow Service (net start mscrmworkflowservice)

Save your time by documenting

0 comments

Posted on 26th November 2008 by Jukka Niiranen in Configuration

, ,

Documenting what your CRM environment looks like and what changes you’ve done to it can be such a drag. Compared to how fast you can perform and publish customization changes in Microsoft CRM, writing it all down and communicating it to the rest of the organization can take a lot more time (the same goes for planning your customization changes before rushing into doing them). Most people will learn the purpose of documentation only the hard way, after running into process errors resulting from a misunderstanding of what data goes where, what scripts affect which fields etc.

After fighting with one such case recently, where I had to perform checks on entity form contents of four supposedly similar CRM instances, I just got fed up with the number of browser windows cluttering my screen and decided to search for a smarter solution. I remembered running into a CRM documentation application some half a year ago, but since it required Excel 2007 which I didn’t yet have at that time, I never had the chance to try it out. Having now upgraded to Office 2007, I promptly surfed to CodePlex and looked up the Microsoft CRM Documentation Generator by Merjin van Mourik.

What a beautiful tool this is! Not only does it produce a neat list of all your entity forms, their scripts and picklist field lists of values, it does this “live” on your screen. Just export the customizations.xml file, load it up in the Excel add-on, then lean back and enjoy as the CRM server magically documents itself, one attribute at a time, for each of your hundred entities. After the show is over, you can copy & paste the information you need and quickly compare CRM instances side by side to track down the differences.

CRM Documentation Generator

The Documentation Generator tool is made for Microsoft CRM 3.0, so all you hip people already on 4.0 may be better off with Microsoft CRM 4.0 Form Reporter, which allegedly does the same thing in Word 2007 format.

Eating your own dog food: deleted appointments

1 comment

Posted on 21st October 2008 by Jukka Niiranen in Configuration

, , ,

In my working team we’ve only recently started to use Microsoft CRM 3.0 for organizing our own work. The CRM system has been already rolled out to 200 users globally, but these databases have been reserved solely for end customer data. Now we finally have a separate CRM environment to manage our team’s internal customer data, projects and tasks, hence the “dog food experiment”. I’ll blog here some of my experiences as a newbie user, like this mystery with appointments.

This monday I opened up my Outlook calendar and was greeted with a surprisingly empty schedule for the upcoming week. Hmm, didn’t I have plenty of meetings booked for every day, as usual? Going back to my Outlook’s “Recover Deleted Items”, I was actually able to restore a fair amount of ucpoming appointments. But who put them in the bin?

Upon opening CRM’s My Activities view, I still saw the missing appointments in the list. Looking back, I realized each of the appointments I had to recover from Outlook’s trash bin had been tracked into CRM by myself. Why on earth were they simultaneously removed from Outlook?

Well, it turns out that there was a contact record in CRM that matches my default outgoing email address with it’s .com domain. My actual CRM user account used an email address with .fi at the end. So, CRM was not able to find any CRM user resources in the list of appointment attendees and promptly synched my Outlook calendar, thus removing the appointments (since I wasn’t participating them). I did remain as the owner of the appointment and was of course one of the contacts listed as attendees. Come to think of it, Microsoft CRM did provide some error screen to me about scheduling issues when pushing the track button, but who reads those?

Makes you realize how an email address alias can make things confusing for many parties. Also makes you remember not to blindly trust what the system tells you and instead always make a mental note in addition to the virtual one.

Switching between Outlook laptop and desktop clients

0 comments

Posted on 23rd September 2008 by admin in Configuration

, , ,

If you need to support a Microsoft CRM environment where both the desktop (online) and laptop version of the Outlook client are being used, here’s a quick way to switch your own workstation to use a different client mode. Assuming of course that you already have the local SQL database on your machine.

  • Open Regedit
  • Locate the registry branch HKEY_CURRENT_USER\Software\Microsoft\MSCRMClient
  • Set the LightClient registry key to either 00000001 (desktop) or 00000000 (laptop)

There’s another key right next to it, which tells the current status of the client:

  • RCOffline = 00000001 equals offline mode
  • RCOffline = 00000000 equals offline mode

That registry key may come in handy if your “Go Offline” / “Go Online” buttons in the Outlook UI get mixed (which is what they sometimes do!) and you need to determine the real status of the client.

Switch to our mobile site