Concepts
What is IBM webMethods Adapter for Ariba Supplier OnRamp?
IBM webMethods Adapter for Ariba Supplier OnRamp, used in conjunction with IBM webMethods Integration Server, enables a non-cXML-compliant supplier organization to create systems that support cXML punchout and ordering transactions with buyers who use the Ariba Supplier Network (Ariba SN).
Ariba Supplier OnRamp Adapter enables you to quickly implement a PunchOut-enabled web site to handle order transactions. It provides a framework that can be extended to build business logic to process punchout and order transactions. It is also capable of using IBM webMethods B2B Trading Networks, which further enhances the document processing capabilities based on document processing rules. For a detailed description of Trading Networks, see the IBM webMethods Trading Networks User’s Guide for your release.
What is cXML?
cXML, or commerce eXtensible Markup Language, is an open XML-based standard protocol created by Ariba, Inc., and is designed specifically for e-commerce. cXML is defined by a set of Document Type Definitions (DTDs), which are text files that describe the syntax and order of cXML documents.
Using cXML, you can create the following kinds of e-commerce documents:
- Catalogs. Static files that describe the products and services that you offer. A buyers' procurement application stores your catalogs in its database, making them available to its users.
- Punchout catalogs. Interactive catalogs running on your web site. By running your catalogs on your web site, you eliminate the need to send your catalogs to buyers. Users access a punchout web site by sending a cXML PunchOutSetupRequest document to a network e-commerce hub such as Ariba SN. The hub accepts the request, verifies the buyer, and passes the request to your punchout site. The punchout site responds with the location of the catalog.
- Purchase orders. Requests from buyers that are routed through Ariba SN to a supplier to fulfill a contract. Users send purchase order requests using a cXML OrderRequest document through Ariba SN. When you configure your account on an e-commerce network hub, you specify a URL to which all cXML purchase orders will be sent. Upon receiving a purchase order, you send it to your internal order management system and fulfill it. Your web site must then return an OrderResponse acknowledgement to the e-commerce network hub.
- Profile requests. Documents sent to suppliers to query for the cXML transactions the suppliers support.
What does Ariba Supplier OnRamp Adapter Provide?
Ariba Supplier OnRamp Adapter provides a basic mechanism to process each XML request type received by Ariba SN. The basic framework receives and decodes cXML requests from Ariba SN and executes "handlers" that you create for each of the cXML document types to implement the punchout process or order processing.
IBM webMethods B2B Trading Networks Support
Ariba Supplier OnRamp Adapter can interact with Trading Networks, enabling you to define sophisticated rules that dictate how cXML requests should be processed when handlers are invoked. A rule can include document-based criteria such as the sender, receiver, or the value of a document attribute. For example, you can define document processing rules to invoke custom OrderRequest handler services to process OrderRequests for specific buyers.
Logging Support
When you use Ariba Supplier OnRamp Adapter with Trading Networks, Ariba Supplier OnRamp Adapter utilizes the built-in logging facility of Trading Networks.
When used without Trading Networks, Ariba Supplier OnRamp Adapter provides a built-in logging mechanism to store informational and error messages about cXML request processing. Ariba Supplier OnRamp Adapter also uses this mechanism to store information when it receives cXML requests and sends responses.
A common set of API enables you to add informational and error entries to the log while you process the cXML messages, regardless of whether you use Trading Networks.
Document Storage Support
When you use Ariba Supplier OnRamp Adapter with Trading Networks, Ariba Supplier OnRamp Adapter utilizes the built-in document storage facility of Trading Networks to store OrderRequest messages.
When used without Trading Networks, Ariba Supplier OnRamp Adapter provides a built-in document storage facility to store OrderRequest messages.
Message Testing Support
Ariba Supplier OnRamp Adapter provides a testing facility to create and send cXML 1.2 requests to the Ariba Supplier OnRamp Adapter document processing service to test your punchout and order processing implementation.
For more information about testing your implementations, see Using the Test Module.
Transaction Authentication
Ariba Supplier OnRamp Adapter allows suppliers to specify a digital signature. Each cXML document is checked for authenticity by verifying the digital signature specified in the Sender Credentials of the document.
Ariba Supplier OnRamp Adapter Packages
Ariba Supplier OnRamp Adapter contains several packages (sets of webMethods services and related files) that you install on IBM webMethods Integration Server. The following table describes the contents of each package.
| Package | Includes... |
|---|---|
| WmAribaSupplier | Core services to support cXML punchout. |
| WmcXML12 | cXML 1.2 DTDs, cXML 1.2 properties, and list of records used in Ariba Supplier OnRamp Adapter and utility services. (cXML 1.2 includes support for cXML 1.1.) |
| WmMarketplace | Utility services that are used by Ariba Supplier OnRamp Adapter and suppliers for document processing. For more information about this package, see Useful Services in the WmMarketplace Package. |
| WmcXMLExample | Sample services that provide examples on how buyers place orders online and what documents are generated at each step of the buying process and sent to the supplier. For more information about this package, see Running the Example Punchout Site. |
Architecture and Components
The following figure illustrates how Ariba Supplier OnRamp Adapter processes cXML request documents sent by an Ariba Buyer using Ariba SN to a supplier, and how it returns a response to the Buyer. The figure shows how processing is achieved both with and without Trading Networks.

