November 14, 2006

Creating new attributes -Take a moment and think again

Imagine you just discovered that you make an appointment with Mr Smith mostly on Mondays, Mrs Brown prefers Wednesdays etc.

So you decide to put a picklist in the Contact form. You create a new attribute and name it new_PreferredAppointmentDay containing all days in a week. Problem solved!

Not exactly!

Everything looks great until you want to use mail merge in Outlook to make an appointment with Mr Smith on his preferred day. What happened to my custom attributes? Where is new_PreferredAppointmentDay?

You cannot include custom attributes as Mail Merge fields.
Take a look at the attributes list in the Contact entity. You will find the attribute named preferredappointmentdaycode.

1. Take a close look at the predefined attributes in an entity

Microsoft created about 15.000 attributes right out of the box. And they are there for you to use them. They are accessible through mail merge in Outlook and they save you the time you need to create custom attributes.
Custom attributes are accessed through filtered views, so you can use them in other applications when you connect directly to the database, but not in Outlook mail merge.

You can access the list of all entities and their attributes also with metadata browser on http://crmServer/sdk/list.aspx

2. Create new attributes with care
  • When creating new attribute it is really important to enter a description of the attribute. At least put your name and date in. Do try to enter a purpose for adding the attribute.
  • The name of the attribute should be short, but descriptive. For god's sake do not name it new_att1! The name must not be too long, otherwise you'll get lost in SQL queries.

3. Limitations when modifying an attribute
  • Maximum length - You cannot increase maximum length of the nvarchar or ntext field. You can decrease it, but not increase. So think again when setting the limit of the text field length.
  • Picklist values - When you delete a value from picklist you can permanently loose your data. Microsoft CRM automatically deletes the picklist value from all records that used this value. Those records will display blank picklist.

No comments: