Microsoft Dynamics CRM 4.0 SDK Updated (4.0.10)

New Additions:

• Using the Paging Cookie – Fetch and QueryExpression sample code to show you how to implement paging.
• Using Pre-generated XmlSerializers – use these supplemental assemblies to increase performance.
• Visualizations (Charts) – These exciting new charts are available for Microsoft Dynamics CRM Online only.
• Walkthrough: Creating and Registering a Custom Workflow Activity – if you are new to custom workflow activities, this walkthrough will get you started.
• Authentication with CRM Online – these samples have been updated to get the organization-specific CrmService Web service URL from the discovery service.
• Using Filters in a Report – new information about enabling data pre-filtering on reports.
• Stylesheet samples – added HTML, CSS, and image files that provide a starting point for creating Web pages that look similar to Microsoft Dynamics CRM.
• Import/Export (Customization File) Schema – updated the customization schemas to be used with the latest releases.
• PluginRegistration tool – includes the latest version of this tool used for plug-ins and custom workflow activities.
• Choosing Between the WSDL and Assemblies – read this new topic to help you choose the best method for your project

Click here to download

Microsoft CRM 4.0 Update Rollup 7 Released

The Microsoft CRM Team  released  the Microsoft Dynamics CRM 4.0 Update Rollup 7 on Thursday, October 22, 2009

To download click here

More Information available here

What’s New in SharePoint 2010

In previous versions; by out of the box, alerts are sent only through e-mails, but in SP2010 we can able to send an alert to mobile devices as SMS Message. For that, we have a new property under SPAlert, that indicates whether the alert is delivered as E-mail or as an SMS Message.

By default, alerts can be sent only through e-mail. But we can change that default setting by coding option using the new DeliveryChannels Property of SPAlert class. This DeliveryChannels property specifies the delivery method of the alert.

The following snippet used to set the SMS delivery method to the Alert.

oAlert.DeliveryChannels = SPAlertDeliveryChannels.Sms;

SPAlertDeliveryChannels is the enumerated member, which specifies the method of delivering alerts.

Member Name



Delivery as E-mail

Delivery as SMS Message

The following example code used to update the SMS delivery method to all the alerts for every user available in the Current website.

SPWeb oWebsite = SPContext.Current.Web;
SPUserCollection collUsers = oWebsite.Users;
    foreach (SPUser oUser in collUsers)
        SPAlertCollection collAlerts = oUser.Alerts;
         foreach (SPAlert oAlert in collAlerts)
             oAlert.DeliveryChannels = SPAlertDeliveryChannels.Sms;

That’s all for now!! I’ll be back with the post on a new feature in SharePoint 2010.

Creating a SharePoint Sub Site from Custom Template Through Code

This blog explains the steps involving creating a Sharepoint subsite from a custom template by calling Sharepoint web service from .Net code.

Sharepoint Meeting Webservice has a method named CreateWorkspace that allows the creation of subsite on the specified Sharepoint server. The URL for meeting web service is http:///_vti_bin/Meetings.asmx where can even be a subsite location. The syntax for the Create workspace method is

CreateWorkspace(title, templateName, lcid, timeZoneInformation)
Title is the title for the new sub site that will be created.
TemplateName is the name of the template based on which the
new sub site will be created.
LCID is the locale identifier
timeZoneInformation is the time zone information for the new sub site.

All the arguments mentioned above are pretty straightforward except for the template name. For creating subsites based on the default Sharepoint templates we need to pass the template id such as “MPS#”.Whereas for creating based on custom templates we need to pass the template file name as the argument such as “Mytemplate.stp”

To have a preview of the built-in site templates click here. To find out the templates ids click.

Typical code for creating subsite custom template is shown below

Samples.SP.TimeZoneInf tz = new Samples.SP.TimeZoneInf();
SP.Meetings meetings = new SP.Meetings();
meetings.Url = “http://sitename/_vti_bin/meetings.asmx”;
meetings.Credentials = new System.Net.NetworkCredential(“user name”, “password”, “domain”);
meetings.CreateWorkspace(“Site title”, “Mytemplate.stp”, 1033,tz);


