7Customizing Siebel Server Sync for Microsoft Exchange Server

About Customizing SSSE

SSSE supports the following kinds of customization within each supported domain and for a specified set of database tables:

  • Modifying certain properties of fields that are already available for synchronization, such as field names

  • Modifying existing field mappings in the following ways:

    • Mapping a Microsoft Exchange field that is already synchronized with a Siebel field that you add for synchronization.

    • Mapping a Siebel field or multi-value group (MVG) that is already synchronized with a Microsoft Exchange field that you add for synchronization.

  • Adding new field mappings in the following ways:

    • Adding a new field or MVG for synchronization in a supported Siebel business component and mapping it to a previously unmapped Microsoft Exchange field (includes adding a new column in the underlying Siebel base table).

    • Adding a new field for synchronization in Microsoft Exchange and mapping it to a previously unmapped Siebel field or MVG.

  • Deleting existing field mappings.

  • Changing the delta queries that SSSE uses to find changed Siebel data that is to be synchronized for a particular user.

  • Creating custom delete triggers that direct SSSE to delete PIM records. This capability supports actions such as converting a record from one domain to another.

The customization process can involve changing some or all of the following entities:

  • Integration Objects

  • Integration Data Maps

  • Domain configurations

  • Field configurations

  • Delta Query profile

  • Delete triggers

Any administrator who customizesSSSE requires experience with working with the Siebel Repository, and a good working knowledge of Microsoft Exchange, including the internal representations of field names in Microsoft Exchange.

About Synchronizing Additional Fields

SSSE allows fields from certain database tables to be added for synchronization, but does not support fields from certain other tables. Other characteristics can also affect whetherSSSE can synchronize a field successfully. For example,SSSE does not support synchronization of calculated fields. This topic discusses supported and unsupported tables, and other characteristics of fields that affect synchronization possibilities.

A major factor in whether or not you can add a field for synchronization is whether or notSSSE will detect changes to that field.SSSE monitors a specific set of supported database tables to identify changes to be synchronized with Microsoft Exchange. If a field resides in a table thatSSSE does not monitor, thenSSSE does not detect changes in field values, so synchronization of changes in those tables is not supported.

The following information lists the tables in each Siebel Domain that can have fields added for synchronization. You can add most fields from these tables for synchronization. If a field based on a particular table is a multivalue group (MVG), thenSSSE synchronizes only the Primary value from the MVG.

Caution: When choosing fields from supported tables to add for synchronization, do not choose business component system fields or fields that have special meaning for Siebel components (and that ought to be updated only by those Siebel components), since synchronizing such fields can have unpredictable results.

The following table lists the supported tables in the Siebel Business Contact domain that allow fields to be added for synchronization.

Supported Tables Is Field Based on Table an MVG

S_ADDR_ORG

Yes

S_ADDR_PER

Yes

S_CONTACT

No

S_CONTACT_INFO

Intersection table

S_OPTY

No

S_ORG_EXT

No

S_PARTY

No

S_PROJ

No

S_USER

No

The following table lists the supported tables in the Siebel Calendar and Tasks domain that allow fields to be added for synchronization.

Supported Tables Is Field Based on Table an MVG

S_EVT_ACT

No

S_OPTY

No

S_ORG_EXT

No

S_PROJ

No

S_SRV_REQ

No

Process of Customizing SSSE

To add a field to the fields thatSSSE synchronizes, or to modify an existing field that is synchronized, perform the following tasks before starting or restarting the PIMSI Engine and PIMSI Dispatcher components:

  1. Changing Integration Objects

    Update the integration object for the Siebel domain that the new or amended field is associated with to reflect the new or amended field. Compile the Runtime Repository to incorporate the field changes.

  2. Changing SSSE Data Maps

    Change the Inbound and Outbound data maps to reflect the new or amended fields.

  3. Changing Siebel Domain Configurations

    Synchronize the Inbound Data Map with the Siebel domain to apply the new field or field modifications to the Siebel domain.

  4. Changing PIM Domain Configuration

    Add the new or amended field to the PIM domain.

  5. Changing Domain Map Configurations

    Map the Siebel domain field to the PIM domain field so that the two fields can be synchronized.

Depending on the type of customization you are making, you might have to perform one or more of the following additional tasks:

Note: All tasks in this process assume that the field already exists in the appropriate Siebel Business Component.

About SSSE Integration Objects

Each domain that SSSE synchronizes has a Siebel Integration Object and an Intermediate Integration Object. Siebel Integration Objects are used to obtain information from the Siebel database. Intermediate Integration Objects are used to send that data to the PIMSI Engine component.

You must modify Integration Objects any time you customize SSSE, whether the customization involves adding new fields or modifying existing fields. The following table shows the Integration Objects for each domain that SSSE handles.

Domain Siebel Integration Object Intermediate Integration Object

Business Contact

PIMSI Business Contact

PIMSI Intermediate EWS Business Contact

Calendar

PIMSI Calendar

PIMSI Intermediate Calendar

Task

PIMSI Task

PIMSI Intermediate Task

For information on changing integration objects, see Changing Integration Objects.

Changing Integration Objects

Any time you add or change a field forSSSE to synchronize, you must change one or more Integration objects for the Siebel domain that is involved. The following table shows the changes that are required.

