Overview
About the Adapter
Adapter for Salesforce is an add-on to webMethods that enables you to interact with Salesforce.com and Database.com. Salesforce.com is a Customer Relationship Management (CRM) solution that is Software as a Service (SaaS), on-demand, and Web-based. Database.com is a cloud database managed by Salesforce.com.
Salesforce.com provides Force.com as a computing platform, from which it exposes access to its CRM data via a Web services API. Salesforce.com publishes a WSDL file to describe the Web services. Adapter for Salesforce uses the API to interact with Salesforce.com. Using adapter service templates, you can create adapter services that use the API to perform operations against the Salesforce.com CRM data. Your Integration Server Administrator clients can create and run services that use these adapter services to create, query, retrieve, update, and delete CRM data. For example, you can use Adapter for Salesforce to synchronize non-Salesforce.com CRM data with CRM data in Salesforce.com.
Database.com is a multitenant enterprise cloud database managed by Salesforce.com and designed to store data for mobile, social, web, and desktop applications. Salesforce Developer, Enterprise, and Unlimited editions use Database.com in the background when performing tasks, such as creating custom objects, managing security, or importing data using the Force.com platform and API. However, Salesforce.com and Database.com have different logon credentials. Based on the logon credentials you use, Adapter for Salesforce connects to either Salesforce.com, or Database.com.
Architecture and Components
Adapter for Salesforce provides a set of user interfaces, services, and templates that enable you to create integrations with Salesforce.com. The adapter is provided as a single package that must be installed on Integration Server. For detailed installation instructions and software requirements, see Installing, Upgrading, and Uninstalling IBM webMethods Adapter for Salesforce.
The following diagram shows at a high level how the adapter components connect to Salesforce.com:

- Integration Server Administrator . Adapter for Salesforce is installed and runs on Integration Server.
- WmART Package. The WmART package provides a common framework for webMethods version 6 and later adapters to use Integration Server's functionality, making Integration Server the run-time environment for Adapter for Salesforce. The WmART package is installed with Integration Server and provides logging, transaction management, and error handling for the adapter and its connections and services.
-
Adapter for Salesforce
.
Adapter for Salesforce is delivered as a single package called
WmSalesforceAdapter. The adapter installation includes templates from which all
adapter connections, adapter services, and adapter notifications can be
created. The adapter provides:
- Integration Server Administrator user interfaces that enable you to configure and manage adapter connections
- IBM webMethods Designer user interfaces that enable you to configure and manage adapter services and notifications
- Java stubs generated from the Partner WSDL version 25 used to channel service requests from the adapter to Salesforce.com
- Adapter Connection Templates. An adapter connection enables Integration Server to connect to Salesforce.com at run time. You must configure an adapter connection before you can create adapter services or notifications. Adapter for Salesforce provides templates for adapter connections in Integration Server Administrator. The adapter supports two types of connections: Salesforce.com connections and Salesforce.com OAuth connections. For a detailed description of adapter connections and usage information, see Adapter Connections.
- Adapter Service Templates. An adapter service enables Integration Server to execute Force.com Web services to interact with Salesforce.com. For example, an adapter service could update contact records within the Contact Salesforce object. The adapter provides adapter service templates in Designer. For more information about adapter service templates, see Adapter Services.
- Adapter Polling Notification Templates. Adapter for Salesforce uses polling notifications, which poll Salesforce.com for data changes in the organization's data using the supported Data replication APIs, getUpdated() and getDeleted(). For a detailed description of adapter polling notifications, see Adapter Polling Notifications.
- Adapter Listener Template. Using a Salesforce.com OAuth adapter connection, a listener waits to receive a message from Salesforce.com. When a message appears on a topic that the listener is subscribed to, Salesforce.com pushes the message to the listener. The listener then passes the message to a listener notification. You must configure adapter listeners before you can configure listener notifications. For a detailed description of adapter listeners, see Listeners.
- Adapter Listener Notification Templates. A listener notification works in conjunction with a listener to process messages in Adapter for Salesforce. When a listener receives a message from a Salesforce.com topic, the listener passes the message to an enabled listener notification that you associated with the listener. The listener notification processes the message either asynchronously or synchronously. For a detailed description of adapter listener notifications, see Listener Notifications.
- Salesforce.com. Adapter for Salesforce uses the Force.com Web services API to access Salesforce.com CRM data. Salesforce.com publishes a Partner WSDL for the Web services describing the various supported APIs that can be invoked to access the CRM data. For information about the Salesforce.com components that the adapter requires, see Requirements.
The following diagram illustrates the use of Adapter for Salesforce and Integration Server in a typical business process integration.