Microsoft CRM 5.0… on your way

CRM5 is currently on the way and most likely to be shipped sometime in early 2010.
(CodeName :  Microsoft Dynamics CRM “V.Next”)
So what can we expect…… read below for the answers

New Features for Users

Enhanced Navigation

CRM5 uses the same “Fluent UI” (aka the Ribbon) as Office 2007. This new “command bar” replaces the CRM 4.0 “toolbars” at the top of each page, and is context sensitive. In addition, the “command bar” is fully customizable and you can add your own buttons much like you can with ISV.Config
file today.

No more Tabs

The form model in CRM 4.0 made use of tabs to divide a form into multiple pages. In CRM5 tabs are displayed in the same way as a section, with each form just having a single, scrolling page.

Grid Filtering

Apart from sorting, CRM5 now allows filtering on any available column in the Grid, much like Excel Possibly there would be an option to save the filtered view as well.

In-line Visualizations

CRM5 allows you to visualize numeric data using in-line charts within the form itself. This is not SQL Server Reporting Services but looks very much like the .NET charting solution from Dundas. One can select a number of different chart formats such as Bar, Column, Funnel, Line, Pie & Scatter.

Team Ownership

CRM5 now also supports Team Ownership apart from the already existing ones (User owned and Organization owned). A well-needed feature indeed.

Sharepoint Integration

Integration with Windows Sharepoint Service now comes Out of the Box. This includes document management, which includes site and document library provisioning, document metadata, item security, and check-in/check-out capabilities.


CRM5 now seems to support the “Add to Queue” command, from which we believe the one should be able to add any entity (including custom entities) to a Queue.

New Features for Administrators

Form  Layout

More flexibility has been added to Form Design, wherein Administrators can now position sections side-by-side, field label can be positioned on the
top, left, right for any control. But the one below takes the icing on the cake. Inline Child Grids are now supported OOB for related child entities. You now don’t need custom coding to make this work.

Filtered Lookup

Finally one of the most desired feature since the 1.2 release, has made its presence available in CRM5. A lookup can now be customized to display data from any pre-defined view or filter by related lookup on the same form.

Form Headers & Footers

Since all fields, sections, tabs now come on a single page,  a form could become quite long, and scrolling to find the required fields could be a headache. CRM5 now supports placing the commonly required fields on the header or footer, so that they will always be displayed regardless of the

Solution Management

With CRM 4.0, you had to implement a manual process when customizing your solution, to make sure that you didn’t overwrite previous customizations, or disrupt any 3rd party ISV solutions. In CRM5 we had now added the concept of solutions.

A solution is a defined set of entity customizations, workflows, e-mail templates, security roles, plug-ins etc. that can be managed as a single unit. Each solution is version controlled so presumably, you can have multiple versions of the same solution installed, and roll-back to the previous version if necessary.

You can also define solution dependencies where one solution can only be installed if another solution is also installed. For example, you might have a base solution for your whole organization, with a departmental specific solution built on top of it.

Namespace collision is avoided by defining publishers, with each publisher having a unique namespace. This avoids the common issue where the default
namespace “new_” is used for all customizations, leading to potential namespace conflicts.

One final plus point is that you can now specify which attributes will be exported as part of a solution, rather than having no choice but to export the whole entity.

Global Picklists
With CRM5, you now have the option of defining a Global Picklist which can be used across multiple forms.

Drag & Drop Form Editor
One of the most time-consuming customization tasks in CRM 4.0 is the form design. Every time you want to add, remove or re-position tabs, sections, and attributes, you have to go through a multi-click process. With CRM5, you can now drag and drop all elements of a form, speeding up the process considerably.

Audit functionality on attribute level, it seems now comes OOB. An Auditing field now appears within the Attribute setting, which can be set to True or False.

New Features for Developers

