Overview of the Adapter

About the Adapter for Siebel

The IBM webMethods Adapter for Siebel is an add-on to the IBM webMethods Integration Server that enables you to exchange data with Siebel applications. The adapter provides seamless, real-time communication to and from Siebel applications without requiring changes to your existing application infrastructure.

Using the Adapter for Siebel, Integration Server clients can run adapter services that retrieve data from, write data to, and invoke methods in Siebel applications. Clients can also interact with webMethods from a Siebel application. To do this, they can use the webMethods COM interface or custom Siebel business service methods known as EAI webMethods Transports.

For example, you might use the Adapter for Siebel to receive new information about a sales contact from an Integration Server client (IS client), and then update a Contact business component record in the Siebel application.

Architectural Overview

The Adapter for Siebel provides a set of user interfaces, services, and templates that enable you to create integrations with Siebel applications. The adapter is provided as a single package that must be installed on the Integration Server. For detailed installation instructions and software requirements, see Installing, Upgrading, and Uninstalling the Adapter for Siebel.

The following diagram shows at a high level, how an adapter service uses an adapter connection to connect to and perform an operation on your Siebel system. For more detailed information about these components, refer to the text following the diagram.

  • IBM webMethods Integration Server: The Adapter for Siebel is installed and runs on the Integration Server.
  • WmART Package: The WmART package provides a common framework for webMethods adapters (version 6.0 and later) to use the Integration Server functionality, making the Integration Server the run-time environment for the Adapter for Siebel. The WmART package is installed with the Integration Server.
  • Adapter for Siebel: The Adapter for Siebel is delivered as a single package called WmSiebelAdapter.

    The Adapter for Siebel provides Integration Server Administrator user interfaces that enable you to configure and manage adapter connections, and IBM webMethods Designer user interfaces that enable you to configure and manage adapter services.

  • Adapter Connection Templates: Adapter connection templates, which are provided with the Adapter for Siebel, enable you to configure connections that the adapter uses to connect to a Siebel Server. You must configure a connection before you can configure adapter services. For details, see Adapter Connections.
  • Adapter Services Templates: Adapter service templates, which are provided with the Adapter for Siebel, enable you to configure adapter services that Integration Server uses to initiate and perform operations (such as Query, Insert, Update, Delete, and others) on Siebel applications. For example, an adapter service could query your Siebel application to determine whether an account contact exists in your Siebel system. For details, see webMethods-to-Siebel Communication.
  • Siebel Application: The Object Manager (also known as the Business Objects Layer) resides in the Siebel application and connects to one or more repositories, each of which defines its own set of business objects and business components.

The following diagram shows a business integration where an adapter service is used to update a business component with employee data. The employee data could be provided by several different types of external Integration Server clients.

Package Management

The Adapter for Siebel is provided as a package called WmSiebelAdapter, which you manage like any package on the Integration Server. In addition, you create user-defined packages for your connections and adapter services.

There are several considerations regarding how you set up and effectively manage your packages on the Integration Server:

  • Understand how package dependencies work so you make the best decisions regarding how you manage your adapter services
  • Enable and disable packages
  • Control which development groups have access to which adapter services
  • Understand how clustering, an advanced feature of the Integration Server, works to effectively manage your adapter services

For details, see Package Management.

Adapter Connections

The Adapter for Siebel connects to a Siebel Server at run time. You configure one or more connections at design time to use in integrations. The number of connections you configure, and the types of those connections, depend on your integration needs. For example, if you have multiple Siebel installations, you can access each one using different connections.

Adapter for Siebel connections contain Siebel connection parameters that:

  • Enable the adapter connection to log in to a Siebel application.
  • Define the type of Siebel client that the adapter uses to connect to the Siebel Server (see Connection Types).
  • Enable the Integration Server to manage a pool of connection objects at run time (see Connection Pooling).
  • Enable the adapter connection to use the load balancing available with Siebel Server 7.7 and later. For more information, see Using Connections with Siebel Server Load Balancing.

You configure connections using the Integration Server Administrator. You must have webMethods administrator privileges to access the Adapter for Siebel's administrative screens.

For instructions to configure and manage Adapter for Siebel connections, see Adapter for Siebel Connections. For information about setting user privileges, see the IBM webMethods Integration Server Administrator’s Guide for your release.

For a list of tasks that you must complete before you can configure your connections, see Before Configuring or Managing Adapter Connections.

Connection Types