Adapter Package Management
Adapter for Salesforce is provided in the WmSalesforceAdapter package. You manage this package like any package on Integration Server. Follow these steps to set up and effectively managing your packages on Integration Server:
- Create user-defined packages for your connections, adapter services, and adapter notifications. See Managing the Adapter Package for details.
- Understand how package dependencies work so you make the best decisions regarding how you manage your adapter services and adapter notifications. See Package Dependency Requirements and Guidelines for details.
- Control which development groups have access to which adapter services and adapter notifications. See Controlling Group Access for details.
- Understand how clustering, an advanced feature of Integration Server, works to effectively manage your adapter services and adapter notifications. For more information, see Using the Adapter in a Clustered Environment.
- Enable and disable packages. For more information, see Enabling and Disabling Packages.
- Load, reload, and unload packages. For more information, see Loading, Reloading, and Unloading Packages.
Adapter Connections
You create one or more connections at design time to use in integrations. The number of connections you create depends on your integration needs.
Adapter for Salesforce connections contain credentials that Integration Server must supply to Salesforce.com and Database.com when the adapter invokes Web services that act on the organization data. You configure connections using Integration Server Administrator. You must have webMethods administrator privileges to access the administrative screens of the adapter.
Types of Adapter Connections
- Salesforce.com connection, which connects in a standard way to Saleforce.com or Database.com.
- Salesforce.com OAuth connection, which uses the OAuth 2.0 authorization framework to connect to Salesforce.com or Database.com.
The OAuth framework allows secure authentication for accessing a user’s data, without handing out the user’s credentials (username and password).
When the adapter makes a login request, Salesforce.com sends two parameters as a response for making all subsequent calls. The parameters depend on the type of adapter connection that you use.
The following table shows the parameters that Salesforce.com sends for each connection type and how the adapter connection interacts with the backend.
| Type of connection | Parameters that Salesforce.com sends at a login request from adapter | Adapter connection interaction with Salesforce.com |
|---|---|---|
| Salesforce.com |
|
Salesforce.com enforces a session timeout limit that invalidates the sessionId when a configured limit is reached. In order to keep the Salesforce.com connection valid, the adapter monitors the value of the Session Timeout parameter and logs in again before the session times out. Maintaining the adapter connection ensures that the adapter service does not fail because of an INVALID_SESSION_ID error. |
| Salesforce.com OAuth |
|
Salesforce.com enforces a session timeout limit that invalidates the accessToken when a configured limit is reached. In order to keep the Salesforce.com OAuth connection valid, the adapter monitors the value of the Session Timeout parameter and logs in again before the session times out. Maintaining the adapter connection ensures that the adapter service does not fail because of an INVALID_ACCESS_TOKEN error. |
For instructions on configuring, viewing, editing, enabling, and disabling Adapter for Salesforce connections, see Adapter 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 do before you can create your connections, see Before Configuring or Managing Adapter Connections.
Connection Pools
Integration Server includes a connection management service that dynamically manages connections and connection pools based on configuration settings that you specify for the connection. By default, connection pooling is enabled for all adapter connections.
A connection pool is a collection of connections with the same set of attributes. Integration Server maintains connection pools in memory. Connection pools improve performance by enabling adapter services to reuse open connections instead of opening new connections. Depending on the type of edition subscribed by the organization, Salesforce.com limits the number of API requests or calls that any one organization may execute concurrently, or within any 24 hour period. Ensure that you set the Minimum Pool Size and Maximum Pool Size parameters of adapter connection appropriately. For information about these parameters, see Configuring Adapter Connections. For more information on API usage metering, see the Force.com Web Services API Developer's Guide.
Run-Time Behavior of Connection Pools
When you enable a connection, Integration Server initializes the connection pool, creating the number of connection instances you specified in the Minimum Pool Size parameter of the connection. Whenever an adapter service needs a connection, 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 Pool Increment Size), and adds them to the connection pool. If the pool is full (as specified in Maximum Pool Size), the requesting service will wait for Integration Server to obtain a connection, up to the length of time specified in the Block Timeout parameter, until a connection becomes available. Periodically, Integration Server inspects the pool and removes inactive connections that have exceeded the expiration period that you specified in Expire Timeout.
For information about configuring connections, see Adapter Package Management.
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, 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.
The setAdapterServiceNodeConnection built-in service enables you to change the connection associated with an adapter service. See Changing the Connection Associated with an Adapter Service at Design Time.
For details about the WmART services, see the IBM webMethods Integration Server Built-In Services Reference for your release.
Changing the Connection Associated with an Adapter Service at Design Time
If you want to assign a different connection to an adapter service after you configure the adapter service, use the setAdapterServiceNodeConnection built-in service, which is located in the WmART package's pub.art.service folder. This service allows you to 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.
For details about the setAdapterServiceNodeConnection service, see the Publish-Subscribe Developer’s Guide 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
You can dynamically select the connection an adapter service uses to interact with the resource of the adapter. This feature enables one service to interact with multiple, similar back-end resources.
For example, you can configure an adapter service to use a default connection that interacts with the production Salesforce.com data. However, at run time, you can override the default connection and use another connection to interact with the Force.com sandbox for testing.
Alternatively, at run time, you can override the Salesforce.com user credentials configured for that connection by specifying an alternative user name and password to connect to Salesforce.com.
For more information about overriding a service's default connection at run time, see Dynamically Changing a Service's Connection at Run Time.
Adapter Services
To use Adapter for Salesforce, you need to configure adapter services. Adapter services allow you to connect to the adapter's resource (that is, Salesforce.com) and initiate an operation on the resource from Integration Server.
You call adapter services from flow or Java services to interact with Salesforce.com. Integration Server uses adapter connections that you defined earlier to execute the adapter services. The adapter services invoke Web services in the Force.com Web services API.
Adapter services are based on templates provided with the adapter. Each template represents a specific operation you can perform against Salesforce.com CRM data, such as retrieving field values from records in a Salesforce object.
An adapter service template contains all the code necessary for interacting with Salesforce.com, but without the data specifications. You provide these specifications when you create a new adapter service. To do so, you assign an adapter connection to the service using Designer. Then select the adapter service template and supply the required data specifications.
For more information about working with services, see the IBM webMethods BPM Task Development Help for your release.
Adapter Service Templates
Adapter for Salesforce provides the following adapter service templates:
| Adapter Service Template | Description |
|---|---|
| Batch Operation | Handles a large
number of records of a Salesforce object. The service performs the following
operations against a batch of Salesforce object records:
For more details, see Configuring Batch Operation Adapter Services. |
| Create Operation | Inserts new records into one or multiple Salesforce objects. For example, you might insert new contacts in the Contact Salesforce object, or new records into both the Contact and Account Salesforce objects. For more details, see Configuring Create Operation Adapter Services. |
| Custom Query Operation | Creates a query service that allows you to configure a dynamic Salesforce Object Query Language (SOQL) statement, part of which you set at run time using input fields. For more details, see Configuring Custom Query Operation Adapter Services. |
| Delete Operation | Deletes records from the data of the organization. For example, you might delete one or more contacts from the Contacts Salesforce object. For more details, see Configuring Delete Operation Adapter Services. |
| Monitor Batch Operations | Monitors the status and displays the results of the batch operations executed by the Batch Operation service. For more details, see Configuring Monitor Batch Operations Adapter Services. |
| Query Operation | Executes a query against a Salesforce object to find matching records and return field values from those records. For example, you might query the Contacts Salesforce object to find contacts that have a certain "Title" and return the values in the FirstName and LastName fields for those matching contacts. For more details, see Configuring Query Operation Adapter Services. |
| Retrieve Operation | Retrieves records of a Salesforce object and returns field values from those records. You specify the IDs of the records to retrieve. For more details, see Configuring Retrieve Operation Adapter Services. |
| Update Operation | Updates records of one or multiple Salesforce objects. For example, you might update Address Information for a contact, or update records in both the Account and Contact Salesforce objects. For more details, see Configuring Update Operation Adapter Services. |
| Upsert Operation | Either inserts
records into or updates records of a Salesforce object. You specify how to
identify the record on which to act. If the record does not already exist, it
is inserted. If the record exists, it is updated.
For example, you might identify a contact by its external ID and provide information for the contact. If the external ID does not identify an existing contact, the contact is added; otherwise, the contact with the specified external ID is updated with the supplied information. For more details, see Configuring Upsert Operation Adapter Services. |
| Utility Operation | Invokes one of the
following Salesforce.com utilities:
For more details, see Configuring Utility Operation Adapter Services. |
Adapter Polling Notifications
Adapter for Salesforce supports polling notifications that monitor a specified sObject for changes, such as an insert, update, or delete operation, so that the appropriate Java or flow services can use the data for operations such as sending an invoice, or publishing it to Integration Server.
A polling notification periodically checks the resource at specified intervals for the occurrence of events, and publishes a document each time an event occurs in the resource. For example, your application might need to be notified when data is added, updated, and deleted from the resource. Integration Server invokes the polling notification periodically, based on the polling interval that you specify when you configure the notification.
Use Designer to configure, edit, and delete polling notifications. All notifications are configured from a notification template and require a configured connection.
For more information, see Adapter Polling Notifications.
Choice of Publish Destinations
You can choose the destination to which asynchronous polling notifications should publish messages. Specifically, you can choose whether the asynchronous polling notification templates use JMS APIs to publish messages to Integration Server or IBM webMethods Broker APIs to publish notification messages to IBM webMethods Broker.
For steps for selecting a publish destination for asynchronous polling notification messages, see Adapter Polling Notifications.
Adapter Polling Notification Templates
Adapter for Salesforce provides the following adapter polling notification templates:
| Notification Type | Notification Template | Description |
|---|---|---|
| Upsert Notification | UpsertNotification | Wraps the Force.com Web service API- getUpdated() call. Publishes notification of insert and update operations on a Salesforce object. |
| Delete Notification | DeleteNotification | Wraps the Force.com Web service API- getDeleted() call. |
These polling notifications can be configured only for those Salesforce objects that can be replicable (that is, the replicateable field for the Object is true). For information about replicating objects, see the Force.com Web Services API Developer's Guide.
Polling Notification Types
Adapter for Salesforce provides two types of polling notifications: Upsert and Delete.
Using Upsert and Delete Polling Notifications
About this task
The following table lists the tasks required to use these types of polling notification:
| Task | Use this tool... | |
|---|---|---|
| 1 | Create an adapter connection. See Configuring Adapter Connections for details. | Integration Server Administrator |
| 2 | Configure the
polling notification and specify the following:
See Configuring Adapter Polling Notifications for instructions for configuring polling notifications. |
Designer |
| 3 | If you plan to use an Integration Server flow or Java service, design it to react to the data changes contained in the polling notification's publishable document. Create the Integration Server trigger to use the notification's publishable document. For details, see the IBM webMethods Service Development Help for your release. | Designer |
| 4 | Schedule and
enable the polling notification. When you enable the polling notification, the
Integration Server Scheduler invokes the notification and continues to do so
periodically, based on the polling schedule parameters you specify.
See Managing Polling Notifications for instruction to schedule and enable notifications. |
Integration Server Administrator |
| 5 | Manage the polling notification. See Adapter Polling Notifications for details. | Designer and Integration Server Administrator |
Upsert and Delete Polling Notifications Processing
The following diagram and steps illustrate what happens when these types of polling notifications are invoked. Integration Server continues to invoke the notification periodically, as defined when you configured the polling schedule parameters for the notification.

