You are on page 1of 19

Integrating Siebel CRM with Microsoft SharePoint Server

www.SierraAtlantic.com

Headquarters
6522 Kaiser Drive, Fremont CA 94555, USA
Phone: 1.510.742.4100 Fax: 1.510.742.4101

Global Development Center


Road No 10, Banjara Hills, Hyderabad – 500034, India
Phone: 91.40.6643 6000 Fax: 91.40.6643 6111

www.SierraAtlantic.com
Summary
Learn how to integrate Siebel CRM v7.8 to Microsoft SharePoint Server 2007.

Overview
The enterprise domains of most organizations usually have heterogeneous applications, with
key business data available to the users across the applications such as Siebel CRM, SAP,
or PeopleSoft. In such scenarios, there arises a need to have the key data available to users
in a single-stop web portal. Microsoft SharePoint Server (SPS) offers one such portal to
organizations across the globe.

This white paper provides prescriptive guidance on the appropriate approach to build an
integration solution between Microsoft SharePoint Server 2007 and Siebel CRM v7.8 using
web services. Once integrated, SPS 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 the
Line-of-Business (LOB) applications, in this case being Siebel CRM. Insertion and deletion of
data in Siebel CRM from SharePoint portal is outside the scope of this document.

Integration Benefits and Values


Outlined below are the benefits that can be achieved from this integration solution:

• It provides a one stop data access of different LOB applications


• Requires no training for SharePoint users in Siebel as they can access the Siebel
data on the Share point portal itself
• SharePoint functionality features enable Siebel data to improve the efficiency of the
SharePoint users as well as service levels to the customer
• Users of SharePoint can easily access the different Siebel features from the
SharePoint portal

Solution Configuration Overview


Business Data Catalog (BDC), a new integration feature in the SharePoint Server, provides
the means to integrate data directly to LOB applications through Web services. It enables
users to retrieve and display key business data from LOB applications in sites, lists, and user
profiles within SharePoint portal, without any custom coding. BDC also supports features like
specific search, full text search, filtered data views etc.

Figure 1 provides a high level overview of the participating components for this integration
solution.
Figure 1: Solution Overview Diagram

Request / HTTP
Web Part SOAP / HTTP Siebel
Response Listener Business
Process
Workflow
Web Part Service
SHARE Invocation
Layer
POINT
PORTAL Web Part Service
Config

WSDL
Siebel
Siebel
Import Publish Administration
Service Database
Screen
Definition

SIEBEL

The connectivity between the BDC and Siebel is achieved using standard Web services.
Business services in Siebel (back-end API), which query the data from the database, are
exposed as web services to be consumed by external applications. SPS invokes the Web
services using XML messages that conform to Simple Object Access Protocol (SOAP).

The Siebel application is registered in the SPS using a metadata XML. This metadata XML
defines the Web services methods implemented in Siebel; the business objects definitions
(e.g. customer) and properties (e.g. name) that a SharePoint user can understand.

SharePoint users log into the SPS Portal and select an entity to view the entity instance data.
On selecting an entity, the BDC component on SPS invokes a web service on the Siebel
server to fetch the entity information from the Siebel database. The queried data is handed
back over to the BDC component, which displays this information on the SP portal in a
Business Data List web part. SharePoint users can also select the ‘full text search’ to display
specific data or apply a filter criteria to the data displayed on the portal.

The next section of the paper describes the procedure to configure Siebel to expose the Web
services using a combination of the Siebel Client and the Siebel Tools. It also provides
guidance to build a .NET 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 SharePoint Server. We then build the BDC metadata XML that contains the
list of entities, the contained fields, and the associations between the entities. Finally, we
import the XML into BDC and configure web parts on the SPS, which invoke the web services
on Siebel to retrieve data.
Configuring Siebel Web Services
Web Services were introduced in the Siebel product suite from version 7.5 onwards. In order
to interact with the Siebel Web Services, there is some amount configuration required after
the default Siebel installation. This section describes the configuration necessary to expose
the Siebel Web Services.
In order to configure the Siebel Web Services, we require the Siebel Tools and the Siebel
Client.