There are two ways in which the Adapter for Siebel can connect to your Siebel Server:

  • Siebel Java Connection: This type of adapter connection uses Siebel's Java Data Bean Business Object Interface (BOI) API to communicate with the Siebel Server. This connection requires that your Windows or UNIX platform supports a JVM that the Data Bean supports. For information about the supported versions, see Installing, Upgrading, and Uninstalling the Adapter for Siebel.
  • Siebel Windows Thin Connection: This type of adapter connection uses Siebel's COM Data Control client to communicate with the Siebel Server's Object Manager.

Both connection types use .srf files used by the Siebel Server.

Connection Pooling

The Integration Server includes a connection management service that dynamically manages connections and connection pools based on configuration settings that you specify for the connection. All adapter services use connection pooling.

A connection pool is a collection of connections with the same set of attributes. The Integration Server maintains connection pools in memory. Connection pools improve performance by enabling adapter services to reuse open connections instead of opening new connections.

Run-Time Behavior of Connection Pools

When you enable a connection, the Integration Server initializes the connection pool, creating the number of connection instances you specified in the connection's Minimum Pool Size field. Whenever an adapter service needs a connection, the Integration Server provides a connection from the pool. If no connections are available in the pool, and the maximum pool size has not been reached, the server creates one or more new connections (according to the number specified in the Pool Increment Size field) and adds them to the connection pool. If the pool is full (as specified in the Maximum Pool Size field), the requesting service will wait for the Integration Server to obtain a connection, up to the length of time specified in the Block Timeout field, until a connection becomes available. Periodically, the Integration Server inspects the pool and removes inactive connections that have exceeded the expiration period that you specified in the Expire Timeout field.

If the connection pool initialization fails because of a network connection failure or some other type of exception, you can enable the system to retry the initialization any number of times, at specified intervals.

For more information about connection pools, see Run-Time Behavior of Connection Pools in Production Environments. For information about configuring connections, see Adapter for Siebel Connections.

Using Connections with Siebel Server Load Balancing

About this task

Load balancing is a new feature introduced in Siebel Server 7.7. With this feature, depending on the number of concurrent client sessions, multiple Siebel servers can share the system work load. To make this load balancing possible, Siebel introduced the concept of a virtual server, which is a logical grouping of several Siebel servers.

The information about the underlying physical Siebel servers is abstracted from the Siebel clients. When the client requests a connection to a virtual server, the Adapter for Siebel provides it. The Siebel Java Data Bean, through which a Siebel Java Connection connects to the Siebel server, needs to know the mapping between the virtual server and the underlying Siebel servers so that it can connect to the least loaded Siebel server and start the session. This mapping is provided through a configuration file required by the Siebel Java Data Bean, called siebel.properties, which must reside in the Integration Server_directory\packages\WmSiebelAdapter\resources directory. In this file you specify the virtual server and then provide the list of servers used in the workload for a particular Siebel application.

Then, when configuring an adapter connection for a Siebel Java Connection, you provide the virtual server name in place of the gateway server and leave the Siebel Server field empty.

For example, say there are two Siebel servers, one running on the host orpheus:2321 and the second on the host eurydice:2321. Both servers are logically grouped with the virtual server callcenter_srv. When the Siebel client requests a connection to the Siebel system named callcenter_srv, the Adapter for Siebel reads the siebel.properties file to look for a virtual server entry named callcenter_srv, finds the list of physical servers represented by callcenter_srv, and connects to either orpheus:2321 or eurydice:2321.

To use Siebel Server load balancing with the adapter

Procedure

  1. Create the siebel.properties file:
    1. Using a text editor, create a file named siebel.properties in the Integration Server_directory\packages\WmSiebelAdapter\resources directory.
    2. Edit the file and add the following property:
      siebel.conmgr.virtualhosts=virtualserver=1:server1:port,2:server2:port,.. .N:serverN:port;
      

      where:

      • virtualserver is the name of the Siebel virtual server
      • server1, server2,...serverN are the names of the Siebel load balancing servers that are available to the adapter connection
      • port is the port number of the associated Siebel load balancing server

        For example, to use the servers named orpheus and eurydice (both on port 2321) that are grouped with the virtual server named callcenter_srv, to handle the processing for the call center, use the following property:

        siebel.conmgr.virtualhosts=callcenter_srv=1:orpheus:2321,2:eurydice:2321;

        You can also specify multiple Siebel virtual servers as needed for your configuration. For example, in addition to the call center server shown above, you also want to use the servers named corvette, firebird, and gto that are grouped with the virtual server named sales_srv to handle the processing for sales requests. In this case, your property would look like this:

        siebel.conmgr.virtualhosts=callcenter_srv=1:orpheus:2321,2:eurydice:2321; 
        sales_srv=1:corvette:2321,2:firebird:2321,3:gto:2321;
    3. Save and close the file.
  2. Restart the Integration Server.
    Note: Restarting the Integration Server causes the siebel.properties file to be added to the classpath, allowing the Siebel Java Data Bean to locate the file when you enable the adapter connection.
  3. When configuring the adapter connections, ensure the following connection parameters are set as follows:
    • Select the Connection Type as Siebel Java Connection.
    • Set the Gateway Server parameter to be the Siebel virtual server name.
    • Leave the Siebel Server parameter blank.
    For more information about these connection parameters, see Configuring Adapter Connections.