Note: When you add a new field for synchronization, or modify the properties of a field that is already available for synchronization, the new or amended field is not visible in related records that have previously been synchronized. The new or amended field becomes visible in the related record only when the record is changed again, either in Microsoft Outlook or in Siebel Business Applications, because only changed records are synchronized.

This task is a step in Process of Customizing SSSE.

Field Change Integration Object Modifications Required

Add a new field for synchronization

Siebel Integration Object and Intermediate Integration Object

Modify an existing field that is synchronized

Intermediate Integration Object

The following procedure briefly describes how to change an Integration Object as part of customizing SSSE. For more information about Integration Objects, see About SSSE Integration Objects. For an example of how to perform this task for a new field that you want to synchronize, see Example of Changing Integration Objects.

Note: This procedure assumes that the new field already exists in the appropriate Siebel Business Component, but does not yet exist in the Siebel Integration Object or the Intermediate Integration Object. The procedure also assumes that the new field has not yet been synchronized.

To change an integration object

  1. Select the Integration Object that you want to change.

  2. Select the integration component for which a field is to be changed or added.

  3. Change the field properties of the integration component as required.

  4. Save the record.

  5. Recompile the Runtime Repository for the project.

Example of Changing Integration Objects

This topic gives one example of changing integration objects as part of customizing SSSE. You might use this feature differently, depending on your business requirements. In this example, you want to map the Spouse field of a Siebel business contact to the corresponding Spouse field of a Microsoft Outlook business contact soSSSE can synchronize it. To do this, you must first:

  1. Map the existing contact business component field, Spouse, to the Siebel Integration Object and the Intermediate Integration Object for the Business Contact domain.

  2. Make the Spouse field available in the user interface.

The procedure to perform these tasks is given in the following. For more information about Integration Objects, see About SSSE Integration Objects.

Note: This example assumes that the Spouse field already exists in the appropriate Siebel Business Component, but does not yet exist in the Siebel Integration Object or the Intermediate Integration Object, and it has not yet been synchronized.

To change Siebel and Intermediate Integration Objects for a new field

  1. Select the View menu, and then Options.

  2. Click the Object Explorer tab.

  3. In the Object Explorer Hierarchy list box, select the Integration Object check box, and click OK.

  4. In the Object Explorer, select Integration Object, and complete the following substeps:

    1. In the Object List Editor, select PIMSI Business Contact.

    2. From the Tools menu, select Lock Project.

    3. In the Object Explorer, expand Integration Object, then Integration Component.

    4. In the Object List Editor, select Contact.

    5. In the Object Explorer, select Integration Component Field.

    6. In the Name field, query for Spouse.

    7. In the Spouse field, scroll until the Inactive field is visible, and clear the Inactive check box.

  5. In the Object Explorer, select Integration Object, and complete the following substeps:

    1. In the Object List Editor, select PIMSI Intermediate EWS Business Contact.

    2. In the Object Explorer, select Integration Component.

    3. In the Object List Editor, select Business Contact.

    4. In the Object Explorer, select Integration Component Field.

    5. In the Object List Editor, right-click and choose New Record.

    6. Enter values for the new Spouse field as shown in the following table.

      Field Property Field Property Value Comment

      Name

      Spouse

      Internal name of the field.

      Data Type

      DTYPE_TEXT

      Data type of the field.

      Type

      Data

      Field type.

      External Name

      Spouse

      For a Siebel Integration Object, External Name must match the name of the field as it is specified in the Siebel business component. For an Intermediate Integration Object, you can choose any value for External Name.

      External Sequence

      19

      Specifies the order in which the field will appear when Data Mapper is used to map the fields.

      Enter a value that is not already present in the field list, such as the number that follows the value used for the last existing field in the sequence.

      It is recommended that you use the same value for XML Sequence and External Sequence.

      XML Sequence

      19

      Specifies the order in which the field will appear in the Output XML message.

      Enter a value that is not already present in the field list, such as the number that follows the value used for the last existing field in the sequence. It is recommended that you use the same value for XML Sequence and External Sequence.

      Caution: For Siebel Integration Objects (but not Intermediate Integration Objects), if an MVG field is not a user key, then be sure to set the XML Sequence property value and the External Sequence property value to be greater than the value of a user key MVG field. If you do not specify a greater value, then synchronization might not work properly for information that travels from Microsoft Exchange to Siebel Business Applications.

      A user key MVG field is a field that is specified in the Integration Component User Key object as a user key. If any new MVG field is added to the Integration Component, then the XML Sequence and External Sequence property value for the new field must be greater than that of the user key field.

  6. Make the Spouse field available in the user interface by completing the following substeps:

    1. In the Object Explorer, select the Applet object.

    2. Query for the Contact List Applet.

    3. From the Tools menu, choose Lock Project.

    4. In the Object Explorer, expand Applet, then List, and click on List Column.

    5. In the Object List Editor, right click and choose New Record.

    6. Enter the following information for the new Spouse record:

      Field Value

      Name

      Spouse

      Field

      Spouse

      Display Name

      Spouse

      HTML Type

      Field

    7. Right-click on the Contact List Applet record, and select Edit Web Layout.

    8. In the Controls/Columns window, select Edit List mode.

    9. In the Applet (Contact List Applet) layout window, scroll until empty Field placeholders are visible.

    10. In the Controls/Columns window, select and move the Spouse control onto an empty Field placeholder in the Applet (Contact List Applet) layout window.

    11. Close the Applet (Contact List Applet) layout window and, when prompted as to whether you want to save the changes you have made to the Contact List Applet, click Yes.

  7. Recompile the Runtime Repository for the project, then stop and restart the Siebel Server.

    Use this recompiled Runtime Repository when you make corresponding changes to Data Maps, as described in Example of Changing Data Maps.

