7Customizing Siebel Server Sync for Microsoft Exchange Server
Customizing Siebel Server Sync for Microsoft Exchange Server
This chapter describes ways in which you can customize SSSE. It includes the following topics:
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.
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:
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.
Change the Inbound and Outbound data maps to reflect the new or amended fields.
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.
Changing PIM Domain Configuration
Add the new or amended field to the PIM domain.
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:
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.
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.
To change an integration object
Select the Integration Object that you want to change.
Select the integration component for which a field is to be changed or added.
Change the field properties of the integration component as required.
Save the record.
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:
Map the existing contact business component field, Spouse, to the Siebel Integration Object and the Intermediate Integration Object for the Business Contact domain.
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.
To change Siebel and Intermediate Integration Objects for a new field
Select the View menu, and then Options.
Click the Object Explorer tab.
In the Object Explorer Hierarchy list box, select the Integration Object check box, and click OK.
In the Object Explorer, select Integration Object, and complete the following substeps:
In the Object List Editor, select PIMSI Business Contact.
From the Tools menu, select Lock Project.
In the Object Explorer, expand Integration Object, then Integration Component.
In the Object List Editor, select Contact.
In the Object Explorer, select Integration Component Field.
In the Name field, query for Spouse.
In the Spouse field, scroll until the Inactive field is visible, and clear the Inactive check box.
In the Object Explorer, select Integration Object, and complete the following substeps:
In the Object List Editor, select PIMSI Intermediate EWS Business Contact.
In the Object Explorer, select Integration Component.
In the Object List Editor, select Business Contact.
In the Object Explorer, select Integration Component Field.
In the Object List Editor, right-click and choose New Record.
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.
Make the Spouse field available in the user interface by completing the following substeps:
In the Object Explorer, select the Applet object.
Query for the Contact List Applet.
From the Tools menu, choose Lock Project.
In the Object Explorer, expand Applet, then List, and click on List Column.
In the Object List Editor, right click and choose New Record.
Enter the following information for the new Spouse record:
Field Value Name
Spouse
Field
Spouse
Display Name
Spouse
HTML Type
Field
Right-click on the Contact List Applet record, and select Edit Web Layout.
In the Controls/Columns window, select Edit List mode.
In the Applet (Contact List Applet) layout window, scroll until empty Field placeholders are visible.
In the Controls/Columns window, select and move the Spouse control onto an empty Field placeholder in the Applet (Contact List Applet) layout window.
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.
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.
The following procedure briefly describes how to change a data map as part of customizing SSSE.
To change a data map for SSSE
Use the Runtime Repository that contains your changes to Integration Objects.
In your Siebel application, navigate to the Administration - Integration screen, then the Data Map Editor view.
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.
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.
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
Use the Runtime Repository that contains the changes you made to Integration Objects in Example of Changing Integration Objects.
In your Siebel application, navigate to the Administration - Integration screen, then the Data Map Editor view.
In the Integration Object Map list, select the PIMSI EWS Create Contact Outbound Map.
In the Integration Component Map list, select the Contact_BusinessContact record.
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.Save the record.
In the Integration Object Map list, select the PIMSI EWS Update Contact Outbound Map.
In the Integration Component Map list, select the Map Contact Fields.
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
Navigate to the Administration - PIM Server Integration screen, then the Siebel Domains view.
In the Siebel Domains list, select the domain to reconfigure.
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.
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.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
Navigate to the Administration - PIM Server Integration screen, then the Siebel Domains view.
In the Siebel Domains list, select the Siebel Business Contact record.
In the Siebel Domain Fields list, click Sync Fields.
In the Siebel Domain Fields list, query for the Spouse record.
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
Navigate to the Administration - PIM Server Integration screen, then the PIM Domains view.
In the PIM Domains list, select the domain to reconfigure.
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.Navigate to the Administration - PIM Server Integration screen, then the Configuration view.
In the PIM Server Integration Configuration list, select the domain to reconfigure, such as Exchange Calendar, Exchange Contact, or Exchange Task.
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
Navigate to the Administration - PIM Server Integration screen, then the PIM Domains view.
In the PIM Domains list, select Exchange Contact.
In the PIM Domain Fields list, query for the Spouse field.
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
Navigate to the Administration - PIM Server Integration screen, then the Configuration view.
In the PIM Server Integration Configuration list, select Exchange Contact.
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
Navigate to the Administration - PIM Server Integration screen, then the Domain Map view.
In the Domain Map list, select the domain in which you created a new field.
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.
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
Navigate to the Administration - PIM Server Integration screen, then the Domain Map view.
In the Domain Map list, select the Siebel-Exchange Business Contact Map record.
In the Field Map list, click New to create a new record for the Spouse field.
Specify values for the fields as shown in the following table.
Field Value Siebel Field
Spouse
PIM Field
Spouse
Save your changes.
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
Modify an existing user filtering business component or create a new user filtering business component to include the DB_LAST_UPD column.
Navigate to the Administration - PIM Server Integration screen, Configuration, and then the PIM Server Integration Configuration view.
In the PIM Server Integration Configuration list, select User Filter.
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.
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
In your Siebel application, navigate to the Administration - PIM Server Integration screen, Configuration, then the PIM Server Integration Configuration view.
In the PIM Server Integration Configuration list, select Delta Query.
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.
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
If you have created a new MVG, then complete the following substages before continuing; otherwise, skip to Step 2.
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.
Add a link to the primary element for the new MVG.
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.
- Save your changes, recompile the Runtime Repository, and deploy the new Runtime Repository to your Siebel Servers.
In your Siebel application, navigate to the Administration - PIM Server Integration screen, Configuration, then the PIM Server Integration Configuration view.
In the PIM Server Integration Configuration list, select Delta Query.
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.
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.
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.
To create a custom delete trigger
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
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
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
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.
Use a tool such as SQL Query Analyzer to apply the new trigger to the database.
Test the trigger by completing the following substeps:
Create a Siebel record of the type that your new trigger is designed to monitor, such as a business contact record.
If necessary, add the record to your Sync List, and verify that SSSE creates a corresponding PIM record.
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.
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.
-- 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.