Built-In Services For Connections

Integration Server provides built-in services that enable you to programmatically control connections. You can use them to enable and disable a connection, and to return usage statistics and the current state (Enabled or Disabled) and error status for a connection. These services are located in the WmART package, in the pub.art.connection folder.

Another built-in service, pub.art.service:setAdapterServiceNodeConnection, enables you to change the connection associated with an adapter service. For more information, see Changing the Connection Associated With an Adapter Service at Design Time.

For more information about available services, see the IBM webMethods Integration Server Built-In Services Reference for your release.

Siebel Business Objects and Business Components

Siebel applications define a data abstraction layer that removes dependencies on the underlying databases. To access a database, Siebel applications must interact with the Siebel Object Manager. The Object Manager presents database table data in the form of business component records that represent database structures.

A business component typically represents a table in a database. Business components contain records and fields similar to those in relational database tables. For example, the Contact business object might contain the business components Customer Contact, Supplier Contact, and so on. The Customer Contact business component might contain such fields as Name and Last Contact Date.

A business object is a group of related business components. Each business component can have relationships with other business components. A relationship can be a parent/child relationship that has a one-to-many relationship (a Multi-Valued Link field) or a many-to-many relationship (an Association). The Adapter for Siebel supports both kinds of relationships.

Siebel applications store the definitions of their business objects and business components in repositories. Different repositories can define different sets of (and properties for) business objects and business components. A Siebel application can access only the repositories associated with its Object Manager. The repository that defines a business object and business component provides the object's and component's repository context.

With the Adapter for Siebel, you can configure adapter services that Query, Insert, Update, and Delete business component records. In addition, you can configure services that attach files to business component records, and services that invoke Siebel business services or Siebel business component methods on your Siebel Server. For details, see webMethods-To-Siebel Communication.

For information about Siebel business objects and business components, see the Tools Guides on the Siebel Bookshelf.

Siebel Navigation Paths

From a given business component, it is possible to "walk along" the relationships defined for that component to another component. The path you use to traverse component relationships is called the navigation path. For example, you might want to obtain all addresses for a particular account. In this case, you can traverse the parent/child relationship between Account and Address to obtain those addresses. By using navigation paths, it is possible to traverse nearly all of the business component relationships defined in the Siebel system.

You can navigate from a top-level business component to any other related component. This defines the navigation path that will be taken to reach the selected component. All operations performed by the adapter will traverse this path prior to performing the selected operation. For example, if you want to select account addresses, select Account as the business object in the tree view. From there, navigate to the Address sub-component by expanding the Account view and selecting the Business Address Multi-Valued Link. By choosing this navigation path, you perform an operation on the Address component for a particular Account.

Because a business component represents all records in a particular database table, it is necessary to identify the particular record or records on which you want to perform an operation when moving down the navigation path. You accomplish this by specifying search criteria at each level of the navigation path. For example, you might want to select the addresses for the Account named Acct1. With the Adapter for Siebel, you accomplish this by defining search expressions when you configure the adapter services for your integration.

Occasionally, to properly select the business component instances that will be affected by a given operation, you might need to specify constraints on business components that are not defined along the navigation path (for example, components that exist under the same business object as the selected component, but for which no explicit Multi-Valued Link field relationships exist). You can accomplish this by selecting additional business components under a selected business object. You then can specify search criteria constraints on these components. However, you should almost never need to specify additional business components to add the proper search criteria constraints to your operation. This option is provided for added flexibility. Typically, the use of the navigation path alone should be sufficient.

webMethods-to-Siebel Communication

To use the Adapter for Siebel to perform webMethods-to-Siebel communication, you configure adapter services. Adapter services allow you to connect to the adapter's resource and initiate an operation on the resource from the Integration Server.

You call adapter services from flow or Java services to interact with the Siebel Server. The adapter services perform operations by using Siebel's Business Object Interface (BOI) API. Integration Server then uses adapter connections that you defined earlier to execute the adapter services. See webMethods-To-Siebel Communication, for details. The flow or Java services can call adapter services from any kind of Integration Server client, including a Web browser, Java, C/C++, or Visual Basic client. For example, in a browser client you can create an HTML form that interacts with your Siebel connection using the Adapter for Siebel. Integration Server and the Adapter for Siebel must be on the same network as your Siebel connection. For instructions to invoke services, see the IBM webMethods Service Development Help for your release.

