3How Siebel CRM Desktop Works
How Siebel CRM Desktop Works
This chapter describes how Siebel CRM Desktop works. It includes the following topics:
Overview of How Siebel CRM Desktop Works
This topic describes an overview of how Siebel CRM Desktop works. It includes the following topics:
Extensions to the IBM Notes User Interface
Siebel CRM Desktop is a composite application that displays Siebel CRM sales data in IBM Notes. To store and display Siebel CRM data, the IBM Notes add-in framework deploys Siebel CRM Desktop to IBM Notes and extends the IBM Notes data model and user interface. Extensions to the IBM Notes user interface allow the user to display Siebel CRM data. The following are some examples of these extensions:
Custom Actionbar buttons.
Custom menu items.
Custom forms that display Siebel CRM data.
Custom controls that are embedded in IBM Notes forms that display Siebel CRM data.
Personalization options dialog box.
IBM Notes uses these extensions to allow the user to do a variety of work. The following are some examples of work that the user can do:
Create new Siebel CRM data in IBM Notes.
Mark the IBM Notes item to share with the Siebel Server data and related sales data. As an option, it can share or unshare a calendar entry, To Do item, contact, or email message.
View and edit sales data.
Start a standard IBM Notes action, such as sending an email or scheduling a meeting in the context of a sales item.
The following are some examples of validation that Siebel CRM Desktop can do when the user enters data:
Make sure the data type is valid for a given field.
Make sure each required field includes information.
Make sure some fields are disallowed, depending on the access rules for conditional data.
Infrastructure That Siebel CRM Desktop Uses
The following illustrates the infrastructure that Siebel CRM Desktop uses.

Explanation of Callouts
The infrastructure that Siebel CRM Desktop uses includes the following items:
Siebel Database. Stores information about opportunities, contacts, service requests, accounts, and so on.
Siebel Server. Runs the server components for Siebel CRM Desktop and manages synchronization sessions with the Siebel Application Interface. Hosts the processes that Siebel CRM Desktop requires to support synchronization and handles incoming synchronization requests from the client through the Siebel Application Interface. For more information, see How Siebel CRM Desktop Uses the Siebel Enterprise.
Siebel Application Interface. Acts as the Web server that establishes a user session with the Siebel Server. Handles incoming requests to Siebel Web services and helps route the client synchronization request to the proper component in the Siebel CRM infrastructure that supports the Web service. For more information, see About the Web Service API.
Laptop or Desktop. The computer where Siebel CRM Desktop is installed. Oracle implements Siebel CRM Desktop as the IBM Notes add-in. Siebel CRM Desktop deploys a binary add-in during installation that supports integration with IBM Notes, custom user interface capabilities, and the Synchronization Engine. Siebel CRM Desktop metadata is available in IBM Notes after you download and install the customization package from the Siebel Server. Siebel CRM data is available on the client computer after the first synchronization finishes. The customization package includes features that allow synchronization and customization. For more information, see Customizing the First Run Assistant.
Messaging Infrastructure. Handles local email, calendar , contacts, and To Do items. The messaging infrastructure provides support for mobile access and Web access to information and for storing data. For more information, see How Siebel CRM Desktop Stores Siebel CRM Data.
Architecture That Siebel CRM Desktop Uses
The following figure illustrates the architectural components that Siebel CRM Desktop uses.