Custom Code Sandbox
There is a new server role for running custom plug-in code and custom workflow activities without requiring full trust. This means that it will be possible to run custom code in the CRM Online environment and achieve true parity between On-Premise, Partner-Hosted, and Microsoft-hosted deployments.

Plug-In Transaction Support
In CRM 4.0 you could register a plug-in to run either before (pre-event) or after (post-event) the CRM platform operation. However, you were not able to run as part of the transaction itself, so you had to write your own compensation logic in the event the CRM platform operation failed. CRM5 addresses this limitation and you can now choose to register your plug-in as part of the platform operation. The CRM5 plug-in registration tool has been modified to support this.

Automatic Plug-In Profiling
CRM5 will keep track of how a plug-in is executing, what resources it consumes if it is causing unexpected exceptions and whether or not it is violating security constraints. If a particular plug-in fails a number of times it is automatically disabled from executing, helping to maintain system integrity.

Courtesy :

Removing Link from People Name in SharePoint List

Sharepoint lists can have a special type of column that refers to a person or group. When viewing the list data the person column will display the person name and picture with a  link to the page that displays the user details(userdisp.aspx). Sometimes it would be desirable to prevent users from viewing the user details.  This can be done by using a few lines of Jquery script. Following steps explains the steps involved

1. Navigate to the Sharepoint page that displays the list with the people link

2. The people column will be displayed like the one shown below

3.  Add a content editor webpart to the page

4. Modify the content editor webpart and go to the source editor and add the below script

5. Now the people column will be displayed like the one shown below

Quick Create Activity – Microsoft Dynamics CRM 4.0 AddOn

Activities are an integral part of Microsoft Dynamics CRM.
For example, if you have an account that required a followup call on a particular date, you would open the account record and create a new Activity of type Phone Call.
Activity can consist of the following:
  • Task
  • Fax
  • Phone Call
  • E-mail
  • Letter
  • Appointment
  • Service Activity
  • Campaign Response
Additionally, with Activities, you have the option to run manual Workflow via Run Workflow. With Microsoft Dynamics CRM 4.0 you now have the option of converting an activity to either an Opportunity, Lead or Case.
Note: With Activities, you are only limited to the various types provided by Microsoft Dynamics CRM. Microsoft Dynamics CRM 4.0 does not provide the ability to create custom Activities.
Working with Activities can sometimes be painful and time-consuming since it’s a 4 click process to actually create an Activity for a particular entity.
This involves :
1. Open the particular entity record
2. Click the ‘Activities’ link on the navigation menu
3. Click the ‘New Activity’ button on the Grid menu
4. Select the type of Activity from the popup menu.
IOTAP has developed an Add-On which could simplify this process, thereby enabling you to create an Activity for any particular record, by just a single click, via the shortcut buttons available on the grid.
The above action also takes into account the OOB Mappings and prepopulates the required fields on the Activity Screen.
Refer the below toolbar screenshot for the ‘Contact’ Entity.


The Above Add-On can be customized to work with any Entity (custom Entities as well) which involves only a minor change to the ISV.config file, which usually takes less than 5 minutes.

For more info on the above AddOn kindly contact  [email protected]

Business Trends in CRM Software and Services

