Archive for February, 2008
Sunday, February 24th, 2008
Snap-in applications enable you and your people to work within the familiar environments of Microsoft Office applications, such as Microsoft Office Outlook, Word, Excel, and SharePoint Server. Microsoft Dynamics Snap is a collection of products for Microsoft Office 2003/2007 users to work with certain Microsoft Dynamics applications. Snap-ins allow Microsoft Office users to interact with data and business processes from Microsoft Dynamics applications as they create documents, collaborate and manage their calendar—all without having to leave Microsoft Office. The following Microsoft Dynamics Snap for Microsoft Dynamics CRM 3.0 applications are available today in Technical Pre-release and are distributed under the Microsoft Permissive License. Microsoft partners can easily extend and customize the applications, and even use components within applications they’ve developed.
- Business Data Search
- Business Data Lookup
- Custom Report Generator
- Customer Journal
For more information, please look at:
Posted in CRM Integrations, Dynamic CRM 3.0 | No Comments »
Friday, February 22nd, 2008
This my 2nd article on installation issues regarding Microsoft Dynamics CRM 4.0. However, the info below applies to both MS CRM 3.0 and 4.0.
Article 2 - Send Email Errors and Corrupt Attachments.
After running CRM for a few days all is going well, except for sporadic errors being reported by users related to sending emails via the web client. The errors seen by the users can be:
“Invalid Association: The request association is not valid”
“Invalid Visibility Modification Access”

Or
Attachments are being sporaticaly corrupted.