About SSSE Data Maps

Each domain that SSSE synchronizes has an Inbound Data Map for converting Microsoft Exchange data to Siebel data, and an Outbound Data Map for converting Siebel data to Microsoft Exchange data. Data maps must be modified any time you customize SSSE, whether the customization involves adding new fields or modifying existing fields. The following table shows the names of the data maps for each domain that SSSE handles.

Domain Inbound Data Map Outbound Data Map

Business Contact

PIMSI Business Contact Inbound Map

PIMSI EWS Create Contact Outbound Map

PIMSI EWS Update Contact Outbound Map

Calendar

PIMSI Calendar Inbound Map

PIMSI Calendar Outbound Map

Task

PIMSI Task Inbound Map

PIMSI Task Outbound Map

For information on changing SSSE data maps, see Changing SSSE Data Maps.

Changing SSSE Data Maps

Data maps must be modified whenever you add a field forSSSE to synchronize and whenever you modify a synchronized field. For more information about Data Maps, see About SSSE Data Maps. For an example of how to change data maps for a new field to be synchronized, see Example of Changing Data Maps.

This task is a step in Process of Customizing SSSE.

Caution: You must change the inbound data maps for the applicable domains before you change Siebel domain configurations as described in Changing Siebel Domain Configurations. If this is not done, then Siebel administration screens for SSSE might not reflect the customization tasks you have already completed.

The following procedure briefly describes how to change a data map as part of customizing SSSE.

To change a data map for SSSE

  1. Use the Runtime Repository that contains your changes to Integration Objects.

  2. In your Siebel application, navigate to the Administration - Integration screen, then the Data Map Editor view.

  3. In the Integration Object Map list, select the Data Map you want to change.

    For information about the names of data maps for SSSE domains, see About SSSE Data Maps.

  4. In the Integration Component Map list, select the record for the component you want to change, and then scroll down.

    To determine which component to select, inspect the Source Component Name column in the Integration Component Map list for the component that you modified in the Siebel Repository. The same component must be modified in the data map.

  5. In the Integration Field Map list, create a new record, if necessary, and modify field values.

Example of Changing Data Maps

This topic gives one example of changing data maps as part of customizing SSSE. You might use this feature differently, depending on your business requirements.

Continuing with the example from Example of Changing Integration Objects, you want to map the Siebel Spouse field of a Siebel business contact to the corresponding Spouse field of a Microsoft Outlook business contact so SSSE can synchronize it. To accomplish this, you must change the PIMSI Business Contact Inbound Map and the PIMSI Business Contact Outbound Map. For more information about Integration Objects, see About SSSE Integration Objects.

The following procedure describes how to change the data map for a new field.

To change the data map for a new field

  1. Use the Runtime Repository that contains the changes you made to Integration Objects in Example of Changing Integration Objects.

  2. In your Siebel application, navigate to the Administration - Integration screen, then the Data Map Editor view.

  3. In the Integration Object Map list, select the PIMSI EWS Create Contact Outbound Map.

  4. In the Integration Component Map list, select the Contact_BusinessContact record.

  5. Scroll down to the Integration Field Map list, click New, and complete the fields as shown in the following table.

    Field Value

    Source Expression

    [Spouse]

    Target Field Name

    Spouse

    Note: The value entered for the Source Expression field is an expression. In most cases, the expression is an integration component field name enclosed in square brackets. However, it can be a more complex expression, for example, an IIF(…) expression. See Configuring Siebel Business Applications for information on building expressions.
  6. Save the record.

  7. In the Integration Object Map list, select the PIMSI EWS Update Contact Outbound Map.

  8. In the Integration Component Map list, select the Map Contact Fields.

  9. Repeat Step 5 through Step 6.

You must now change Siebel domain configurations, as described in Example of Changing Siebel Domain Configurations.

Changing Siebel Domain Configurations

The following procedure describes how to change a Siebel domain configuration, as part of customizing SSSE. This procedure involves Field Type settings for both Siebel and PIM domains. The following constraints exist:

  • Synchronization requires mapping between Siebel fields and PIM fields.

  • Mapping is only possible between fields that are listed in the Siebel Domain Fields list and the PIM Domain Fields list.

  • For each field that you want to synchronize, the Field Type value for the Siebel Domain Field must match the Field Type value for the corresponding PIM Domain Field.

This task is a step in Process of Customizing SSSE.

For more information aboutSSSE PIM domain configuration, see Changing PIM Domain Configuration. For an example of how to perform this task for a new field to be synchronized, see Example of Changing Siebel Domain Configurations.

