When building extensions to the product it is quite common to reuse the existing screens and lists in the ASP pages that you add. I was recently asked about some "strangeness" by someone who had added a new page in a self service application that reused the personboxshort to allow the self service visitor to maintain their own details.
The default personboxshort screen contains the person's business email and phone number. The alleged "strangeness" was that when this block was used to edit the phone and email details every thing seemed to save correctly. But when the record was examined in CRM then phone number and email had been changed in the persons topcontent area but not actually in the details within the phone/email tab.
The strangeness arises from the fact that the email address and phone number in the PersonBoxShort come only from the person table. In the main application the PersonBoxShort is not actually used for editing and the email and phone fields are in fact denormalised data carried across from the email and phone tables. This denormalisation is automatic and occurs when the person phone numbers/emails are inserted or updated. CRM copies the email address of type 'Business' into the person record email address to make merges easier.
Translations control the type of email and phone numbers that are associated with a person. For example the existing phone number types are held in the custom_captions tables as:
Family Type |
Caption Family |
Caption Code |
US |
UK |
Caption Order |
Links |
Link_CompPhon |
Business |
Business: |
Business: |
1 |
Links |
Link_CompPhon |
Fax |
Fax: |
Fax: |
2 |
Links |
Link_CompPhon |
Modem |
Modem: |
Modem: |
4 |
Links |
Link_CompPhon |
Toll_Free |
Toll Free: |
Toll Free: |
|
Links |
Link_PersPhon |
BusinessX |
Business |
Business |
1 |
Links |
Link_PersPhon |
Fax |
Fax |
Fax |
3 |
Links |
Link_PersPhon |
Home |
Home |
Home |
4 |
Links |
Link_PersPhon |
Mobile |
Mobile |
Mobile |
5 |
Links |
Link_PersPhon |
Pager |
Pager |
Pager |
7 |
Do not remove the "Business" or “Fax” telephone types.
The phone numbers are held in the Phone table. But the company "Business" telephone number is copied to the Company table and the person "Business" number is copied to the Person table. This denormalising of the data is useful in allowing convenient access to this data in parts of the system.
Email addresses are handled in a similar way.