Creating Siebel Object Definitions from Siebel Tools


The out-of-the-box integration object definitions in Siebel contain a super-set of all the
integration components and fields available in any particular entity. These integration object
definitions need to be customized as per individual business requirements.

In the present context, we will create a copy of the built-in account integration object definition
and inactivate the integration components and fields, which are of least use. We thus build a
new integration object on top of the business object layer, which is later used while
configuring the web services in Siebel.

Following are the steps to be taken to achieve this:


1. Launch Siebel Tools and login to the Siebel Server using the credentials provided to
you
2. On the Object Explorer, which appears on the left side of the screen, select the Project;
this will list all the projects available on the Siebel Server
3. Create a new project by name MOSSIntegration
4. In the Object Explorer, select Integration Object. This will list all the Integration Objects
on the right hand side of the screen
NOTE:
Some object types may not be visible in the Object Explorer. To ensure that you are able
to view all object types, select the Options menu item in the View menu. In the
Development Tool Options menu that appears, select the Object Explorer tab. Add any
object to the Object Explorer that is not visible.

5. Select the Account Integration Object and create a copy of the same. Name it as
MOSSAccount and add it to the MOSS Integration project created in Step 3.

6. Select the Integration Component in the Object Explorer. The child attributes of the
Integration Object, which are also the elements of the Integration components, will now
appear in the right window pane.
7. Set the inactive flags to true in case you need to deactivate a field in the Integration
Component. Repeat for all Integration Components and field within the MOSSAccount
Integration Object.
8. Select Business Service in the Object Explorer window. This displays the list of
available business services in the right hand side of the screen.
9. Select and create a copy of the EAI Siebel Adapter Business Service, name it as
MOSSAccountBS and save it in the MOSSIntegration project
10. In the MOSSAccountBS, deactivate all the methods other than the Query and
QueryPage methods

11. In the active business service methods mentioned in step 10, change the Siebel
Message parameter data type from the hierarchy to Integration Object. Also, set the
default value of this parameter to MOSSAccount
12. Now, build these changes into your Siebel.srf file. In the Main menu, select Tools >>
Compile Projects. From the menu that appears select MOSSIntegration project and
select the Compile button

NOTE:
Check and ensure that Siebel Repository File (siebel.srf) points to the file <Local drive> \
<Siebel Client installation directory> \ web client \ OBJECTS\ ENU \ Siebel.srf
13. Ensure that the compiled changes are copied to the Server srf file. On the Siebel
Server machine, open the Services screen by navigating to Control Panel >>
Administrative Tools >> Services
14. Locate the Siebel Server service and stop it
15. After the Siebel Server service stops, follow the steps given below to copy the
compiled Siebel Repository file to the Server
a) Locate siebel.srf file on the Siebel server machine: \<Siebel server
installation directory>\ siebsrvr \ OBJECTS \ ENU \ siebel.srf> and
rename it
b) Locate the siebel.srf file on the client system: <Siebel Client installation
directory> \web client \ OBJECTS \ ENU \ Siebel.srf> and copy it
c) 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 machine and start the Siebel
Server service which was stopped in Step 11.
Enabling the Siebel Web Services
A user can enable the Siebel Web Services from within the Siebel Client by following the
steps:
1. Login to the Siebel client using the login credentials provided
2. Navigate to the Web Services Administration screen by clicking on the Site Map
icon on the Siebel home page

3. Select the Inbound Web Services option. This page is used to enable, configure
and generate the WSDL (Web Service Description Language) file for the Siebel
Web Services. WSDL completely describes the web services that are exposed.