Adapter Service Templates

Adapter services are based on adapter service templates, which are provided with the Adapter for Siebel. Each template represents a specific technique for doing work on a resource. For example, you use the Query template to retrieve specified information from a Siebel business component. An adapter service template contains all of the code necessary for interacting with the resource but without the data specifications. You provide these specifications when you configure a new adapter service.

To configure a new service, you use Designer. First, you assign the service an adapter connection. Then, you select the adapter service template and supply the data specifications using Designer. Some familiarity with using Designer is required. For more information, see the IBM webMethods Service Development Help for your release.

The Adapter for Siebel provides the following adapter service templates:

Service Type Description Reference page
Query Performs a Siebel Query operation. It retrieves business component records based on one or more fields. Query Services
Insert Performs a Siebel Insert operation. It inserts a business component record with values specified for one or more fields. Insert Services
Update Performs a Siebel Update operation. It updates business component records based on the value of one or more fields. It can update one or more record fields. Update Services
Delete Performs a Siebel Delete operation. It deletes business component records based on the value of one or more fields. Delete Services
Associate Performs a Siebel Associate operation. This service establishes relationships among multi-value group (MVG) business component records. Associate Services
Attachment Creates an attachment file in a business component record, updates an existing attachment, or retrieves an attachment. Attachment Services
Business Service Invokes a Siebel business service on your Siebel Server. Business Service Services
Invoke Business Component Method Invokes a Siebel business component method on your Siebel Server. Invoke Business Component Method Services

Multi-Valued Links in Services

When creating a Query, Insert, Update, or Delete service, you can select a multi-valued link (MVL) to a child record if the business component you are using is contained in any MVL relationships. The child fields are in a multi-value group (MVG) business component. When a service returns an MVG business component field value, it returns only one value for the field. Siebel recognizes this value as the primary value. This primary value is always stored in the parent business component.

For example, suppose you want to query the primary business address of a particular account. To do this, you configure a query that uses a multi-valued link to navigate from the Account business component to its child business component, Business Address.

MVL relationships are part of a chain; each business component determines which links are available from it. Not all business components have MVL relationships. The MVL relationships between business components are defined within Siebel and cannot be changed using the adapter.

Changing the Connection Associated With an Adapter Service at Design Time

Integration Server provides a built-in service that you can use at design time to change the connection associated with an adapter service. This built-in service, named setAdapterServiceNodeConnection, is provided in the WmART package's pub.art.service folder. Using this service, you can change the specific connection associated with an adapter service at design time so that you do not need to create and maintain multiple adapter services.

Note: This built-in service can be run at design time only. Do not use it within an Integration Server flow or Java service. You must run this service directly from Designer by selecting the service in one of those tools and running it.

For details, see the IBM webMethods Integration Server Built-In Services Reference for your release.

Other built-in services enable you to control connections. For more information, see Built-In Services For Connections.

Changing the Connection Associated with an Adapter Service at Run Time

Integration Server enables you to dynamically select the connection a service uses to interact with the adapter's resource. This feature enables one service to interact with multiple, similar backend resources.

For example, a service can be defined to use a default connection that interacts with the Siebel Business Object Interface of Siebel Server. However, at run time you can override the default connection and instead use another connection to interact with the Siebel Business Object Interface of another Siebel Server.

For more information about overriding a service's default connection at run time, see Dynamically Changing a Service's Connection at Run Time.

Passing Credentials at Run Time while Invoking an Adapter Service

With versions of the Adapter for Siebel prior to 6.0 SP3, you must configure a connection for each user connecting to the Siebel Server by providing individual user name and password credentials for each connection. For example, if multiple users needed to connect to the same Siebel Server, you were required to configure one connection for each user at design time.

With Adapter for Siebel 6.0 SP3, you can dynamically provide the user name and password credentials associated with a specific adapter service at run time. This capability enables you to override the connection that was associated with the adapter service at design time. If you provide the user name and password credentials in an adapter service at run time, the Adapter for Siebel connects to the Siebel Server using the new credentials, along with the other connection parameters associated with the service's associated connection. If you do not provide any user credentials at run time, the adapter service is invoked using the user credentials provided at design time.

Note: To retrieve information from the Siebel Server when configuring adapter services, the Adapter for Siebel uses the connection parameters in the service's associated connection.

Query Services

A Query service performs a Siebel Query operation. It retrieves business component records based on one or more fields.

