cXML
PunchOut Setup Request
The following is sample cXML for the PunchOut setup request. The majority of this information is derived from the POXPVS page.
<cXML payloadID="2012-10-10T09:42:27" timestamp="2012-10-10T09:42:27" version="1.2.007">
<Header>
<From>
<Credential domain="NetworkId">
<Identity>POWERSCHOOLtestid</Identity>
</Credential>
</From>
<To>
<Credential domain="DUNS">
<Identity>170368430</Identity>
</Credential>
</To>
<Sender>
<Credential domain="NetworkId">
<Identity>POWERSCHOOLtestid</Identity>
<SharedSecret>3d_N0r3n</SharedSecret>
</Credential>
<UserAgent>SBI PunchOut</UserAgent>
</Sender>
</Header>
<Request deploymentMode="production">
<PunchOutSetupRequest operation="create">
<BuyerCookie>V02360_GARY_A_PR.SEED_GLJL_101250_5001_RSO_PR_RSO_True_GEN__</BuyerCookie>
<BrowserFormPost>
<URL>http://localhost/Ifas7/punchout/receiver.aspx</URL>
</BrowserFormPost>
</PunchOutSetupRequest>
</Request>
</cXML>
Order Request
The <ShipTo> portion is derived from the "Ship Id" in BusinessPlus. The "addressID" is the concatenation of the BusinessPlus ship Id and address code.
The <BillTo> portion is derived from the "Bill Id" in BusinessPlus.
<cXML payloadID="2012-10-03T15:52:59" timestamp="2012-10-03T15:52:59">
<Header>
<From>
<Credential domain="DUNS">
<Identity>DOE968727</Identity>
</Credential>
</From>
<To>
<Credential domain="DUNS">
<Identity>VanillaVendor</Identity>
</Credential>
</To>
<Sender>
<Credential domain="DUNS">
<Identity>DOE968727</Identity>
<SharedSecret>none</SharedSecret>
</Credential>
<UserAgent>SBI PunchOut</UserAgent>
</Sender>
</Header>
<Request deploymentMode="production">
<OrderRequest>
<OrderRequestHeader orderID="P01959" orderDate="2012-10-03T15:52:59" type="new">
<Total>
<Money currency="USD">134.25</Money>
</Total>
<ShipTo>
<Address addressID="V123PR">
<Name xml:lang="en-us">Joe Teacher</Name>
<PostalAddress>
<DeliverTo>Joe Teacher</DeliverTo>
<Street>101 Main Street</Street>
<City>Chico</City>
<State>CA</State>
<PostalCode>95928</PostalCode>
<Country isoCountryCode="US">United States</Country>
</PostalAddress>
<Email>test@test.com</Email>
<Phone>
<TelephoneNumber>
<CountryCode isoCountryCode="US">1</CountryCode>
<AreaOrCityCode>530</AreaOrCityCode>
<Number>5555555</Number>
</TelephoneNumber>
</Phone>
</Address>
</ShipTo>
<BillTo>
<Address addressID="">
<Name xml:lang="en-us">Name</Name>
<PostalAddress>
<DeliverTo>Name</DeliverTo>
<Street>101 Main Street</Street>
<City>Chico</City>
<State>CA</State>
<PostalCode>95928</PostalCode>
<Country isoCountryCode="US">United States</Country>
</PostalAddress>
</Address>
</BillTo>
<Comments xml:lang="en-us" />
</OrderRequestHeader>
<ItemOut quantity="1" lineNumber="1">
<ItemID>
<SupplierPartID>P2012H3</SupplierPartID>
<SupplierPartAuxiliaryID>1014876567272\1</SupplierPartAuxiliaryID>
</ItemID>
<ItemDetail>
<UnitPrice>
<Money currency="USD">134.25</Money>
</UnitPrice>
<Description xml:lang="en-us">this product</Description>
<UnitOfMeasure>EA</UnitOfMeasure>
<Classification domain="NIGP">43211500</Classification>
</ItemDetail>
</ItemOut>
</OrderRequest>
</Request>
</cXML>
The External Reference field is set to _PUNCHOUT when an order has been submitted from POUPPP. The External Reference field (Property Name = ExtRef, Database Table/Column Name = pop_pv_dtl.pop_ext_ref) is not displayed on any page. It is set by the backend application when a PunchOut Order is submitted. The BusinessPlus application does not update or clear the External Reference if it is set to _PUNCHOUT. The cXML Send (C#) activity in the PO_CXMLSENDER workflow model only processes PunchOut Orders when the External Reference value is set to _PUNCHOUT. If the External Reference value is not set to _PUNCHOUT, when the cXML Send (C#) activity is processed it fails and generates the following error in the Error Handler Email (if setup): Purchase Request is not a valid PunchOut Order.