Using the Partner Manager
Overview
The Partner Manager is a OnRamp for Commerce One MarketSite package (the WmPartners package) that manages the routing of documents based on a set of routing rules that you specify.
The Partner Manager:
- Accepts documents that you submit to via a special service
- Determines how the document is supposed to be routed
- Routes the document to the appropriate destination
- Tracks documents in its message store
How Does the Partner Manager Route a Document?
The Partner Manager determines how to route a document based on routing rules that you establish on your IBM webMethods Integration Server. When the Partner Manager receives a document, it looks for a routing rule that matches the following attributes of the incoming document:
- Sender
- Receiver
- Message Type
When Partner Manager locates the routing rule that matches these criteria, it executes the routing action specified by that rule. Depending on how you define the rule, the routing action might deliver the document to:
- A service on the local machine or a remote machine
- An FTP location
- An SMTP mailbox
Basic Steps to Use the Partner Manager
About this task
After you configure the message store, you can begin using the Partner Manager to automatically route documents based on their attributes. To do this, you need to take the following general steps for each type of document that you want the Partner Manager to route:
Procedure
- Build a routing rule that defines the document’s Sender, Receiver , and Message Type attributes and specifies what action you want the Partner Manager to take when it receives documents matching those attributes. For information about building routing rules, see “Building and Maintaining the Routing Rules” on page 11Building and Maintaining the Routing Rules.
- Build the service that will be used to submit the document to the Partner Manager. For information about handing documents to the Partner Manager, see Submitting Documents to Partner Manager.
Building and Maintaining the Routing Rules
Routing rules tell the Partner Manager what to do with documents it receives. A routing rule has two basic elements: routing criteria and routing action.
- The routing criteria specify the sender, receiver, and message type values that cause the routing action to occur.
- The routing action is encompassed in a flow service (called the routing service). This service performs any pre-processing actions that you specify and then invokes the outbound transport, which delivers the document to its intended destination.
Components of a Routing Rule
You use the Integration Server Administrator to create, edit, and view routing rules. Each routing rule has the following basic components.

| Number | Description |
|---|---|
| 1 | The routing criteria—the sender, receiver, and message type values that trigger the action specified by the rule. |
| 2 | The ACL, package, and name of the routing service associated with the rule. This is the actual service that the Partner Manager invokes when it receives a document matching the rule’s routing criteria. The Partner Manager generates this service based on the action parameters you specify when you create a routing rule. You do not build this service manually. |
| 3 |
The names of the pre- and post-processing services, if
any, that the Partner Manager will execute before and after delivering the document to its destination. If
either of these services fail, the transaction status will change to reflect the service failure. A pre-processing service is a service that you build to perform any work that must be executed immediately before the Partner Manager sends a document out. For example, you might use a pre-processing service to affix a digital signature to a document or mark it with a special postmark. A post-processing service is a service that you build to perform any work that must be executed immediately after the Partner Manager sends a document out. The use of these services is purely optional. |
| 4 | The transport that Partner Manager will use to deliver the document to its destination. |
| 5 | Addressing parameters that describe the document’s specific destination. These parameters vary depending on the transport you select. For example, when you choose the Email transport, these parameters specify a host system and a particular mailbox; when you use the IS Service transport, they identify a particular service on a IBM webMethods Integration Server. |
The Routing Criteria
The routing criteria—the Sender, Receiver, and Message Type values—determine which rule is selected at run time. They uniquely identify a routing rule and act as the trigger for the rule’s routing action. You can also use a wildcard character (*) to match all Sender, Receiver, or Message Type values.
| This parameter... | Specifies... |
|---|---|
| Sender | An arbitrary string that identifies who sent the document, or a wildcard character (*). |
| Receiver | An arbitrary string that identifies the document’s destination, or a wildcard character (*). |
| Message Type | An arbitrary string that specifies what type of information is in the document (e.g., a purchase order, a credit memo, an invoice, and so forth), or a wildcard character (*). |
As noted previously, the values that you use as routing criteria are arbitrary or they can be
wildcards (*). They do not need to specify a physical address or document. The routing criteria should match the
sender, receiver, and msgType values that are submitted
with the document. For example, if your trading partner submits invoices under a sender value of MtnPaintPurch003, a receiver value of BboardsAP, and a msgType of Invoice, the Sender, Receiver, and Message Type values in your
routing rule must match these strings letter for letter. (These values are case sensitive).
Using Wildcards as Routing Criteria
You can use a single asterisk character (*), known as a wildcard, for the Sender, Receiver, and Message Type values in a routing rule. A wildcard matches any value that may be submitted with an incoming document. Some uses for wildcards include:
- Use a wildcard for the Sender parameter to serve as a “catch all” routing rule for a specific company. For example, suppose that you want to execute a particular routing rule for all documents from XYZ Company. You don’t necessarily want to define routing rules for each message type that might be sent from XYZ Company, so you use the wildcard character (*) for the Message Type.
- Use a wildcard for all parameters (Sender, Receiver, and Message Type) to serve as a “last resort” routing rule. This routing rule will be executed when all other routing rules do not match the incoming document.
Routing Rule Precedence
A routing rule is executed when its Sender, Receiver, and Message Type values match an incoming document’s values. When one or more of those values is a wildcard (*), then the routing rule is matched and executed based on its value precedence. See the following table for the default match order. The most specific rule is matched (and executed) first.
| A rule with these values is matched... | Sender | Receiver | msgType |
|---|---|---|---|
| First | arbitrary string | arbitrary string | arbitrary string |
| Second | * | arbitrary string | arbitrary string |
| Third | arbitrary string | * | arbitrary string |
| Fourth | arbitrary string | arbitrary string | * |
| Fifth | * | * | arbitrary string |
| Sixth | * | arbitrary string | * |
| Seventh | arbitrary string | * | * |
| Eight (last) | * | * | * |
Example 1
Suppose that you have a routing rule with the following values:
Sender=snd
Receiver=receiver
msgType=msg1
If a message arrives with the following values:
Sender=snd1
Receiver=receiver
msgType=msg1
and a routing rule does not exist with those exact values, then the message will be matched to a routing rule with the following pattern:
Sender=*
Receiver=
arbitrary string
msgType=
arbitrary string
Example 2
Suppose that you have a routing rule with the following values:
Sender=snd
Receiver=receiver
msgType=msg1
If a message arrives with the following values:
Sender=snd1
Receiver=receiver
msgType=msg2
and a routing rule does not exist with those exact values, then the message will be matched to a routing rule with the following pattern:
Sender=*
Receiver=
arbitrary string
msgType=*
To override the default match order, see Overriding Routing Rule Match Order.
When an Inbound Message Contains a Wildcard
If an inbound message contains an asterisk (*) for its receiver or msgType parameters, then the Partner Manager creates a mailbox directory on the server, replacing “*” with “WildCard”. This is necessary because file systems do not allow special characters for directory or file names.
For example, suppose that you have a routing rule with the following values:
Sender=*
Receiver=Rcv
msgType=*
If a message arrives with the following values:
Sender=sender
Receiver=Rcv
msgType=*
then the corresponding .values file is stored in the mailbox at: \..\packages\WmPartners\pub\mailbox\Rcv\WildCard
The Routing Service
All of the action associated with a particular routing rule is encompassed within its routing service. The routing service executes the pre-processing service specified by the rule (if any), invokes the transport service, which delivers the document to a specified destination, and then executes the post-processing service specified by the rule (if any).
The following example shows the contents of a routing service. In this example, the routing
service invokes a pre-processing service (TStamp) and then submits
the document to the transport service (OutboundProcess).