To configure Query services, see Configuring Query, Insert, Update, and Delete Services.

Query Service Run-Time Processing

The following diagram illustrates how the Adapter for Siebel processes a Query service at run time.

Step Description
1 A flow or Java service, typically invoked by an Integration Server client, initiates the Query service on the Integration Server. The client passes the required input information to the service.

You configure the Query service and the wrapping flow or Java service using Designer.

2 The adapter service retrieves a connection from the service's associated connection pool.

You configure and enable the adapter connection using the Integration Server Administrator. Adapter connections contain attributes that help the adapter connect to the Siebel application. For more information about connection pooling, see Connection Pooling.

3 The Object Manager performs the Query service's operation, based on the search criteria specified in the service. The service uses Siebel's Business Object Interface (BOI) API to process the operation.
4 If the operation is successful, the Object Manager passes the result to the Query service, which returns the result to the client.

If the operation is unsuccessful, the Object Manager returns an error to the adapter, which passes the exception to the Integration Server logs. For more information about how the adapter handles exceptions, see Logging and Exception Handling.

Insert Services

An Insert service performs a Siebel Insert operation. It inserts a business component record with values specified for one or more fields.

To configure Insert services, see Configuring Query, Insert, Update, and Delete Services.

Insert Service Run-Time Processing

The following diagram illustrates how the Adapter for Siebel processes an Insert service at run time.

Step Description
1 A flow or Java service, typically invoked by an Integration Server client, initiates the Insert service on the Integration Server. The client passes the required input information to the service.

You configure the Insert service and the wrapping flow or Java service using Designer.

2 The adapter service retrieves a connection from the service's associated connection pool.

You configure and enable the adapter connection using the Integration Server Administrator. Adapter connections contain attributes that help the adapter connect to the Siebel application. For more information about connection pooling, see Connection Pooling.

3 The Object Manager performs the Insert service's operation, based on the search criteria specified in the service. The service uses Siebel's Business Object Interface (BOI) API to process the operation.
4 If the operation is successful, the Object Manager passes the result to the Insert service, which returns the result to the client. The result is a string field that indicates the row ID of the row inserted by the service.

If the operation is unsuccessful, the Object Manager returns an error to the adapter, which passes the exception to the Integration Server logs. For more information about how the adapter handles exceptions, see Logging and Exception Handling.

Update Services

An Update service performs a Siebel Update operation. It updates business component records based on the value of one or more fields. It can update one or more record fields.

To configure Update services, see Configuring Query, Insert, Update, and Delete Services.

Update Service Run-Time Processing

The following diagram illustrates how the Adapter for Siebel processes an Update service at run time.

Step Description
1 A flow or Java service, typically invoked by an Integration Server client, initiates the Update service on the Integration Server. The client passes the required input information to the service.

You configure the Update service and the wrapping flow or Java service using Designer.

2 The adapter service retrieves a connection from the service's associated connection pool.

You configure and enable the adapter connection using the Integration Server Administrator. Adapter connections contain attributes that help the adapter connect to the Siebel application. For more information about connection pooling, see Connection Pooling.

3 The Object Manager performs the Update service's operation, based on search criteria specified in the service. The service uses Siebel's Business Object Interface (BOI) API to process the operation.
4 If the operation is successful, the Object Manager passes the result to the Update service, which returns the result to the client. The result is a string field that indicates the number of rows updated by the service.

If the operation is unsuccessful, the Object Manager returns an error to the adapter, which passes the exception to the Integration Server logs. For more information about how the adapter handles exceptions, see Logging and Exception Handling.

Delete Services

A Delete service performs a Siebel Delete operation. It deletes business component records based on the value of one or more fields.

To configure Delete services, see Configuring Query, Insert, Update, and Delete Services.

Delete Service Run-Time Processing

The following diagram illustrates how the Adapter for Siebel processes a Delete service at run time.

Step Description
1 A flow or Java service, typically invoked by an Integration Server client, initiates the Delete service on the Integration Server. The client passes the required input information to the service.

You configure the Delete service and the wrapping flow or Java service using Designer.

2 The adapter service retrieves a connection from the service's associated connection pool.

You configure and enable the adapter connection using the Integration Server Administrator. Adapter connections contain attributes that help the adapter connect to the Siebel application. For more information about connection pooling, see Connection Pooling.

3 The Object Manager performs the Delete service's operation, based on search criteria specified in the service. The service uses Siebel's Business Object Interface (BOI) API to process the operation.
4 If the operation is successful, the Object Manager passes the result to the Delete service, which returns the result to the client. The result is a string field that indicates the number of rows deleted by the service.

