Sunday, July 11, 2010

Sorting Dynamics CRM Left Navigation

In CRM 4, when you enable a custom entity to be displayed in a navigation area, they are displayed in the order they were added. We had a requirement to sort the entities so that they can be found easily. The way to achieve this is to edit the SiteMap.xml and re-upload back into the site. This can be very tedious if you have a considerable amount of custom entities.

I wrote an XSLT file which automates the sorting process. Hey, if you gotta do something more than two times, might as well automate it.

A few things to note when using this approach:
  • The sort can only be performed against the internal names of the entities as the SiteMap.xml does not contain the display names.
  • As new entities are added to areas, this script will have to be re-run.
  • This solution does not sort the left navigation within the Forms.


Please let me know your thoughts in the comments.

Sources

Configure the Site Map to Customize Application Navigation in Microsoft Dynamics CRM 4.0
http://msdn.microsoft.com/en-us/library/dd393294.aspx

SiteMap XML Reference
http://msdn.microsoft.com/en-us/library/cc150883.aspx

Friday, July 09, 2010

Clear SQL Server Cache and Stored Procedure Cache

To clear SQL Server’s cache, run DBCC DROPCLEANBUFFERS, which clears all data from the cache. Then run DBCC FREEPROCCACHE, which clears the stored procedure cache.

I never seem to have this info handy when I actually need to use it. Posting here for easy reference.

Source:
http://www.devx.com/tips/Tip/14401

Monday, June 14, 2010

Visually Differentiate Your CRM Environments

Found this nice tip a few weeks back, been using it ever since. I think its a great idea and one that can be adopted to other framework solutions as well.

http://feedproxy.google.com/~r/typepad/sonoma/~3/z7jsCUcqn_0/visually-differentiate-your-crm-environments.html

Virtual Box Inverted Mouse Scroll

I've experienced this annoying bug in virtual box a few times now. VB randomly (?) decides to invert your mouse scroll direction. Its not really a big deal, just that it zaps your concentration. Hitting the LCtrl, LShift, LAlt, Win, RCtrl, RShift, RAlt in an random order seems to fix it. That seems to be the best solution out there at the moment.

Source:
http://forums.virtualbox.org/viewtopic.php?f=6&t=29957

Sunday, June 06, 2010

Update Rollup 11 Released

http://blogs.msdn.com/b/crm/archive/2010/06/04/update-rollup-11-for-microsoft-dynamics-crm-4-0.aspx
Update Rollup 11 is cumulative. However, the Update Rollup 11 CRM Client and Data Migration Client packages require Update Rollup 7 to be installed. For all other CRM components you do not need to install any previous Update Rollups prior to Update Rollup 11

Get it here:
http://support.microsoft.com/kb/981328

Monday, May 24, 2010

Wednesday, May 12, 2010

CRM 4.0 Customizations Comparison Tool

The Customization Comparison Tool


"...tools that help you analyze the impact of customizations on the system and maintain consistent configuration data across multiple Microsoft Dynamics CRM systems."


The Data Migration Tool


...lets you export custom configuration data from a source Microsoft Dynamics CRM system and import it to a target Microsoft Dynamics CRM system.


http://blogs.msdn.com/crm/archive/2010/01/14/isv-utilities-for-comparing-customizations-and-transferring-configuration-data.aspx

Another tool to go into my tool belt.

Wednesday, May 05, 2010

Best Practices on Building Sharepoint 2010 Web Parts

http://channel9.msdn.com/posts/funkyonex/Best-Practices-on-Building-SharePoint-2010-Web-Parts-with-Visual-Studio-2010/
....

Death Metal Rooster!

Oh man!

http://www.thechickentest.com/2010/05/how-could-i-not-repost-this-death-metal-rooster/

CRM 4.0 Plug-in Filtering Attributes Limitation

I ran across this error while setting up the Filtering Attributes for a custom plug-in today :
Error Code: 0x80044331
A validation error occurred. The length of the 'filteringattributes' attribute of the 'sdkmessageprocessingstep' entity exceeded the maximum allowed length of '100'.
The the Filtering Attributes property basically tells the plug-in which specific field changes it should respond to.

