Understanding Punchout

Direct connect enables PeopleSoft eProcurement requisition users to interact directly with a supplier's website. This interaction enables the user to browse and search the supplier's online catalog to select items to add back into the eProcurement requisition using an approved standard process such as Punchout.

You set up direct connect methods and supplier details, such as URLs (uniformed resource locator). You then run through a series of background processes. eProcurement:

  • Passes and receives strings of data which are transformed from XML into PeopleSoft service operations.

  • Makes it possible for users to access and browse supplier catalogs.

  • Adds requisition lines using supplier shopping carts.

  • Sources purchase orders (POs) to suppliers.

Direct connect supplier integration enables you to create configured orders for products or services such as:

  • Computer systems with various types of processors, memory requirements, and peripherals.

  • Printing jobs with varying text, colors, types and sizes of paper, numbers of copies, and output formats.

  • Catered events with different locations, times, types of food, and levels of service.

Process Flow for Direct Connect Supplier Integration Using Punchout

This illustration describes the process flow of the integration between PeopleSoft eProcurement and a direct connect supplier who uses Punchout. Detailed steps below this illustration described the process flow:

This image illustrates the process flow of the integration between PeopleSoft eProcurement and a direct connect supplier who uses Punchout.

The process flow of the integration between PeopleSoft eProcurement and PunchOut using cXML.

Warning! PeopleSoft and the direct connect suppliers might have site time-outs that could cause you to lose unsaved state information.

This list illustrates the steps in the previous diagram for using Punchout to create an eProcurement requisition:

  1. The system saves all levels of the current requisition to a global rowset. This preserves the state of the requisition so that changes made since the creation or the last save of the requisition are not lost. Then, based on the supplier, the system selects the proper connection method, and the code transfers to the component that handles the method.

  2. Based on the direct connect method registered to the selected supplier, the system loads the appropriate application class and runs the code to connect to the supplier. This code uses requisition data and properties for the supplier to populate a PeopleSoft service operation. The Integration Broker then transforms the service operation into the XML PunchoutSetupRequest, which contains authentication information to facilitate a single sign-on into the supplier's system.

    If a supplier implements the sign-on differently than the standards for the selected method, you should code the supplier's sign-on logic in a separate direct connect method application class or Integration Broker transformation. This XML also contains a PeopleSoft eProcurement component URL to which the supplier posts the results of the shopping cart in step 8.

  3. After building the XML, the system sends it to the supplier's URL as defined in the supplier's node definition. The supplier receives this request document and authenticates the user.

  4. The system returns a response to eProcurement, if the user is successfully authenticated, that contains the supplier's URL for redirection.

  5. eProcurement receives this XML-based response through Integration Broker. Integration Broker runs a transformation from the PunchoutSetupResponse to the service operation behind the scenes.

    Note: The system synchronously returns the response from the original authentication request. It is not a separate process. The supplier's URL is extracted from the service operation.

  6. PeopleSoft eProcurement redirects the user to the URL sent in the response from the supplier.

  7. The user browses the supplier's site and places an order. Based on sign-on information, the supplier can maintain customer specific pricing. Typically, this is done at a business level, not at a user level.

  8. After the order is complete and the user checks out, the supplier's site packages the shopping cart into an XML string and places it in an HTML hidden form field. The user is redirected to the eProcurement component URL specified at sign-on in step 2.

  9. The eProcurement component that has been redirected to extract the XML string from the hidden form field. The string is parsed into a PeopleSoft service operation using another Integration Broker transformation. Just as in the authentication process in step 2, the application class or transformation might need to be customized if the supplier does not follow the standard document structure or has unique extrinsic fields. The user is transferred to the originating requisition.

  10. When the requisition component is reinitialized, the global rowset from step 1 containing the original requisition information is reloaded. The items from the external item service operation, containing the shopping cart data, are added as new rows to the requisition. These lines inherit the requisition's line default values just as any other item being added. The system displays the requisition Summary page to the user.

Note: Items that are selected on a supplier's website are not transmitted to eProcurement unless the connection is initiated through the supplier's link in eProcurement.

Using Extrinsic Values

The cXML extrinsic elements that are part of the PunchoutSetupRequest and the PunchoutOrderMessage can be used to send and receive data that does not fit in the other elements in the message.

For example, in the PunchoutSetupRequest, the extrinsic element can be used to send data that further identifies users, such as:

  • User department / cost center

  • Region

  • Supervisor

  • Default currency

The data is sent, essentially, as a name/value pair, as shown in this sample PunchoutSetup request below.

<Request>
 <PunchoutSetupRequest operation="edit">
 <BuyerCookie>1CX3L4843PPZO</BuyerCookie>
 <Extrinsic name="UserEmail">jsmith</Extrinsic>
 <Extrinsic name="UniqueName">John_Smith</Extrinsic>
 <Extrinsic name="CostCenter">610</Extrinsic>
 <BrowserFormPost>
  <URL>https://psftserver/psc/ps/EMPLOYEE/ERP/c/PV_MAIN_MENU.PV_DC_CATCHER.GBL?Page=PV_DC_CATCHER&MSGNODENAME=WORKCHAIRS</URL>
 </BrowserFormPost>
 <SupplierSetup>
 <URL>http://www.workchairs.com/punchout.asp</URL>
 </SupplierSetup>
 <ItemOut quantity="2">
 <ItemID>
 <SupplierPartID>220-6338</SupplierPartID>
<SupplierPartAuxiliaryID>E000028901</SupplierPartAuxiliaryID>
 </ItemID>
 </ItemOut>
 </PunchoutSetupRequest>
</Request>

The PunchoutOrderMessage includes the following cXML extrinsic elements:

  • Message/PunchoutOrderMessage/Extrinsic/@name

  • Message/PunchoutOrderMessage/Extrinsic

The use of extrinsic elements can be unique to each supplier; therefore, a separate object can be associated with each direct connect supplier to handle logic specific to the supplier. To use extrinsic elements for a direct connect supplier, complete the following setup steps:

  1. Create a new application package and class to extend the class to the SetReqstExtrinsic() method. Be sure to add code into the SetReqsrExtrinsic() method that adds values to the extrinsic rowset in the rowset object that is passed into the method.

  2. Register the application class as a new direct connect method within the PeopleSoft eProcurement application. Go to eProcurement Administration, Maintain Supplier Integration, Direct Connect Methods and:

    1. Add the new direct connect method.

    2. Associate the new method with the application package that was just created by entering the Root Package ID and Application Class Path that were created in step 1. The Description field is helpful to identify the uniqueness of this particular Direct Connect type, such as support for a new cXML version or addition of a supplier's Extrinsic values.

    3. Assign the list valid properties for the 'PUNCHOUT' method to this new method. Since this is simply an extension of 'PUNCHOUT', all the properties should match.

  3. Associate the new direct connect method to the supplier. Go to eProcurement Administration, Maintain Supplier Integration, Linked Suppliers and select the supplier. Add the new method in the Direct Connect Method field.