| Step | Description |
|---|---|
| 1 | Upsert Notifications and Delete Notifications monitor the organization data modified in Salesforce.com. You specified the sObject to be monitored when you first configured the adapter polling notification. |
| 2 | The polling
notification gets a connection from the connection pool of the service.
Adapter connections contain the connection information for Salesforce.com. |
| 3 | The notification
uses the Apache Axis API to connect to Salesforce.com.
You created and enabled the adapter connection earlier using Integration Server Administrator. |
| 4 | The polling notification retrieves sObject data from Salesforce.com. |
| 5 | The polling
notification creates the publishable document, which contains data from
Salesforce.com. The notification publishes the publishable document.
For more details about Integration Server publishable documents, see the Publish-Subscribe Developer’s Guide for your release. |
| 6 | Using an Integration Server trigger, you configured to use the notification's publishable document, a flow or Java service on Integration Server is invoked to react to the data changes contained in the publishable document. |
Receiving Outbound Messages from Salesforce.com
Integration Server supports the outbound messaging feature of Salesforce.com. Using this feature, you can configure Salesforce.com to send message notifications when changes are made to Salesforce objects. In certain circumstances, this messaging feature provides advantages over adapter notifications.
In Salesforce.com, you can configure a workflow rule that defines what changes should trigger a notification, and indicates that you want Salesforce.com to send an outbound message when those changes occur. For instructions on how to configure Salesforce.com to send outbound message notifications to your Integration Server, see Salesforce.com Outbound Messaging.
The outbound message notifications from Salesforce.com are useful when you want to specify the criteria for the notification being sent to Integration Server. Salesforce.com continuously monitors the designated sObject and sends an outbound message to Integration Server when the specified field values of the monitored sObject are changed, and the defined workflow rule is executed. In contrast, adapter polling notifications retrieve only the IDs of the changed records by polling at configured intervals.
Note that in some cases, adapter polling notifications offer advantages over Salesforce.com messages. One advantage of using adapter polling notifications is that by specifying the start date for polling notifications, you have access to data changes made in the past. It is not possible to get the field values changed in the past using the outbound messages from Salesforce.com. Each outbound message contains information about the data changed in a single record, whereas adapter polling notifications can retrieve information from multiple records.
To ensure security when receiving outbound messages from Salesforce.com, place your Integration Server behind an internal firewall and place a IBM webMethods Enterprise Gateway in the DMZ to allow it to accept communications and process requests from Salesforce.com.
In an Enterprise Gateway configuration, your Integration Server, which is referred to as the Internal Server, remains behind your inner firewall where external clients cannot access it. You place another Integration Server in your DMZ to act as an Enterprise Gateway Server. The Enterprise Gateway Server acts as an intermediary between the Internet and your Internal Server.
The following diagram illustrates the use of outbound message notifications when using an Enterprise Gateway Server configuration.

