« January 2009 | Main | March 2009 »
February 2009
February 28, 2009
New Hotfixes Substantially Improve Outlook 2007 Performance
Larry Lentz posted about new hotfixes for Outlook 2007 that improve Outlook performance and stability. I have installed both, and they seem to play nice with CRM.
Read Larry's post for more information.
Posted by Joel Lindstrom on February 28, 2009 at 07:05 AM in Web/Tech | Permalink | Comments (0) | TrackBack (0)
February 26, 2009
Automate Report Delivery in SQL Server Reporting Services Using Subscriptions
One question that I get asked fairly frequently is how to set up automated SSRS report delivery with e-mail subscriptions. This capability is great for reports that get run on a regular basis, such as a sales pipeline report for a weekly sales meeting.
Microsoft TechNet has posted a great video showing the process of setting up e-mail subscriptions. Some CRM specific consideration to setting up e-mail subscriptions with CRM reports: report subscriptions require stored credentials, so you have to publish the report for external use through CRM or publish the report directly to the report server. Functionality such as CRM prefiltering and CRM hidden parameters such as CRM_URL will not work, and the data included in the report will be based on the security role of the stored user, so e-mail subscriptions should not be used for sensitive data.
Posted by Joel Lindstrom on February 26, 2009 at 10:36 AM in Microsoft CRM Reporting | Permalink | Comments (0) | TrackBack (0)
February 24, 2009
Care and Maintenance of IIS Log Files when using CRM Forward Mailbox
When using the CRM Forward Mailbox for processing incoming messages, one should be aware of the existence and size of the log files created by IIS. The size of these log files will vary based on the number of emails the Forward Mailbox is processing - as well as the number of errors (if any) that the mailbox is encountering.
We recently had an environment where the mailbox was encountering errors regularly and the log files were around 250MB each day. After resolving the issue causing the error, the log file size dropped to a more manageable 60MB each day. Even at 60MB though, the aggregate size of the files would become quite large. As Microsoft does not recommend turning off the logging feature, compacting these files is a great way to reclaim some disk space. MSft reports that compacting log files will often result in four to five times compression.
The directory for the log files for IIS depend on the operating system. Windows Server 2003 by default stores these files in %windir%\system32\LogFiles. Whereas Windows server 2008 by default stores these in c:\inetpub\logs\LogFiles. (The server running the CRM Email Router service will contain these IIS log files)
These log files can be compacted by running the following command on your server:
Windows Server 2003: compact /C /I /S %windir%\system32\LogFiles\*.*
Windows Server 2008: compact /C /I /S c:\inetpub\logs\LogFiles\*.*
Posted by Matt Putnam on February 24, 2009 at 03:40 PM | Permalink | Comments (0) | TrackBack (0)
February 23, 2009
CRM 4.0 Forward Mailbox Hangs on Emails with '+' and other Special Characters - Exchange 2007 on Server 2008
With Exchange 2007 running on a Windows Server 2008 box, there is a known issue with Forward Mailbox not correctly processing emails containing special characters, such as the '+' symbol in the subject line. The email router 'hangs' on the email in question and fails to process it and subsequent messages.
In addition to the email sticking in the mailbox, the Application Log on the server running the Email Router will log 404 errors for MSCRMEmail. The exact status of the error is: Request Filtering: Denied because URL doubled escaping 404.11.
The fix is to run the following from a command prompt on the Exchange server. This will allow double escaping.
%windir%\system32\inetsrv\appcmd set config "Default Web Site" -section:system.webServer/security/requestfiltering -allowDoubleEscaping:true
For additional information on troubleshooting the Email Router check out the blog post: http://blogs.msdn.com/crm/archive/2009/01/08/troubleshooting-the-microsoft-dynamics-crm-e-mail-router.aspx
Posted by Matt Putnam on February 23, 2009 at 10:32 AM | Permalink | Comments (0) | TrackBack (0)
February 19, 2009
Error When Adding User to CRM
I recently can upon a pretty frustrating issue where a client was unable to add a new user to their CRM deployment. One thing that separated this user from other users in the domain was that this user had been added and their mailbox was on one of the newer Exchange boxes in the domain. Naturally, we keyed in on this fact and focused our efforts on trying to figure out what was up with the new Exchange box. However, after barking up that tree for a while, it was suggested to take a closer look at the user’s record in Active Directory.
When adding a user, CRM synchronizes the following fields from Active Directory (maximum field lengths are in parentheses):
- First Name (50)
- Last Name (50)
- Title (100)
- Primary E-mail (100)
- Main Phone (50)
- Home Phone (50)
- Mobile Phone (50)
- Pager (50)
- Fax (50)
- Street 1 (50)
- State/Province (50)
- ZIP/Postal Code (20)
- City (50)
When looking at the user’s record, the amount of data in their Street 1 field in Active Directory was longer than 50 characters. This caused the error when trying to add the user to CRM. So, if you’re having issues with adding certain users, try checking these values in Active Directory – they may end up being the culprit.
Posted by Will Wilson on February 19, 2009 at 10:14 PM | Permalink | Comments (0) | TrackBack (0)
Deleting Picklist Values Based on CRM Form Types
Sometimes there is a need to remove certain pick list values when a user is creating a new account record in CRM especially when the accounts are integrated with an ERP system such as Great Plains. The scenario is this: All customer records are integrated with CRM, and when the account is flagged as a customer, the entity becomes read only. Prospects are entered into CRM and users were accidentally selecting "customer" as the account relationship type, and the account is now locked down and no changes can be made.
To accommodate this request, we created the following onload Javascript on the Account form:
if(crmForm.FormType ==1)
{
var oField = crmForm.all.customertypecode;
oField.DeleteOption(3);
}
if(crmForm.FormType ==2 &&
crmForm.all.customertypecode.DataValue !="3")
{
var oField = crmForm.all.customertypecode;
oField.DeleteOption(3);
}
Other options for pick list values include:
var oField = crmForm.all.SOME_PICKLIST_FIELD_ID;
// Determine how many items there are in the picklist
alert(oField.Options.length);
// Set the value to 1
oField.DataValue = 1;
// Show the the text for option #1
alert(oField.SelectedText);
// Delete the first option by value
oField.DeleteOption(0);
// Add an option to the pick list, note that the CRM Platform must be aware of this information
oField.AddOption("Test", 0);
Posted by Dena Harrell on February 19, 2009 at 11:17 AM | Permalink | Comments (2) | TrackBack (0)
February 18, 2009
Accessing Systems views on the Navigation Bar
On the goals of any CRM implementation is to make the navigation as easy and intuitive as possible. One way to do this is to use a combination of system views and site map. For example, there are many organizations that have users that work with specific types of Account or Contacts. The traditional way to do this is to create a system view or advanced find view based on the Account or Contact type. However, this still requires that the user access the screen and select the appropriate view from the drop down. It would be much easier if the user could simply select an option on the Navigation Bar and have that view displayed. This can be accomplished with some site map changes and the creation of a few system views. Below is the outline of an example:
Scenario
An organization has two main types of Accounts that they deal with. These are Broker firms and Agency firms. Furthermore, the organization is segregated into individuals that deal with only Brokers and individuals that deal only with Agencies. The goal here is to provide an easy way for these individuals to access the correct Account types and access them easily.
Step 1-Access the Account entity and create two separate system views. One view is for active Accounts of the Broker and the other view is for Active Accounts of the type Agency.
Step 2-Export your site map and open it. Be sure to save a copy of the original
Step 3-.Create an Area on the site map called Agency. This will display the option of Agency on the main Navigation bar.
Step 4-Access the system view for Active Accounts of the type Agency and copy the GUID. You can also do this by selecting "Copy Shortcut" when you create the view on the entity.
Step 5-In the site map add a subarea called Agencies and the url for this sub area is the guid that you just copied. You could also create a view for Contacts for Account type Agency also by creating the system view and copying the GUID.
Step 6-In the site map create an Area called Brokers. This wil display the option of Broker on the main Navigation bar.
Step 7-Access the system for Active Accounts of the type Broker and copy the GUID, again you can use "Copy shortcut" also.
Step 8-Follow step 5 except the subrea will be called Broker and the GUID will be for the Broker system view.
Step 9-Import your sitemap and publish.
You will now see a main Navigation item called Agency and one called Broker and when these are accessed the user has options to see data for their specific business function,specially Accounts and Contacts of a certain type. This may not be applicable in all situations but it is an easy way to reduce user confusion and also makes the front end more appealing.
Below is a sample of the site map changes for the Agency account type.
Area Id="MA" ResourceId="Area_Marketing" Icon="/_imgs/marketing_24x24.gif" DescriptionResourceId="Marketing_Description" Title="Agency MGT">
<Group Id="MA">
<SubArea Id="nav_accts1" Entity="account" DescriptionResourceId="Account_SubArea_Description" Title="Agencies" Url="http://moss:5555/MicrosoftCRM/_root/homepage.aspx?etc=1&viewid=%7b40CDBE8B-22E7-DD11-83F5-0003FF340014%7d" />
<SubArea Id="nav_conts1" Entity="contact" DescriptionResourceId="Contact_SubArea_Description" Title="Agency Contacts" Url="http://moss:5555/MicrosoftCRM/_root/homepage.aspx?etc=2&viewid=%7bC08666EB-30E7-DD11-83F5-0003FF340014%7d" />
Posted by John Whisonant on February 18, 2009 at 06:27 PM in Microsoft CRM Tricks and Tips | Permalink | Comments (2) | TrackBack (0)
February 16, 2009
Client-side Web Service Calls for Microsoft Dynamics CRM 4.0: Calling the Metadata Service with Javascript
Almost a year ago today, I did a post detailing how to make calls to the CRM web service with Javascript. That post was geared towards MSCRM 3.0, but now that we are solidly in MSCRM 4.0 territory, I figured I would revisit the topic and throw in some additional information and tricks that I’ve picked up. This will be a 3-part series focusing on the following:
- Calling the Metadata web service with Javascript.
- Calling the CRM web service with Javascript.
- How to construct SOAP messages.
There are several decent examples of calling the CRM web service, but I haven’t found many good articles on how to call the Metadata service. Also, you’ll have a very hard time finding how to construct the corresponding SOAP messages for sending to the services. The last part in this series will focus solely on how to use the CrmService and MetadataService WSDLs to determine how you need to create your SOAP messages.
Posted by Will Wilson on February 16, 2009 at 01:08 PM | Permalink | Comments (0) | TrackBack (0)
"Insufficient Permissions" Error on Custom Security Roles in Microsoft Dynamics CRM 4.0
Consider the following scenario:
You create a new security role in CRM by copying a system role, and you edit the permissions. When a user logs on the first time, they get the following error:
"Insufficient Permissions--The logged on user does not have the appropriate security permissions to view these records or perform the specific action."
If you give the user a system role, then remove it after the log in the first time, the user can then successfully use CRM.
Solution:
To fix this issue, make sure that your custom security role has at least user level write and read access to "user settings."
- Log on to the Microsoft Dynamics CRM Web client as a user who has the system administrator role.
- Click Settings, click Business Unit Settings, and then click Users.
- Open the user record for the user who cannot log on to Microsoft Dynamics CRM.
- In the navigation pane, click Roles.
- Double-click the role that you want to modify.
- On the Business Management tab, click to assign the User level privilege to the Write permission under User Settings.
- Click Save and Close.
For more details see Microsoft Support KB 948311.
Posted by Joel Lindstrom on February 16, 2009 at 12:18 PM | Permalink | Comments (0) | TrackBack (0)
February 12, 2009
New configuration / customization comparison and transfer utilities available for CRM
There are two new free utilities available from Microsoft that will be helpful for anyone working with multiple CRM environments: (Such as Development / Training / Production)
http://msdn.microsoft.com/en-us/library/dd442453.aspx
1) The Customization utility compares two XML files and show the differences in entities, attributes, forms, views, workflows, security roles, entity maps, and relationships between two CRM configurations.
2) The Configuration utility is a simplified export/import tool allowing you to export records from a custom entities contained in a source Microsoft Dynamics CRM system and import those records into a target Microsoft Dynamics CRM system.
Posted by Scott Sewell on February 12, 2009 at 03:30 PM | Permalink | Comments (0) | TrackBack (0)
February 09, 2009
Javascript Snippets for Working with Grids in CRM
Here are a few useful examples of getting some data from the grid in CRM. I’ve used these in my ISV.config customizations in order to grab certain data that i want to pass to my custom pages. For the most part, a lot of this stuff gets passed automatically when you specify PassParams = 1, but I often have to construct page links dynamically in ISV.config using Javascript, so the PassParams argument does not work.
Continue reading "Javascript Snippets for Working with Grids in CRM" »
Posted by Will Wilson on February 09, 2009 at 12:05 PM | Permalink | Comments (3) | TrackBack (0)
February 08, 2009
"Entity was not found in metadata cache" error when importing organizations
Scenario: You attempt to import a copy of your Microsoft Dynamics CRM 4.0 database into another environment using the Deployment Manager, such as to set up a test organization. The import fails with an error of "The entity with a name = "___________" was not found in the MetadataCache"
If you get this error, the following is probably true:
1. You had a custom entity against which you had active workflow rules or ran duplicate detection jobs.
2. You deleted those duplicate detection jobs and workflows
3. You deleted the custom entity
4. You have upgraded to CRM 4.0 update rollup 1 or 2
I have found several ways to fix this problem so you can import the organization:
- Temporarily recreate the entity and attributes that were deleted, then import will succeed.
- Uninstall crm 4.0. Reinstall, but DO NOT update the installation files or install the rollups. The import will succeed. You can then install the rollups.
- Delete all records that reference this entity and any of its attributes from the duplicaterecordbase and workflowdependencybase tables. Warning--this is unsupported.
Posted by Joel Lindstrom on February 08, 2009 at 08:31 AM in Microsoft CRM Tricks and Tips | Permalink | Comments (0) | TrackBack (0)
February 02, 2009
Good Read--Improving Microsoft Dynamics CRM Performance and Securing Data with Microsoft SQL Server 2008
Microsoft has released a new white paper called Improving Microsoft Dynamics CRM Performance and Securing Data with Microsoft SQL Server 2008.
As the title says, this paper details some of the new compression, index, encryption, and backup capabilities of SQL Server 2008, and benchmarks of the improvements seen when used with Microsoft Dynamics CRM 4.0.
I found the topic of sparse columns to be especially interesting:
Sparse columns are ordinary columns that have an optimized storage for NULL values. Sparse columns reduce the space requirements for NULL values at the cost of greater CPU overhead to retrieve not NULL values. Sparse columns and filtered indexes enable applications, such as Windows SharePoint Services, to efficiently store and access a large number of user-defined properties by using SQL Server 2008.
The white paper describes when sparse columns and filtered indexes should be used, and when they should not, and how strategic use of these capabilities can significantly improve performance and reduce file size when space is at a premium.
Posted by Joel Lindstrom on February 02, 2009 at 11:02 PM in Microsoft CRM Implementation | Permalink | Comments (0) | TrackBack (0)
Considerations when deleting active workflow rules
There are several things that you should be aware of before you attempt to delete workflow rules in Microsoft Dynamics CRM 4.0
1. You cannot delete published workflows--you have to unpublish the workflow first. To do this, select the workflow in CRM Settings and click the "unpublish" button.
2. You cannot unpublish workflow rules that you do not own. You will first need to assign the workflow to yourself. Select the workflow and click the assign button.
If you don't have assign rights for workflow, you will need to have someone with assign permission assign the workflow to you. You can then unpublish and delete it.
Posted by Joel Lindstrom on February 02, 2009 at 06:30 AM in Microsoft CRM Customizations | Permalink | Comments (0) | TrackBack (0)
February 01, 2009
Microsoft Dynamics CRM Forums--New and Improved
If you go over to the Microsoft Dynamics CRM forums on MSDN, you will notice that it looks different. Over the past few days they have migrated the forums to a new platform. The new forums have many improvements to the user experience that make it easier to search, organize and follow the forums and threads that interest you.
Some of the improvements that I noticed:
- It is much easier to filter the posts--there are a large number of threads every day, it can be overwhelming to make sense of them all. For example, if you just want to see the posts with no replies, you can just click the "No Replies" button.
- You can now mark posts as read when you read them, so you don't have to weed through the posts that you have already read.
- You can view the posts in a list, or switch to thread view, and see the posts and replies in a thread heirarchy
- All forums and threads are RSS enabled now, so if you find a thread especially interesting, you can subscribe to it in your RSS reader and follow it without having to log in to the forum.
- The rich text editor is much improved, and posts look the way you want them to. Also, you can preview your post, to make sure it looks the way that you want it to before posting.
- The new interface supports tagging of threads, making it easier for people to find relevant posts.
This is just my initial impression. I encourage every CRM user to check out the CRM forums.
Posted by Joel Lindstrom on February 01, 2009 at 03:08 PM in Web/Tech | Permalink | Comments (3) | TrackBack (0)




Recent Comments