Log in

Original post by Jim Steger.

On the last day of PDC09, I had the opportunity to present a brief demo of our internal socialization application (code name “SideBar”) with Andy Bybee from the CRM Product Team during his Developing xRM Solutions using Windows Azure.

SideBar started as an internal intern project for us this summer. We wanted to explore leveraging Dynamics xRM to create a compelling Enterprise 2.0 application which provides another mechanism for communication throughout our organization, especially our remote user base.

This is achieved through a combination of user updates (similar to Twitter or Facebook) along with derived system data from our CRM application and other external sources, such as our blog and back-end analytics database.

SideBar is built against Microsoft Dynamics xRM platform (of course) and has multiple interface options, including a couple of Web interfaces, xRM forms, and a nice custom WPF application. Further, we now leverage the Azure App Fabric Service Bus to provide updates without the need for VPN access!

In addition to our SideBar demo, Andy provides some additional insight to the features of CRM 5 and how it can be combined with Azure. The session also has some awesome demos from Shan McArthur and Girish Raja. Microsoft posted the presentation and slides at http://microsoftpdc.com/Sessions/P09-07 (the SideBar demo starts at 47:30).

So take a look and see how you can quickly combine the power of the Dynamics xRM platform with Azure to provide compelling solutions for your users.

Microsoft Dynamics CRM has recently released November 2009 Service update for Microsoft Dynamics CRM online. One of the key delivered features is enhanced Import Data Wizard. When users are bringing their custom data into Microsoft Dynamics CRM with Import Data Wizard, they can also create custom record types and fields on the fly and bring in the data into newly created record type. This is a powerful feature of the new Import Data Wizard that our users are going to love.

This blog demonstrates how to create new record types and fields during import using Import Data Wizard. Create new record type/fields operation is only available to users having either System Administrator or System Customizer role.

Create Record Type/Field: When a user wants to import the data from source system to Microsoft Dynamics CRM system and if the source record type is not present in the Microsoft Dynamics CRM, user can create the required record type in two different ways:

  • Customize Microsoft Dynamics CRM system by creating new record types and fields before import and use them while importing the data.
  • Use Import Data Wizard itself while importing the data.

I will take a sample for explaining how Import Data Wizard can be used for creating new record types and fields. Let's assume you are bringing in a new record type named "Asset" which is not there in Microsoft Dynamics CRM. While mapping the source Asset record type on Map record type screen, you can choose toCreate New Record Type as shown below:


Note that the system will automatically fill needed information for you and you can change them if you desire. If you have either mapped or ignored rest of the source Record Types, you should find the Next button enabled. Click Next to proceed to the next screen.

On the Map Fields screen, select the Asset record type to see the details of fields. You should see the following screen with all fields shown as Not Mapped.


Now that we have created a new record type to accommodate the Asset record type, we will create corresponding fields in Microsoft Dynamics CRM to hold the source data. The details of creating a new field are described below.

Creating New Fields

Import Data Wizard allows users to create new fields of following data types:

1. Text

2. Picklist

3. Bit

4. Integer

5. Decimal

6. Date Time

7. Lookup

Import Data Wizard allows users to create new fields for the existing Microsoft Dynamics CRM record types as well as new record types that are created via Import Data Wizard.

Now let's create new fields for newly created Asset record type. We will go over creation experience for the following fields:

1. AccountId : This field holds the values of related Account record for a particular Asset record in the source data file. So we’ll create a Lookup type field. To do this, select Create New Field from the dropdown against AccountId . Select Type as Lookup and Related Record Type as Account as shown below.


2. Similarly we will create new field for ContactId of lookup type and choose Contact as the Related Record Type since this field refers to Contact record type.

3. For Description field we will create new field of type Text as shown below:


4. For InstallDate we will create new field of type DateTime by selecting Datetime data type from the drop down.

5. For Price Type field we will create new field of type Decimal by selecting Decimal from the drop down.