NOTE:
The term ‘Inbound’ is used to describe the 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 paper.
4. Create a Web Service as per the configuration details mentioned below:
a) Name: MOSSAccount
b) Namespace: http://www.mssiebel.com/MOSS
c) Status: Active
d) Create a new Service Port with binding: SOAP_RPC_ENCODED,
Transport: HTTP, Type: Business Service
e) Select MOSSAccountBS as the Business Service and enter the Port
Address as
https://<SiebelServerName>/eai_enu/start.swe?SWEExtSource=WebS
ervice&SWEExtCmd=Execute&UserName=<UserName>&Password=
<Password>
f) This URL is used to access the web service; it contains the server
name at the start and Siebel user name and password parameters at
the end of the URL. The user name and password to be mentioned
here are the credentials used to access the Siebel EAI Object Manager
server component
g) Create two operations for the Query and QueryPage methods in the
MOSSAccount Business Service with the Authentication Type set to
None
h) Click on Generate WSDL to generate a WSDL file for the web service
which was just configured

NOTE:
Ensure that the EAPPS server component is up and running before the web services
configured in the above section are consumed by other applications
Configuring .NET Wrapper Web Service

The BDC consumes the Web service definitions (WSDL) dynamically at run-time. In Siebel
v7.8, it is not possible to retrieve the WSDL of an Inbound Web service via the URL; hence
the BDC cannot directly consume the web services exposed by Siebel.

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

The Business Data Catalog builds the Web service proxy classes to this .NET wrapper
automatically, when the LOB XML is loaded on the SharePoint server. It retrieves the web
services from a WSDLFetchURL specified in the BDC Metadata XML.

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

This wrapper web service can be implemented in any .NET language of your choice. With the
steps given below, a user can create the integration web service:
1. Open Visual Studio .NET and create a website followed by a blank web service
in it
2. Import the Siebel Web service (WSDL file) generated in the previous section by
clicking on Add Web Reference option in the Solution Explorer of the website
3. In the URL textbox 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
on the “Go” button to right of this text box. Visual Studio will then import the
WSDL file and display a list of the available services and methods that it contains
4. Name the Web Reference, which will also ultimately be the name of the proxy
class that it creates for this web service. Enter the name MOSSAccount and
complete the import
5. Next, construct the integration / wrapper Web service. Rename the Service.asmx
file to SiebelWebServices.asmx
6. Open the source file of the service i.e. SiebelWebServices.cs file.
7. Insert the sample code fragment given below to add the GetAccounts method to
the wrapper Web service. This method will pull the list of accounts out of Siebel.
[WebMethod]
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=<Passwor
d>";
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 }

NOTE:
This is a 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 Siebel’s WSDL.

In lines 5-7, a new Account collection object (ListOfMossaccountTopElmt) is created.


This object encapsulates the list of parameters and that result Accounts that will be
sent into and got back 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 that is to be
returned if the result set from Siebel is empty. The proxy method then makes the
query in line 26 and then 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 will return XML that represents a list of - Account objects. Save
away the URL to your web service, as you will need to specify it within the BDC
metadata XML in order to consume the web service.
Build BDC Metadata XML

The next step in this integration solution is to build the BDC Metadata XML for the Siebel
application. The BDC metadata XML describes the location and format of data within LOB
systems in terms of entities and methods. The BDC has a standardized method execution
engine that is capable of reading this metadata and retrieving the read-only data from LOB
systems, which then returns to MOSS in a standard format.

When you author metadata for the BDC, 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 BDC 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 BDC interacts with entry points exposed by the back-end system. For a back-
end system accessible through Web services, methods define the names of the Web service
operations and the parameters required to call them.

NOTE:
Please refer to “Getting Started with BDC” document for more details to build the metadata XML.

We already have ready-to-use Meta Data XML files for the following Siebel business entities
part of the present scope.
• Account
• Contact
• Business Address
• Service Request
• Activity
• Opportunity

If you want to add new entities to the metadata xml, you will need to make following changes:

• Create a new entity section in the xml


• Define the identifiers and properties for the entity
• Define the methods that describe the names of the corresponding Siebel Web
services
• Use associations to define the relationship between the new entity and the already
existing entities in BDC
Importing BDC Metadata XML