Companies spent US$ 9.15 billion on CRM software and services in 2008, a 12.5 percent increase from 2007, Gartner in July. An even more favorable estimate of the global CRM market came from Forrester, which pegged it at $ 11.7 billion in 2008. While the CRM software and services growth rate may cool off during 2009, experts foresee the market expanding by more than 5 percent annually for the next few years.
In our engagements, we have noticed some very interesting trends in the CRM Software and services space. We help in designing and deploying add-ons as well as integrating CRM packages with many other important applications for large organizations. Some of the trends affecting the adoption and evaluation of CRM software and services.
1. Customers today need to be educated about the benefits of using CRM and how it will optimize operations that lead to a competitive market differentiation. CRM packages hold the discipline that leads to and opens the doors for repeatable business success.
2. Customization on baseline features covering the billing, lead generation, customer service and order processing which provide the buyers of this technology a holistic view of their customers is increasing as organizations start to realize the potential in using CRM software to increase business profitability.
3. Matured users of the CRM Software and services are now integrating CRM software with other large applications thus increasing business responsiveness and injecting business intelligence that empowers employee teams to deliver high-quality services.
4. A drive by the CRM buyers to include and integrate technological changes like social networking and use of mobile devices when it comes to serving and measuring organizational brand sentiment in the market.
5. Quality and customization rather than price has started driving organizations in the evaluation and implementation stages of CRM Software and Services.
6. With the plethora of hosted CRM Software and service providers flooding the market, the decision making involves a lot of consulting in helping identify and implement appropriate CRM software as well as services model.
“Despite the financial market volatility the worldwide CRM market enjoyed its fifth consecutive year of double-digit growth in 2008 as businesses continued to invest in solutions across all subsegments,” says Sharon Mertz, a Research Director at Gartner. We feel that the growth in the CRM Software and Services shall be driven by feature enhancements and the ability of the top management in client organizations to drive adoption of CRM software.

Highlighting Overrun Tasks In SharePoint Gantt Chart

Though the Gantt Chart that comes out of the box with Sharepoint is useful and easy to setup it has many limitations. One of the features that Sharepoint users were longing for is applying the color code to different tasks. last week Christophe of Path to Sharepoint came up with an interesting way of applying color code using custom images and Jquery script.

The technique used by Christophe can be used to apply different colors to tasks based on their priority.  I have applied the same color changing technique and devised a method for highlighting tasks that have overrun their due date.

Sharepoint adds two custom properties originalTaskFinishDate and originalTaskStartDate to each of the rows in Gantt chart. With this date values, we can determine if a task has overrun its due date. We can then highlight the overrun tasks by changing the image from blue to red using Jquery.


Below is the Jquery code that highlights the overrun tasks

<script src=””type=”text/javascript”></script>
var currentdate = new Date();
//Get the task due date
var d = new Date(this.attributes(“originalTaskFinishDate”).value);
//if due date has value
if(d.getYear() !=1)
var datediff = Math.round((currentdate – d) / (24 * 60 * 60 * 1000));
//if due date is greater than current date
if (datediff > 0 ){
var source=this.innerHTML;
//check if the task is completed
var match = /(Normal.gif)|(MileStone.gif)/.test(source)
var source1=this.src;
//replace blue with red
source1 = source1.replace(/.gif/, “Red.gif”);
//change the path of image to where the red images are stored
source1 = source1.replace(/\/_layouts\/images/,”/Projects/GImages”);

In order to add this highlighting to Gantt charts in your Sharepoint pages, you need to do the following steps



  1. Change the path of the images(/projects/GImages in a script) to the path where you have placed the red images. The images can be downloaded from here.

Adding Document Icons in SharePoint Dataview

When viewing documents list from a document library in Sharepoint the default view page the list displays a document icon which gives a visual cue to the user about the type of document. This feature is not available when using a dataview control within a Sharepoint page. By default, the dataview gives only the file path and file name as shown below.

We can display the document icon name by including the special document icon column to the dataview XSLT as below

            <xsl:value-of select=”@DocIcon”>

This will just add the document icon name as shown below

The document icons are stored in the _layouts/images folder. We need to use the special ddwrt:MapToIcon function and the DocIcon column to map the exact icon path. The syntax for ddwrt:MapToIcon function is

MapToIcon(string szProgID, string szExt)

So to  display an image that shows to the document icon  we need use the below HTML

<a href={@DocIcon}” src=”/_layouts/images/{ddwrt:MapToIcon(string(@HTML_x005F_x0020_File_x005F_x0020_Type),string(@DocIcon))}” _fcksavedurl=”/_layouts/images/{ddwrt:MapToIcon(string(@HTML_x005F_x0020_File_x005F_x0020_Type),string(@DocIcon))}” />