Explanation of Callouts
Siebel CRM Desktop uses the following architecture components:
Synchronization Engine. Starts the synchronization process. Determines the changes that Siebel CRM Desktop requires to synchronize between the client and the Siebel Server, as determined by the differences between the data sets that are available in each system. To get information from the Siebel Server, it submits requests to the connector and then, to determine the required data changes, it processes the replies. It works with the IBM Notes connector to make the necessary data changes in the data storage in IBM Notes.
Siebel Connector. Connects the personal information manager (PIM) client to the Siebel Server. Submits requests and receives replies and works with the Synchronization Engine. The connector interfaces with the Siebel Server through the Web service infrastructure.
Siebel Application Interface (SAI). Brokers requests from the Siebel Connector to the Siebel Server.
Client Connector. Allows the Synchronization Engine to access the data storage in IBM Notes. Supports queries, inserts, updates, and deletes of data in this data storage.
Overview of How Siebel CRM Desktop Synchronizes Data
Siebel CRM Desktop uses a process that the client controls to synchronize data between IBM Notes and the Siebel Server. Once installed, the client initializes the Siebel CRM data that is available in IBM Notes through the first synchronization. An incremental synchronization synchronizes subsequent changes that occur in IBM Notes or on the Siebel Server.
The user must do the first synchronization with the Siebel Server to make Siebel CRM data available in IBM Notes. First Run Assistant is a wizard that guides the user through the setup of the Siebel CRM Desktop add-in in IBM Notes. It displays when the user starts IBM Notes for the first time after the Siebel CRM Desktop add-in is installed. It starts the first synchronization.
The user can choose among several preferences and then start the first synchronization while using the First Run Assistant. Siebel CRM Desktop does the following work:
Connects IBM Notes to the Siebel Server and then authenticates the user.
Displays a prompt to the user that describes the location where Siebel CRM Desktop will apply the IBM Notes customization.
Determines the configuration that the user can access. A relationship with a responsibility that is related to a customization package determines this access. For more information, see Relationships Between Users, Responsibilities, Customization Packages, and Metadata Files.
Downloads and applies the configuration.
Synchronizes the appropriate data. The connector configuration, synchronization mappings, visibility rules, default internal filters, and default user filters determine this synchronization.
For more information, see How Siebel CRM Desktop Synchronizes Data Between the Client and the Siebel Server.
About Web Service Usage During Synchronization
A component of the Synchronization Engine that you deploy to the client supports synchronization. This component connects to the Siebel Server through the Web service infrastructure. Web services provide access to synchronization for metadata and synchronization for Siebel CRM data. Siebel CRM Desktop provides access to individual objects through the standard Siebel EAI (Enterprise Application Integration) runtime repository objects, such as integration objects and integration components. These objects acquire data through their relations with business objects and business components.
About Siebel CRM Desktop and IBM Notes Data
IBM Notes data is data that the user creates in the native IBM Notes application. Examples include a calendar entry or To Do item. Siebel CRM data is data that can include the following items:
Business data that the user creates in the Siebel CRM Desktop add-in
Data that a user creates in the client of a Siebel Business Application, such as Siebel Call Center
Data that resides in the Siebel database on the Siebel Server
Examples of Siebel CRM data include an opportunity, account, or activity. Siebel CRM Desktop uses native IBM Notes data files, so IBM Notes displays Siebel CRM data through native IBM Notes user interface elements, such as lists and forms. IBM Notes can display this data simultaneously with other IBM Notes data while using the same user interface concept, such as a mailbox folder. The user can choose a folder that displays Siebel CRM data and can also view IBM Notes data in the IBM Notes list view.
Siebel CRM Desktop displays Siebel CRM data in the IBM Notes documents that open according to the design element that it associates with the document.
When disconnected from the Siebel Server, the user interacts with data that the user can access locally in IBM Notes.
How Siebel CRM Desktop Stores Siebel CRM Data
The following figure illustrates how Siebel CRM Desktop stores Siebel CRM data.

Explanation of Callouts
Siebel CRM Desktop stores Siebel CRM data in the following way:
You install Siebel CRM Desktop as an add-in with IBM Notes on the client computer.
Siebel CRM Desktop stores data in the Personal Address Book (PAB) database. This data can include the following items. It can also include other data:
Custom objects.
Design elements that Siebel CRM Desktop uses to display custom objects.
Predefined Notes forms.
Lookup data, such as lists of values and currencies.
Relational data, such as contact and account intersection records.
The mail database stores tasks, appointments, and email messages. This database can reside locally on the Notes client or on the Domino Server. Siebel CRM Desktop does not interfere with communication between Notes and the Domino Server. Notes synchronizes with the Domino Server the same way it does if you do not install Siebel CRM Desktop.
How Siebel CRM Desktop Uses the Siebel Enterprise
This topic describes some of the major components in the Siebel Enterprise that Siebel CRM Desktop uses. It includes the following topics:
For an illustration of how parts of the Siebel Enterprise fit in Siebel CRM Desktop, see Siebel Enterprise Components That Siebel CRM Desktop Uses.
Siebel Enterprise Components That Siebel CRM Desktop Uses
The following figure illustrates Siebel Enterprise components that Siebel CRM Desktop uses.

Explanation of Callouts
Siebel CRM Desktop uses the following Siebel Enterprise components:
SOAP Message to Server. To request metadata, sends a SOAP (Simple Object Access Protocol) message to the Siebel Server over HTTP (Hypertext Transfer Protocol) or HTTPS (Hypertext Transfer Protocol Secure). The payload is a Siebel message that it sends in a SOAP envelope.
Siebel Application Interface. To handle requests from IBM Notes for data and metadata synchronization, Siebel CRM Desktop does the following:
Uses the Web Service API as the endpoint of the Web service.
Accepts SOAP over HTTP or HTTPS from the Synchronization Engine in IBM Notes.
Uses the configured endpoint to connect to the EAI Object Manager server component or another server component that provides access to the Web services.
For more information, see About the Web Service API, and Configuring Siebel Business Applications
PIM Client Sync Service Business Service. Handles the data synchronization request from the Synchronization Engine and then passes this request to the EAI Siebel Adapter business service for processing. This business service supports batching, error handling, and a few custom functions, such as providing record counts and resolving calendar entry attendees that reside on the Siebel Server. For more information, see About the PIM Client Sync Service Business Service.
Integration Objects. Requests processes through the EAI Siebel Adapter business service. It uses integration objects to describe the underlying Siebel data structure. It specifies objects and fields that are available for synchronization. For more information, see About Integration Objects
EAI Siebel Adapter.Sends requests to the data and metadata synchronization Web services. These services use the Execution method and various operations to process the requests through the EAI Siebel Adapter business service. Example operations include querypage, insert, update, and delete. For more information see About the EAI Siebel Adapter Business Service.
Customization package. A collection of XML, JavaScript, DXLfiles that describe the Siebel CRM Desktop add-in that runs in IBM Notes. It verifies that the latest application metadata for the user is available on the Siebel Server. For more information, see About the Customization Package.
XML Reply to IBM Notes. Sends an XML message that contains the metadata that Siebel CRM Desktop requests in Step 1. It sends this message to IBM Notes over HTTP or HTTPS.
For more information, see How Siebel CRM Desktop Synchronizes Data Between the Client and the Siebel Server.
About the Web Service API
The client calls operations in the web service and then the web service calls the related business service. The web service does not itself implement integration objects and business services. Instead, it references them. IBM Notes communicates with the Web Service API on the Siebel Server. This Web Service API references the PIM Client Sync Service business service. Communication between IBM Notes and the Siebel Server occurs through SOAP packages that include embedded Siebel messages. The client merely views the web service as an address. The Web Service API includes the following objects:
Custom integration object for communication between the Siebel Server and IBM Notes. For more information, see About Integration Objects.
PIM Client Sync Service business service that supports synchronization with IBM Notes.
Integration objects that support Siebel objects.
The business service that the Web Service API references provides the following functionality:
Performs bulk insert, update, and delete operations in the Siebel database
Queries and retrieves objects as determined by a given criterion
Queries and retrieves objects as determined by a set of object IDs
Returns a count of the number of object records that match a given criterion
Retrieves list data for object attributes in the Siebel database
About the PIM Client Sync Service Business Service
The PIM Client Sync Service business service delegates calls that Siebel CRM Desktop receives from IBM Notes and contains methods that handle calls from Siebel CRM Desktop. Each method is generic and is not tightly coupled to a specific Siebel object. A Web service provides access to the business service methods. Siebel CRM Desktop accesses the Web service through SOAP messages. The business service receives and sends the custom integration object as method parameters of the business service.
The PIM Client Sync Service business service does the following work:
Parses the input hierarchy of the object instance.
Retrieves commands from the Siebel message. These commands are embedded in the incoming instance of the integration object.
Processes the Siebel messages with the help of methods on the EAI Siebel Adapter business service.
Embeds the output of the Siebel message into the integration object instance.
To send the information back to IBM Notes through the web service interface, the PIM Client Sync Service business service does this step.
For more information, see About Integration Objects.
About the EAI Siebel Adapter Business Service
The EAI Siebel Adapter business service is a predefined data interface that interacts with the Siebel Object Manager. It does this to access and modify data in the Siebel database. The following work occurs:
The EAI Siebel Adapter business service does the following work:
Takes, as input, an XML document or a property set that conforms to the definition of an integration object in Siebel CRM.
Queries, inserts, updates, deletes, or synchronizes data with the Siebel business object layer.
The PIM Client Sync Service web service calls the PIM Client Sync Service business service.
The PIM Client Sync Service business service submits requests to the EAI Siebel Adapter to query, insert, update, or delete data in the Siebel database.
For more information, see About Integration Objects.
About Integration Objects
An integration object is an object that includes the contents of the messages that Siebel CRM Desktop exchanges between the Siebel Server and IBM Notes.
Siebel Message Usage with the EAI Siebel Adapter
A Siebel message is an instance of an integration object that provides the input to the EAI Siebel Adapter business service. This integration object can carry multiple commands in a single call to the business service. The commands can be grouped together so that the business service can process the commands in a batch. If Siebel CRM Desktop sends an integration object instance from IBM Notes, then Siebel CRM encapsulates this object in an element of the Siebel message. Each of these messages includes a Siebel message header.
Integration Objects That Siebel CRM Desktop Uses
Siebel CRM Desktop uses integration objects that include the following prefix:
CRMDesktop
You must not create a new integration object for an existing object. Only create a new integration object for a new, custom object that does not already have an integration object. Consider the following examples:
You must not create a new integration object for accounts. Instead, you can extend the CRMDesktopAccountIO integration object.
You must create a new integration object for Channel Partner. For more information, see Creating an Integration Component for the Channel Partner MVG.
The following list includes some of the integration objects that allow Siebel CRM Desktop to access Siebel CRM data, such as accounts, opportunities, and contacts. Note that this list includes only some integration objects. It does not include all the integration objects that Siebel CRM Desktop uses:
CRMDesktopAccountIO
CRMDesktopActionIO
CRMDesktopAssignmentGroupIO
CRMDesktopBusinessAddressIO
CRMDesktopContactIO
CRMDesktopCurrencyIO
CRMDesktopEmployeeIO
CRMDesktopEmployeeIO
CRMDesktopInternalDivisionIO
CRMDesktopInternalProductIO
CRMDesktopListOfValuesIO
CRMDesktopOpportunityIO
CRMDesktopPickListGenericIO
CRMDesktopPickListHierarchicalIO
CRMDesktopPositionIO
CRMDesktopSalesCycleDefIO
CRMDesktopSystemPreferencesIO
CRMDesktopUserDetailsIO
Siebel CRM Desktop uses the following integration objects to meet other integration requirements:
CRMDesktopLocaleIO. PIM locale setting integration objects that provide access to the locale settings.
CRMDesktopSystemPreferencesIO. An integration object for a PIM system preference that provides access to the system preferences for the Siebel Server.
CRMDesktopUserDetailsIO. For login user data.
PIMClientMetaData and PIMClientMetadataFile. For metadata file download.
PIMClientSync. A wrapper that includes other integration objects.
User Details Business Component
The User Details business component is a clone of the Employee business component except for the Currency, Login Id, and Language fields. Siebel CRM Desktop uses it to retrieve the default user values. Calculated fields in this business component provide access to the Currency, Login Id, and Language fields. The User Details business object references the User Details business component. The CRMDesktopUserDetailsIO integration object allows Siebel CRM Desktop to access the following fields in IBM Notes:
LoginId
LoginName
Currency
Position
PositionId
OrganizationId
OrganizationName
Language
About Authentication and Session Management
The Siebel Server provides a lightweight context management facility for Web service authentication. To manage authentication with this facility, Siebel CRM Desktop uses a combination of user credentials and a SessionID token. When user credentials are presented in the SOAP header of a Web service request, Siebel CRM Desktop performs formal authentication before it runs the Web service operation. If the authentication succeeds, then the operation proceeds and Siebel CRM Desktop places a special SessionID token in the SOAP header of the Web service reply.
When IBM Notes includes the SessionID in subsequent Web service requests, Siebel CRM Desktop uses this SessionID to restore cached session information. This configuration bypasses the substantially more expensive process of running the authentication again. If presented with the SessionID and a valid set of user credentials, then Siebel CRM Desktop attempts to use the SessionID before it resorts to the user credentials and reauthentication. The session that the SessionID tracks is subject to expiration and other security checks.
For more information, see Integration Platform Technologies: Siebel Enterprise Application Integration.
Metadata That Siebel CRM Desktop Uses
This topic describes the structure of the metadata that Siebel CRM Desktop uses and how you can modify it to support a customization. It includes the following topics:
For more information, see Overview of Customizing Siebel CRM Desktop.
Relationships Between Users, Responsibilities, Customization Packages, and Metadata Files
The responsibility that a customization package references creates a relationship between a Siebel CRM Desktop user and a Siebel CRM Desktop configuration. If the package is activated and published, then a user that the responsibility references can download the configuration that the package defines. This configuration is a collection of metadata files that Siebel CRM Desktop stores on the Siebel Server and downloads to IBM Notes during synchronization.
The following figure includes an example of how several users, U1, U2, and U3, are related to several responsibilities, R1, R2, R3, R4, and R5, and how these responsibilities are related to several customization packages, P1, P2, and P3.

Explanation of Callouts
The following relationships exist between users, responsibilities, customization packages, and metadata files:
CRM Desktop user. The user of an implementation of Siebel CRM Desktop.
Responsibility. A Siebel responsibility, such as Sales Representative. It corresponds to the job role that the user performs.
Customization package. A collection of metadata files. Siebel CRM Desktop creates a relationship between these files and a responsibility. For more information, see About the Customization Package.
Metadata File. A description of Siebel CRM Desktop that Siebel CRM Desktop deploys to IBM Notes as XML code or JavaScript files. For more information, see About Metadata Files.
How Siebel CRM Desktop Allows Users to Access Siebel CRM Data
Siebel CRM Desktop allows the user to access Siebel CRM data in IBM Notes in the following ways:
Through responsibility. Similar to how a view allows the user to access data in the Siebel Web Client, Siebel CRM Desktop uses a responsibility to create a relationship between the user and a customization package. This relationship identifies the application metadata that Siebel CRM Desktop sends to the user through metadata synchronization. The metadata defines the objects that Siebel CRM Desktop synchronizes with IBM Notes. For more information, see Guidelines for Assigning Responsibilities to Customization Packages.
Through synchronization filters. The customization package includes metadata files that specify the data access control and the filters to apply when Siebel CRM Desktop synchronizes data with the Siebel Server. For example, the default configuration specifies that the user can synchronize accounts, contacts, and opportunities that are related to the sales team that Siebel CRM assigns to the user.
Depending on your business requirements, you can create different customization packages and assign them to different users through responsibilities. You can create different access control and synchronization filters for each customization package to meet individual user requirements.
About the Customization Package
A customization package is a collection of XML metadata files, .dxl files, and JavaScript files that Siebel CRM Desktop uses with a responsibility. Siebel CRM Desktop deploys a customization package when the user synchronizes the metadata. This synchronization identifies the customization package that is available to the user. You can modify the metadata files to customize your deployment. The following items are some examples of the customizations that you can make:
Add or remove fields that Siebel CRM Desktop synchronizes.
Change the design that Siebel CRM Desktop uses to display a custom form in the client.
Change a control that Siebel CRM Desktop deploys to IBM Notes.
Change a security rule.
The customization package describes the following information:
The extensions to the Siebel CRM Desktop user interface. This interface includes IBM Notes views, forms,custom elements on standard IBM Notes forms, lookup controls, and Action bar buttons.
Translated text strings that Siebel CRM Desktop uses to create prompts and labels in IBM Notes.
Data validation and security logic.
Descriptions of synchronization preset filters and view modes that Siebel CRM Desktop uses during synchronization.
Criteria that Siebel CRM Desktop uses to detect duplicate objects.
Business logic that JavaScript provides.
Data mapping between Siebel fields and IBM Notes fields.
If you change the data model, then the customization package does a complete resynchronization.
For more information, see Customizing Siebel CRM Desktop.
About Metadata Files
A metadata file is an XML, DXL, or JavaScript file that Siebel CRM Desktop uses to display Siebel CRM data and user interface behavior. Siebel CRM Desktop uses these files in the following ways:
XML files. Describes the default synchronization objects, synchronization mapping, custom views and forms in IBM Notes, and so on.
DXL files. Includes design elements that IBM Notes uses to display an object. For example, it uses a DXL file to display the Sharing Bar on a predefined IBM Notes calendar entry form.
JavaScript files. Describes business logic that Siebel CRM Desktop uses for data validation, custom actions that it provides access to in toolbars, and other custom processing that it does in IBM Notes.
The following items describe how Siebel CRM Desktop uses metadata files with a customization package:
A customization package includes a collection of metadata files. These files describe the entire Siebel CRM Desktop add-in that you deploy to IBM Notes.
A customization package consists of a set of metadata files.
Siebel CRM Desktop requires that a customization package include a minimum number of files. These files are described in Files in the Customization Package.
You can use a single metadata file with more than one customization package. These metadata files can be part of another customization package. Relationships Between Users, Responsibilities, Customization Packages, and Metadata Files illustrates this relationship where the same metadata file occurs in different packages. For example, packages 1 and 3 include metadata file 2.
Siebel CRM Desktop creates a relationship between a customization package and a single Siebel responsibility. It creates a relationship between the user and this responsibility so that the user can access the customization package and the Siebel CRM Desktop configuration that you deploy to IBM Notes.
For more information, see Files in the Customization Package.
How Siebel CRM Desktop Reuses, Modifies, and Updates Metadata Files
Siebel CRM Desktop creates a relationship between each customization package and a collection of metadata files, and it can use each metadata file with more than one customization package. You cannot modify the metadata file after Siebel CRM Desktop creates a relationship between this metadata file and an active deployment package. You can export, modify, and then reimport the metadata file to create a new metadata file. Although multiple customization packages can reference the same metadata files, one or more metadata files typically use different customization packages that include different information.
For example, the IBM Notes Sales Representative responsibility is different and separate from the IBM Notes Sales Manager responsibility. Although you can create a relationship between an existing responsibility and a customization package, it is recommended that you create a new responsibility. This configuration provides you with more control in determining the users that Siebel CRM Desktop uses with a customization package.
For more information, see Using the Windows Registry to Control Siebel CRM Desktop.
About Metadata Administration
You use metadata administration to create and manage a customization package. You can do the following work in metadata administration:
Upload a metadata file to the Siebel Server.
Create, update, or delete a customization package.
Display customization packages that are available, including information about a customization package, such as information about child metadata files.
Create, update, or delete a metadata file.
Display metadata files and the details about each metadata file.
Create a relationship between a metadata file and a customization package.
Download the necessary metadata files through web services for the user.
Track the expiration of a customization package and files.
Control user privileges.
Control user access to a customization package.
For more information about:
Work you do to administer metadata during installation, see Administering Metadata Files.
A description of metadata files that you can administer, see About Metadata Files.
How Siebel CRM Desktop synchronizes metadata, see How Siebel CRM Desktop Synchronizes Data Between the Client and the Siebel Server.