To change a Siebel domain configuration

  1. Navigate to the Administration - PIM Server Integration screen, then the Siebel Domains view.

  2. In the Siebel Domains list, select the domain to reconfigure.

  3. In the Siebel Domain Fields list, click Sync Fields.

    This action copies the values in the inbound data maps to the corresponding fields in the Siebel domain, so the domain acquires the new fields and field modifications that were made in the inbound data maps. However, Sync Fields does not delete fields that you deleted in data maps. You must delete these fields manually, as described in Step 5 of this procedure.

  4. In the Siebel Domain Fields list, select the record for the newly created or updated field, and set an appropriate value for Field Type.

    The value often describes the type of data that the Siebel field holds. For instance, both the Business Phone field and the Home Phone field might have Field Type set to Phone.

    Note: In order for SSSE to map a Siebel field to a PIM field successfully, you must set Field Type for the Siebel field to a value that matches the field type of the PIM field.
  5. In the Siebel Domain Fields list, use standard query techniques to locate the records for any fields you deleted from inbound data maps, and delete those records.

Example of Changing Siebel Domain Configurations

This topic gives one example of changing SSSE Siebel domain configuration settings as part of customizing SSSE. You might use this feature differently, depending on your business requirements.

Continuing with the example from Example of Changing Integration Objects, you want to map the Spouse field of a Siebel business contact record to the corresponding Spouse field of a Microsoft Outlook business contact record so SSSE can synchronize it. To accomplish this, you must change the Siebel domain configuration as described in the following procedure.

To change a Siebel domain configuration for a new field

  1. Navigate to the Administration - PIM Server Integration screen, then the Siebel Domains view.

  2. In the Siebel Domains list, select the Siebel Business Contact record.

  3. In the Siebel Domain Fields list, click Sync Fields.

  4. In the Siebel Domain Fields list, query for the Spouse record.

  5. In the Spouse record, set the Field Type to Spouse.

You must now change PIM domain configurations, as described in Example of Changing PIM Domain Configurations.

Changing PIM Domain Configuration

The following procedure describes how to change a PIM domain configuration, as part of customizing SSSE. This task must be performed if you want to enable synchronization for a PIM field that SSSE does not currently synchronize.

This task is a step in Process of Customizing SSSE.

This procedure involves Field Type settings for both Siebel and PIM domains. The following constraints exist:

  • Synchronization requires mapping between Siebel fields and PIM fields.

  • Mapping is only possible between fields that are listed in the Siebel Domain Fields list and the PIM Domain Fields list.

  • For each field to be synchronized, the Field Type value for the Siebel Domain Field must match the Field Type value for the corresponding PIM Domain Field.

For more information aboutSSSE Siebel domain configuration, see Changing Siebel Domain Configurations. For an example of how to perform this task for a new field to be synchronized, see Example of Changing PIM Domain Configurations.

To change a PIM domain configuration

  1. Navigate to the Administration - PIM Server Integration screen, then the PIM Domains view.

  2. In the PIM Domains list, select the domain to reconfigure.

  3. In the PIM Domain Fields list, click New to create a record for the new PIM field, and complete the fields as shown in the following table.

    Field Comments

    Name

    Specify a name of your choosing forSSSE to use to identify this PIM field in a later configuration step. Make a note of the name you choose.

    Field Identifier

    Specify a name of your choosing forSSSE to use to identify this PIM field internally.

    Field Type

    Select a value that describes the kind of data the PIM field holds, using non-technical terms that indicate the field’s purpose, such as City or Last Name or Pager. Must match the Field Type value for the corresponding Siebel field. Available values are specified in the Siebel List of Values (LOV) PIMSI_FIELD_CLASS.

    Data Type

    Select a value that technically specifies the kind of data the PIM field holds, such as Boolean or Integer or Unicode String. Valid values depend on the PIM field you want to synchronize.

    Note: The Siebel List of Values (LOV) PIMSI_FLD_DATA_TYPE lists all the values that you can specify for Data Type, but many of the values in the LOV are not valid for any individual PIM field.
  4. Navigate to the Administration - PIM Server Integration screen, then the Configuration view.

  5. In the PIM Server Integration Configuration list, select the domain to reconfigure, such as Exchange Calendar, Exchange Contact, or Exchange Task.

  6. In the Configuration Parameters list, click New and complete the fields as shown in the following two tables.

    Note: To fully specify a PIM field for synchronization, you might have to repeat this step several times, creating several records that specify the same value for Section but different values for Parameter and Value.

    Field Comments

    Section

    Enter the value you specified for Name in Step 3.

    Parameter

    Enter the name of the Exchange API that provides access to the PIM field you want to synchronize. For more information, see the following table in this topic.

    Value

    Enter the name or other value that the Parameter API uses to identify the PIM field you want to synchronize. For more information, see the following table in this topic.

    The following table describes the parameters to configure for the Exchange Contact or Exchange Task PIM domain.

    Parameter Values

    MAPIPropertyName

    A MAPIPropertyName value is required for all Microsoft Exchange Contact or Exchange Task fields.

    • For MAPI named properties, specify the identifier of the MAPI property.

    • For MAPI non-named properties, specify the 8-digit hexadecimal identifier of the MAPI field.

    For more information about MAPI properties, see the MAPI documentation.

    PropertySetGUID

    A PropertySetGUID value is required for Microsoft Exchange Contact or Exchange Task fields that are MAPI named properties.

    Specify the Global Unique Identifier (GUID) of the property. If the named property is a custom field, then specify the GUID value for PS_PUBLIC_STRINGS or PS_MAPI. If the named property is not a custom field, then specify the existing GUID. For more information about property set GUIDs for MAPI named properties, consult the MAPI documentation.

    SubNamespace

    A SubNamespace value is required for Microsoft Exchange Contact or Exchange Task fields that are MAPI named properties. Valid values are Id and String.

    WSPropertyName

    The Web service field name defined by Microsoft Exchange Web Services. For example, the field name of the job title field for contacts is:

    contacts:JobTitle
    Note: This parameter is required if you use a Web service Exchange Connector.

    The following table describes the parameters to configure for the Exchange Calendar PIM domain.

    Parameter Value

    DAVPropertyName

    If the field you are specifying can be defined using an existing WebDAV property name, then specify that name.

    SSSE uses WebDAV for most calendar information that travels from the Siebel database to Microsoft Exchange (outbound data). For information regarding WebDAV properties, see your Microsoft Exchange SDK documentation.

    ICALPropertyName

    If the field you are specifying can be defined using an existing Internet Calendaring (iCal) property name, then specify that name.

    SSSE uses iCal for most calendar information that travels from Microsoft Exchange to the Siebel database (inbound data). For information regarding iCal properties, consult RFC #2445.

    MAPIPropertyName

    If the field you are specifying cannot be defined using an existing iCal property name for inbound data or an existing WebDav property name for outbound data, then specify a MAPIPropertyName value for a MAPI named property.

    SSSE uses MAPI to synchronize any Calendar fields that cannot be defined using existing iCal or WebDav properties. For more information about MAPI named properties, see your MAPI documentation.

    Namespace

    Specify a valid property namespace. For information regarding namespaces, see your Microsoft Exchange SDK documentation.

    PropertySetGUID

    A PropertySetGUID value is required for Microsoft Exchange Calendar fields that are MAPI named properties.

    Specify the Global Unique Identifier (GUID) of the property. If the named property is a custom field, specify the GUID value for PS_PUBLIC_STRINGS or PS_MAPI. If the named property is not a custom field, then specify the existing GUID. For more information about property set GUIDs for MAPI named properties, see the MAPI documentation.

    SubNamespace

    A SubNamespace value is required for Microsoft Exchange Calendar fields that are MAPI named properties. Specify the value String.

    WSPropertyName

    The Web service field name defined by Microsoft Exchange Web Services.

    Note: This parameter is required if you use a Web service Exchange Connector.