If the operation is unsuccessful, the Object Manager returns an error to the adapter, which passes the exception to the Integration Server logs. For more information about how the adapter handles exceptions, see Logging and Exception Handling.

Associate Services

An Associate service performs a Siebel Associate operation. This service establishes relationships among multi-value group (MVG) business component records.

These associations have a many-to-many relationship. For example, if you are creating orders, and you want to associate line items with the multi-valued link field in the orders, you would associate the line items with the order.

Each level in the navigation path must return a single record. You can associate only those component records that are linked by an association relationship in Siebel.

To configure Associate services, see Configuring Associate Services.

Associate Service Run-Time Processing

The following diagram illustrates how the Adapter for Siebel processes an Associate service at run time.

Step Description
1 A flow or Java service, typically invoked by an Integration Server client, initiates the Associate service on the Integration Server. The client passes the required input information to the service.

You configure the Associate service and the wrapping flow or Java service using Designer.

2 The adapter service retrieves a connection from the service's associated connection pool.

You configure and enable the adapter connection using the Integration Server Administrator. Adapter connections contain attributes that help the adapter connect to the Siebel application. For more information about connection pooling, see Connection Pooling.

3 The Object Manager performs the Associate service's operation. That is, it associates the business components specified in the service. The service uses Siebel's Business Object Interface (BOI) API to process the operation.
4 If the operation is successful, the Object Manager passes the result to the Associate service, which returns the result to the client. The output is a string field that indicates the number of rows of the associated MVG business component record.

If the operation is unsuccessful, the Object Manager returns an error to the adapter, which passes the exception to the Integration Server logs. For more information about how the adapter handles exceptions, see Logging and Exception Handling.

Attachment Services

An Attachment service creates an attachment file in a business component record, updates an existing attachment, or obtains an attachment. To do this, at run time you specify that the Attachment service invokes one of the following Siebel methods: CreateFile, PutFile, or GetFile, respectively.

To configure Attachment services, see Configuring Attachment Services.

Attachment Service Run-Time Processing

The following diagram illustrates how the Adapter for Siebel processes an Attachment service at run time.

Step Description
1 A flow or Java service, typically invoked by an Integration Server client, initiates the Attachment service on the Integration Server. The client passes the required input information to the service.

You configure the Attachment service and the wrapping flow or Java service using Designer.

2 The adapter service retrieves a connection from the service's associated connection pool.

You configure and enable the adapter connection using the Integration Server Administrator. Adapter connections contain attributes that help the adapter connect to the Siebel application. For more information about connection pooling, see Connection Pooling.

3 The Object Manager performs the Attachment service's operation. That is, it creates, updates, or obtains the attachment file specified in the service, using Siebel's Business Object Interface (BOI) API to process the operation.
4 If the operation is successful, the Object Manager passes the result to the Attachment service, which returns the result to the client. The output is a string field that indicates Success or Failure. If the service invoked a GetFile method, the field also indicates the path of the attachment returned by the service.

If the operation is unsuccessful, the Object Manager returns an error to the adapter, which passes the exception to the Integration Server logs. For more information about how the adapter handles exceptions, see Logging and Exception Handling.

Business Service Services

A Business Service service invokes a Siebel business service on your Siebel Server.

Siebel business services are reusable code modules that perform specified functions while running in the Siebel Object Manager. For example, a business service might perform a tax calculation function. Siebel provides several predefined business services. Alternatively, you can write your own business services using Siebel VB or Siebel eScript.

You can trigger or invoke business services from various contexts within the Siebel environment, including user interface events, Siebel Workflow actions, inbound message requests, and from external applications.

Note the following:

  • The data that the Integration Server passes to the Siebel business service must be of the data type String. This data must not be nested. If you need to pass nested data, add the webMethods docToString flow service to your adapter service to convert the nested data into a single string before passing the data. To recreate the nested data in Siebel, add the appropriate logic to your Siebel business service.
  • The output that the Siebel business service returns cannot contain nested data. If you need to pass nested data to the Integration Server, use appropriate logic in the Siebel business service to convert the data into a single string before returning the data to the Integration Server. When the adapter service receives the data, use the webMethods stringToDoc flow service to recreate the original nested data structure.

To configure Business Service services, see Configuring Services That Invoke Siebel Business Services.

Business Service Service Run-Time Processing

The following diagram illustrates how the Adapter for Siebel processes a Business Service service at run time.

Step Description
1 A flow or Java service, typically invoked by an Integration Server client, initiates the Business Service service on the Integration Server. The client passes the required input information to the service.

You configure the Business Service service and the wrapping flow or Java service using Designer.

