Thursday, November 20, 2008

Control the Form Assistant Pane in CRM 3.0

One of the tasks that our guys had to do was to check how to get the form assistance expanded when a crm Form is loading. We searched the net and found some links. but some of them didn't work.

However Dmitri's blog contained a different was and when we incorporated it we got what we were looking for.

Simple we had to put the following java script to onload event of the form.

// to make sure it loads lookup data, if you want it expanded
if (document.all.RelatedInformationPane != null)

if (document.all.RelatedInformationPane != null)

Thanks Dmitri. Following is his link.

Friday, November 14, 2008

Customizations in CRM 3.0

When you add a new field or an entity to CRM you should first do it in your development eneviornment. i'm sure that all of us are doing that corectly. but there are some certian times that we have to do them in live enviornment without doing that in the other enviornments.

Don't do this. because when you create a field or an entity CRM created a guid value for them and if you don't use the same customization then you cannot publish them in the other enviorments. If you have to the correction in live directly take a customzation of that entity and try to publish that customization in the ther enviorments. How ever when you do that if you have been doing some changes in the development eneviornmnet you will loose them. So you need to be very carefule about this.

SO try avoiding doing any direct customizations in the live envionments as long as they have something to do with create.

CRM Callouts

One thing i learn the hard way about callous is that if you trying to update the same entity in a call out you should always use the pre callouts instead of post call outs. although using post callouts seems to work nicely you will get in to errors when you go live.

If you are using to update the same entity use pre call outs.
if it's a different entity use post cal outs.

Difference btw an interface and an abstarct class

To tell the truth i new that if we implement an interface or an abstract class we have to implement all the methods in our derived class. although in an abstract class we only have to implement only the abstract methods in an interface we have to implement all the methods that it contains.

But the funny thing is i have been confused about field implementation in interfaces. I Sort of forgotten with time that we cannot implement fields in an interface with time. Recently i read a book about VS 2008 and i was going through this book regarding interfaces i found this again. I was glad about reading that chapter s most of the time when i read a book i don't read the things i think i know. Guess it's time to change that habit also.

So bottom line is interface cannot implement any methods and well as fields.
But an abstract class can.

VS 2008 - WCF

Microsoft have introduced a new way of creating web services. This is called WCF - Windows communication Foundation.

This technology is far advanced then web services as this contains more security. The fil extension that gets created when you create a project type of this is different also.

I have been looking at this and there are a lot to learn here. hoping to master at least 10% son.


I have not blogged for sometime now. was having some hectic time with some projects that we have been doing. Anyways it's always good to work under pressure. But not always..hehehehehehe.

Hoping to start blogging again. Have been researching on VS. 2008. will post some new things i find ASAP.

Wednesday, June 11, 2008

Migrating Data To CRM 3.0

It is possible to migrate data from and existing system to CRM database using SQL statements.

Although microsoft recommends us not to use direct SQL statements, this method is easy as we don't have write code to migrate data. But we need to be very careful when we are doing this as we need to populate the references before migrating data.

I don't know whether CRM 4.0 provide a method to insert data to custom entities. CRM 3.0 doesn't provide us this. That is the reason why we have to choose an alternative.

Truncating CRM tables

Is it possible to truncate CRM table data?

The answer is for some it's Yes. you can truncate the extensionbase tables in the CRM cause mostly they contain data and foreign keys. We can truncate these tables.

But we cannot truncate the base tables as they contain the references to other tables. You need to use the delete command to delete data in these tables.

Site map XML

Do you guys now where CRM stores the site map?

Recently I had to check orgnaizationbase entity in the CRM for some reason and i found that it contains a field named Sitemap in the table. When checked the data in this field i found that the current site map is being stored there.

So if anyone wants to check the site map you should check the organizationbase table in the CRM database.

String map entity

This table in the CRM is holding valuable information regarding all the pick lists that we add to CRM. it contains the attributename and the entity object type code with the values that we specify to the attributes.

But probably we don't think that doing a change that is not accurate here would cause the CRM to give the unauthorized access error. Well, it does. Recently we did some data insertions to a CRM server with wrong object type codes and it caused the system to give errors. What we didn't realise is that it caused the system failure. When we deleted those records from the string map entity(Luckily we knew the data we have inserted) CRM started working fine.This was a very good lesson for us and would be for you all out there.

Wednesday, February 6, 2008


It’s a new year. I haven’t been bloging for some time. There are some things that I want to publish here, but couldn’t do it as there was not much time for me. Hoping to publish more information regarding CRM 3.0 and CRM 4.0 in the future.

Hope that this New Year brings happiness and joy to all of you out there.

Retrieving Calendar of a Bookable Resource in Dynamics

There are occasions where we need to retrieve working days and working times of a resource in Dynamics grammatically. This is quite possible...