PunchOutSetupRequest Processing
Ariba Supplier OnRamp processes a PunchOutSetupRequest message received by the supplier as follows:
![*](chapterTOC_bullet.png)
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, 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 logs the failure.
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.
![*](chapterTOC_bullet.png)
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.
![*](chapterTOC_bullet.png)
The supplier returns a PunchOutSetupResponse, which is a cXML message that is returned in an HTTP response to the buyer's Ariba Buyer.
![*](chapterTOC_bullet.png)
If logging is enabled,
receiveCXML adds a log entry indicating that a PunchOutSetupResponse was sent.
![*](chapterTOC_bullet.png)
If an event service is registered for the SetupResponseSent event,
receiveCXML calls the service.