The processing begins with a buyer using his procurement system to send a cXML request message to Ariba SN using the Ariba Buyer. The request message, shown as message (1) in the figure, can be any of the following:
- A cXML PunchOutSetupRequest document.
- A cXML OrderRequest document.
- A cXML ProfileRequest document.
- A cXML MasterAgreementRequest document.
- A Multipart MIME message containing a cXML OrderRequest document and one or more optional attachment documents.
When the cXML request message arrives at Ariba SN, it routes the message to the appropriate supplier's URL that will receive the cXML message.
When the cXML request message arrives at the supplier's URL, Ariba Supplier OnRamp Adapter sends the cXML message to the Document Receiver service wm.b2b.cxml:receiveCXML, shown as message (2) in the figure.
The following subsections describe what happens next.
The Document Receiver Service: receiveCXML
The document receiver service wm.b2b.cxml:receiveCXML in the WmAribaSupplier package is the entry point for all cXML request messages sent to the supplier from the buyer's procurement system (shown as (2) in the figure).
The receiveCXML service performs the following tasks:
- Parses the received request messages (cXML documents or Multipart MIME messages) and creates node objects to represent them, so they can be easily manipulated by flow or Java services on Integration Server.
- Initiates processing of the request message.
Parsing cXML Documents
For a cXML document, receiveCXML creates a "node" object to represent the cXML document (shown as 3a in the above figure). A node object is a data object used in Integration Server to represent XML documents. Node objects can be converted into records.
Parsing Multipart MIME Messages
For a Multipart MIME message, receiveCXML parses the message and decodes it into the following objects:
- A node object (shown as 3a in the figure) representing the cXML OrderRequest. This node object is the same as a node object created for a cXML document.
- An attachmentWrapperCollection object (shown as 3b in the figure) representing the attachments sent with the order request. An attachmentWrapperCollection object is a data structure used by Ariba Supplier OnRamp Adapter to represent a set of attachment documents. You use API accessor methods to extract the attachment contents and metadata information from this data object.
Initiating Request Message Processing
After receiveCXML parses the request message, it initiates the processing of the request. How the request is processed depends on whether Trading Networks is used.
If Trading Networks is not used, the cXML request is processed in Ariba Supplier OnRamp Adapter, using a built-in document processing mechanism. For a description of this mechanism, see cXML Document Processing without Trading Networks.
If Trading Networks is used, the cXML request and the attachmentWrapperCollection (if present) are sent to Trading Networks for document processing. For a description of the document processing using Trading Networks, see cXML Document Processing with Trading Networks.
The Message Module
The wm.b2b.cxml.messages folder in the WmAribaSupplier package contains services to create and send cXML messages related to the punchout process. The Message Module contains utilities for creating or sending the following kinds of cXML messages in HTTP format:
- OrderResponse. A response to an OrderRequest sent by an Ariba Buyer. This response should indicate that an OrderRequest was successfully received, and that the request is being processed.
- PunchOutSetupResponse. A response to a PunchOutSetupRequest sent by an Ariba Buyer. This response should contain a URL that tells the buyer's Ariba Buyer where to go to initiate a browsing session on your supplier web site.
- ErrorResponse. An error message that you send to an Ariba Buyer.
- ProfileResponse. A response to a ProfileRequest. A ProfileRequest is a buyer's query to a supplier for a list of cXML request transactions that the supplier is capable of processing. The response contains a list of supported cXML transactions and the locations where to the send the cXML transaction request documents.
- MasterAgreementResponse. A response acknowledging the MasterAgreementRequest sent by the Ariba Buyer.
Ariba Supplier OnRamp Adapter uses the Message Module to return cXML responses to the Ariba Buyer, based on output parameters you return in your implementation. The Message Module is used with both the basic document processing mechanism and with the Trading Networks processing mechanism. For punchout implementations, you do not need to use these services, because the responses are automatically returned by Ariba Supplier OnRamp Adapter.
The Configuration Module
The Configuration Module in Ariba Supplier OnRamp Adapter stores all of the configuration data related to the supplier specific implementation. The Configuration Module also provides tools to create stages of the punchout process. You access the Configuration Module from the Integration Server Administrator, selecting Ariba On Ramp > Config. The Ariba Supplier OnRamp Adapter Configuration screen appears.
From the Configuration screen you specify how to process cXML messages:
- For processing without Trading Networks, you use Ariba Supplier OnRamp Adapter Config to specify the name of the message handler services that will be processing the cXML messages received from Ariba Buyer. The Document Receiver uses this part of the module to find and invoke the appropriate handlers when it receives a cXML message.
- For processing with Trading Networks, you use Ariba Supplier OnRamp Adapter Config to create cXML
routing rules and services to process cXML messages.
With the Configuration Module you can also:
- Define PunchOutOrderMessage mapping services to convert buyer selections from a shopping cart system to a PunchOutOrderMessage,
- Format the PunchOutOrderMessage in a way that can be understood by the shopping cart system.
- Store configuration data related to logging, event services, and cXML message parameters.
The Logging/Document Store Module
The Logging/Document Store Module logs status messages during the punchout process. You can view log entries from the Integration Server Administrator.
In addition, this module can manage the storing of cXML OrderRequests received. If Trading Networks is used, this module uses Trading Networks to store log entries and OrderRequests. If Trading Networks is not used, this module stores log entries and OrderRequests in the server's file system.
You can configure this module to store log entries and OrderRequests in a custom storage facility, by implementing a set of services and registering them from the Ariba Supplier OnRamp Adapter Configuration screen. For more information, see Using the Logging Facility.
The Event Module
When Ariba Supplier OnRamp Adapter sends or receives cXML messages, it reports the status of the message transaction to the Event Module. The following kinds of events are reported:
| Event | Description |
|---|---|
| orderRequestFailure | Indicates that an OrderRequest processing failure |
| orderRequestReceived | Indicates the receipt of an OrderRequest |
| orderResponseSent | Indicates that an OrderResponse was sent |
| setupRequestFailure | Indicates a PunchOutSetupRequest processing failure |
| setupRequestReceived | Indicates the receipt of a PunchOutSetupRequest |
| setupResponseSent | Indicates that a PunchOutSetupResponse was sent |
| MasterAgreementRequest Failure | Indicates a MasterAgreementRequest processing failure |
| MasterAgreementResponse Sent | Indicates that a MasterAgreementResponse was sent |
| MasterAgreementRequest Received | Indicates the receipt of an MasterAgreementRequest |
| InvoiceDetailResponse Received | Indicates the receipt of an InvoiceDetailResponse |
Using the Ariba Supplier OnRamp Adapter Configuration screen, you can set services that are automatically invoked when these events occur. For example, you can invoke a service to email an administrator when an OrderRequest fails. For more information, see Listening to and Processing Punchout Process Events.
The Error Module
The Error Module reports errors or propagates errors throughout Ariba Supplier OnRamp Adapter. It consists of the services in wm.b2b.cxml.utils.errors folder in the WmAribaSupplier package. For more information, see Development Utilities.
The Test Module
Ariba Supplier OnRamp Adapter provides a test facility that enables you to send cXML request messages to the Document Receiver receiveCXML, as if the messages were sent by Ariba SN. The Test Module is accessible from the Integration Server Administrator.
cXML Document Processing without Trading Networks
When using Ariba Supplier OnRamp Adapter without Trading Networks, it uses document handlers (services that you create) to process the following cXML documents and MIME messages sent from Ariba SN:
- The receiveCXML service creates a record representing the cXML request document, as described in The Document Receiver Service: receiveCXML.
- If the cXML document contains a
PunchOutSetupRequest element in the XML message and if the operation attribute of that element has a value (
create,inspect, oredit), receiveCXML considers the message to be a PunchOutSetupRequest message, and processes the message as described in PunchOutSetupRequest Processing. - If the cXML document contains an OrderRequest Header element in the XML message, receiveCXML considers the message to be an OrderRequest message, and processes the message as described in OrderRequest Processing.
- If the cXML document contains a ProfileRequest element in the XML message, receiveCXML considers the message to be an ProfileRequest message, and processes the message as described in ProfileRequest Processing.
- If the cXML document contains a MasterAgreementRequest element in the XML message, receiveCXML considers the message to be a MasterAgreementRequest message, and processes the message as described in MasterAgreementRequest Processing.
- If the document is a MIME message, a content handler in Ariba Supplier OnRamp Adapter reads in the MIME message. It parses the message and creates a MIME object representing the message. The MIME object is put into receiveCXML's pipeline. Then, receiveCXML parses the MIME object and creates a node object and an attachmentwrappercollection object (for attachment documents). Finally, receiveCXML executes the rest of its logic to determine the type of document represented by the node object, as before.
- If none of the conditions above is true, receiveCXML returns a cXML ErrorResponse message, indicating that the document is "unknown". The ErrorResponse is a cXML document returned in the body of the HTTP response returned to the Ariba Buyer that sent the original document. In addition, if logging is enabled, a log entry is entered, indicating that an unknown cXML document was received.
PunchOutSetupRequest Processing
Ariba Supplier OnRamp Adapter processes a PunchOutSetupRequest message received by the supplier as follows:
- If logging is enabled, the document receiver service receiveCXML logs an entry indicating that the PunchOutSetupRequest was received. For a description of logging, see Using the Logging Facility.
- receiveCXML then checks the cXML request envelope and verifies that the message contains the correct Supplier Shared Secret. The shared secret is a password that the supplier configures on Ariba SN. All requests sent by Ariba SN to this supplier will contain the shared secret in the SharedSecret field in the requests' Sender credential. If you specify the shared secret in Ariba Supplier OnRamp Adapter, its default processing mechanism will check all incoming cXML requests for a matching shared secret. If the shared secret is checked and does not match, the document is not processed. In addition, Ariba Supplier OnRamp Adapter logs the failure.
- receiveCXML queries the Configuration Module if an event handler service is registered for the SetupRequestReceived event. If so, that service is invoked. For more information, see Listening to and Processing Punchout Process Events.
- receiveCXML obtains the operation type (create, inspect, or edit) of the PunchOutSetupRequest.
- receiveCXML searches for the developer-defined PunchOutSetupRequest handler for the particular operation type. receiveCXML queries the Configuration Module for the handler service name by calling wm.ariba.supplier.handlers:getHandler. For more information, see The PunchOutSetupRequest Handler.
- receiveCXML invokes the handler. If an error occurs when the handler is invoked, receiveCXML returns an ErrorResponse to the buyer's Ariba Buyer. Any errors that occur while the handler executes are returned in a serviceError record (assuming that you designed the handler with the appropriate specifications). In addition, if logging is enabled, a log entry is entered to indicate that an error occurred. Furthermore, if an event service is registered for the SetupRequestFailure event, that service is invoked.
- If the handler successfully processes the PunchOutSetupRequest, the handler should return a catalogURL that indicates where the Ariba Buyer should redirect the buyer. If the handler does not return a catalogURL, the receiveCXML service sends an ErrorResponse to the buyer's Ariba Buyer. In addition, if logging is enabled, a log entry is entered indicate an error occurred. Furthermore, if an event service is registered for the SetupRequestFailure event, that service is invoked.
- The supplier returns a PunchOutSetupResponse, which is a cXML message that is returned in an HTTP response to the buyer's Ariba Buyer.
- If logging is enabled, receiveCXML adds a log entry indicating that a PunchOutSetupResponse was sent.
- If an event service is registered for the SetupResponseSent event, receiveCXML calls the service.
The PunchOutSetupRequest Handler
The PunchOutSetupRequest handler is a service that you define. It should extract data from the PunchOutSetupRequest to set up a shopping session for the buyer and for returning a URL to where the buyer will be redirected in his browser to perform punchout. The handler implementation will vary depending on the supplier's catalog/shopping system. This handler service is created and specified by the Configuration Module, using the DSP server pages. If the handler is not specified in the Configuration Module, the receiveCXML service returns an ErrorResponse to the sender.
OrderRequest Processing
Ariba Supplier OnRamp Adapter processes an OrderRequest message received by the supplier as follows:
- If logging is enabled, the document receiver service receiveCXML logs an entry indicating that the OrderRequest was received. For a description of logging, see Using the Logging Facility.
- The receiveCXML service queries the Configuration Module to determine if a developer-defined event handler service is registered for the OrderRequestReceived event. If so, that service is invoked. For more information, see Listening to and Processing Punchout Process Events.
-
receiveCXML obtains the operation type (
new,update, ordelete) of the OrderRequest. - receiveCXML searches for the developer-defined OrderRequest handler for the particular operation type. receiveCXML queries the Configuration Module for the handler service name by calling wm.ariba.supplier.handlers:getHandler. For more information, see The OrderRequest Handler.
- receiveCXML invokes the appropriate handler. If an error occurs when the handler is invoked, receiveCXML returns an ErrorResponse to the Ariba Buyer. Any errors that occur while the handler executes are returned in a serviceError record (assuming that you designed the handler with the appropriate specifications). In addition, if logging is enabled, a log entry is entered to indicate that an error occurred. Furthermore, if an event service is registered for the OrderRequestFailure event, that service is invoked.
- receiveCXML checks the serviceError record to see if an error occurred. If so, receiveCXML returns an ErrorResponse to the Ariba Buyer. In addition, if logging is enabled, a log entry is entered to indicate that an error occurred. Furthermore, if an event service is registered for the OrderRequestFailure event, that service is invoked.
- If an error did not occur, receiveCXML calls the service and returns an OrderResponse to the Ariba Buyer.
- If logging is enabled, receiveCXML adds a log entry indicating that an OrderResponse was sent.
- If an event service is registered for the OrderResponseSent event, receiveCXML calls the service.
The OrderRequest Handler
The OrderRequest handler is a service that is customer specific. It is responsible for extracting data from the OrderRequest to create a purchase order on the backend system. The handler implementation will vary depending on the supplier's backend order fulfillment system. This handler is created and specified by the Configuration Module, using the DSP server pages. If the handler is not specified in the Configuration Module, receiveCXML returns an ErrorResponse to the sender.
ProfileRequest Processing
A ProfileRequest is a buyer's query to a supplier for a list of cXML request transactions that the supplier is capable of processing. Ariba Supplier OnRamp Adapter processes a ProfileRequest message as follows:
- receiveCXML searches for the developer-defined ProfileRequest handler. receiveCXML queries the Configuration Module for the handler service name by calling wm.ariba.supplier.handlers:getHandler. For more information, see The ProfileRequest Handler.
-
receiveCXML invokes the handler.
If an error occurs when the handler is invoked, receiveCXML returns an ErrorResponse to the Ariba Buyer. Any errors that occur while the handler executes are returned in a serviceError record (assuming that you designed the handler with the appropriate specifications).
- If an error did not occur, receiveCXML extracts the handledRequests string array output parameter and returns a ProfileResponse to the Ariba Buyer, based on the result.
The ProfileRequest Handler
The ProfileRequest handler is a service that returns a list of cXML request transactions that are handled by the supplier. Ariba Supplier OnRamp Adapter provides a default ProfileRequest handler (pub.ariba.supplier.handlerImpl:defaultProfileRequestHandler). It searches the Configuration module to determine which cXML request transactions are configured. It then returns a list of cXML request transactions handled by the supplier. You register defaultProfileRequestHandler from the Ariba Supplier OnRamp Adapter Configuration screen.
MasterAgreementRequest Processing
Master Agreements enable buyers to establish a commitment for goods and services with suppliers. They represent a common mechanism for managing supplier and budget commitments, and they enable buyers to negotiate better discounts by basing the discounts on future purchases, while enabling suppliers to more accurately forecast demand.
The MasterAgreementRequest document defines the Master Agreement created by the buying organization. It specifies beginning and end dates, and the committed maximum and minimum values of the agreement. It also lists maximum and minimum values and quantities for individual items. The MasterAgreementRequest document consists of MasterAgreementRequestHeader and AgreementItemOut. The MasterAgreement-RequestHeader contains the Master Agreement common to all contained items. The AgreementItemOut specifies the requirements of a particular line item that is part of the Master Agreement contract.
Ariba Supplier OnRamp Adapter provides sample services to create a MasterAgreement-Request test message and submit it to the configured URL. To test this transaction, see Using the Test Module.
Ariba Supplier OnRamp Adapter processes a MasterAgreementRequest message received by the supplier as follows:
- If logging is enabled, the document receiver service receiveCXML logs an entry indicating that the MasterAgreementRequest was received. For a description of logging, see Using the Logging Facility.
- The receiveCXML service queries the Configuration module to determine if a developer-defined event handler service is registered for the MasterAgreementRequestReceived event. If the handler service is registered, that service is invoked. For more information, see Listening to and Processing Punchout Process Events.
- The receiveCXML service obtains the operation type (
new,update, ordelete) of the MasterAgreementRequest. - The receiveCXML service searches for the user-defined MasterAgreementRequest handler for the particular operation type. receiveCXML queries the Configuration Module for the handler service name by calling wm.ariba.supplier.handlers:getHandler service
- The receiveCXML service invokes the appropriate handler. If an error occurs when the handler is invoked, receiveCXML returns an ErrorResponse to the Ariba buyer. Any errors that occur while the handler executes are returned in a serviceError record (assuming that you designed the handler with the appropriate specifications). In addition, if logging is enabled, a log entry is entered to indicate that an error occurred. Furthermore, if an event service is registered for the MasterAgreementRequestFailure event, that service is invoked. receiveCXML checks the serviceError record to see if an error occurred and will return an ErrorResponse to the Ariba buyer.
- If an error did not occur, receiveCXML calls the service and returns a MasterAgreementResponse to the Ariba Buyer.
- If logging is enabled, receiveCXML adds a log entry indicating that a MasterAgreementResponse was sent.
- If an event service is registered for the MasterAgreementResponseSent event, receiveCXML calls the service.
The MasterAgreementRequest Handler
The MasterAgreementRequest handler is a service that is customer specific. It is responsible for extracting data from the MasterAgreementRequest to create a MasterAgreement on the backend system.
The MasterAgreementRequest handler is created and specified by the Configuration module. If the handler is not specified in the Configuration module, receiveCXML returns an ErrorResponse to the sender.
InvoiceDetailRequest Processing
The cXML InvoiceDetail transaction enables suppliers to send invoices to buying organizations or marketplaces. This transaction supports invoice details for a wide variety of business scenarios, including standard invoices, credit memos, debit memos, and receipts. Suppliers use cXML invoices to bill buying organizations or marketplaces for provided products or services.
The supplier sends a cXML document of type, InvoiceDetailRequest, to let the buyer know about the list of products that are being delivered against an order placed by the buyer. The document is routed to the buyer through Ariba SN. Ariba Supplier OnRamp Adapter allows the supplier to create InvoiceDetailRequest and posts it to the specified URL in Ariba SN to be routed to the buyer. The supplier can make use of Trading Networks to post the document to Ariba SN. Trading Networks can be used in the case of InvoiceDetail to make use of its logging and event mechanism. Ariba SN, after receiving the InvoiceDetailRequest, responds with a generic response indicating whether the request is genuine/authenticated.
Ariba Supplier OnRamp Adapter provides sample services to send a request of type InvoiceDetailRequest to the configured URL. The sample services are:
- wm.ariba.supplier.test:sendCXMLInvoiceDetailRequest. Sends the InvoiceDetailRequest document to the configured URL and writes logging information. This service should be used for transactions without Trading Networks.
- wm.ariba.supplier.test:sendCXMLInvoiceTN. Invoked from the processing rule created by Ariba Supplier OnRamp Adapter. Ariba Supplier OnRamp Adapter sends the InvoiceDetailRequest document to Trading Networks where the processing rule is executed. When the processing rule is executed, the InvoiceDetailRequest document is sent to the configured URL and the corresponding information is logged. This service should be used for transactions with Trading Networks. To test this transaction, see Using the Test Module.
Configuring the URL for InvoiceDetailRequest
About this task
Before using Ariba Supplier OnRamp Adapter to send the InvoiceDetailRequest document, you must configure the URL that receives the document.
To configure the URL for InvoiceDetailRequest
Procedure
cXML Document Processing with Trading Networks
Instead of using the built-in document processing mechanism of Ariba Supplier OnRamp Adapter, you can use the more powerful document-routing and processing engine built into Trading Networks. Using this engine, you can selectively process documents based on processing rules that you define.
Ariba Supplier OnRamp Adapter provides a rules utility that you can use to:
- Create Trading Networks processing rules
specific to cXML.
Ariba Supplier OnRamp Adapter generates simple Trading Networks processing rules that route cXML documents to the appropriate processing services, based on document type (PunchOutSetupRequest, OrderRequest, ProfileRequest, MasterAgreementRequest, and InvoiceDetailRequest). You expand what Ariba Supplier OnRamp Adapter creates by modifying the processing rules to implement more specific routing rules, using the Trading Networks Console.
- Create Trading Networks handler service stubs
that are invoked by the processing rules.
These stubs create cXML responses that are returned to Ariba SN, based on the outcome of your handler implementation. The service handler stubs also execute logging/event services in Ariba Supplier OnRamp Adapter. You expand on what Ariba Supplier OnRamp Adapter creates by implementing the handler code to process the cXML request.
You can define multiple handlers for each document type operation. For example, you can define multiple handlers to process new OrderRequest documents, which are selectively invoked based on criteria you specify. In contrast, Ariba Supplier OnRamp Adapter only allows you to define one handler for each document type operation.
The figure illustrates how a cXML document is processed by Ariba Supplier OnRamp Adapter using Trading Networks (WmTN), and how responses are returned to the Ariba Buyer.