Example of Changing PIM Domain Configurations

This topic gives one example of changing PIM domain configuration settings as part of customizing SSSE. You might use this feature differently, depending on your business requirements.

Continuing with the example from Example of Changing Integration Objects, you want to map the Spouse field of a Siebel business contact record to the corresponding Spouse field of a Microsoft Outlook business contact record so SSSE can synchronize it. To accomplish this, you must change the PIM domain configuration as described in the following procedure.

To change a PIM domain configuration

  1. Navigate to the Administration - PIM Server Integration screen, then the PIM Domains view.

  2. In the PIM Domains list, select Exchange Contact.

  3. In the PIM Domain Fields list, query for the Spouse field.

  4. Update the Spouse field with the values shown in the following table.

    Field Value

    Name

    Spouse

    Field Identifier

    PR_SPOUSE_NAME

    Field Type

    Spouse

    Data Type

    Unicode String

  5. Navigate to the Administration - PIM Server Integration screen, then the Configuration view.

  6. In the PIM Server Integration Configuration list, select Exchange Contact.

  7. In the Configuration Parameters list, click New and complete the fields as shown in the following table:

    Field Value

    Section

    Spouse

    Parameter

    MAPIPropertyName

    Value

    0x3A48001F

    For information on MAPI property names, navigate to the Microsoft MSDN Web site at the following URL

    http://msdn.microsoft.com

    If the Spouse configuration parameter record already exists in the Siebel database, then ensure that it contains the values listed in the previous table.

You must now change domain map configurations, as described in Example of Changing Domain Map Configurations.

Changing Domain Map Configurations

The following procedure describes how to change a Domain Map configuration after designating a field for synchronization, as part of customizing SSSE.

This task is a step in Process of Customizing SSSE.

For an example of how to perform this task for a new field to be synchronized, see Example of Changing Domain Map Configurations.

To change a Domain Map configuration after designating a field for synchronization

  1. Navigate to the Administration - PIM Server Integration screen, then the Domain Map view.

  2. In the Domain Map list, select the domain in which you created a new field.

  3. In the Field Map list, use standard query techniques to discover if a record already exists for this field.

    If such a record exists, then select it and click Delete.

  4. In the Field Map list, click New to create a new record for the new field, and complete the fields as shown in the following table.

    Field Comments

    Siebel Field

    Enter the current name of the Siebel field to be synchronized.

    For example, for a newly created Siebel field called Spouse, enter Spouse.

    PIM Field

    Enter the current name of the PIM field to be synchronized.

    For example, the PIM field to be synchronized with the new Siebel field might also be called Spouse.

    LOV Translation Map (Optional field)

    Select the name of the translation map that associates PIM values with Siebel LOV items for the new field. Scroll down to the Translation List to see the mappings that the selected map contains. For example, the Country map associates the Siebel Value of USA with the PIM Value of United States of America.

    Key Field (Optional field)

    Select the check box to directSSSE to use the selected field to help uniquely identify any Siebel record in the selected domain, and to match that Siebel record with a corresponding PIM record.

    Sync Enabled

    Select the check box to allow the new field to be synchronized.

