Synchronizing service request activities using WebSphere Adapter for Siebel Business Applications

This tutorial describes a business case in which an organization needs to synchronize service requests from a Siebel system into a client application. It shows you how to create a module using WebSphere Adapter for Siebel Business Applications to synchronize the service request data.

Share:

Matu Agarwal (matu.agarwal@in.ibm.com), Software Engineer, WebSphere Adapters team, IBM

Photo of Matu AgarwalMatu Agarwal is a Software Engineer on the WebSphere Adapters team at the IBM Software Lab in Bangalore, India, where he works in Development and Customer Support. He has a Bachelor of Technology degree in Computer Science and Engineering from Harcourt Butler Technological Institute in Kanpur, and has four years of IT experience working with various Java technologies including JCA. You can contact Matu at matu.agarwal@in.ibm.com.



29 August 2012

Also available in Portuguese

Before you start

IBM® WebSphere® Adapters accelerate integration projects with a comprehensive set of JCA-compliant, platform-based capabilities to service-enable your assets within Enterprise Information Systems. This tutorial describes a business case in which WebSphere Adapter for Siebel Business Applications (hereafter called WebSphere Siebel Adapter) is used to service-enable Siebel Business Applications and create standard, reusable application interface points.

About this tutorial

This tutorial describes a business case in which an organization needs to synchronize service requests from a Siebel system into a client application. The tutorial will help you create a module using WebSphere Siebel Adapter to synchronize the Service Request data. Service Request is a business object in the Siebel system that tracks customer queries and interactions.

Objectives

This tutorial shows you how to complete the following tasks::

  • Create and configure a Siebel SCA module
  • Configure a Siebel server
  • Deploy and test the module
  • Gain a better overall understanding of the Siebel Adapter via a list of FAQs.

Prerequisites

To benefit from this tutorial, you should have some familiarity with Siebel server concepts, and with IBM Integration Designer or IBM Business Process Manager.

System requirements

The following products and assets are required for you to configure and deploy the module:

  • IBM Integration Designer V7.5 or IBM Business Process Manager V7.5 Advanced Edition
  • IBM Process Server V7.5
  • WebSphere Adapter for Siebel Business Applications V7.5
  • Access to a Siebel system with permission to create objects
  • Siebel library files Siebel.jar and SiebelJI_enu.jar.

Duration

Three hours


Business case

A company named ABC Pharmaceutical is using Siebel Sales to manage its interactions with existing and potential customers. They have implemented Sales Force Automation (SFA) to streamline all phases of the sales process and minimize the time that Sales Representatives need to spend on each phase. For a specific requirement, they are using the Account object provided by Siebel to track a customer account. It provides a Service Request business object to manage all service requests raised by that customer. Each customer interaction in a Service Request is recorded with a new Activity, which is implemented internally using the Activity Plan Action business component.

Figure 1. Business case
Business case

ABC Pharmaceutical has a business requirement to receive notification in their client application for any updates in a Service Request -- for example, if an activity is created, updated or deleted. The client application needs to synchronize this activity data from Siebel into a legacy master database, which stores the master copy of the data residing in a different Siebel system. This synchronization from different Siebel systems to the master CRM system happens once per day. This requirement has two parts -- retrieve the Service Request data from the Siebel system, and then pass it on to the master CRM system. This tutorial shows you how to develop the client application for first part, where you need to integrate all of the updates done in the Service Request object on Siebel into the client application.


Solution using WebSphere Siebel Adapter and IBM Business Process Manager

Why use WebSphere Siebel Adapter?

WebSphere Siebel Adapter helps you service-enable Siebel business applications with its graphical browsing and discovery tool, so that client applications can directly access data in a Siebel system, greatly improving data integrity.

The WebSphere Siebel Adapter enables enterprise applications to interact with Siebel business applications and perform business functions with no custom coding. To implement this business case, you use the WebSphere Siebel Adapter inbound scenario.

In Siebel server, when an Activity under a Service Request is created, modified, or deleted, a corresponding event is triggered. This event contains the primary key for that activity and is stored as a new entry in Siebel Custom Business Component with the name IBM Event. You need to add this trigger code and Custom Business Component into the Siebel system, as described below under Configuration prerequisites. WebSphere Siebel Adapter polls this event table and retrieves the updated object (in this case, Activity Plan Action) from the Siebel system using the primary key.

For inbound requests from the Siebel system, message-driven beans that implement the InboundListener interface are registered with WebSphere Siebel Adapter by WebSphere Process Server, enabling them to receive any appropriate inbound events from the Siebel system via the Adapter. The Adapter also supports an integration scenario using the Business Service Interface for both outbound and inbound operations, with the Adapter connecting to Siebel using a Siebel Data Bean API JAR file.

Figure 2. Siebel Integration using WebSphere Siebel Adapter
Siebel Integration using WebSphere Siebel Adapter

How it works

The Adapter polls for the events by looking in the Siebel Event Business Component that was created to store the event. When an object is created, updated, or deleted, a new event is triggered and stored in the table, which is polled by the Adapter based on the event status. When the Adapter finds an event for a Siebel Event Business Component, the Adapter processes the event as follows:

  1. Retrieves the event information from the Siebel Event Business Component.
  2. Retrieves the corresponding Event Business Component instance hierarchy.
  3. Populates the associated WebSphere business object or business graph (if it was generated) with the values retrieved from the Event Business Component.
  4. Sends a notification to each registered application.

Configuration prerequisites

Inbound operations are based on an event bring triggered when any record in the Siebel Business Application is created, updated, or deleted. In order to run the inbound operation with WebSphere Siebel Adapter, you need to perform the following configuration on Siebel server:

Creating Custom Siebel Business Component (event table)

You need to create a custom Siebel Business Component to store the events triggered as a result of the updates to the Siebel records. The schema for the custom Siebel Business Component cannot be changed. Creating this event table is a onetime activity. A Custom Siebel Business Component called IBM_EVENT_V8.sif is provided along with the adapter, which can be directly imported into the Siebel server. You can also manually create this Custom Business Component. For more information, see WebSphere Adapters information center or WebSphere Adapter for Siebel Business Applications -- Quick Start Scenarios.

Inserting trigger scripts into Siebel Business Objects

Triggers must be inserted into the Siebel Business Objects that are watched for events. Siebel supports Visual Basic and Siebel e-Scripts embedded in the Siebel Business Component event handlers to populate the event table. For this tutorial, insert the trigger script into the Activity Plan Action business component. The sample script code BOAccount.js for a few business components such as Account and Contact is provided along with the Adapter, and you can implement the script code in a similar way for other business components.


Configuring WebSphere Siebel Adapter

Creating the Siebel based SCA module

  1. In the IBM Integration Designer toolkit, select File => New => External Service and then click Next:
    Figure 3
  2. Select WebSphere Adapter for Siebel Business Applications and then click Next:
    Figure 4
  3. Specify the location for the Siebel data bean API JAR files and then click Next:
    Figure 5
  4. Select Inbound scenario and then click Next:
    Figure 6
  5. Specify the Siebel connection details and then click Next:
    Figure 7
  6. Query for Service Request Business Object, select Activity Plan Action Business Component, and then click Next:
    Figure 8
  7. Specify the operation that needs to be added to the service interface, and then click Next. If you need to generate the wrapper business graph, select the check box:
    Figure 9
  8. Open the Event Delivery Configuration property group and set the value of the Event type to process property, as shown below. This property acts as a filter if you want the Adapter to poll specific events from the event table:
    Figure 10
  9. Open the Event configuration property group and set the business object name for the event store:
    Figure 11
  10. Click Next and create a module. The XSD and WSDL files are generated after the wizard runs:
    Figure 12

Deploying and testing the module

  1. Add the Java component Component1 from the pallet and wire it to SiebelInboundInterface. Right-click on the Java component and click Generate implementation:
    Figure 13
  2. All methods defined in the SiebelInboundInterface WSDL file will be generated. This test verifies that the configuration is correct and that WebSphere Siebel Adapter is able to poll any modification done on the Siebel Activity Plan Action business component. It only prints the object received at the endpoint, but you can implement code to further process the object and integrate it with a legacy system. Here is the code to print the object for one of the operations:
    public void emitCreateAfterImageBOServiceRequestBCActivityPlanAction(
        DataObject emitCreateAfterImageBOServiceRequestBCActivityPlanActionInput)
            throws Exception {
            System.out.println(AdapterBOUtil.serializeDataObject(
                emitCreateAfterImageBOServiceRequestBCActivityPlanActionInput));
                    }
  3. Add IBM Process Server V7.5 in the Servers view, then right-click and select Add and Remove to deploy the module:
    Figure 14
  4. Create, update, or delete an Activity in the Activities tab, as shown below. The corresponding event is triggered, and the object retrieved by WebSphere Siebel Adapter and sent to the endpoint. To verify, use the Process Server console to print the incoming object:
    Figure 15

