Mapping Child Objects for a Custom Picklist
It is recommended that you do not map a child object directly in the child object. Instead, you can copy values from the parent object and then paste them into the child object. This technique provides the following advantages:
Allows Siebel CRM Desktop to copy values on the contact to the child object, such as the account or opportunity.
If the user changes the value in a contact, then Siebel CRM Desktop automatically updates the child objects.
Example Code That Maps Child Objects for a Custom Picklist
The following illustrates the example code you use to map a child object for a custom picklist.
<type id="Account.ContactAssociation" ...>
...
<field id="ContactId" ver="3">
<reader class="mapi user">
<user_field id="sblContactID" ol_field_type="1"></user_field>
<convertor class="binary_hexstring"></convertor>
</reader>
<writer class="multiwriter">
<writer class="outlook_user">
<user_field id="sblContactID" ol_field_type="1"></user_field>
<converter class="binary_hexstring"></convertor>
</writer>
<writer class="link fields>
<field from="DisplayName" to="ContactName"></field>
<field from="M/M" to="ContactM/M"></field>
<field from="First Name" to="ContactFirstName"></field>
<field from="Last Name" to="ContactLastName"></field>
<field from="Job Title" to="ContactJobTitle"></field>
<field from="work Phone #" to="ContactWorkPhone"></field>
<field from="Cellular Phone #" to="ContactCellularPhone"></field>
<field from="Email Address" to="ContactEmailAddress"></field>
<field from="Status" to="ContactStatus"></field>
<field from="Preferred Communications" to="PreferredCommunications"></field>
</writer>
</writer>
</field>
...
</type>
The example code to map a child object for a custom picklist includes the following items:
The following attribute identifies the account child object of the parent contact:
type id="Account.Contact.Association"
The following tag identifies the Contact field in the account object:
field id="ContactId"
The following attribute identifies the matching ContactId:
user_field id="sbl Contact ID"
You copy these fields from the parent contact object and then paste them into the account child object.
<writer class="link fields> <field from="DisplayName" to="ContactName"></field> <field from="M/M" to="ContactM/M"></field> <field from="First Name" to="ContactFirstName"></field> <field from="Last Name" to="ContactLastName"></field> <field from="Job Title" to="ContactJobTitle"></field> <field from="work Phone #" to="ContactWorkPhone"></field> <field from="Cellular Phone #" to="ContactCellularPhone"></field> <field from="Email Address" to="ContactEmailAddress"></field> <field from="Status" to="ContactStatus"></field>
You add the Preferred Communications field to allow you to add it to Account Contact forms. You create this field in Code That Creates a Map Between the Siebel Server and Siebel CRM Desktop.
<field from="Preferred Communications" to="PreferredCommunications"></field> </writer>