value cannot be null. parameter name value error in CRM 2011

I was getting the above error while trying to create a SharePointDocumentLocation programmatically. However I was able to create an incident record without any issue.

As it turned out, this is what I was missing

OrganizationServiceProxy orgService = new

OrganizationServiceProxy(organizationUri, homeRealmUri, credentials, null);


Hope it helps!

Charts in CRM 2011

Only a few days back I realized that it is so easy to convert our 2-d charts to 3-d in CRM 2011.

Steps are as following:-

Open the chart we want to convert to 3-d.

Suppose this is our chart

Select the Export Chart button from the Ribbon

In the exported xml for the chart add the following line (Area3DStyle), before the closing tag of ChartArea.


<Area3DStyle Enable3D=”True” />



Using Import Chart option import it back, this is how now it is gonna look like

One more thing we  can also add filter criteria to the fetch used in Chart’s xml.

Do check out these wonderful posts

Hope it helps.

Send mail to a custom entity in CRM 2011

In CRM 4, to send a mail to a custom entity we used to create a new email attribute for that entity and then had to write a custom workflow activity or plugin for sending mail or some complex logic.

Good news is that in CRM 2011 we have a new feature to Send e-mail for custom entities.

Just need to enable that option in Entity Customization form. It will create a new email field for that entity or will use an existing email field if it is already there.


Fxied – Reporting error. Report cannot be displayed. (rsProcessingAborted)

I was getting the above error while running one of the custom SSRS report inside CRM 2011.

To resolve this issue I had to follow these steps

  1. Start SQL Server Management Studio
  2. Expand Security, then expand Logins
  3. Select and right click the account under which the SQL Server Reporting Services is running.
  4. Select User Mapping and select YouOrg_MSCRM database and specify following role membership
  • CRMReaderRole,
  • db_owner
  • public.

Hope it helps.


Data Audit in CRM 2011 (while updating record programmatically)

Suppose we have enabled (out of the box) data audit feature for a particular entity and then we are updating its record programmatically in the following manner (the way we usually do)

myEntityRecord.new_addressname = txtAddressName.Text;

myEntityRecord.new_street2 = txtStreet2.Text;

myEntityRecord.new_city = txtCity.Text;

myEntityRecord.new_state = txtState.Text;

myEntityRecord.new_zip = txtZipCode.Text;


Now what happens over here is that all of these fields will appear as “changed field” in Audit History even if we haven’t changed its value.

Here in the above screen shot we can see the same value for fields in old value and new value column. This is something we should be aware of while updating records programmatically in CRM.


Set Organizer for appointment or working with ActivityParty in CRM 2011

Just posting a sample code for creating appointment record in CRM 2011.

Uri organizationUri = new Uri(<a href="http://CRM2011/orgName/XRMServices/2011/Organization.svc">http://CRM2011/orgName/XRMServices/2011/Organization.svc</a>);
Uri homeRealmUri = null;
ClientCredentials credentials = new ClientCredentials();
credentials.Windows.ClientCredential = new System.Net.NetworkCredential("administrator", "password", "contoso");

OrganizationServiceProxy orgProxy = new OrganizationServiceProxy(organizationUri, homeRealmUri, credentials, null);
// Get the IOrganizationService
IOrganizationService orgService = (IOrganizationService)orgProxy;

// create entity record
Entity appointment = new Entity();
appointment.LogicalName = "appointment";
appointment.Attributes["subject"] = "App at " + DateTime.Now.ToString();
appointment.Attributes["scheduledstart"] = new DateTime();
appointment.Attributes["scheduledstart"] = DateTime.Now.AddDays(1);
appointment.Attributes["scheduledend"] = new DateTime();
appointment.Attributes["scheduledend"] = DateTime.Now.AddDays(1).AddHours(2);

// create activity party record
Entity activityParty = new Entity();
activityParty.LogicalName = "activityparty";
activityParty.Attributes["partyid"]=new EntityReference("systemuser",new Guid("userGuid"));
EntityCollection colAP = new EntityCollection();

appointment.Attributes["organizer"] = new EntityCollection();
appointment.Attributes["organizer"] = colAP;

// If we use the bookrequest class it will fail
// and gives ResourceBusy error in case of scheduling conflict
// so simply create the appointment without using book request
// to make it appear in the calendar

//   BookRequest bookRequest = new BookRequest();
//   bookRequest.Target = appointment;

//  BookResponse booked = (BookResponse)orgService.Execute(bookRequest);
string appGuid = orgService.Create(appointment).ToString();
catch (Exception ex)
string exMessage = ex.Message;

Hope it helps !

%d bloggers like this: