Integrating Siebel CRM with Office SharePoint Server 2007

SharePoint 2007

Summary: Learn how to integrate Siebel CRM 7.8 with Microsoft Office SharePoint Server 2007. (17 printed pages)

Balaji Gangishetty, Sierra Atlantic Inc.

July 2007

Applies to: Microsoft Office SharePoint Server 2007, Siebel CRM 7.8


Introduction to Siebel CRM Integration with SharePoint Server 2007

The enterprise domains of most organizations usually have heterogeneous applications, and key business data is available to the users across the applications such as Siebel CRM, SAP, or PeopleSoft. In such scenarios, there is a need to have the key data available to users in a single-stop Web portal. Microsoft Office SharePoint Server 2007 offers one such portal to organizations around the world.

This article provides prescriptive guidance on the appropriate approach to build an integration solution between Office SharePoint Server 2007 and Siebel CRM 7.8 by using Web services. After integration, Office SharePoint Server 2007 users can view key data from the various modules in the Siebel system.

Integration Scope

The scope of this integration is to provide a read-only view of the data retrieved from line-of-business (LOB) applications—in this case Siebel CRM. How to insert and delete data in Siebel CRM from Office SharePoint Server 2007 is beyond the scope of this article.

Integration Benefits and Values

You can achieve the following benefits from this integration solution.

  • The solution provides a one-stop data access of different LOB applications.

  • The solution requires no training for SharePoint users in Siebel because they can access the Siebel data on the SharePoint portal.

  • Office SharePoint Server 2007 features enable Siebel data to improve the efficiency of the SharePoint users, and improve the level of service provided to the customer.

  • Users of Office SharePoint Server 2007 can access the different Siebel features from the Office SharePoint Server portal easily.

Solution Configuration Overview

The Business Data Catalog, a new integration feature in Office SharePoint Server 2007, provides the means to integrate data directly to LOB applications through Web services. The Business Data Catalog enables users to retrieve and display key business data from LOB applications in sites, lists, and user profiles within an Office SharePoint Server portal without any custom coding. The Business Data Catalog also supports features such as specific search, full text search, filtered data views, and so on.

Figure 1 provides a high-level overview of the participating components for this integration solution.

Figure 1. Solution Overview diagram

Solution overview diagram

The connectivity between the Business Data Catalog and Siebel is achieved by using standard Web services. Business services in Siebel (the back-end API), which query the data from the database, are exposed as Web services that external applications can consume. Office SharePoint Server invokes Web services by using XML messages that conform to SOAP.

The Siebel application is registered in Office SharePoint Server by using a metadata XML file. This metadata XML file defines the Web service methods implemented in Siebel; the business objects are definitions (for example, customer) and properties (for example, name) that a SharePoint user can understand.

SharePoint users log onto the Office SharePoint Server portal site and select an entity for which to view the entity instance data. On selecting an entity, the Business Data Catalog component in Office SharePoint Server invokes a Web service on the Siebel server to fetch the entity information from the Siebel database. The queried data is returned to the Business Data Catalog component, which displays this information on a SharePoint portal in a Business Data List Web Part. SharePoint users can also select “full text search” to display specific data or apply a filter criteria to the data that is displayed on the portal.

The next section of this article describes the procedure to configure Siebel to expose Web services by using a combination of the Siebel client and the Siebel tools. It also provides guidance for building a Microsoft .NET Framework wrapper Web service that consumes the Siebel Web services. This wrapper Web service retrieves a Siebel dataset from the Siebel Web services, and exposes this data to the server running Office SharePoint Server. We then build the Business Data Catalog metadata XML file that contains the list of entities, the contained fields, and the associations among the entities. Finally, we import the XML file into the Business Data Catalog and configure Web Parts in Office SharePoint Server, which invoke the Web services on Siebel to retrieve data.

Configuring Siebel Web Services

Web services were introduced into the Siebel product suite in version 7.5. To interact with the Siebel Web services, you must perform some required configuration after the default Siebel installation. This section describes the configuration needed to expose the Siebel Web services.

To configure the Siebel Web services, we require the Siebel tools and the Siebel client.

Creating Siebel Object Definitions from Siebel Tools

The built-in integration object definitions in Siebel contain a superset of all the integration components and fields that are available in any particular entity. You must customize these integration object definitions according to individual business requirements.

In the present context, we create a copy of the built-in Account integration object definition and deactivate the integration components and fields that are of least use. Thus, we build a new integration object on top of the business object layer, which is later used in configuring the Web services in Siebel.

To build a new integration object on top of the business object layer

  1. Start Siebel Tools and log on to the Siebel Server using the credentials provided to you.

  2. In the Object Explorer, which appears on the left side of the screen, select Project; this displays all the projects that are available on the Siebel server.

    Figure 2. Object Explorer view

    Object Explorer view
  3. Create a new project and name it MOSSIntegration.

  4. In Object Explorer, select Integration Object. All the integration objects are listed on the right side of the screen.


    Some object types might not be visible in Object Explorer. To ensure that you view all object types, on the Vieuw menu, click Options. On the Development Tool Options menu, click the Object Explorer tab. Add any object to Object Explorer that is not visible.

  5. Select the Account integration object and create a copy of it. Name it MOSSAccount, and then add it to the MOSSIntegration project created in Step 3.

    Figure 3. Creating the MOSSAccount integration object

    Creating the MOSSAccount integration object
  6. In Object Explorer, click Integration Component. The child attributes of the integration object, which are also the elements of the integration components, appear in the right pane.

  7. If you need to deactivate a field in the integration component, set the inactive flags to true. Repeat for all integration components and fields within the MOSSAccount integration object.

    Figure 4. Integration components and fields in MOSSAccount integration object

    Integration components and fields in MOSSAccount
  8. In Object Explorer, click Business Service to display the list of available services in the right pane.

    Figure 5. List of available business services

    List of available business services
  9. Select and create a copy of the EAI Siebel Adapter Business Service, name it MOSSAccountBS, and then save it in the MOSSIntegration project.

  10. In MOSSAccountBS, deactivate all methods other than the Query and QueryPage methods.

    Figure 6. Deactivating Query and QueryPage methods

    Deactivating Query and QueryPage methods
  11. In the active business service methods mentioned in Step 10, change the Siebel Message parameter data type from hierarchy to Integration Object. Also, set the default value of this parameter to MOSSAccount.

  12. Now, build these changes into your Siebel.srf file. On the Tools menu, click Compile Projects. On the menu that appears, click MOSSIntegration project, and then click the Compile button.


    Ensure that the Siebel repository file (siebel.srf) points to the file: Local_drive\Siebel_client_installation_directory\web client\OBJECTS\ENU\Siebel.srf.

    Figure 7. Compile Projects

    Compile Projects
  13. Ensure that the compiled changes are copied to the Server .srf file. On the Siebel server computer, open the Services window by clicking Control Panel, pointing to Administrative Tools, and then clicking Services.

  14. Locate the Siebel server service and stop it.

  15. After the Siebel server service stops, use the following steps to copy the compiled Siebel repository file to the server:

    1. Locate Siebel.srf on the Siebel server computer at \Siebel server installation directory\siebsrvr\OBJECTS\ENU\siebel.srf, and then name it Siebel<Present Date>.srf.

    2. Locate the siebel.srf file on the client system: Siebel client installation directory\web client\OBJECTS\ENU\Siebel.srf, and then copy it.

    3. Paste the copied siebel.srf file to the Siebel server .srf location mentioned in Step a.

  16. Go back to the Services screen on the Siebel server computer and start the Siebel Server service that was stopped in Step 14.

Enabling Siebel Web Services

A user can enable the Siebel Web services from within the Siebel client. To do this, perform the following the steps.

