Siebel CRM Desktop for Microsoft Outlook Administration Guide > Customizing Siebel CRM Desktop > Process of Adding Custom Objects >

Creating the Custom Object


This task is a step in Process of Adding Custom Objects.

In this topic, to add a new object to Microsoft Outlook, you describe the structure of the object and then create mappings between fields, lists, and so on. You make these customizations in the siebel_basic_mapping.xml file.

To create the custom object

  1. Use an XML editor to open the siebel_basic_mapping.xml file.

    For more information, see Files That the Customization Package Contains.

  2. Specify the name of the custom object. You add the following code to the siebel_basic_mapping.xml file:

    <type id="Action" display_name="#obj_activity_plural" folder_type="10">
      <form message_class="IPM.Contact.SBL.Activity" icon="type_image:Event:16"     large_icon="type_image:Event:32" display_name="Activity">SBL Activity</form>
    </type>

    This example code defines SBL Activity as the form to display for this object. You specify the form layout later.Note the following:

    • You add the type tag to describe the new object.
    • To specify the folder name for the object in Outlook, you can use the display_name attribute of the type tag.

      To specify the native Outlook object that is the base for the custom object folder type, you can use the folder_type attribute.

  3. Create a set of fields for the custom object.

    For more information, see Creating a Set of Fields for the Custom Object.

  4. Specify intersection objects for many-to-many relationships.

    For more information, see Specifying the Many-To-Many Relationships.

  5. Specify the lists.

    For more information, see Specifying the List.

Creating a Set of Fields for the Custom Object

This topic describes how to create a set of fields for the custom object.

The siebel_basic_mapping.xml file describes each of the fields for the custom object. Siebel CRM Desktop maps each field to a custom field, except for the following fields:

  • CRM Desktop maps the Description field to the Last Name field. This field is a native field in Outlook.
  • CRM Desktop maps the Comment field to the Body field because it does not support the textarea field. Therefore, it uses the native Outlook control that displays the value for the Body field.

For more information, see "Adding Custom Fields.

To create a set of fields for the custom object

  1. Use an XML editor to open the siebel_basic_mapping.xml file.
  2. Add the following code to the type tag:

    <type id="ChannelPartner" hidden_folder="true" folder_type="10" display_name="CHPT">
      <form message_class="IPM.Contact.SBL.Channel_Partner" display_name="Channel
        Partner" icon="type_image:User:16"></form>
        <field id="Name">
         <reader>
           <mapi_std>
            <mapi_tag id="0x3A110000"></mapi_tag>
              <convertor><string/></convertor>
            </mapi_std>
          </reader>
          <writer>
            <Outlook_std>
              <Outlook_field id="LastName"></Outlook_field>
              <convertor><string/></convertor>
            </Outlook_std>
          </writer>
          <reader>
            <mapi_std>
              <mapi_tag id="0x3A060000"></mapi_tag>
              <convertor><string/></convertor>
            </mapi_std>
          </reader>
          <writer>
            <Outlook_std>
              <Outlook_field id="FirstName"></Outlook_field>
              <convertor><string/></convertor>
            </Outlook_std>
          </writer>
          </field>
            <field id="Location">
          <reader>
            <mapi_user>
              <user_field id="sbl Location" ol_field_type="1"></user_field>
              <convertor><string/></convertor>
            </mapi_user>
          </reader>
          <writer>
            <Outlook_user>
              <user_field id="sbl Location" ol_field_type="1"></user_field>
              <convertor><string/></convertor>
            </Outlook_user>
          </writer>
        </field>
    </type>

Fields That Siebel CRM Desktop Uses for the Custom Object

Table 17 describes the fields you create for this example.

Table 17. Fields That Siebel CRM Desktop Uses for the Custom Object
Field Label
Field Name
Field Type

Description

Description

Text

Type

Type

Picklist

Priority

Priority

Picklist

Owner

Primary Owner Id

Lookup

Account

Account Id

Lookup

Opportunity

Opportunity Id

Lookup

Contacts

No field on this object

MVG

Employee

No field on this object

MVG

Planned Start

Planned

datetime

Planned Completion

Planned Completion

datetime

Due

Due

datetime

Status

Status

Picklist

Comments

Comment

Textarea

Specifying the Many-To-Many Relationships

You do not specify many-to-many relationships in Step 3. A many-to-many relationship exists between contacts and activities, and between employees and activities. You must specify more objects that contain links to activity and contact, or activity and employee. The remaining description for a many-to-many relationship is the same as for other objects where you specify the object name and object fields. This object can also include a field that indicates if this intersection record is a primary record or not a primary record.

You must specify the Microsoft Outlook folder that stores these objects. For this example, it is not desirable to display Opportunity and Channel Partner objects to the user. You use a hidden folder in Outlook that you specify in the code as the following:

predefined_folder="1"

