cXMLs are generally used to exchange data with suppliers in terms of catalogs, purchase orders or invoices. On a mutual agreement between buyer and supplier, you may extend generic cXML format provided by Ariba using extrinsics i.e. new fields are added at both ends and mapped with fields in their internal systems. Many clients use it for Punchout catalogs. You will need to define the new extrinsic parameter in PunchOutSetupExtrinsics group in aml file. In this way, you will be able to map any new parameter with a pre-defined field in your configuration.
For example, please refer below code to add ContractID at ReqLineItem.Description.ContractNum field (here ContractID is the key in cXML file sent by supplier with punchout response and ContractNum is the field where you would like it to map in your system.
<group name= "PunchOutSetupExtrinsics">
Thanks for the reply. We have requirement to add new fields in Requisition Header and send these values to Punchout supplier. Here we need to create these fields and add those fields to "PunchOutSetupExtrinsics" group. Is that correct? or do we need to do something else?
1 of 1 people found this helpful
I had implemented it long time back so couldn't recall exact steps. But you can achieve this by defining your custom field in "PunchOutSetupExtrinsics" group. Also, you may use a parameter PunchOutSetupExtrinsicsClass defined in Parameters.table file where you can define a java class. In Java class you may even filter out this parameter for some specific vendor. Java class should implements PunchOutSetupExtrinsics.
At the sametime, you will have to work with vendor to identify the punchoutkey.
Here are some more details about setting up extrinsics on Punchout request.
public interface PunchOutSetupExtrinsics: Interface used to generate customized extrinsics for the PunchOutSetupRequest. The server will call the implementation of this class based on the parameter Application.Procure.PunchOutSetupExtrinsicsClass in Parameters.table. The extrinsics generated by the generateExtrinsics method are sent in the PunchOutSetupRequest in addition to those defined by the group PunchOutSetupExtrinsics.
Parameter Application.Procure.PunchOutSetupExtrinsicsClass: Names a Java class that can be used to customize the PunchOutSetupRequest cXML document used when sending PunchOut requests to Ariba SN. In general, you add extrinsics to a PunchOut request by including them in the PunchOutSetupExtrinsic group. You use a custom Java class only for situations where you require more complex logic.