Example of Changing Domain Map Configurations

This topic gives one example of changing Domain Map configuration settings as part of customizing SSSE. You might use this feature differently, depending on your business requirements.

Continuing with the example from Example of Changing Integration Objects, you want to map the Spouse field of a Siebel business contact record to the corresponding Spouse field of a Microsoft Outlook business contact record so SSSE can synchronize it. To accomplish this, you must change the Domain Map configurations as described in the following procedure.

To change Domain Map configurations

  1. Navigate to the Administration - PIM Server Integration screen, then the Domain Map view.

  2. In the Domain Map list, select the Siebel-Exchange Business Contact Map record.

  3. In the Field Map list, click New to create a new record for the Spouse field.

  4. Specify values for the fields as shown in the following table.

    Field Value

    Siebel Field

    Spouse

    PIM Field

    Spouse

  5. Save your changes.

  6. Restart the Siebel Server.

The Microsoft Outlook Spouse field will now synchronize with the Siebel Business Contact Spouse field.

About SSSE User Filtering

SSSE runs a user filtering algorithm periodically to determine which users have Siebel database records that have been changed and that require synchronization with Microsoft Exchange. For an implementation ofSSSE that is not customized, the default user filtering configuration monitors changes in every table that is referenced by the domains and fields that are synchronized by default.

The default user filtering configuration involves 15 Siebel business components. The following information lists these business components and the fields and Objects associated with them. Each business component has a set of fields that record the true database update time of each row in a table or joined table. In addition, each business component has a User Id field that specifies the owner of each record in the business component. For information on changing user filtering configurations, see Changing User Filtering Configurations.

Business Object Business Component Fields Mapped to Database Last Update Time

PIMSI Sync Info

PIMSI Sync Info

DB_LAST_UPDATE

PIMSI User Filter Action

PIMSI User Filter Action

Activity Last Upd, Act Employee Last Upd

PIMSI User Filter Action

PIMSI User Filter Action Account

Account Last Upd

PIMSI User Filter Action

PIMSI User Filter Action Contact

Action Contact Last Upd

PIMSI User Filter Action

PIMSI User Filter Action Contact 2

Contact Last Upd

PIMSI User Filter Action

PIMSI User Filter Action Contact 3

Contact Last Upd

PIMSI User Filter Action

PIMSI User Filter Action Oppty

Oppty Last Upd

PIMSI User Filter Action

PIMSI User Filter Action Project

Project Last Upd

PIMSI User Filter Action

PIMSI User Filter Action SR

SR Last Upd

PIMSI User Filter Contact

PIMSI User Filter Contact

Contact Info Last Upd, Contact Last Upd, Party Last Upd

PIMSI User Filter Contact

PIMSI User Filter Contact Account

Account Last Upd

PIMSI User Filter Contact

PIMSI User Filter Contact Business Address

Address Last Upd

PIMSI User Filter Contact

PIMSI User Filter Contact Oppty

Oppty Last Upd

PIMSI User Filter Contact

PIMSI User Filter Contact Personal Address

Address Last Upd

PIMSI User Filter Contact

PIMSI User Filter Contact Position

Contact Position Last Upd

Each time the user filtering algorithm runs, a set of queries is issued to identify the users whose records have changed since the last filtering. For example, for particular values of last_filtering_time and business_component_name, the query finds information that can be described as follows:

All User Ids in business_component_name where DB_LAST_UPDATE >= last_filtering_time

Some business components have more than one database update time field. Separate queries are issued for each of these fields, sequentially. As a result, 18 queries are issued each time the user filtering algorithm runs. The union of query results is the set of users who have records that require synchronization with the Exchange Server.

Changing User Filtering Configurations

If your customization of SSSE does not involve synchronizing fields from a new table or a new joined table, then no user filtering configuration changes are required.

If your customization ofSSSE does involve synchronizing fields from a new table or a new joined table, then the application developer must make sure that the user filtering configuration is adequate for detecting data changes in any new fields thatSSSE will synchronize. For more information about the user filtering process, see About SSSE User Filtering.

This task is a step in Process of Customizing SSSE.

The following procedure briefly describes how to change the user filtering configuration to detect changes made in new fields to be synchronized.

To change the SSSE user filtering configuration

  1. Modify an existing user filtering business component or create a new user filtering business component to include the DB_LAST_UPD column.

  2. Navigate to the Administration - PIM Server Integration screen, Configuration, and then the PIM Server Integration Configuration view.

  3. In the PIM Server Integration Configuration list, select User Filter.

  4. In the Configuration Parameters list, perform one of the following actions:

    • For an existing user filtering business component, select the record where Parameter is set to the Business Component name, and add any new DB_LAST_UPD column to the Value field, using commas to separate multiple values.

    • For a new user filtering business component, click New and complete the fields in the new record, as shown in the following table.

      Field Comments

      Section

      Enter the name of the Business Object for the new Business Component.

      Parameter

      Enter the name of the new Business Component.

      Value

      Enter DB_LAST_UPD.