So how do we fix this.
Step A. First, if you are running MS CRM 3.0. Either install Rollup 2.0 or install the hotfix related to Microsoft KB Article 9299904. This is an issue specificaly related errors when sending attachments containing special characters in the file name (! @ # $ etc).
Step B. Second, try follow the recommendations on this Microsoft KB Article 916925
In CRM 3.0 the smtp server and smtp options can be changed via registry keys in the MSCRM registry area area.
In CRM 4.0 the smtp server and options can be changed via the CRM Email Router.
Step C. In addition to the above recommendations, if you are using the Microsoft SMTP service, very that no restrictions are set on incoming email messages.

It is always a good idea to also verify that relaying is ONLY allowed from the local the local server and as an additional layer of protection, use ipsec filtering or the windows firewall to completely block access to incoming smtp connections.
Step D. If the above recommendations still do not fix the issue, then step C is to disable ‘ip chimney’. In layman’s term, ip chimney is a method of offloading tcp/ip processing from the CPU to a network card that supports this. This is turned on by default with Windows 2003 SP2. Certain older network cards or drivers have problems with this. To disable ip chimney, issue this command on a dos window:
Netsh int ip set chimney Disabled
That’s about it. If after trying steps a,b,c,d you sill have issues with sending emails with either crm 3.0 or 4.0, feel free to post a comment in this blog. Thanks for reading!
Posted in Dynamic CRM 4.0 - Installation / Errors | No Comments »
Thursday, February 21st, 2008
You can check the size of your mailbox by following these directions:
a. Right cick in your ‘Mailbox’ and select Properties.

b. Click check folder size.

Posted in Exchange / Outlook FAQ | No Comments »
Monday, February 11th, 2008
After collapse of my QA server, I have been searching for various developments environment options for Microsoft Dynamics CRM 3.0 projects. As per my findings and discussion with other peer developers, most of them are using Virtual PC images for their development tasks. This is also recommended by Microsoft and a download at Microsoft website regarding VPC image is also available. This will benefit in various ways:
- Developers will not be dependant on other developers in performing their Customization tasks at the same time. In this way overlapping of customizations done by developers can refrained.
- In case of multiple clients, it’s the ideal option as we are not going to setup our QA server and Development Server for every client.
- Building new test environment will be a Zero copy deployment.
- One has the options to cut down Development Server cost by just adding more RAM to developer PCs.
- One can test various components developed by other vendors with no impact over our QA server and Development server.
- One can test various integration scenarios with no impact over QA and Development Server.
- Maintaining Microsoft Dynamics CRM server would be just as easy as importing and exporting Customizations to fresh VPC image.
If you have any issues regarding VPC please do comment. Thanks!
Posted in Dynamic CRM 3.0, Dynamic CRM 4.0 | No Comments »
Monday, February 11th, 2008
Microsoft Provides MapPoint Web Service to enrich application with mapping functionality. It allows you to integrate maps, driving directions, order tracking and proximity searches into a wide range of solutions.
For those of you who want to start using MapPoint for test and development purposes you can sign up for a free developer account here:
https://mappoint-css.partners.extranet.microsoft.com/MwsSignup/Eval.aspx
With a developer account, you get full access to the MapPoint Web Service APIs and staging environment, which you can use to build applications for trial, demonstration, and proof-of-concept purposes.
Overview

Microsoft Dynamics CRM Account entity already has longitude and latitude parameters for address. But mostly organizations don’t use those parameters. MapPoint web service provides FindAddress service to resolve addresses and returns longitude and latitude parameter as shown in the code snippet below.
Find Address Longitude and Latitude FindServiceSoap FindService = new FindServiceSoap ();
FindService.Credentials = new NetworkCredential(””, “”);
FindService.PreAuthenticate = true;MyAddress mAddress = new MyAddress(); mAddress = (MyAddress)addresses[i];FindAddressSpecification spec = new FindAddressSpecification();
spec.InputAddress = new Address();
spec.InputAddress.AddressLine = mAddress.Line1;
spec.InputAddress.CountryRegion = mAddress.Country;
spec.InputAddress.Subdivision = mAddress.StateProvince;
spec.InputAddress.PrimaryCity = mAddress.City;
spec.InputAddress.PostalCode = mAddress.Postalcode;
spec.DataSourceName = “MapPoint.NA”;
FindResults results = FindService.FindAddress(spec); Populating Location and Pushpin Array Location and pushpins objects require longitude and latitude values for address. Following code is used to populate Location and Pushpin objects of MapPoint API.
Location[] myLocation = new Location[addresses.Count];myLocation[i] = new Location();
myLocation[i].LatLong = new LatLong();
myLocation[i].LatLong = results.Results[0].FoundLocation.LatLong; Pushpin[] pushpins = new Pushpin [addresses.Count]; pushpins[i] = new Pushpin();
pushpins[i].PinID = “pin0″;
pushpins[i].IconName = “0″;
pushpins[i].Label = mAddress.Name;
pushpins[i].IconDataSource = “MapPoint.Icons”;
pushpins[i].LatLong = results.Results[0].FoundLocation.LatLong;There is no simple way to provide hyperlink at Pushpins, although Pushpin label and icon can be set to custom settings. Getting image and automatic zoom based on the geography covered by the addresses
MapPoint Web Service provides Render Service API to automatic zoom based on the geography covered by addresses. Here is the code snippet to do this: //Call MapPoint Render Web Service RenderServiceSoap RenderService = new RenderServiceSoap();
RenderService.Credentials = new NetworkCredential(””, “”);
MapViewRepresentations mvRep = RenderService.GetBestMapView(myLocation,”MapPoint.NA”);mviews[0] = new ViewByBoundingRectangle();
mviews[0] = mvRep.ByBoundingRectangle;MapSpecification mspec = new MapSpecification();
mspec.Options = moptions;
mspec.Views = mviews;
mspec.Pushpins = pushpins;
mspec.DataSourceName = “MapPoint.NA”;MapImage[] image = RenderService.GetMap(mspec); So the final image can be displayed in some ASP.NET page to show in Microsoft Dynamics CRM. Please find below my integration of MapPoint web service with MSCRM. One can select Accounts to be plotted on MapPoint and click Show Accounts Map Button
at Account Entity grid toolbar. All selected accounts will be plotted on the MapPoint in a new web dialog with Invalid addresses at the bottom.
Here is the final Image generated in Web Dialog:
For any comments or suggestion do let me know. Your suggestions and comments are valuable for me. Thanks!
Posted in CRM Integrations | No Comments »
Friday, February 8th, 2008
Updated April 16, 2008.
I’ll be writing a series of articles regarding the various issues that we have encountered while installing CRM 4.0 and migration CRM 3.0 to 4.0. We have found solutions and fixes for all of these. Hopefuly these articles will save you some time or tickets with Microsoft.
Article one - the dreaded “The Microsoft CRM Asynchronous Processing Service service terminated unexpectedly” service crashes.
After finaly installing CRM 4.0 and upgrading your organization, everything appears to be running OK. However, a small crm service called MSCRMAsyncService keeps crashing. The quick fix is to set the service to automatically restart after a crash and do this perpetually:

However, this is not a good fix as it will lead to a small memory lead that will eventually cause CRM to completely stop responding. This will also make your system log not very usable as it will be filled with service crashes and restart:

So what is the fix?
Here are the 3 action items should fix this if the issue is related to workflows being ’stuck’ or not running properly.
Action A. Set the MSCRMAsyncService to run as ‘local system’ instead of ‘network service’ account.

Action B. The MSCRMAsyncService is processing a workflow and for some reason it is crashing. These workflows are probably old, stuck, and perhaps missing some type of required resource. To identify these workflows, use the System Jobs in the Settings area.

Then created an advanced find view to search for ‘in progress’ or ‘waiting for resource’ workflow jobs.

Examine the actual workflow to see why they are not running properly. First, fix or stop the actual workflow that is not running properly. Then go back to this advanced find, and ‘cancel’ any in progress and ‘waiting for resources’ workflow that has been in this status for a while.

Depending on the number of running/stuck workflows that are being cancelled, this may take a while.
This alone may solve this issue. If it does not, then proceed to plan B.
Action C. So after having this blog post for a few weeks I received an email from Microsoft Support stating that Action C can cause major damage. Action C used to suggest to a full sql backup on the config database and the organization(s) database then delete dbo.WorkflowWaitSubscriptionBase, dbo.WorkflowLogBase, dbo.DuplicateRecordBase, and dbo.AsyncOperationBase. Do not do this as it could have side effects including stopping out of the box jobs such as duplicate detection jobs, contract state jobs, and full text catalog jobs.
Instead take a look at KB949844 and KB950680. These are two hotfixes related to the CRM Asynchronous job.
If this helps you, please let us know!!!
Posted in Dynamic CRM 4.0 - Installation / Errors | 10 Comments »