To specify the many-to-many relationships

  1. Use an XML editor to open the siebel_basic_mapping.xml.
  2. CRM Desktop does not require a form to display these objects, so you do not define a form. Instead, you add the following code:

    <type id="Opportunity.Channel_Partner.Association" hidden_folder="true" folder_type="10" display_name="OCHP">
    <form message_class="IPM.Contact.SBL.OpportunityChannel_PartnerAssociation" display_name="OpportunityChannel_PartnerAssociation" icon="type_image:Generic:16"></form>
      <field id="OpportunityId">
        <reader>
          <mapi_user>
            <user_field id="sbl OpportunityId" ol_field_type="1"></user_field>
            <convertor><binary_hexstring/></convertor>
            </mapi_user>
        </reader>
        <writer>
          <Outlook_user>
            <user_field id="sbl OpportunityId" ol_field_type="1"></user_field>
            <convertor><binary_hexstring/></convertor>
          </Outlook_user>
        </writer>
        </field>
          <field id="ChannelPartnerId" ver="2">
        <reader>
          <mapi_user>
            <user_field id="sbl ChannelPartnerId" ol_field_type="1"></user_field>
          <convertor><binary_hexstring/></convertor>
          </mapi_user>
        </reader>
        <writer>
          <multiwriter>
            <Outlook_user>
              <user_field id="sbl ChannelPartnerId" ol_field_type="1"></user_field>
          <convertor><binary_hexstring/></convertor>
            </Outlook_user>
              <link_fields>
                <field from="Name" to="PartnerName"></field>
                <field from="Location" to="PartnerLocation"></field>
              </link_fields>
          </multiwriter>
        </writer>
        </field>
          <field id="PartnerName">
        <reader>
          <mapi_user>
            <user_field id="sbl PartnerName" ol_field_type="1"></user_field>
            <convertor><string/></convertor>
          </mapi_user>
        </reader>
        <writer>
          <Outlook_user>
            <user_field id="sbl PartnerName" ol_field_type="1"></user_field>
            <convertor><string/></convertor>
          </Outlook_user>
        </writer>
        </field>
          <field id="PartnerLocation">
        <reader>
          <mapi_user>
            <user_field id="sbl PartnerLocation" ol_field_type="1"></user_field>
            <convertor><string/></convertor>
          </mapi_user>
        </reader>
        <writer>
          <Outlook_user>
            <user_field id="sbl PartnerLocation" ol_field_type="1"></user_field>
            <convertor><string/></convertor>
          </Outlook_user>
        </writer>
      </field>
    </type>

Specifying the List

The custom object stores items that the user chooses in a list. You describe the list field in the same way as you describe a string field. You must describe the object that stores all list values. Each list uses a separate object to store the values for the list. You must build the IDs for these objects according to the following rules:

  • Object name and field
  • Name and list

You must make sure the Type list on the Activity object includes the ID of the ActionTypePicklist object. To specify a list object, you must specify the following set of standard fields:

  • Label
  • Value (string)
  • SortOrder (integer)
  • IsDefault (Boolean)

To specify the list

  1. Use an XML editor to open the siebel_basic_mapping.xml file.
  2. To create a drop-down list, you add the following code to the activity object:

    <type id="ActionTypePicklist" predefined_folder="1">
      <form message_class="IPM.Contact.SBL.ActionTypePicklist"></form>
      <field id="Label">
        <reader class="mapi_user">
          <user_field id="sbl picklistLabel" ol_field_type="1"></user_field>
          <convertor class="string"></convertor>
        </reader>
        <writer class="Microsoft Outlook_user">
          <user_field id="sbl picklistLabel" ol_field_type="1"></user_field>
          <convertor class="string"></convertor>
        </writer>
      </field>
      <field id="Value">
        <reader class="mapi_user">
          <user_field id="sbl picklistValue" ol_field_type="1"></user_field>
          <convertor class="string"></convertor>
        </reader>
        <writer class="Microsoft Outlook_user">
          <user_field id="sbl picklistValue" ol_field_type="1"></user_field>
          <convertor class="string"></convertor>
        </writer>
      </field>
      <field id="SortOrder">
        <reader class="mapi_user">
          <user_field id="sbl SortOrder" ol_field_type="3"></user_field>
          <convertor class="integer"></convertor>
        </reader>
        <writer class="Microsoft Outlook_user">
          <user_field id="sbl SortOrder" ol_field_type="3"></user_field>
          <convertor class="integer"></convertor>
        </writer>
      </field>
      <field id="IsDefault">
        <reader class="mapi_user">
          <user_field id="sbl IsDefault" ol_field_type="6"></user_field>
          <convertor class="bool"></convertor>
        </reader>
        <writer class="Microsoft Outlook_user">
          <user_field id="sbl IsDefault" ol_field_type="6"></user_field>
          <convertor class="bool"></convertor>
        </writer>  
      </field>
    </type>

Siebel CRM Desktop for Microsoft Outlook Administration Guide Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Legal Notices.