To enable the Siebel Web services from within the Siebel client

  1. Log on to the Siebel client using the logon credentials provided.

  2. Navigate to the Web Services Administration screen by clicking Site Map on the Navigate menu on the Siebel home page.

    Figure 8. Site Map on Navigate menu

    Site Map on Navigate menu in Siebel
  3. Click Inbound Web Services. This page is used to enable, configure, and generate the WSDL (Web Service Description Language) file for the Siebel Web services. The WSDL file completely describes the Web services that are exposed.


    The term "inbound" is used to describe Web services that are exposed by the Siebel server. "Outbound" Web services are those that are exposed by other enterprise systems that Siebel calls for Enterprise Application Integration (EAI) purposes and are not discussed in this article.

    Figure 9. Page to enable, configure, and generate the WSDL file

    Page to enable, configure, and generate the WSDL f
  4. Create a Web service using the following configuration details.

    1. Name: MOSSAccount

    2. Namespace:

    3. Status: Active

    4. Create a new service port with the following binding: SOAP_RPC_ENCODED,Transport: HTTP, Type: Business Service

    5. Select MOSSAccountBS as the business service and enter the following port address:


      This URL is used to access the Web service; it contains the server name at the start of the URL, and Siebel user name and password parameters at the end of the URL. The user name and password mentioned are the credentials used to access the Siebel EAI Object Manager server component.

    6. Create two operations for the Query and QueryPage methods in MOSSAccount Business Service with the Authentication Type set to NONE.

    7. Click the Generate WSDL button to generate a WSDL file for the Web service that was just configured.


      Ensure that the EAPPS server component is running before the Web services configured in the earlier section are consumed by other applications.

    Figure 10. Generating the WSDL file

    Generating the WSDL file

Configuring the .NET Wrapper Web Service

The Business Data Catalog consumes the Web service WSDL files dynamically at run-time. In Siebel 7.8, it is not possible to retrieve the WSDL file of an inbound Web service via URL; thus, the Business Data Catalog cannot directly consume the Web services exposed by Siebel.

As a workaround to this issue, the connectivity between the Business Data Catalog and Siebel is achieved by using the .NET wrapper Web service that invokes the Siebel Web service and is in turn invoked by the Business Data Catalog.

The Business Data Catalog builds the Web service proxy classes to this .NET wrapper automatically when the LOB XML is loaded on the server running Office SharePoint Server 2007. It retrieves the Web services from a WSDLFetchURL specified in the Business Data Catalog metadata XML file.


A change request has been logged in the Siebel Support Web to address this enhancement. If this issue is fixed in future releases of Siebel, this section can be skipped.

You can implement this wrapper Web service in the .NET language of your choice. By performing the following steps, a user can create the integration Web service.

To create the integration Web service

  1. Open Microsoft Visual Studio 2005 and create a Web site with a blank Web service in it.

  2. Import the Siebel Web service (WSDL file) generated in the previous section by clicking Add Web Reference in Solution Explorer.

  3. In the URL box of the Add Web Reference wizard, enter the path to the WSDL file just saved from Siebel, including the name of the WSDL file, and click the Go button to right of the box.

    Visual Studio imports the WSDL file and displays a list of the available services and methods that it contains.

  4. Name the Web reference, which ultimately names the proxy class that it creates for this Web service. Type the name MOSSAccount and complete the import process.

  5. Construct the integration/wrapper Web service. Rename the Service.asmx file to SiebelWebServices.asmx.

  6. Open the source file of the service, which is SiebelWebServices.cs.

  7. Insert the following example code fragment to add the GetAccounts method to the wrapper Web service. This method pulls the list of accounts from Siebel.

    1    public MOSSAccount.Account[] GetAccounts(String Id, String Name)
    2   {
    3        MOSSAccount.MOSSAccount proxy = new MOSSAccount.MOSSAccount();
    4        proxy.Url = "http://<SiebelServerName>/eai_enu/start.swe?SWEExtSource=WebService&amp;SWEExtCmd=Execute&amp;UserName=<UserName>&amp;Password=<Password>";
    5        MOSSAccount.ListOfMossaccountTopElmt topElmt =
    6            new MOSSAccount.ListOfMossaccountTopElmt();
    7        topElmt.ListOfMossaccount = new MOSSAccount.ListOfMossaccount();
    8        MOSSAccount.Account[] accounts = new MOSSAccount.Account[1];
    9        accounts[0] = new MOSSAccount.Account();
    10        topElmt.ListOfMossaccount.Account = accounts;
    11       String filterExpression = "";
    12        String numObjects = "";
    13        if (Name == null) {
    14            Name = String.Empty;
    15        }
    16        if (Id == null) {
    17            Id = String.Empty;
    18        }
    19        if (Name.Length > 0) {
    20            filterExpression = String.Format("[Account.Name] Like \"{0}\" ", Name);
    21        } else if (Id.Length > 0) {
    22            filterExpression = String.Format("[Account.Id] Like \"{0}\" ", Id);
    23        }
    24       MOSSAccount.ListOfMossaccountTopElmt OutputtopElmt =
               new MOSSAccount.ListOfMossaccountTopElmt();
    25        OutputtopElmt = topElmt;
    26        proxy.MOSSAccountQueryPage("", "MOSSAccount", "false", "100", filterExpression, "", "All", "0", out numObjects, out topElmt);
    27        if ((topElmt.ListOfMossaccount.Account != null) && (topElmt.ListOfMossaccount.Account.Length > 0))
    28            return topElmt.ListOfMossaccount.Account;
    29        else return OutputtopElmt.ListOfMossaccount.Account;
    30    }
    This is sample code and might need additional changes to make it work in your environment.

    In lines 3-4, the proxy class is instantiated to work with the Siebel Web service. This is the class that was created when we imported the Siebel WSDL file.

    In lines 5-7, a new Account collection object (ListOfMossaccountTopElmt) is created. This object encapsulates the list of parameters and resulting Account objects that are sent to and returned from the Siebel Web service.

    Next, lines 8-10 create an array of Account objects. Based on the input parameters ID and Name, we set up the filter expressions to use the query-by-example functionality of the Siebel Web service to narrow our search (lines 11-23).

    Lines 24-25 initialize a null array for the Account collection object to return if the result set from Siebel is empty. The proxy method then makes the query in line 26, and returns the result. The Siebel Web service that we call replaces the list in topElmnt with the results of the Web service call.

  8. Compile the Web site, deploy it on a Web server of your choice, and test it. A successful result returns XML that represents a list of Account objects. Save the URL to your Web service, as you need to specify it within the Business Data Catalog metadata XML to consume the Web service.