| Step | Description |
|---|---|
| 1 | In Salesforce.com, configure a workflow rule to monitor the changes in a Salesforce object for which you want notification. Configure the workflow rule to send an outbound message when the change occurs. When defining the outbound message, specify the Enterprise Gateway external port as the endpoint URL. |
| 2 | When Salesforce.com detects the change, it sends the outbound message to the endpoint URL configured in the workflow rule. Because the Enterprise Gateway Server is configured, the outbound message first goes to the Enterprise Gateway Server. The Enterprise Gateway Server passes the outbound message to the Internal Server. |
| 3 | The web service descriptor consumes the outbound message. The business logic in the web service descriptor performs processing to handle the outbound notification message. |
| 4 | In addition to performing processing to handle the notification, the web service descriptor also sends a SOAP response message back to Salesforce.com. The SOAP response message first goes to the Enterprise Gateway Server. |
| 5 | The Enterprise Gateway Server passes the SOAP response message to Salesforce.com. |
For more information about using an Enterprise Gateway Server, see the IBM webMethods Integration Server Administrator’s Guide for your release. For more information on setting up an Enterprise Gateway Server to receive outbound messages from Salesforce.com, see Salesforce.com Outbound Messaging.
Adapter Polling and Listener Notifications vs. the Outbound Message Notification from Salesforce.com
This section lists the differences between the adapter notifications and the outbound message notification feature of Salesforce.com.
| Functionality | Adapter Notification | Outbound Message Notification from Salesforce.com |
|---|---|---|
| Immediate notification | Available through listener notifications | Available |
| Security | Available | Available only if you are using an Enterprise Gateway Server. |
| Access to past data changes | Available | Not available |
| Bulk data retrieval | Available | Not available |
| Conditional notification | Not available | Available |
Adapter Listeners and Listener Notifications
Adapter for Salesforce provides listeners and listener notifications to perform the following functions:
- Monitor messages
- Filter messages
- Process messages
Listeners
Using a Salesforce.com OAuth adapter connection, a Adapter for Salesforce listener waits to receive a message from Salesforce.com. When a message appears on a topic that the listener is subscribed to, Salesforce.com pushes the message to the listener. The listener then passes the message to a listener notification.
Adapter for Salesforce has single-topic listeners that listen to a single topic.
You never invoke a listener directly from a service or client. Instead, a listener is a real-time process that you configure, enable, and disable using Integration Server Administrator.
- All listeners stop functioning when the package containing the listener node is disabled or when Integration Server shuts down.
- All listeners start functioning when the package containing the listener node is enabled or when Integration Server restarts.
Listener Notifications
A listener notification works in conjunction with a listener to process messages in Adapter for Salesforce. When a listener receives a message from a Salesforce.com topic, the listener passes the message to an enabled listener notification that you associated with the listener.
IBM recommends that you always start a listener notification before a listener.
Ideally, you should configure only one notification per listener. If you configure multiple notifications with the same listener, the listener can pass the message to any of the notifications. If you configured multiple notifications with a listener, keep enabled only the notification that you want to be executed.
The listener notification processes the message either asynchronously or synchronously.
Adapter for Salesforce has two types of listener notifications:
- Asynchronous Listener Notifications
- Synchronous Listener Notifications
Asynchronous Listener Notifications
When you create an asynchronous listener notification, Adapter for Salesforce creates a publishable document type. At run time, after the listener receives a message from the topic, the listener invokes the asynchronous notification. The asynchronous notification publishes the document created with the asynchronous notification.
An asynchronous listener notification can publish a document in either of the following ways:
- Publish to a JMS queue or topic when Integration Server is connected to a JMS provider.
- Publish locally to Integration Server when Integration Server is not connected to a JMS provider.
To process the message from the topic, you should create an Integration Server trigger that subscribes to the publishable document type that Adapter for Salesforce created with the asynchronous listener notification. For more information about using triggers with services, see the Publish-Subscribe Developer’s Guide for your release.
For the steps for selecting a publish destination for asynchronous listener notification messages, see Configuring an Asynchronous Listener Notification.
Synchronous Listener Notifications
When you create a synchronous listener notification, Adapter for Salesforce creates the following publishable document types:
- Request document
- Reply document
At run time, the synchronous listener notification invokes a specified adapter service and passes the message to the specified Request document. The service returns the Reply document to Adapter for Salesforce. The listener notification waits until the service has finished processing the message before it initiates the next service.
Synchronous adapter listener notifications execute flow services and return values from those services. Integration Server 8.2 supports the following two execution modes to determine how the notification executes a flow service and returns output:
- Service Invoke mode: When this mode is selected, the adapter notification invokes a flow service directly and returns values as output from that service.
- Publish and Wait mode: When this mode is selected, the adapter notification publishes the received data either to the local Integration Server or to the IBM webMethods Broker connected to that Integration Server by converting request documents into publishable documents, and then waits for a reply. This mode is needed when a synchronous adapter notification is represented as a receive step in a process model.
For steps for selecting a publish destination for synchronous listener notification messages, see Configuring a Synchronous Listener Notification.
Listener Notification Templates
Adapter for Salesforce provides the following adapter listener notification templates:
| Listener Notification | Description |
|---|---|
| Asynchronous Listener Notification | Publishes a document
that
Integration Server processes asynchronously.
Integration Server does not wait until it has finished processing a document
before processing another document.
For more information about configuring asynchronous listener notifications, see Configuring an Asynchronous Listener Notification. |
| Synchronous Listener Notification | Invokes a service to
process the message before receiving the next message.
For more information about configuring synchronous listener notifications, see Configuring a Synchronous Listener Notification. |
Run-Time Processing of Listeners and Listener Notifications
Run-time processing occurs in listeners and listener notifications in the following scenarios:
- Listeners and asynchronous listener notifications
- Listeners and synchronous listener notifications
Run-Time Processing of Listeners and Asynchronous Listener Notifications
The following diagram and steps illustrate what happens when a listener receives a message from a topic and passes the message to an asynchronous listener notification.