2 The adapter service retrieves a connection from the service's associated connection pool.

You configure and enable the adapter connection using the Integration Server Administrator. Adapter connections contain attributes that help the adapter connect to the Siebel application. For more information about connection pooling, see Connection Pooling.

3 The Object Manager invokes the business service specified in the Business Service service, using Siebel's Business Object Interface (BOI) API to process the invocation.
4 If the operation is successful, the Object Manager passes the result of the Siebel business service to the Business Service service, which returns the result to the client.

If the operation is unsuccessful, the Object Manager returns an error to the adapter, which passes the exception to the Integration Server logs. For more information about how the adapter handles exceptions, see Logging and Exception Handling.

Invoke Business Component Method Services

An Invoke Business Component Method service invokes a Siebel business component method on your Siebel Server.

To configure Invoke Business Component Method services, see Configuring Services That Invoke Business Component Methods.

Invoke Business Component Method Service Run-Time Processing

The following diagram illustrates how the Adapter for Siebel processes an Invoke Business Component Method service at run time.

Step Description
1 A flow or Java service, typically invoked by an Integration Server client, initiates the Business Service service on the Integration Server. The client passes the required input information to the service.

You configure the Business Service service and the wrapping flow or Java service using Designer.

2 The adapter service retrieves a connection from the service's associated connection pool.

You configure and enable the adapter connection using the IIntegration Server Administrator. Adapter connections contain attributes that help the adapter connect to the Siebel application. For more information about connection pooling, see Connection Pooling.

3 The Object Manager invokes the business component method specified in the Invoke Business Component Method service, using Siebel's Business Object Interface (BOI) API to process the invocation.
4 If the operation is successful, the Object Manager passes the result to the Invoke Business Component Method service, which returns the result to the client. The output is a string field named Status, which contains the output generated by the method that is invoked.

If the operation is unsuccessful, the Object Manager returns an error to the adapter, which passes the exception to the Integration Server logs. For more information about how the adapter handles exceptions, see Logging and Exception Handling.

Siebel-to-webMethods Communication

There are three ways to accomplish Siebel-to-webMethods communication:

  • EAI webMethods Transports
  • Siebel Visual Basic (VB) scripts
  • HTTP posting to the Integration Server using the Siebel business service named EAI HTTP Transport

The EAI webMethods Transports offer more functionality and greater efficiency than either VB scripts or HTTP posting. The following table compares the features of all three.

Feature Transports VB Scripts EAI HTTP Transport
Supported on Windows? X X X
Supported on HP-UX and Solaris? X   X
Usable in Siebel business component scripts? X X  
Usable in Siebel workflows? X   X
Supports guaranteed delivery of data? X    
Supports both synchronous and asynchronous service invocation? X    
Supports simultaneous use by multiple users? X   X
Reduces network load by passing data in non-XML format? X    
Scalable? X    

For more information, see these sections:

EAI webMethods Transports

The EAI webMethods Transports are custom Siebel business service methods. They enable Siebel to notify Integration Server services when a change (such as an Insert, Update, or Delete) occurs within a particular Siebel business component. Transports are designed to provide interactive transportation of small volumes of data between the Siebel application and the Integration Server. Transports are built using Siebel's eScript scripting language. To see an example function that invokes a transport, see Example Transport Invocation Function.

To test transports, you can use the Siebel Business Service Simulator. For an example, see Testing Synchronous IS Service Invoke.

Transports run on the Siebel Server, using Java Data Beans to connect to the Siebel Server. You can call transports from within a Siebel business component script or from a Siebel workflow. Calling transports from workflows allows you to easily update parameters for the transports.

You can use transports to perform many tasks, including synchronously or asynchronously invoking a service on the Integration Server, getting a transaction's status or data, restarting or ending a transaction, and reporting exceptions. For more information, see EAI webMethods Transports.

Note: EAI webMethods Transports are supported on Siebel 7.x on Windows, HP-UX, and Solaris platforms. Before you can use transports, you must configure your system as described in Installing, Upgrading, and Uninstalling the Adapter for Siebel.

Note the following:

  • The data returned by an Integration Server service must be of the data type String.
  • The data returned by an Integration Server service must not be nested. If you need to return nested data, add to your Integration Server service the webMethods flow service docToString to convert the incoming data into a single string before returning the data. The transport's outputData child property set will contain this string when the Invoke operation is completed. You can retrieve the data (which is in the form of a string) from outputData.

EAI webMethods Transport Run-Time Processing

The following diagram shows how the transport method Synchronous IS Service Invoke in the Siebel application invokes a flow or Java service on the Integration Server. The service may return data to the transport, using the Object Manager to complete the processing.