Building the BDC Metadata XML

Next, in this integration solution, we build the Business Data Catalog metadata XML for the Siebel application. The Business Data Catalog metadata XML describes the location and format of data within LOB systems in terms of entities and methods. The Business Data Catalog has a standardized method execution engine that is capable of reading this metadata and retrieving read-only data from LOB systems, which it then returns to Office SharePoint Server in a standard format.

When you author metadata for the Business Data Catalog, you define the data you want to retrieve in terms of entities. For example, you might define an account as one entity and a contact as another entity. The Business Data Catalog metadata format also lets you define associations between entities in scenarios when there is a one-to-many relationship such as one that might exist between accounts and contacts.

The definition of a BDC entity contains identifiers, properties, and methods. The methods define how the Business Data Catalog interacts with entry points exposed by the back-end system. For a back-end system that is accessible through Web services, methods define the names of the Web service operations and the parameters that are required to call them.


For more details about how to build the metadata XML, see Business Data Catalog in the Microsoft Office SharePoint Server 2007 SDK.

We already have a ready-to-use metadata XML file for the following Siebel business entities as part of the present scope:

  • Account

  • Contact

  • Business Address

  • Service Request

  • Activity

  • Opportunity

To add new entities to the metadata XML file, you must make the following changes:

  1. Create a new entity section in the metadata XML file.

  2. Define the identifiers and properties for the entity.

  3. Define the methods that describe the names of the corresponding Siebel Web services.

  4. Use associations to define the relationship between the new entity and the already existing entities in the Business Data Catalog.

Importing Business Data Catalog Metadata XML

After the Business Data Catalog metadata XML is built, you must import it into the Business Data Catalog within the scope of a particular Shared Services Provider (SSP) to create a Business Data Catalog application. You can accomplish this import operation by using the SSP administrative Web pages.

For detailed steps to configure an SSP and import the metadata XML file, see the Microsoft Office SharePoint Server documentation.

Configuring Web Parts and Testing the Integration Interface

Having imported the required metadata to create a Business Data Catalog application, there are several built-in techniques to use and display its data within a portal site. Office SharePoint Server includes a set of Business Web Parts that you can add quickly to pages to query and display Business Data Catalog data.

Steps to set up Business Data Item, Business Data List, and Business Data-Related List Web Parts are available in the Office SharePoint Server documentation.

For information about working with business data in SharePoint lists, see Work with business data in SharePoint lists on Microsoft Office Online.

The Business Data Catalog is designed to integrate with the Office SharePoint Server 2007 Search Service. For example, you can define a back-end system and its entities as a content source so that the SharePoint Server 2007 indexing service can crawl its data and build indexes for the SharePoint Server 2007 search engine. This is a powerful feature as it allows users to discover data from back-end systems about customers, invoices, and so on, when running standard search queries through both SharePoint Server 2007 portal sites and standard Windows SharePoint Services 3.0 sites.

About Other Siebel Objects

Following is the list of Siebel objects other than Account, Contact, Opportunity, Service Request, and Action that you can configure as part of this integration solution.

  • Products

    SharePoint users can view different sets of product information such as Product lines, Products, and Pricelists. You can track the product information easily in the SharePoint portal without accessing the Siebel application. For example, you can track approvals of sales and discounts.

    Product Administration contains Products, Products with a Product Class, and Products with Price Lists. It also includes access to different Products and Price Lists, Product Lines, Product Features, Product Attributes, Related Products, Product Auctions, Product Entitlements, Product Literature, and so on.

  • Assets and Quotes

    A quote is an offer to a customer for specific products and services at a specific price. Quotes can be generated by end users such as call center agents, sales representatives, and sales administrators. The quote might include products and services (configured to show the customer-selected attributes), effective dates, price lists, any discounts by line item and by account, and the price per item.

    In asset-based ordering, when the order has been filled, the appropriate product line items become assets. Assets are associated with the customer accounts and are a central part of a customer’s service profile.

  • Catalogs

    Siebel Sales Catalog provides core functions that are used by a number of applications to organize master data, for both administrative and display purposes. Catalogs allow customers to browse for products and literature of interest. Siebel Sales Catalog, which allows employees to browse for products and literature, is available for use with the Siebel Quotes or Siebel Order modules of the Siebel Partner Relationship Management, Siebel Sales, and Siebel Call Center applications.

  • Proposals

    A sales representative can click a single button to build the correct proposal for a specific account or opportunity. Siebel Proposals uses information that sales representatives have entered in the early stages of an opportunity to create the proposal. Sales representatives can add deal-specific information to the proposal without worrying about formatting or presentation. Using the Proposal Library, the representative can find any additional information and automatically insert it into the proposal.

  • Addresses

    Addresses are associated to accounts, contacts, and service requests. Billing and shipping of the customer data information in the Siebel applications is driven by addresses.

  • Positions

    Positions are important for the employees whose profiles are set up in Siebel. Usually the Account Team, Contact Team, the Opportunity team and so on, are driven by the position of the sales team members.


    The objects in the previous list are related to the Siebel Call Center application.


The following FAQ answers questions that arose during this integration process.

  • Is there a wizard for deploying this integration solution?

    No. At this time only prescriptive guidance can be given.

  • We see a different set of accounts in different logons in Siebel. Is it a security issue?

    No. A user in the Siebel application has a position that drives the visibility of the data. A record created by a user is seen only by that user and is not visible to any other user unless that user is in the same team.

    For example, if you create an account record by SADMIN user, which needs to be seen by another user, then add the other user to the Account Team field in the Accounts applet so that the same record can also be seen by other users.

    In this solution, when we retrieve the data in Office SharePoint Server, the Business Data Catalog pulls all the records from the Siebel database by using Web services.


With heterogeneous applications across multiple different business units, it becomes challenging for organizations to collate information. Therefore, integrating these systems can be a huge investment. However, such organizations now can choose to integrate such applications easily by using industry standards, as described in this article.

About the Author

Balaji Gangishetty is a Senior Manager for Business Process Integration and Outsourced Product Development practice at Sierra Atlantic Inc. Sierra Atlantic delivers end-to-end business process integration solutions between enterprise applications and partner systems. Balaji has over nine years of rich experience in packaged applications, and has deep integration expertise with SAP, Siebel, Oracle, PeopleSoft, and JD Edwards applications.

For more details, visit

Additional Resources

Community Additions