About Customizing Delta Queries

TheSSSE PIMSI Engine component uses delta queries to find out which Siebel records and fields have changed since the last time an SSSE user’s data was synchronized. The delta queries that are supplied with SSSE check certain standard fields for changes to be synchronized—fields that record the date and time that certain database tables were last updated. When SSSE detects a value in a monitored date-time field that is later than the most recent successful synchronization, all of the mapped fields in the changed record are synchronized, including any custom fields that you have set up for synchronization.

However, unmonitored date-time fields cannot trigger synchronization. If your Siebel implementation has added tables to business components that SSSE synchronizes, then you must customize the appropriate delta queries to monitor the date-time fields that track changes in those tables.

You must also modify a delta query if you add a new multi-value group (MVG) field that you want monitored for changes because changes in custom MVGs are tracked in different date-time update fields than changes in single-value fields or in existing MVGs. For a new MVG, you must also take certain prerequisite actions in the Siebel Repository.

You can also modify delta queries to direct SSSE to ignore changed update date-time values in tables that would ordinarily trigger synchronization. For more information on customizing delta queries, see Changing Delta Query Profile Configuration Parameters.

Note: If you have to modify a delta query, then you might also have to modify a user filter. For more information, see About SSSE User Filtering and Changing User Filtering Configurations.

Changing Delta Query Profile Configuration Parameters

If you change business component configurations that were supplied along with your Siebel software, then you might have to make a corresponding change to the delta query that monitors the applicable tables for changes. This topic describes how to modify a delta query by changing or adding configuration parameters for the Delta Query profile.

The table in the topic About SSSE User Filtering provides configuration parameter information that you will have to change to complete either of these tasks. For more information about changing delta queries, see About Customizing Delta Queries.

The following procedure describes how to modify existing Delta Query profile parameters. You would ordinarily use this procedure if you want SSSE to ignore changed values in update date-time fields that would ordinarily trigger synchronization.

To modify configuration parameters for the Delta Query profile

  1. In your Siebel application, navigate to the Administration - PIM Server Integration screen, Configuration, then the PIM Server Integration Configuration view.

  2. In the PIM Server Integration Configuration list, select Delta Query.

  3. In the Configuration Parameters list, select the record that you want to modify, and make the change.

    For more information about the Configuration Parameters list, see the table in About SSSE User Filtering.

  4. To make the changes take effect, restart the PIMSI Engine server component.

    If you have modified the User Filter, as well as the Delta Query, then you must also restart the PIMSI Dispatcher server component.

    If you have not modified the User Filter, then restarting the PIMSI Dispatcher is optional.

The following procedure describes how to add a parameter to the Delta Query profile. Use this procedure when you wantSSSE to start monitoring a new date-time field for updates. This would ordinarily occur when you add a new multi-value group (MVG) that you wantSSSE to monitor for changes.

To add a configuration parameter for the Delta Query profile

  1. If you have created a new MVG, then complete the following substages before continuing; otherwise, skip to Step 2.

    1. Find the SSSEbusiness component that corresponds to the domain where you added the new MVG.

      For example, if you added the MVG to the Contacts business component, then find the Contact PIM Server business component.

    2. Add a link to the primary element for the new MVG.

    3. Add the field that will track the last update date for the new MVG.

      Make a note of the field name, which you will specify in a later step.

    4. Save your changes, recompile the Runtime Repository, and deploy the new Runtime Repository to your Siebel Servers.
  2. In your Siebel application, navigate to the Administration - PIM Server Integration screen, Configuration, then the PIM Server Integration Configuration view.

  3. In the PIM Server Integration Configuration list, select Delta Query.

  4. In the Configuration Parameters list, click New and complete the fields.

    For more information about the fields in the Configuration Parameters list, see the table in About SSSE User Filtering.

  5. To make the changes take effect, restart the PIMSI Engine server component.

    If you have modified the User Filter, as well as the Delta Query, then you must also restart the PIMSI Dispatcher server component.

    If you have not modified the User Filter, then restarting the PIMSI Dispatcher is optional.

About Creating Custom Delete Triggers

A delete trigger is a record that a database trigger places in the table S_SD_SYNC_INFO, to direct SSSE to delete a PIM record. By default, SSSE uses delete triggers in the situations described in the following paragraphs.

Note:
  • If a user moves a record from one Siebel domain to another, such as by changing a Siebel Calendar activity to a Siebel Task activity, then the delete trigger deletes the corresponding PIM record (in this case, the record that corresponds to the Siebel Calendar item).

  • If a user removes a business contact record from his or her Sync List, then the delete trigger deletes the corresponding PIM record.

  • If a user changes the owner of a Siebel activity record, then the delete trigger deletes the previous owner’s corresponding PIM record.

  • If a user changes the owner of a Siebel contact record, then the delete trigger deletes the previous owner’s corresponding PIM record.

You can create custom delete triggers to perform similar deletions for your customized SSSE implementation. For more information on creating custom delete triggers, see Creating Custom Delete Triggers.

Creating Custom Delete Triggers

The following procedure describes how to create a custom delete trigger. For more information about custom delete triggers, see About Creating Custom Delete Triggers.