For more information about using transports, see EAI webMethods Transports.

Siebel Visual Basic Scripts

The Siebel Event Model enables you to attach procedures to Siebel objects, such as business components and applets. You can specify that when a particular event is triggered, such as when users modify a business component record or click an applet control, the attached procedure runs.

You write procedures using Siebel's scripting language, Siebel Visual Basic (VB). Because Siebel VB is compatible with Microsoft's Visual Basic, you can write procedures that can interact with COM objects. The COM interface, enables Siebel VB to call adapter services and pass values to them. For example, you might create a Siebel procedure that notifies an Integration Server client when a new sales contact is created.

If you want a GUI event to call adapter services, you can attach a procedure to a control in a Siebel application GUI applet. For example, you could attach a Siebel VB procedure to a Siebel application applet's OK button. When users click the OK button, the Siebel VB procedure then invokes an adapter service.

If you want some kind of business component processing to trigger an event that calls adapter services, you might place the script within one of the predefined procedures that are attached to business components. For example, you might place a script in the Contact business component's WriteRecord event.

For information about writing a Siebel VB script, see Siebel Visual Basic Scripts.

Siebel VB Script Run-Time Processing

The following diagram shows the run-time processing of the example mentioned above.

Step Description
1 A Siebel client adds a new Contact business component record named John Smith.
2 The Siebel event associated with the Contact business component, WriteRecord, is triggered. WriteRecord's Siebel VB procedure calls the adapter service WriteContact, and passes input values as a Values object.
3 The adapter service WriteContact processes and sends a notification to the Integration Server client notifying it of the addition of John Smith.

For more information about writing Siebel VB scripts, see Siebel Visual Basic Scripts.

EAI HTTP Transport

The EAI HTTP Transport business service enables your Siebel application to post XML documents or flat files to the Integration Server. Using this posting service is a viable solution, but it is not as scalable and secure as the webMethods transports because the service:

  • Does not provide the Quality of Service (QoS) that the webMethods transports provide, such as security, guaranteed delivery, failover support, clustering, connection management, and thread management.
  • Uses an additional layer of transformation between an XML document and an Integration Server record.
  • Uses an additional layer of transformation between an XML document, a Siebel integration object, a Siebel business object, and a Siebel business component.

For information about using the EAI HTTP Transport business service, see your Siebel documentation. For information about how the Integration Server can retrieve data for services, see the IBM webMethods Integration Server Administrator’s Guide for your release.

Using Version Control Systems to Manage Adapter Elements

The adapter supports the Version Control System (VCS) Integration feature provided by Designer. When you enable the feature in Integration Server, you can check adapter packages or elements into and out of your version control system from Designer. For more information about the VCS Integration feature, see the Configuring the VCS Integration Feature.

Beginning with Integration Server 8.2 SP3, the adapter supports the local service development feature in Designer. This feature extends the functionality of the VCS Integration feature to check package elements and their supporting files into and out of a VCS directly from Designer. For more information about local service development and how it compares to the VCS Integration feature, see the IBM webMethods Service Development Help.

Optimize Infrastructure Data Collector Support for the Adapter

Optimize Infrastructure Data Collector monitors the system and operational data associated with webMethods run-time components such as Integration Servers, Broker Servers, Brokers, and adapters, and reports the status of these components on Optimize for Infrastructure other external tools. When you start monitoring an Integration Server, Optimize Infrastructure Data Collector automatically starts monitoring all ART-based adapters that are installed on the Integration Server.

For information about monitored key performance indicators (KPIs) collected for the monitored adapter components, see the Administering IBM webMethods Optimize for your release.

Viewing the Adapter's Update Level

You can view the list of updates that have been applied to the adapter. The list of updates appears in the Updates field on the adapter's About page in the Integration Server Administrator.

Controlling Pagination

About this task

When using the adapter on Integration Server 8.0 and later, you can control the number of items that are displayed on the adapter Connections screen and Notifications screen. By default, 10 items are displayed per page. Click Next and Previous to move through the pages, or click a page number to go directly to a page.

To change the number of items displayed per page, set the watt.art.page.size property and specify a different number of items.

To set the number of items per page

Procedure

  1. From Integration Server Administrator, click Settings > Extended.
  2. Click Edit Extended Settings. In the Extended Settings editor, add or update the watt.art.page.size property to specify the preferred number of items to display per page. For example, to display 50 items per page, specify:
    watt.art.page.size=50
  3. Click Save Changes. The property appears in the Extended Settings list.

    For more information about working with extended configuration settings, see the IBM webMethods Integration Server Administrator’s Guide for your release.