Investigating the issue it looks like its a limitation in the CRM web service. The web service limits the length of the field to 100 characters. Its strange that its not even the number of attributes that is the limitation but rather the concatenated length all the attribute names!

Interestingly enough the creation of Image Attributes support a total of 4615 characters: http://technet.microsoft.com/en-us/library/dd904023.aspx

Hopefully with CRM 5.0 around the corner this will all be addressed.

Sunday, May 02, 2010

CRM 4.0 Plug-in Development Best Practices

I found this excellent post on best practices for CRM Plug-In development. Its a must read for anyone considering plug-in development.

http://blogs.inetium.com/blogs/azimmer/archive/2010/01/25/plugin-best-practices-in-crm-4-0.aspx

Monday, April 19, 2010

CRM 4.0 Customized Webservice For A Specific Organization

I recently been working on customizing CRM plug-in deployment tool to add some additional functionality. The source for the tool is available with the CRM 4.0 SDK.

To successfully build the source we need to add a web reference back to the CRM web service. The problem I ran into was that the default url (http://<server:port>/mscrmservices/2007/CrmServiceWsdl.aspx) returns a wsdl scheme with all its customizations. If you just need a clean proxy like I did then you need to create a new organization and then provide its name in the uniquename query string variable:

http://<server:port>/MSCrmServices/2007/CrmServiceWsdl.aspx?uniquename=OrganizationName

Thursday, February 18, 2010

List of SharePoint 2010 OOB Features

Here's a (exhaustive?) list of all the OOB Features and their respective guids available in SharePoint 2010. Found via this post.

http://blogs.msdn.com/mcsnoiwb/archive/2010/01/07/features-and-their-guid-s-in-sp2010.aspx


This list might come in handy in the future.

Sunday, January 31, 2010

SharePoint 2010 Beta 2 SQL Server Version

I ran into some trouble getting SQL Server installed on the same box as SharePoint. It think it may have something to do with the order of installing applications. As a general rule of thumb make sure that you install from the oldest to the newest apps. This is especially true when working with beta software.

Running the configuration wizard I discover that  SharePoint 2010 requires the latest SQL Server updates be installed.

SharePoint2010_Wizard_SQL

SQL Server 2005:

SQL Server 2008:

Posting it here hoping it will save someone else some trouble.

Friday, January 29, 2010

SharePoint Workflow Versioning

Upgrading Workflows in an existing SharePoint site can be very tricky. Just copying in a new version is not the best practice. Depending on what changes were done to the new version of the assembly SharePoint may end up having trouble re-hydrating (deserializing) the currently in-progress workflows.

Here are some excellent articles I found recently on how to properly implement versioning, its potential pitfalls and how to overcome them:

Another alternative approach which I think is also a good solution:

Adding a new item to a SharePoint List

Using SPList.Items.Add() is not the best way to add a new item to a list. This is because the moment you access the get method on the Items collection it retrieves all the items into memory.

A quick peek at the Microsoft.SharePoint.dll assembly via reflector confirmed it:

sharepoint.SPList 

You may not notice a difference in performance in the dev environment, but once your list starts to grow it will gradually degrade.

I recently learned this the hard way. This is the best way to add a new Item:

SPList list = _Web.Lists[LIST];                    SPQuery query = new SPQuery();
query.RowLimit = 0;
SPListItem item = list.GetItems(query).Add();
item[TITLE] = “testing”;
item.Update();

On an unrelated note, executing a query with a RowLimit generates an underlying SQL query such as  SELECT TOP X ..... where X is the RowLimit value.

I wonder if the behavior is still the same in SharePoint 2010. Hmmm...

References:

More best practices on SharePoint:

Saturday, August 08, 2009

Windows 7 Upgrade Scenarios

Microsoft has published the various upgrade paths for Windows 7. Its not as complicated as I expected, but still complicated for the average user. A visual representation here.

BY the way can someone explain to me the difference between “Upgrade to Windows 7” and  “Anytime Upgrade to Windows 7”?