Caution: According to Oracle support policy, changes made directly to the data, rather than through Oracle-approved Siebel CRM utilities, such as the Migration Application, require approval from Oracle Advanced Customer Services. Contact your Oracle sales representative for Oracle Advanced Customer Services to request assistance from Oracle's Application Expert Services.

To create a custom delete trigger

  1. Determine which Siebel domain is associated with the record to be deleted, and use the following table to determine the corresponding SEBL_DOMAIN_IDEN value to use in a later step.

    Siebel Domain Name SEBL_DOMAIN_IDEN Value

    Siebel Business Contact

    PIMSI Intermediate Business Contact

    Siebel Calendar

    PIMSI Intermediate Calendar

    Siebel Task

    PIMSI Intermediate Task

  2. Locate the script that creates the database triggers that are supplied along with SSSE for your database environment.

    The following table lists the script names for each database environment. These scripts are typically located in the siebsrvr/BIN directory on your Siebel Server.

    Database Script Name

    DB2

    ssse_triggers_db2.sql

    DB2 390

    ssse_triggers_db2_390.sql

    Microsoft SQL Server

    ssse_triggers_mssql.sql

    Oracle

    ssse_triggers_ora9.sql

  3. In the appropriate script file for your database environment, review existing delete triggers to see examples of the specific language required for each domain and operation.

    The following table lists some existing trigger names and the contexts in which they direct SSSE to delete specified PIM records.

    Delete Trigger Name Trigger Requests Deletion of PIM Record if:

    SSSE_ACT_EMP_PIM3

    A user changes the owner of an activity record (calendar or task)

    SSSE_CONT_INFO_T1

    A user removes a business contact record from his or her Sync List

    SSSE_EVT_ACT_PIM1

    A user converts a calendar record to a task record, or a task record to a calendar record

  4. Write the new delete trigger you require, using an appropriate existing trigger as a model.

    For an example of one existing trigger, see Sample Delete Trigger.

  5. Use a tool such as SQL Query Analyzer to apply the new trigger to the database.

  6. Test the trigger by completing the following substeps:

    1. Create a Siebel record of the type that your new trigger is designed to monitor, such as a business contact record.

    2. If necessary, add the record to your Sync List, and verify that SSSE creates a corresponding PIM record.

    3. Perform the operation that your new trigger is designed to detect, such as deleting or updating the business contact record, or removing it from your Sync List.

    4. Verify that the expected result occurs—one or more delete trigger records are added to the S_SD_SYNC_INFO table, and SSSEdeletes or updates the corresponding PIM record, as specified in your trigger.

Sample Delete Trigger

This topic contains the text of an existing delete trigger, SSSE_CONT_INFO_T1, and two drop-trigger statements that precede it. This trigger resides in the ssse_triggers_mssql.sql file, which is intended for Siebel implementations that use a Microsoft SQL Server database. The trigger operates when a record is deleted from table S_CONTACT_INFO. For more information about delete triggers, see About Creating Custom Delete Triggers and Creating Custom Delete Triggers.

Note: In this sample text, database_owner serves as a placeholder for the name of the database user who owns the table that the trigger modifies (in this case, the table is S_CONTACT_INFO). Leading hyphens indicate a comment for a Microsoft SQL Server database script.
-- Delete of S_CONTACT_INFO 
--
--
-- Drop the 7.8 trigger name
IF exists (select name from sysobjects

	where name = 'S_CONTACT_INFO_T1'

		and type = 'TR')

	drop trigger database_owner.S_CONTACT_INFO_T1

	GO

	IF exists (select name from sysobjects

		where name = 'SSSE_CONT_INFO_T1'

		and type = 'TR')

	drop trigger database_owner.SSSE_CONT_INFO_T1

	GO

	CREATE TRIGGER database_owner.SSSE_CONT_INFO_T1
	on database_owner.S_CONTACT_INFO
	FOR delete
	AS

	insert into database_owner.S_SD_SYNC_INFO ( ROW_ID,


		CREATED,
		CREATED_BY,
		LAST_UPD,
		LAST_UPD_BY,
		MODIFICATION_NUM,
		CONFLICT_ID,
		SEBL_DOMAIN_IDEN, 
		SEBL_ROW_IDEN, 
		SEBL_USER_ID, 
		OPERATION_TYPE, 
		DB_LAST_UPD,
		DB_LAST_UPD_SRC)

	select NULL,

		GETUTCDATE(),
		'PIMSI',
		GETUTCDATE(),
		'PIMSI',
		0,
		'0', 
		'PIMSI Intermediate Business Contact', 
		dd.TARGET_PER_ID, 
		dd.OWNER_PER_ID, 
		'delete', 
		GETUTCDATE(),
		'PIMSI'

	from deleted dd

GO

The following facts might be useful to you as you create new delete triggers based on existing triggers such as the preceding sample:

  • Delete triggers can also be used to operate when records are updated. SSSE_CONTACT_PIM3 and SSSE_ACT_EMP_PIM3 are examples of existing triggers of this type.

  • The list of columns inserted by each delete-trigger is the same for each record that is created in the S_SD_SYNC_INFO table. In the preceding sample, the list of columns begins with ROW_ID and ends with DB_LAST_UPD_SRC.