Frequently asked questions about WebSphere Siebel Adapter

  1. Do you have to add the event table and trigger script code at the Siebel server end for all Siebel Adapter scenarios? Is there any workaround that lets you avoid changes at the Siebel end?

    Yes, it is necessary to configure the event table and trigger script inside the Siebel server in order to run the Adapter inbound scenario, and there is no workaround. To run the Adapter outbound scenario, you do not need to make any changes at the Siebel server end.

  2. Who develops and owns the trigger code? What if I encounter problems in it?

    The Siebel script for the trigger needs to be developed and maintained by the Siebel developer. You receive sample scripts for a few business components along with the Adapter and the Siebel developer can write similar ones for other business components.

  3. My Siebel business object contains numerous fields, and the generated business object is very large. Since I only need to use a few of the fields, is there a way to generate an object using selected fields?

    Yes -- when running the external service wizard, WebSphere Siebel Adapter provides an option on the first connection screen called Prompt for additional configuration settings when adding a business object. Select this check box to import only the specific attributes that you want to generate:

    Figure 16
  4. How is the event filter property used? Can I filter events based on operation name?

    Events are filtered by business object type and operation. If the property is set, the Adapter polls and delivers only those events in the list. A blank value indicates that no filter will be applied and all events will be delivered to the endpoint. Use the following syntax:

    BOName1:Operation1|Operation2, BOName2:Operation1|Operation2|Operation3

    For example, if you only want create and update events for the Account object, use:

    BOAccountBCAccount:Create|Update

    Here are the delimiters:

    • , separates the business objects. Objects not in this list are ignored.
    • : separates the business object name from the operation name.
    • | separates the supported operations, such as Create, Update, and Delete.
    Figure 17
  5. Can I connect the Siebel Adapter to a clustered Siebel server?

    Yes. Use these steps:

    • Add VirtualServer to the connection string set on adapter. For Connection URL, use siebel://VirtualServer/siebel_server/application_name.
    • Put the siebel.properties file in the Adapter classpath, and add VirtualServer to it, together with the clustered IP addresses for the Siebel server:
      siebel.conmgr.virtualhosts=VirtualServer=1:10.20.30.170:2321,2:10.20.30.171:2321
  6. Does the Siebel Adapter support a high availability scenario?

    Yes, the Siebel Adapter supports a high availability active-passive scenario, where one instance at a time is active, and the other adapter node is running but is in a dormant state. As of V7.5 it does not support an active-active scenario.

  7. How do you manage timeouts, number of connections, and other connection properties in Siebel?

    You can configure these parameters by adding a siebel.properties file to the Adapter classpath.
    More information on supported parameters that you can set in this file.

  8. How do you enable connection reuse by the Siebel Adapter, so that it takes advantage of the Siebel connection pool and does not create a new connection every time?

    To enable connection reuse, the Siebel Adapter provides a property in the external service wizard. Select Advanced properties => Other properties => Use Resonate for load balancing on Siebel server:

    Figure 18
  9. What should I do if events are being generated correctly into the event table when the record is modified in the Siebel server, but the Adapter is unable to poll them?
    1. Verify from the traces that the Adapter is running.
    2. Check that the Custom Business Component (event table) name is set correctly in the Adapter.
    3. Check whether you have set a value for the Event types to process property. If you have, ensure that its syntax is correct -- the business object name must be the same as the one generated by event trigger code, and the Adapter must contain a definition for that business object (an XSD file with same name must be generated by the Adapter).

Resources

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into WebSphere on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=WebSphere
ArticleID=833524
ArticleTitle=Synchronizing service request activities using WebSphere Adapter for Siebel Business Applications
publish-date=08292012