6. For Serialnumber field we will create new field of type Integer for importing the data of type whole number.

7. For Status field we will create new field of type Picklist by selecting Picklist from the drop down.


So based on the type of data you have in your source files, you can create fields of particular data types using Import Data Wizard for importing the data into Microsoft Dynamics CRM. We will now look at how we can relate the new record type

Creating a relationship with new record type

With the Import Data Wizard, you can create reference to a record type that is being created during this import instance itself. Let's say you have the Caserecord type which maps to Case record type of Microsoft Dynamics CRM and you have a field called AssetId in your source file which is looking up to newly created Asset record type. You will create a new field for AssetId field, of type Lookup which is refereeing to Asset record type as shown below.


Now let's see what happens when you complete the Import Data Wizard by clicking on Submit button.

Following steps are executed when you click Submit button:

1. Customize the Microsoft Dynamics CRM system for new record types/fields if any

2. Publish the customizations if any

3. Save the data map

4. Submit the import jobs

There are few limitations of the record type and fields that can be created with Import Data Wizard:

1. Record Types that are created by Import Data Wizard are of type Ownership="User" only. Users cannot create record types using Import Data Wizard which has Ownership type = "Organization".

2. Fields of all type supported by Microsoft Dynamics CRM can’t be created using Import Data Wizard. Few examples are float, money, Currency and Status.

3. Microsoft Dynamics CRM will not customize the new record type form and views. Users need to customize the form and views to add the new fields.

4. User cannot create lookup field of N:N relationship.

5. Primary field Guid of the newly created record types cannot be mapped during import.

So far we have learned how to create new record type and fields in Microsoft Dynamics CRM using Import Data Wizard. We will have more blogs on Import Data Wizard to help you import your data. Stay Tuned.

original post by Veera Bansal


Some customers extensively customize their CRM installation so that CRM is optimized for their unique business scenarios. When you add a lot of fields on an entity form you might notice it’s load time increases. The performance is not hampered on “out-of-the-box” Microsoft Dynamics CRM configurations. For the majority of users the default settings work fine. But for heavily customized installations, performance can become an issue.

Inside Form Controls

In CRM v4 we actively utilize DHTML behavior scripts. These, small, scripts, reside in files with HTC extension and can be attached to HTML elements using “behavior” keywords in an element’s style definition. That lets developers enhance the standard element’s behavior in various ways. A very powerful mechanism for web UI development, this mechanism can have problems in the IE implementation.

Almost every CRM form control (internally represented by some HTML element) has an HTC behavior file attached to it. In addition to its own unique behavior script, every control also has so-called “data slug” (or simply, “slug”) behavior script attached. An example of slug is shown below.


Slug in Create Account dialog

Even though slugs on dialogs are only needed in a very limited number of cases, mostly from Workflow/E-mail templates creation forms, the corresponding behavior scripts are attached to the elements every time a dialog is loaded. Unfortunately, the time IE spends to parse a page with behavior scripts attached to it, is in the direct proportion of number of attached instanced and number of JS blocks within the script. That’s how the form load time increases; the slug support script attaches to every control and it has a lot of JS blocks in it.

Now, having all this information, figuring out how to improve the performance is easy—we would remove slug support from where it was not needed.

New Form Control Performance

Depending on a number of custom fields, form load time (the time between clicking New button on an entity list and the moment when entity dialog is shown up and ready to use) could reach 10-20 seconds. The new behavior decreases this time to 4-6 seconds which is a 60-70% win. The time diagram below helps illustrate the timing here.



Besides some obvious things like only adding attributes to forms that you will actually use and verifying your custom JavaScript code for performance, you could also check to see if the antivirus running is on your client machines has poor performance. Sometime an antivirus has inefficient script scanning modules. This would significantly slow down scripts executed in IE.

Where can I get this performance enhancement?

This new behavior is already available for CRM Online users and has been released as a part of Update Rollup 5 for On Premise users.


Alex Igrushkin