- The receiveCXML service receives a cXML message and creates a node object, as described in The Document Receiver Service: receiveCXML. If the message is a Multipart MIME message with an attachment, receiveCXML also creates an attachmentWrapperCollection object.
- The receiveCXML service invokes the Trading Networks document receiver service wm.tn:receive, passing both the node object and the attachmentWrapperCollection object (if present) in the pipeline.
-
Trading Networks does nothing with the
attachmentWrapperCollection (if present).
Trading Networks decodes the node object, identifies the cXML document type, and extracts attributes about that document, predefined by Ariba Supplier OnRamp Adapter cXML document type definitions that it creates.
Trading Networks stores the document, creates a bizdoc document envelope, and retrieves sender and receiver profile information about this document.
Trading Networks then looks up cXML processing rules you define using Ariba Supplier OnRamp Adapter rules utility.
Upon finding a processing rule, Trading Networks invokes the TN handler service that was automatically created and assigned to the processing rule by Ariba Supplier OnRamp Adapter rules utility.
- The bizdoc document envelope, sender/receiver profile information is sent to the TN handler processing service (4a in previous figure).
- Also, if the attachmentWrapperCollection object is present, it is automatically passed to the handler service (using the pipeline.) The attachmentWrapperCollection will only be present if the document was an OrderRequest sent with attachments (4b in previous figure).
- If logging is enabled, the TN Handler service
invokes logging services to log the request that was received.
If the specified setupRequestReceived event handler service is specified for the particular request event, Ariba Supplier OnRamp Adapter invokes the event services you defined.
- In addition, if a Shared Secret is specified in Ariba Supplier OnRamp Adapter, the PunchOutSetupRequest is checked to see if it contains the same Shared Secret. If not, processing of the request ends and the error is logged.
- Next, the code that you implemented to process
the cXML request is executed.
- For PunchOutSetupRequests, your code must output a catalogURL string parameter or a serviceError record, if an error occurred.
- For OrderRequests, your code must output a
serviceError record if an error occurred.
Control then returns to some predefined post-processing code that performs additional logging of the request and invokes the appropriate event handler services, if configured.
Finally, a string field, cXMLResponse, is created containing the cXML Response and is passed back to Trading Networks.
- Trading Networks returns the cXML response to Ariba SN in an HTTP response predefined in the routing rule created by Ariba Supplier OnRamp Adapter rules utility.
Configuring Ariba Supplier Network
Regardless of whether you use Trading Networks, you must configure Ariba SN for use with Ariba Supplier OnRamp Adapter. To do the configuration, you have to perform the following tasks:
- Configure punchout catalog links.
- Configure cXML OrderRouting.
Configuring Punchout Catalog Links on Ariba SN
About this task
For a supplier to participate in punchout processing on Ariba SN, the supplier must provide a URL to a service that is capable of understanding a cXML PunchOutSetupRequest message. This service must return in a cXML PunchOutSetupResponse message a URL to an online catalog that is used for punchout buying. To do this, you use the predefined service receiveCXML. For more information, see The Document Receiver Service: receiveCXML and wm.b2b.cxml:receiveCXML.
To link to a punchout catalog
Procedure
Configuring cXML OrderRouting on Ariba SN
About this task
For Integration Server to handle OrderRequests from buyers on Ariba SN, the URL to invoke the receiveCXML service must be specified as the cXML Preferred Method of Order Routing.
To configure Integration Server for handling OrderRequests on Ariba SN