Once the BDC Metadata XML has been built, you need to import it into the BDC within the
scope of a particular Shared Service Provider (SSP) to create what is known as a BDC
Application. You can accomplish this importing process using the SSP administrative Web
pages.

Please refer to the SharePoint Server documentation for detailed steps to configure an SSP
and import the Metadata XML.

Configuring Web Parts and Testing the Integration Interface

Having imported the required metadata to create a BDC Application, there are several out-of-
the-box techniques to leverage and display its data within a portal site. Microsoft Office
SharePoint Server 2007 ships with a set of Business Web Parts that can be quickly added to
pages to query and display BDC data.

Steps to set up a Business Data Item, Business Data List, and Business Data Related List
web parts are available in the SharePoint Server documentation.

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

Other Siebel objects

Following is the list of Siebel objects apart from Account, Contact, Opportunity, Service
Request, and Action that can be configured as part of this integration solution:

• Products

SharePoint users can view the different sets of product information such as Product
lines, Products, Prices Lists. The product information can be easily tracked in the
SharePoint portal without accessing the Siebel application.

For example: Approvals of the different products sales and discounts.

Product Administration contains Products, Products with a Product Class, Products


with Price Lists, Users Access to the different Products and Prices Lists, Product
Lines, Product Features, Product Attributes, Related Products, Product Auctions,
Product Entitlements, Products Literature etc

• Assets and Quotes

A quote is an offer to a customer for specific products and services at a specific price.
End users can generate quotes such as call center agents, sales representatives,
and sales administrators. The quote may 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 the asset-based ordering, when the order has been filled, the appropriate product
line items become assets. Assets are associated with the customers account and are
a central part of the customer’s service profile.

• Catalogs

Siebel catalogs provide 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
representatives 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 the
Address.

• Positions

Positions are important for the employees whose profiles are setup in Siebel. Usually
Account team, Contact team, Opportunity team etc are driven by the Position of the
Sales team members.

NOTE:
The above-mentioned objects are related the Siebel Call Center application.
FAQs

The following FAQs has been compiled by questions that came about during this integration
process:

• Is there a wizard to deploy this integration solution?


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

• We see a different set of accounts in different logins in Siebel. Is it a security


issue?
No. A user in the Siebel application will have a position which drives the visibility of
the data. A record created by a user will be only seen by himself and would not be
visible to other user unless they are 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 in the Account Team (field in the
Accounts applet) so that the same record can be seen by the other user as well.

In this solution, when we retrieve the data in SharePoint, the BDC will pull all the
records from the Siebel database using Web services.
Conclusion

With heterogeneous applications across multiple business units, it becomes challenging for
organizations to collate information. Therefore, integrating these systems poses as a huge
investment. However, now, such organizations have a choice to easily integrate such
applications using industry standards, as described in this paper.

About Sierra Atlantic

Sierra Atlantic is a leader in offshoring enterprise applications, helping our customers


optimize their investments in enterprise business applications - ERP, CRM, and SCM – from
leading vendors such as Agile, Oracle, PeopleSoft (now Oracle), SAP and Siebel (now
Oracle). With expertise derived from deep R&D relationships with enterprise software
leaders, we offer complete lifecycle e-business application management solutions --
development, implementation, integration, upgrade, and support-- using our NShore™
methodology. We integrate these point solutions into Application Networks® that enable
seamless business processes within and outside the enterprise. With over 750 highly
satisfied customers since 1993, Sierra Atlantic headquartered in California, has offices in
Dallas, Chicago, Toronto, Boston, London, Paris, Switzerland, Dubai, India, Malaysia, and
Singapore. For more information, please visit www.SierraAtlantic.com

Balaji Gangishetty is a Senior Manager, eBusiness Integration & Outsourced


Product Development Practice, Sierra Atlantic Inc. He has over 9 years of rich
experience in packaged applications, and deep enterprise and business process
integration expertise with leading enterprise applications like Siebel, Oracle,
PeopleSoft and SAP.

You might also like