| Step | Description |
|---|---|
| 1 | When there is activity on the Salesforce object defined in the SOQL for a topic, the Salesforce.com account checks if there is an active listener for the topic. If an active listener is available, Salesforce.com sends the message (which is the result of executing the SOQL statement) to the listener. |
| 2 | The listener receives the message from the topic. |
| 3 | The listener checks if there is an active listener notification associated with it. If an active listener notification is available, the listener passes the message to the notification. If no notification is associated with the listener or if all associated notifications are disabled, the message is lost. If there are multiple notifications associated with the listener, any one of them (randomly) can get the message. |
| 4 | The asynchronous listener notification publishes a document that will be used by the Broker or local trigger later. |
| 5 | The listener gets the next message from the topic, and the adapter repeats steps 1 through 4. |
Run-Time Processing of Listeners and Synchronous Listener Notifications
The following diagram and steps illustrate what happens when a listener receives a message from a topic and invokes a synchronous listener notification.

| Step | Description |
|---|---|
| 1 | When there is activity on the Salesforce object defined in the SOQL for a topic, the Salesforce.com account checks if there is an active listener for the topic. If an active listener is available, Salesforce.com sends the message (which is the result of executing the SOQL statement) to the listener. |
| 2 | The listener receives the message from the topic. |
| 3 | The listener checks if there is an active listener notification associated with it. If an active listener notification is available, the listener passes the message to the notification. If no notification is associated with the listener or if all associated notifications are disabled, the message is lost. If there are multiple notifications associated with the listener, any one of them (randomly) can get the message. |
| 4 | The synchronous
listener notification creates the following documents:
|
| 5 | The synchronous listener notification invokes the configured Integration Server service by passing the request and reply documents as input parameters. The reply document is not used by the listener notification. |
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.
Infrastructure Data Collector Support
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 or other external tools. When you start monitoring an Integration Server, Infrastructure Data Collector automatically starts monitoring all ART-based adapters that are installed on 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 Integration Server Administrator.
Controlling Pagination
About this task
When using the adapter on Integration Server 8.2 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