The Partner Manager automatically generates a routing service when you create a routing rule. You do not build routing services manually, although you can use Designer to edit the services that the Partner Manager builds.
With respect to routing services, keep the following points in mind:
- You can use Designer to view the contents of a routing service.
- You can use Designer to incorporate additional pre- or post-processing steps into the routing service; however, you must insert your changes after the MAP step that appears at the top of the flow. For additional information about adding steps to a routing service, see Editing a Routing Service.
- You must not rename a routing service after you create a routing rule. Doing so will cause the routing rule to fail at run time because the Partner Manager will not be able to locate the service named in the routing rule.
Pre-Processing Services
When you define a routing rule, you can optionally instruct the Partner Manager to execute a pre-processing service before routing a document to its destination. For example, you might use a pre-processing service to obtain a special timestamp or affix a digital signature to the document. Because the document exists in the pipeline when the Partner Manager invokes the pre-processing service, you can even use this service to extract information from, or write information to, the document itself.
When you specify the name of a pre-processing service in the routing rule, the Partner Manager executes that service before it invokes the transport—that is, in the routing service, the invocation step for the pre-processing service appears before the invocation step for the transport service.
The Transport Service
The transport service (usually referred to simply as, the transport) performs the actual work of delivering a document to a specified destination.
When you create a routing rule, you specify which transport you want the Partner Manager to use to deliver the document. You also specify addressing information that the transport needs to deliver the document to the appropriate destination (e.g., a mailbox, file location, or service) at run time.
The following table identifies the transports you can use to deliver a document.
| You use this transport... | To pass the document to... |
|---|---|
| IS Service | A specified service on the local Integration Server or on a remote Integration Server. |
| A specified mailbox as an e-mail attachment using the Simple Mail Transfer Protocol (SMTP). | |
| FTP | A specified file location using the File Transfer Protocol (FTP). |
Post-Processing Services
When you define a routing rule, you can optionally instruct the Partner Manager to execute a post-processing service after routing a document to its destination.
When you specify the name of a post-processing service in the routing rule, the Partner Manager executes that service after the Outbound Process is complete in the routing service.
When a Routing Rule Does Not Exist
If the Partner Manager receives a document for which a routing rule does not exist (that is, it cannot locate a rule matching the document’s sender, receiver and msgType values), the Partner Manager creates an incomplete routing rule—a rule with no action associated with it—for that document.
Viewing Incomplete Rules Created by the Partner Manager
When you view the list of routing rules on your Integration Server, incomplete routing rules appear with a red Status icon in the View Routing Rules screen.
An incomplete rule contains routing criteria (which was derived directly from the submitted document) but no routing action.
You use Integration Server Administrator to edit an incomplete rule and define its routing action (i.e., make it a complete, and therefore valid, routing rule). This will allow the Partner Manager to successfully route subsequent documents whose attributes match the rules’ Sender, Receiver, and Message Type values. For information about editing an incomplete routing rule, see Activating an Incomplete Routing Rule.
Creating a Routing Rule
About this task
Use the following procedure create a routing rule.
This procedure requires you to select the package in which you want the rule’s routing service registered. If this package does not already exist, create it before you begin. If you need procedures for creating a package, see IBM webMethods Integration Server Administrator’s Guide, or the IBM webMethods Service Development Help for your release.
To create a routing rule
Procedure
Results
Configuring the IS Service Transport
About this task
To configure the IS Service transport, in the Configure IS Service section of the Edit Routing Rule screen, complete the following fields:
| In this field... | Do the following... |
|---|---|
| Server Alias | Select the Integration Server on which the service resides, or select (local) if the service resides on the same server as the Partner Manager. (If the Integration Server you need does not appear in this list, you must create an alias for it. For information about defining aliases for remote Integration Servers, refer to the IBM webMethods Integration Server Administrator’s Guide for your release.) |
| Folder | Type the name of the folder in which the service resides. |
| Service | Type the name of the service to which you want to pass the document. |
| Scope | Specify how you want to maintain the routing service’s connection
information in cases where the document is routed to a service on a remote server.
|
Configuring the Email Transport
About this task
To configure the Email Transport, in the Configure Email Outbound Service section of the Edit Routing Rule screen, complete the following fields.
| In this field... | Do the following... |
|---|---|
| SMTP Host | Type the host name of the SMTP server to which you want the document delivered. |
| Content Type | Type the string that will be used to specify the content type of the
e-mail message. For example:
|
| From | Type the e-mail address that you want to use as the sender of the
e-mail message. For example:
|
| To | Type the address of the mailbox where you want the document
delivered. For multiple mailboxes, separate each address with a comma. For example:
|
| CC | If you want to send a copy of the message to another mailbox, type
the address of that mailbox. For multiple mailboxes, separate each address with a comma. For example:
|
| BCC | If you want to send a blind copy of the message to another mailbox,
type the address of that mailbox. For multiple mailboxes, separate each address with a comma. For example:
|
| Subject | Type the string that you want to appear as the subject line in the e-mail message. |
Configuring the FTP Transport
About this task
To configure the FTP transport, in the Configure FTP Outbound Service section of the Edit Routing Rule screen, complete the following fields.
| In this field... | Do the following... |
|---|---|
| Host Name | Type the host name of the remote FTP server. |
| Port Number | Type the port number on which the remote FTP server listens for FTP requests. |
| User Name | Type the user ID that the Partner Manager must submit in order to connect to the FTP server. |
| Password | Type the password that the Partner Manager must submit in order to connect to the FTP server. |
| File Path | Type the directory in which you want the document transferred. The transport will automatically assign a file name to the file it puts in this directory. The name will have the format, “ftpfilexx.data”, where xx is an ID that the FTP transport assigns. |
Activating an Incomplete Routing Rule
About this task
To complete an incomplete routing rule
Procedure
- Start Integration Server Administrator.
- On the Adapters menu, click Routing.
- On the View Routing Rules screen, locate the incomplete rule that you want to edit. (Incomplete rules have a red indicator in the Status column.)
- Click the Edit icon for the rule.
- On the Edit Routing Rule screen, set the Routing Rule Flow and Transport parameters as described in Creating a Routing Rule.
- Click Save.
Viewing the Routing Rules
About this task
To view routing rules
Procedure
- Start Integration Server Administrator.
- On the Adapters menu, click Routing. The View Routing Rules screen appears.
- If you want to sort the list, click the up or down arrow icons in the column headings.
Overriding Routing Rule Match Order
About this task
To override routing rule match order
Procedure
Editing a Routing Rule
About this task
Note that once you create a routing rule, you cannot modify its routing criteria. If you need to change the rule’s criteria, you must delete the existing rule and create a new rule based on the new criteria.
To edit a routing rule
Procedure
- Start Integration Server Administrator.
- On the Adapters menu, click Routing. The View Routing Rules screen appears.
- Locate the rule that you want to edit. Click the Edit icon for the rule.
- Edit the Routing Rule Flow and Transport parameters as necessary. If you need additional information about these parameters, see Creating a Routing Rule.
- Click Save.
Disabling Routing Rules
About this task
To disable a routing rule
Procedure
- Start Integration Server Administrator.
- On the Adapters menu, click Routing. The View Routing Rules screen appears.
- Locate the rule that you want to disable. Under Enabled?, click Yes until it turns to No.
Deleting Routing Rules
About this task
To delete a routing rule
Procedure
- Start Integration Server Administrator.
- On the Adapters menu, click Routing. The View Routing Rules screen appears.
- Locate the rule that you want to delete. Click the Delete icon for the rule.
Editing a Routing Service
About this task
Guidelines to Follow When Editing a Routing Service
When you edit a routing service, keep the following points in mind:
- Do not add any flow steps before the first MAP step.
- Do not modify the pre-processing service’s label property (if a pre-processing service exists in the flow).
- Do not modify the transport service’s label property.
Submitting Documents to Partner Manager
Submitting a Document to the Partner Manager
About this task
wm.PartnerMgr.gateway.transport.B2B:InboundProcess
Your flow service must pass the document to this service, along with the appropriate sender, receiver, and message type values. The InboundProcess service invokes the Partner Manager, which inspects the document’s sender, receiver, and message type values and selects the routing rule matching those values.
Passing a Document to the Transport Service
About this task
The following table describes where the Partner Manager expects the document for each transport type.
| This Transport... | Sends… |
|---|---|
| IS Service Transport | The entire pipeline to the specified service. When a document is routed with this transport, it doesn’t make any difference where you put it in the pipeline, because the entire pipeline is transmitted to the destination service. |
| Email Transport | The contents of data/content to the specified email address, where data is an IS Document (an IData object) and content is an object element of data. If your document will be routed through the email
transport:
|
| FTP Transport | The contents of data/content to the specified file location, where data is an IS Document (an IData object) and content is an object element of data. If
your document will be routed through the FTP transport:
|
Building a Service that Invokes the Partner Manager
About this task
To build a flow service that submits a document to the Partner Manager
Procedure
Using the Message Store
What Is the Message Store?
When you submit a document to the Partner Manager, you can optionally instruct the Partner Manager to log a copy of that document in its message store. The message store is a facility that maintains a document of transactions that the Partner Manager processes. Each transaction document in the message store contains a copy of the document that was submitted to the Partner Manager, along with its routing parameters and an audit trail describing how the document was processed.
You use Integration Server Administrator to view the contents of the message store.
By viewing the message store, you can determine if and when the Partner Manager handled a particular document. You can also determine whether the Partner Manager processed a particular document successfully or returned an error.
Location of the Message Store
By default, the Partner Manager maintains the message store in the xtn.log file, which resides in the Integration Server_directory\packages\WmPartners\config directory on your IBM webMethods Integration Server. However, you can optionally configure the Partner Manager to maintain this information in a JDBC-compliant database, such as Oracle 6.0 (or higher), Informix 7.0 (or higher), or MS SQL Server 6.50.201 (or higher). For information about how to configure your system to use a database for the message store, see Using a Database as the Message Store.
Transaction IDs Identify Documents in the Message Store
Individual documents in the message store are uniquely identified by their transaction IDs (tid). A transaction ID is an arbitrary string that you can assign to the document before submitting it to the Partner Manager or you can allow the Partner Manager to assign to a document automatically. For information about assigning a transaction ID to a document, see the $tid parameter under Submitting a Document to the Partner Manager.
Logging a Document in the Message Store
When you submit a document to the Partner Manager, you specify whether or not you want that document recorded in the message store by setting the $routeOnly parameter. The Partner Manager only records documents whose $routeOnly parameter is set to “false” or when the $routeOnly parameter doesn’t exist in the pipeline. If you submit a document with $routeOnly set to “true” (i.e., $routeOnly exists in the pipeline), the Partner Manager processes the document without logging it into the message store.
For additional information about setting the $routeOnly flag when submitting a document to the Partner Manager, see the $routeOnly parameter under Submitting a Document to the Partner Manager.
Configuring the Location of the Message Store
About this task
- If you want the Partner Manager to maintain its message store in the xtn.log file, you do not need to perform any special configuration steps to set up the message store. The Partner Manager will automatically use xtn.log as the message store unless you specifically configure it to use a database.
- If you want the Partner Manager to maintain its message store in a JDBC-compliant database, you must configure the database server and IBM webMethods Integration Server as described in the following sections.
Using a Database as the Message Store
About this task
Configuring the database server
About this task
On the database server
Procedure
Configuring IBM webMethods Integration Server
About this task
On IBM webMethods Integration Server
Procedure
Configuring the Message Store on Microsoft SQL Server 7.x
About this task
Configuring the SQL Server
About this task
To use an SQL 7.x database as the message store, configure the SQL Server as follows
Procedure
Configuring IBM webMethods Integration Server
About this task
On IBM webMethods Integration Server
Procedure
Configuring the Message Store on Oracle 8i
About this task
Configuring the Oracle Database Server
About this task
To use an Oracle 8i database for the message store, configure the Oracle database server as follows
Procedure
Configuring IBM webMethods Integration Server
About this task
On IBM webMethods Integration Server
Procedure
Viewing the Message Store
About this task
To view the transactions in the message store
Procedure
Deleting a Single Transaction from the Message Store
About this task
To delete a transaction from the message store
Procedure
- Start Integration Server Administrator.
- On the Adapters menu, click Routing.
- Click Transactions. Locate the transaction that you want to delete.
- Click the Delete icon for the transaction.
Purging All Transactions from the Message Store
About this task
Purging All Transactions from the Message Store Periodically
About this task
To purge all transactions from the message store periodically
Procedure
Example
If you want to periodically purge all transactions which have been in the Confirmed state for longer than 30 minutes, you can create a service called purgeConfirmedTRX with those state and time parameters. You also specify how many transactions every invocation of the service will purge. This is so you can control the pace of your maintenance jobs without increasing the amount of overhead processing.
The following procedure deletes all transactions manually from the message store. Use this procedure only to delete a small number of documents. Otherwise, server performance can degrade substantially.
Purging All Transactions from the Message Store Manually
About this task
To purge all transactions from the message store manually
Procedure
- Start Integration Server Administrator.
- On the Adapters menu, click Routing.
- Click Transactions.
- In the Delete column heading, click Delete All.



