The BillingInquiry collaboration enables a company's applications to share billing information. If those applications have web access capability, the BillingInquiry collaboration can be used with the Server Access facility of the InterChange Server Express for web retrieval.
The BillingInquiry collaboration extends standard collaboration features by providing a scenario that handles the RetrieveByContent verb.
BillingInquiry uses the generic BillingStatement business object to transport billing data.
This section includes information on port bindings and required steps for setting up collaboration objects based on BillingInquiry. For information on standard features, ports, and configuration properties for collaboration templates, see the Collaboration Development Guide. For general information on creating collaboration objects, see the System Implementation Guide.
Figure 1 illustrates BillingInquiry's ports, as they are displayed in System Manager.
Figure 1. BillingInquiry collaboration's ports
Note: To prevent the collaboration object from using a port, bind that port to the Port connector. Binding the port indicates that the port is unused without causing the collaboration object to provide additional functionality.
Business object | Bound to | Function | Verbs used |
---|---|---|---|
BillingStatement | The destination application's connector | Sends a reference-valued business object to retrieve the full-valued business object. | Retrieve RetrieveByContent |
Business object | Bound to | Function | Verbs used |
---|---|---|---|
BillingStatement | Source application's connector or calling collaboration | Receives the triggering business object. At the end of a synchronous call, this port also returns the triggering business object to the source application when the collaboration ends successfully. | Create Retrieve RetrieveByContent Update Delete |
Business object | Bound to | Function | Verbs used |
---|---|---|---|
BillingStatement | The destination application's connector | Sends the triggering business object out of the collaboration. |
Create Update Delete |
BillingInquiry is designed to be used as a stand-alone collaboration. To set up BillingInquiry as a stand-alone collaboration object, follow these steps:
This section illustrates the process logic for this collaboration template:
Figure 2 illustrates BillingInquiry's process logic.
Figure 2. BillingInquiry collaboration's process logic
This collaboration template uses the following standard collaboration business processes:
For information on these processes, see the Collaboration Development Guide.
The BillingInquiry collaboration can receive a triggering business object with the RetrieveByContent verb. It is assumed that a source application's business object uses this verb when it does not contain key values. The business object's map and the destination application's connector use the values in specified, meaningful attributes to return the business object from the destination application.
If a business process mandates that data be retrieved by specification of non-key values, for example, a selection criteria, then this means that the connector or connectors that integrate this process must support the RetrieveByContent verb. What this means is that the connector must be designed to recognize that it needs to perform a retrieval of data from an application based on values that exist in non-key attributes of a business object that comes in with a RetrieveByContent verb.
However, this presents the problem of what to do if a non-key retrieval does not retrieve a unique object, but instead multiple objects (rows).
IBM WebSphere Business Integration Server Express Plus connector functionality is to return one unique object using the retrieve by key method. To make non-key retrieval possible, the following suggestions may be considered as part of connector design:
Alternatively, if the result set (multiple objects) is desired, design changes to the BillingStatement business object and collaboration are required. You need to do the following:
For example, a new business object (lets call it the BillingStatementWrapper) must be created in the repository. The BillingStatementWrapper will have the BillingStatement business object as a child container with cardinality 'n' and will have those attributes required for retrieval at the header level.
Now, when the source application connector sends the BillingStatement business object into the collaboration on a SubscriptionDelivery, the collaboration must first instantiate a new BillingStatementWrapper object. Then the collaboration must map the required attributes from the triggering business object (BillingStatement) to the BillingStatementWrapper's header level. This object must then be sent to the destination application for retrieval. If the destination application connector retrieves more than one billing statement, then those business objects are stored in the child container of the BillingStatementWrapper business object and sent back to the collaboration. The collaboration must now "unpack" the BillingStatementWrapper business object to obtain each instance of the child container. The collaboration must then send each BillingStatement through another wrapper collaboration to the source application. After all instances of the BillingStatement object are sent to the source application, the entire collaboration-object group ends.
Figure 3 illustrates BillingInquiry's RetrieveByContent process.
Figure 3. BillingInquiry collaboration RetrieveByContent process
InterChange Server Express Plus rolls back a transaction when any step in a transactional collaboration fails. For example, when BillingInquiry is a member of a collaboration-object group that participates in a transactional collaboration, its actions are one subtransactional step of a larger transaction. If any step in the collaboration-object group's business process fails, the transactional collaboration details how InterChange Server Express Plus rolls back the processing of every collaboration in the group.
When a BillingInquiry collaboration object is used independently of other collaboration objects or the collaboration object's From port is bound to a source application rather than to another collaboration, its process comprises a single transactional step. In such a situation, it is not necessary to perform rollback.
To cause a collaboration object or a collaboration-object group to perform rollback requires modification of the collaboration template. To understand transaction processing in the IBM WebSphere Business Integration Server Express Plus system, see the System Implementation Guide. For information about adding transaction processing to the collaboration template, see the Collaboration Development Guide.
To extend the collaboration object to handle transaction processing, complete the following steps:
Note: BillingInquiry does not have unique configuration properties. All of its properties are standard.
This collaboration template uses the following standard configuration properties for collaboration templates:
For information on these configuration properties, see the Collaboration Development Guide.
To view an explanation of the messages of this collaboration template, launch the Log Viewer and open the collaboration template's message file. To launch the Log Viewer and open the collaboration template's message file: