Home

cXML User's Guide

image

Contents

1. This attribute specifies the language that cXML clients should use in responses and that Punchout Websites should display to users Centralized DTDs Previously there was no declared central location for CXML DTDs so cXML parsers could not automatically retrieve them Now DTDs for all versions of cXML are available at consistent locations on cxml org For cXML DTDs go to http xml cXML org schemas cXML lt version gt cXML dtd where version is the full cXML version number such as 1 1 007 For best performance cXML clients should not fetch DTDs each time they parse cXML documents Instead they should cache them locally After populating a URL below xml cxml org schemas cXML there is no need to change that location DTDs will never be changed in place instead new branches will be added New Profile Transaction A new Profile transaction communicates basic information about cXML servers This transaction consists of two new documents named ProfileRequest and ProfileResponse This transaction retrieves server capabilities including supported cXML version supported transactions and options to those transactions Note All cXML 1 1 servers must support this transaction Clients can also use the Profile transaction to ping servers to verify that they are available ProfileRequest The ProfileRequest document has no content It is simply routed to the appropriate cXML server using the Header credentials
2. This chapter shows how to modify a Website to support punchout It discusses the following topics Punchout Requirements Punchout Event Sequence Punchout Documents Modifications to Your Web Pages Punchout Website Suggestions Punchout Requirements Before buying organizations configure their procurement applications for punchout or suppliers implement punchout Websites both parties must evaluate the benefits and requirements of punchout Buying Organizations Setup and testing of cXML compatible procurement applications with a punchout enabled supplier can be completed in less than one day Because barriers to technical integration are low for buying organizations the decision to use punchout should be based on the business practices and types of commodities purchased See Content Delivery Strategy on page 6 for a list of commodities that are well suited for punchout cXML User s Guide 11 Punchout Requirements Chapter 2 Implementing a Punchout Site Business Issues Buying organizations should consider the following questions Do requisitioners and approvers have Internet access If not would controlled access to the Internet be allowed Does the buying organization want their suppliers to create and maintain catalog content including pricing Dorequisitioners currently procure goods on the Internet If so do these goods require a supplier side configuration tool or contain unique
3. 0 000000 96 GetPendingRequest 0 0 cee eee eee ee 96 GetPendingResponse lessen 96 cXML User s Guide iii Table of Contents Appendix B New Features in cXML 1 1 2 0 cece eee eee 99 General Changes to cCKML 0 0 c cece ee eee 99 Improved Multi Language Support 04 99 Centralized DT DS riri te ea eas Rr Rr REY 100 New Profile Transaction 0 0 cece eee eee ee eee 100 New Status Codes 0 cece cece eee eee nee 101 New type Attribute for Marketplace Members 101 Changes to Extrinsics 2 0 0 eee eee eee eee 101 New Contact Element 0 0 cee ee eee eee eee 102 requisitionID Attribute Supported 0 103 Summary of Moved Extrinsic Information Ls 103 Header Level Extrinsics 0 0 cee eee eee 104 Punchout Transaction Improvements 004 104 Improved PunchOutSetupRequest 0 104 SelectedItem Element 2 0 ce cece eee ee ee 105 Empty PunchOutOrderMessage 0 0 105 New cXML base64 Hidden Field 20 105 New Purchase Order Features ce eee eee ee eee 106 New lineNumber Attribute 20 0 0 eee eee eee 106 Purchase Order Attachments lille sees 106 New shipComplete Attribute 000 107 New ShortName Element leeeeeeleeeeees 107 New Purchase Order Sta
4. T twoChar dt getHours str twoChar dt getMinutes twoChar dt getSeconds milli dt getMilliseconds milli milli toString if 3 millilength str milli else Str 0 twoChar milli str 08 00 return str function genProlog cXMLvers randStr var dt var str var vers sysID var nowNum timeStr if 1 1 gt parseFloat cXMLvers vers 1 0 SysID CXML dtd else vers 1 1 007 SysID http xml cXML org schemas cXML vers CXML dtd dt new Date nowNum dt getTime timeStr timestamp dt Str lt xml version 1 1 007 encoding UTF 8 gt n str lt DOCTYPE cXML SYSTEM sysID gt n str cXML version vers payloadID nowNum str randStr Request ServerVariables LOCAL_ADDR Str timestamp timeStr gt return str cXML User s Guide 29 Modifications to Your Web Pages Chapter 2 Implementing a Punchout Site lt script gt REM Create data needed in prolog A lt Randomize randStr Int 100000001 Rnd prologStr genProlog 1 0 randStr Response ContentType text xml Response Charset UTF 8 9o 96 REM This receives the PunchOutSetup request coming from the e commerce hub REM It takes the ORMSURL and buyercookie attaches them to the Start Page URL REM and sends the response back to the requester RE
5. cXML User s Guide VERSION 1 1 JUNE 2000 Ariba Inc Ariba hereby grants to you a perpetual nonexclusive royalty free worldwide right and license to use the cXML specification the Specification under any Ariba copyrights in the Specification to use copy publish modify and distribute the Specification Ariba further agrees to grant to you a royalty free license under applicable Ariba intellectual property rights to implement and use the cXML tags and schema guidelines included in the Specification for the purpose of creating computer programs that adhere to such guidelines One condition of this license shall be your agreement not to assert any intellectual property rights against Ariba and other companies for their implementation of the Specification Ariba expressly reserves all other rights it may have in the material and subject matter of this Specification Ariba expressly disclaims any and all warranties regarding this Specification including any warranty that this Specification or implementations thereof does not violate the rights of others This Specification is provided as is without any express or implied warranty If you publish copy or distribute this Specification then this copyright notice must be attached however if you modify this Specification the name of the modified specification may not include the term cXML in the new name If you submit any comments or suggestions to Ariba and Ariba modifies cXML base
6. cXML version 1 1 007 payloadID 9949494 xml lang en US timestamp 2000 03 12T 18 39 09 08 00 gt lt Header gt Routing identification and authentication information lt Header gt lt ProfileRequest gt lt CXML gt 100 cXML User s Guide June 2000 Appendix B New Features in cXML 1 1 Changes to Extrinsics The server responds with a ProfileResponse document described below ProfileResponse The ProfileResponse document lists transactions supported by the cXML server their locations and any named options with a string value ProfileResponse effectiveDate 2000 01 01T05 24 29 08 00 gt Transaction requestName OrderRequest gt lt URLshitp workchairs com cgi orders cgi lt URL gt lt Transaction gt Transaction requestName PunchOutSetupRequest gt lt URL gt http workchairs com cgi PunchOut cgi lt URL gt lt Transaction gt lt ProfileResponse gt New Status Codes The cXML 1 1 specification includes new transaction status codes for more accurate client server communication In addition the specification contains better descriptions of existing HTTP and cXML status codes New type Attribute for Marketplace Members The Credential element has a new type attribute which specifies whether the sender or receiver is a member of a marketplace There can be multiple marketplaces and each marketplace can have different requirements for credentials The new type attribute has one possible
7. on page 70 In this context outside of an OrderRequest the Distribution and Comments elements and lineNumber requisitionID and requestedDeliveryDate attributes of an ItemOut add little or no value and should not be included Because punchout sessions take place before ordering this information is not relevant within a PunchOutSetupRequest An ItemOut list describes an existing shopping cart items from a previous punchout session The inspect operation initiates a read only punchout session enforced by both the client and the server to view details about the listed items The edit operation also starts from the previous shopping cart described using the ItemOut list but 74 cXML User s Guide June 2000 Appendix A cXML Language Specification Punchout Transaction allows changes Support for the edit operation implies inspect support see PunchOutOrderMessageHeader on page 78 and Empty Shopping Carts on page 78 BuyerCookie This element transmits information that is opaque to the remote Website but must be returned to the originator for all subsequent punchout operations This element allows the procurement application to match multiple outstanding punchout requests BrowserFormPost This element is the destination for the data in the PunchOutOrderMessage It contains a URL element whose use will be further explained in the PunchOutOrderMessage definition If the URL Form Encoded method is not being used thi
8. update or delete optional The buyer s requisition identifier for this entire order It might be requisitionID the same as orderlD and it might not be included at all Must optional not be included if requisitionID is specified in any ItemOut elements A preference against partial shipments The only allowed value is yes By default items are shipped when available Because orders might include items with varying ShipTo elements only groups of items with common shipping locations should be held until complete when shipComplete yes shipComplete optional OrderRequestHeader and ItemOut when extended with ItemDetail contain similar information Where OrderRequestHeader includes overall billing BillTo and payment Payment information ItemOut instead describes the individual items in ItemID ItemDetail and Distribution Specification S S F S S m E z S9 lt Do not use the information in OrderRequestHeader as the default for item specific elements If present ShipTo Shipping Contact and each named Extrinsic must appear either with every ItemOut or in the OrderRequestHeader Comments and Tax elements can appear simultaneously at both levels But the different Comments elements should not duplicate information and the header level Tax element contains a total for the order Total This element contains the total monetary amount of the order It is a container for the Money element Shi
9. OrderRequest The following example illustrates the structure of the OrderRequest element lt OrderRequest gt lt OrderRequestHeader gt lt OrderRequestHeader gt ItemOut gt ItemOut ItemOut gt ItemOut lt OrderRequest gt OrderRequestHeader The following example shows an OrderRequestHeader in full detail lt OrderRequestHeader orderID DO1234 orderDate 1999 03 12T 13 30 23 8 00 type new requisitionID R1234 gt lt Total gt cXML User s Guide 65 Specification S S F S S m E z S9 lt Order Definitions Appendix A cXML Language Specification Money currency USD gt 12 34 lt Money gt lt Total gt lt ShipTo gt lt Address gt lt Name xml lang en gt Acme Corporation lt Name gt PostalAddress name Headquarters gt lt DeliverTo gt Joe Smith lt DeliverTo gt lt DeliverTo gt Mailstop M 543 lt DeliverTo gt lt Street gt 123 Anystreet lt Street gt lt City gt Sunnyvale lt City gt lt State gt CA lt State gt lt PostalCode gt 90489 lt PostalCode gt lt Country isoCountryCode US gt USA lt Country gt lt PostalAddress gt lt Address gt lt ShipTo gt lt BillTo gt lt Address gt lt Name xml lang en gt Acme Corporation lt Name gt lt PostalAddress name Finance Building gt lt Street gt 124 Anystreet lt Street gt lt City gt Sunnyvale lt City gt lt State gt CA lt State gt lt PostalCode gt 90489 lt PostalCod
10. SupplierLocation element 85 SupplierPartAuxiliaryID element Supplier Cookie 27 36 87 SupplierSetup element 76 SupplierSetup URL 24 Tax element 68 time and date format 49 timestamp attribute 22 48 To element 22 To From and Sender elements 53 tools for working with XML 9 Total element 67 Transaction element 64 type attribute 53 Unit of Measure 27 62 URL element 63 URL encoded 60 utilities for use with XML 9 V validating cXML 7 version attribute 48 X XML 14 xml lang 28 xmllanguageCode element 62 cXML User s Guide 113 www cxml org
11. cXML urlencoded VALUE URL Encoded PunchOutOrderMessage document gt lt INPUT TYPE SUBMIT VALUE Proceed gt lt FORM gt Additional HTML tags on the page might contain the above fragment to describe the contents of the shopping basket in detail Note When Web servers send the cXML urlencoded field it is not yet URL encoded This encoding is required only when the form is submitted by Web browsers when users click Check Out in the above example Web browsers themselves meet this requirement The Web server must HTML encode only the field value escaping quotation marks and other special characters so the form displays properly for the user The name cXML urlencoded is case insensitive For cXML urlencoded data the receiving parser cannot assume a charset parameter beyond the default for media type text xml No character encoding information for the posted data is carried in an HTTP POST The receiving Web server cannot determine the encoding of the HTML page containing the hidden field The cXML document forwarded in this fashion must therefore use us ascii character encoding Any characters including those URI encoded as XX found in the XML source document must be in the us ascii set Other Unicode symbols can be encoded using character entities in that source document Base64 Encoding The cXML base64 hidden field eases handling of international documents cXML documents containing symbols outside of us as
12. cxml org Website 7 cXML base64 hidden field 34 60 cXML urlencoded hidden field 34 60 D date and time format 49 deploymentMode attribute 54 58 Description element 20 80 Distribution element 72 DocumentReference element 81 domain attribute 53 DTDs Document Type Definitions 7 EDI X 12 Electronic Data Interchange 4 editors for XML 9 effectiveDate attribute 64 88 encoding character 50 expirationDate attribute 88 Extrinsic element 24 36 70 75 Followup element 69 form encoding 34 60 From element 22 From To and Sender elements 53 GetPendingRequest element 96 GetPendingResponse element 96 Header element 52 HTML form encoding 34 60 id attribute 73 Index element 86 cXML User s Guide 111 Index IndexItemAdd element 86 IndexItemDelete element 86 IndexItemDetail element 87 IndexItemPunchout element 86 inReplyTo attribute 58 IsoCountryCode element 62 IsoLanguageCode element 62 ItemDetail element 80 87 ItemID element 79 ItemIn element 79 ItemOut element 70 ItemSegment element 88 language in cXML header 28 lastReceivedTimestamp attribute 96 Launch Page 28 lineNumber attribute 70 79 locale in cXML header 28 maxMessages attribute 96 Message element 58 MIME attachments 43 50 operation attribute 22 74 operationAllowed attribute 78 Order Receiver Page 35 orderDate attribute 67 orderID attribute 67 OrderMethods element 85 OrderRequest element 65 OrderRequestHeader elem
13. distinct parts Header Contains authentication information and addressing Request or Response data Contains a specific request or response and the information to be passed Both of these elements are carried in a parent envelope element The following example shows the structure of a cXML Request document lt cXML gt lt Header gt Header information here lt Header gt lt Request gt Request information here lt Request gt lt cXML gt The following example shows the structure of a cXML Response document cXML Response Response information here lt Response gt lt cXML gt The Response structure does not use a Header element It is not needed because the Response always travels in the same HTTP connection as the Request XML Conventions cXML uses elements to describe discrete items often properties in traditional business documents Information with obvious subdivisions and relations between those subdivisions such as an address are also described using elements cXML makes extensive use of attributes cXML User s Guide 47 Specification S S F S S m E z S9 lt Protocol Specification Appendix A cXML Language Specification In cXML all elements and attribute names use whole words with capitals not hyphens separating the words Element names begin with an uppercase letter attribute names begin with a lowercase letter for example Elements Attrib
14. sending the PunchOutOrderMessage to buyers Destroying these cookies prevents the possibility of offering privileged features to unauthorized users cXML User s Guide 31 Modifications to Your Web Pages Chapter 2 Implementing a Punchout Site Sender Page The Sender Page sends the contents of the user s shopping cart to the user As described earlier after users fill their shopping carts they click your Check Out button Below is a simple ASP implementation of this feature This code does not use an XML parser to dynamically generate the PunchOutOrderMessage but instead uses a static XML template into which line item data is filled This code is intended for illustrative purposes only This is a portion of a supplier s Website product page lt include file punchoutitem inc gt IDOCTYPE HTML PUBLIC W3C DTD HTML 4 0 Transitional EN gt lt saved from url 0093 https secure1 shore net wbird cgi vsc cgi wbird houses urban htm L wbird w adt4101 928011405 gt lt TABLE border 0 gt lt TBODY gt lt TR gt lt TD gt lt IMG src UrbanHouses_files uhjm gif gt lt TD gt lt TD gt lt STRONG gt Jefferson Memorial lt STRONG gt A birdfeeder with a rotunda This famous American monument will be a unique addition to any garden or yard It attracts small to medium sized birds and its dimensions are 11 x 9 1 2 x 8 H lt TD gt lt TR gt lt TBODY gt lt TABLE gt lt BR gt Jefferson
15. Granularity You can create store level aisle level or product level catalogs Store level catalogs list all of your products and services Users must search to find the desired item Aisle level catalogs list related products and services Product level catalogs list only one product or service Users need to perform no searching To determine how broad to make punchout items consider your business model the makeup of your product and service offerings and the structure of your punchout Website The more search and configuration tools you have on your Website the more broad you can make the punchout items in your index catalogs 20 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Punchout Documents PunchOutSetupRequest To initiate a punchout session the user selects your punchout item The procurement application generates a PunchOutSetupRequest document and sends it to an e commerce hub which forwards it to your punchout Website The following is a sample PunchOutSetupRequest document lt xml version 1 0 gt IDOCTYPE cXML SYSTEM http xml cxml org schemas cXML 1 1 007 cXML dtd gt lt cXML version 1 1 007 xml lang en US payloadID 933694607 118 186931 8421 jlee timestamp 2000 08 15T08 36 47 07 00 gt lt Header gt Originator buying n From organization Credential domain DUNS gt lt Identity gt 6565231 4 lt Identity gt lt Credential gt lt From
16. HUERRUNER M REB ER berg 48 Wrapping Layers sseseleeeee e 50 Header ceca Pees ol BAe eee amp Lea eB EERE BOE PERS 52 Request a2 feeds veces stb cet ak euch ark iced dg 54 Response os rue boo bI psp NEP ER Pis 54 One Way Asynchronous Model eseee esses 57 Basic Elements inen tenas Ee ERAN ad eH RE UIS 62 Type Entities ice base bib a 62 Base Elements es sy strede eea pix peut Pte 63 Profile Transaction isede rire i e eee e 63 ProfileRequ est irasai tae IENE ARE EARDER A REEERE STR 63 ProfileRespons reisin ae a E E EE E OS 63 Order Defimitiofis i isani D E E a E E EE EE 65 OrderRequest 2 3 1 ait p dace te E UP epe 65 Response to an OrderRequest llle esee ee ee 73 Punchout Transaction 0 0 cece eee eee eee 73 PunchOutSetupRequest 0 0 0 c ee eee eee 74 PunchOutSetupResponse 00 0 0 e eee eee 76 PunchOutOrderMessage 0 0 00 cee ee eee eee TI Later Status Changes 0 0c eee eee eee 81 DocumentReference 0 0 0 cece ee eee 81 StatusUpdateRequest llle eese 82 Catalog Definitions 0 00 eee eee 83 Supplier sb buc HU SB p pida 84 Index pes erresetan Ee D eS eB e NP E EA DUE E 86 Contract ds HL qe ea od edt Beta 88 Subscription Management Definitions 89 Supplier Datas crebri pO E RE ET Pup e pues 89 Catalog Subscriptions sllleeee eee 93 Message Retrieval Definitions
17. Memorial lt STRONG gt 139 95 lt STRONG gt lt BR gt 96 AddBuyButton 139 95 101 Bird Feeder Jefferson Memorial 5 gt lt BR gt lt HR gt The AddBuyButton function sends the PunchOutOrderMessage back to the user The following listing is the include file punchoutitem inc referenced above lt REM This asp is included in items asp which specifies the item parameters formats REM a cXML document and allows the user to proceed with a checkout of the item function CreateCXML toUser fromUser buyerCookie unitPrice supPartld desc 96 lt xml version amp quot 1 0 amp quot encoding amp quot UTF 8 amp quot gt IDOCTYPE cXML SYSTEM amp quot http xml cxml org schemas cXML 1 1 007 cXML dtd amp quot gt 32 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Modifications to Your Web Pages cXML version amp quot 1 1 007 amp quot payloadID amp quot lt Now amp amp Request ServerVariables LOCAL_ADDR gt amp quot timestamp amp quot lt Now gt amp Quot gt lt Header gt lt From gt Credential domain amp quot ariba com amp quot gt lt Identity gt lt toUser gt lt Identity gt lt Credential gt lt From gt lt To gt Credential domain amp quot ariba com amp quot gt lt Identity gt lt fromUser gt lt Identity gt lt Credential gt lt To gt lt Sender gt lt Credential domain amp quot ariba com amp quot gt lt Identity gt
18. Purchase Orders Receiving Purchase Orders City Mountain View lt City gt State CA State lt PostalCode gt 94089 lt PostalCode gt lt Country gt United States lt Country gt lt PostalAddress gt lt Email name default gt john_smith acme com lt Email gt lt Phone name work gt lt TelephoneNumber gt lt CountryCode isoCountryCode US gt 1 lt CountryCode gt lt AreaOrCityCode gt 800 lt AreaOrCityCode gt lt Number gt 5555555 lt Number gt lt TelephoneNumber gt lt Phone gt lt Address gt lt ShipTo gt lt BillTo gt Address isoCountryCode US addressID 12 gt lt Name xml lang en gt Acme Accounts Payable lt Name gt lt PostalAddress name default gt lt Street gt 124 Union Street lt Street gt lt City gt San Francisco lt City gt lt State gt CA lt State gt lt PostalCode gt 94128 lt PostalCode gt lt Country isoCountryCode US gt US lt Country gt lt PostalAddress gt lt Phone name work gt lt TelephoneNumber gt lt CountryCode isoCountryCode US gt 1 lt CountryCode gt lt AreaOrCityCode gt 415 lt AreaOrCityCode gt lt Number gt 6666666 lt Number gt lt TelephoneNumber gt lt Phone gt lt Address gt lt BillTo gt lt Shipping gt lt Money currency USD gt 12 34 lt Money gt lt Description xml lang en us gt FedEx 2 day lt Description gt lt Shipping gt lt Tax gt lt Money currency USD gt 10 74 lt Money gt lt Description xml lang e
19. ShipTo gt lt Ship To gt lt OrderRequestHeader gt lt ltemOut gt ItemOut lt OrderRequest gt Do not include requisitionID at the ItemOut level if you use it at the OrderRequestHeader level Summary of Moved Extrinsic Information The following table lists the changes made to commonly used Extrinsic elements Old Extrinsic Existing or new cXML element or attribute Requested Ship Date ItemOut requestedDeliveryDate attribute ship complete new shipComplete attribute ReqNumber existing requisitionID attribute P Requisition existing requisitionID attribute E ur Name new Contact element E 3 Phone new Contact element E mailAddress new Contact element x Buyer Name new Contact element cXML User s Guide 103 Punchout Transaction Improvements Appendix B New Features in cXML 1 1 Old Extrinsic Existing or new cXML element or attribute Buyer Phone new Contact element OriginalRequester new Contact element Requester Phone Number new Contact element ETA existing requestedDeliveryDate attribute Header Level Extrinsics Previously purchase order Extrinsic elements could appear only at the product line item level Now they can appear anywhere within the OrderRequest document Use this new capability for Extrinsic data that applies to the entire purchase order Extrinic elements with the same name cannot appear at both the header level and the line item level in an OrderRequ
20. Specification S S F S S m E z S9 lt Subscription Management Definitions Appendix A cXML Language Specification lt Changetime gt 1999 03 12T 18 39 09 08 00 lt Changetime gt lt SupplierID domain DUNS gt 123456789 lt SupplierID gt Format version 2 1 gt ClF lt Format gt lt Description xml lang en US gt The best prices for software lt Description gt lt Subscription gt lt Subscription gt lt InternallD gt 1235 lt InternallD gt lt Name xml lang en US gt Q2 Software Prices lt Name gt lt Changetime gt 1999 03 12T 18 15 00 08 00 lt Changetime gt lt SupplierID domain DUNS gt 555555555 lt SupplierlD gt Format version 2 1 gt ClIF lt Format gt lt Description xml lang en US gt The best prices for software lt Description gt lt Subscription gt lt SubscriptionListResponse gt lt Response gt SubscriptionContentRequest This element requests the contents of a subscribed catalog The request includes the InternallD and SupplierlD for the catalog Request lt SubscriptionContentRequest gt lt InternallID gt 1234 lt InternallD gt lt SupplierID domain DUNS gt 123456789 lt SupplierID gt lt SubscriptionContentRequest gt lt Request gt SubscriptionContentResponse This element contains the contents of a catalog The catalog format can be either CIF Catalog Interchange Format or cXML If it is CIF it is encoded using base64 and included as the content of a C
21. an order This element identifies a person and provides a list of ways to reach that person or entity The only required element is the Name of the contact Optional and repeating possibilities include PostalAddress not recommended for immediate correction of order problems Email Phone Fax and URL Buying organizations might choose to use this element to identify the original requestor the procurement application system administrator or some other contact who can take responsibility for correcting problems with orders Contact can differ from both BillTo and ShipTo information for an order Contact has the following attribute The position of this person within the procurement process Can take the values endUser administrator purchasingAgent technicalSupport customerService or sales role optional 68 cXML User s Guide June 2000 Appendix A cXML Language Specification Order Definitions The same Conact role must not appear at both the header and item levels There is no default role due to the disparate contents of the Contact element So cXML applications treat a Contact without a role attribute as an additional role Comments Arbitrary human readable information buyers can send within purchase orders This string data is not intended for the automated systems at supplier sites The Comments element can contain an Attachment element for including external files Attachment Comments can attac
22. attributes that cannot conform to a static content model Does the buying organization use content aggregators for catalogs for example Aspect TPN Register or Harbinger Does the buying organization currently procure services for example consultants temp services or maintenance through the Internet Does the buying organization currently conduct online sourcing If the answer to any of the above questions is yes then punchout might be appropriate for the buying organization Technical Issues Buying organizations must meet the following technical requirements Direct Internet Access Users within buying organizations must have direct Internet access Punchout relies on regular Web browser sessions where the user interacts with live supplier Websites This communication occurs through regular internet Internet infrastructure not through the procurement application e Reliable Internet Connection Internet access must be constantly operational and reliable If users cannot procure products because of Internet outages they are likely to make rogue purchases Contracts with Punchout Suppliers Purchasing agents must have established contracts with punchout enabled suppliers Punchout Websites allow access only to known authenticated buying organizations 12 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Punchout Requirements Suppliers The term supplier in the context of punchout
23. base64 Hidden Field The new cXML base64 hidden field supports international documents within the FORM POST returned by punchout sites CXML documents containing symbols outside of us ascii should use this field instead of the cXML urlencoded hidden field This cXML User s Guide 105 New Purchase Order Features Appendix B New Features in cXML 1 1 alternative has almost identical semantics but the entire document is base64 encoded throughout transport and not HTML encoded to the browser nor URL encoded to the receiving Web server Base64 encoding maintains the original character encoding of a cXML document Although no charset parameter arrives with the posted information the decoded document after the transfer encoding is removed can be treated as the media type application xml This treatment allows the receiving parser to honor any encoding attribute specified in the XML declaration For this field and all application xml documents the default character encoding is UTF 8 New Purchase Order Features cXML purchase order documents have been enhanced to support requested features New lineNumber Attribute lineNumber is a new optional attribute to the ItemOut element It specifies the location of an item within the buyer s purchase order It is chosen as the order is placed so it is usually not relevant to punchout sessions ItemOut quantity 2 lineNumber 1 requestedDeliveryDate 2000 0
24. conveys state that allows the buying organization s system to maintain the relationship between a requisition and a shopping basket Likewise the supplier cookie is analogous to a quote number it conveys state that allows your system to maintain a relationship between a shopping basket and the buyer s requisition and purchase order Procurement applications pass the supplier cookie back to you in subsequent punchout edit or inspect sessions and in the resulting purchase order Your Website should take advantage of the supplier cookie to eliminate the need to pass visible supplier specific data back to the buyer Personalization The header of the PunchOutSetupRequest always identifies the buying organization but the request might also contain Contact and Extrinsic data such as user s cost center user s location or product category that you can use to determine the dynamic URL to serve to the user 36 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Punchout Website Suggestions Although not all buying organizations send this extrinsic data it can enable you to customize your Web store beyond the simple organization level For example you could provide a separate Web store for each cost center within the buying organization or each product category or each user You could also store and display the user s previous quotes You could allow users to reuse quotes check the status of orders and create repo
25. description Europe Implementation gt lt Accounting gt lt Charge gt Money currency USD gt 1 lt Money gt lt Charge gt lt Distribution gt lt Comments xml lang en US gt Anything valid in XML can go here lt Comments gt lt ltemOut gt The ItemDetail element allows additional data to be sent to suppliers instead of just the unique identifier for the item represented by the ItemID The ShipTo Shipping Tax Contact Comments and Extrinsic elements some nested within ItemDetail are identical to the ones that can be in the OrderRequestHeader These elements allow per item data such as shipping shipping type and associated cost to be represented Use these elements either as the OrderRequestHeader level or at the ItemOut level but not at both levels Distribution Distribution divide the cost of an item among multiple parties Suppliers return the Distribution element on invoices to facilitate the buyer s reconciliation process Accounting The Accounting element groups Segments to identify who is charged Accounting has the following attribute name The name for this accounting combination 72 cXML User s Guide June 2000 Appendix A cXML Language Specification Punchout Transaction Segment has the following attributes type An identifying name for this Segment with respect to the others yP in the Accounting element The unique identifier within this Segment type This value mig
26. domain UNSPSC gt 5136030000 lt Classification gt lt PunchoutDetail gt lt IndexltemPunchout gt cXML User s Guide 19 d amp bd c E E S a E a 2 77 3 2 Q S a Punchout Documents Chapter 2 Implementing a Punchout Site Indexltem lt Index gt SupplierlD identifies the supplier organization You can use any identification domain but the recommended ones are DUNS Dun amp Bradstreet Universal Naming System and NetworkID For more information about DUNS numbers see www dnb com Description specifies the text that the procurement application displays in product catalogs You can provide the description in multiple languages and the procurement application displays the appropriate one for the user s locale Classification specifies the commodity grouping of the line item to the buyer All your products and services must be mapped and standardized to the UNSPSC schema For punchout index catalogs the Classification determines the location of the punchout item within catalogs displayed to users For a list of UNSPSC codes see www unspsc com Creating and Publishing Index Catalogs Create these catalogs and publish them on an e commerce hub to your customers The catalog manager within buying organizations downloads them and stores them for use with procurement applications Users see the contents of your punchout index catalogs alongside regular static catalog items Punchout Item
27. encompasses more than the traditional definition of the term The punchout protocol was designed as a flexible framework capable of transmitting data about virtually any kind of product or service from any kind of supplier distributor aggregator or manufacturer Example products and services include Computers direct from a manufacturer or reseller 2 77 3 2 Q S a e Chemicals and reagents from an aggregator d amp bd c E E S a E a Office supplies from a distributor Contract services from a temp agency You might already have a transactive Website capable of hosting content and receiving purchase orders Given this capability you need to consider both your business practices and technical resources in deciding whether to implement punchout Business Issues Suppliers should consider the following questions Do you currently sell your products or services through the Internet If so do you offer customer specific content contract pricing through your Website Do your products and services fall into one of the punchout categories as described in the chart in Content Delivery Strategy on page 6 To review these categories include Highly configurable products such as computers Large number of line items such as books Unique product attributes such as chemicals Normalized data such as MRO Supplies Do you prefer to receive purchase orders and or payment through your Websi
28. for example if it contains additional XML elements not defined in the cXML protocol they must be escaped properly Due to the necessity to pass SupplierPartAuxiliaryID information through applications and back to the originating supplier an internal subset containing any additional XML elements is insufficient ItemDetail This element contains descriptive information about the item that procurement applications present to users The contents of an ItemDetail element can be quite complex but the minimum requirements are simple UnitPrice Description UnitOfMeasure and Classification In the context of an Itemin element the Extrinsic elements contained within an ItemDetail function identically to those found within an Index specifically an IndexltemAdd Description This element describes the item in a textual form Because this text might exceed the limits of a short table of line items or other constrained user interface and random truncations could occur the Description element contains an optional ShortName element If provided clients should present the ShortName instead of a truncation of the Description text in any restricted fields Clients must continue to truncate the Description text if no ShortName is provided For example Description xml lang en US gt lt ShortName gt Big Computer lt ShortName gt This wonder contains three really big disks four CD Rom drives two Zip drives an ethernet card or two much
29. gt Destination supplier gt lt To gt lt Credential domain DUNS gt lt Identity gt 83528721 lt Identity gt lt Credential gt lt To gt Previous relaying entity lt Sender gt Ariba Network in this case lt Credential domain AribaNetworkUserld gt lt Identity gt sysadmin ariba com lt Identity gt lt SharedSecret gt abracadabra lt SharedSecret gt lt Credential gt lt UserAgent gt Ariba ORMS 6 1 lt UserAgent gt lt Sender gt lt Header gt lt Request gt Type of request lt PunchOutSetupRequest operation create gt lt BuyerCookie gt 1CX3L4843PPZO lt BuyerCookie gt lt Extrinsic name CostCenter gt 610 lt Extrinsic gt Extrinsic name User gt john_smith lt Extrinsic gt Destination for final lt BrowserFormPost gt PunchOutOrderMessage lt URL gt hitps aribaorms 26000 punchout asp lt URL gt lt BrowserFormPost gt lt SupplierSetup gt lt URL gt hitp www workchairs com punchout asp lt URL gt lt SupplierSetup gt Item selected by user Selectedltem ItemOut quantity 1 gt ItemID lt SupplierPartID gt 5555 lt SupplierPartID gt lt ltemID gt ItemOut v D o cs EO E EO CE Qc Eg N cXML User s Guide 21 Punchout Documents Chapter 2 Implementing a Punchout Site lt Selectedltem gt lt PunchOutSetupRequest gt lt Request gt lt cXML gt The payloadID and timestamp attributes near the beginning are used by cXML clients to track
30. has the following attributes Specifies the type of credential This attribute allows documents to contain multiple types of credentials for multiple domain authentication domains For messages sent on Ariba Network for instance the domain is usually AribaNetworkUserld or DUNS Requests to or from a marketplace identify both the type marketplace and the member company in From or To Credential optional elements In this case the credential for the marketplace uses the type attribute which is set to the value marketplace cXML User s Guide 53 Specification S S F S S m E z S9 lt Protocol Specification Appendix A cXML Language Specification Request Credential contains an Identity element and optionally a SharedSecret or DigitalSignature element The Identity element states who the Credential represents while the optional authentication elements verify the identity of the party The SharedSecret element is used when the Sender has a username password combination that the requester recognizes The DigitalSignature element can be used if the two parties agree on a common certificate format and authority The type attribute on a DigitalSignature element specifies the type of certificate being used Note Do not use authentication elements in documents sent through one way communication This transport routes through users browsers so users would be able to see the document source includ
31. more memory than you could ever use four CPUs on two motherboards We ll throw in two monitors a keyboard and the cheapest mouse we can find lying around lt Description gt might appear as Big Computer where space is tight and Big Computer This wonder lying around or as two separate but complete fields where there is space to display more text 80 cXML User s Guide June 2000 Appendix A cXML Language Specification Later Status Changes Later Status Changes After the OrderRequest transaction has completed suppliers and intermediate servers might need to communicate additional information back to the buying system The transactions described in this section are used for that purpose These transactions share some common semantics and elements Like the response to an OrderRequest see Response to an OrderRequest on page 73 none of these transactions includes a specific Response element Instead the returned document contains a nearly empty Response only a Status Each returned document has the form lt cXML version 1 1 007 payloadID 9949494 supplier com timestamp 2000 01 12T 18 39 09 08 00 xml lang en US gt lt Response gt Status code 200 text OK gt lt Response gt lt cXML gt The returned code is 200 only if the operation completed successfully DocumentReference The DocumentReference element contains enough information to associate the update request with a
32. particular document It repeats a required attribute of the earlier document and adds one optional identifier generated by the supplier For example lt DocumentReference payloadID 0c300508b7863dcclb_14999 gt DocumentReference contains no elements but has the following attribute A unique number with respect to space and time that is used for logging purposes to identify documents This value should not change in the case of retry attempts payloadID The recommended implementation is datetime process id random number hostname Taken directly from the cXML element of the OrderRequest document cXML User s Guide 81 Specification S S F S S m E z S9 lt Later Status Changes Appendix A cXML Language Specification StatusUpdateRequest This transaction informs an earlier node about changes in the processing status of an order One change is of particular significance When an intermediate hub successfully transmits an OrderRequest onward it can inform the original sender or a previous hub about that success Transitions through various queues and processing steps at a supplier or hub might also be significant to the buyer This request updates the processing status of a single OrderRequest document For example cXML version 1 1 007 xml lang en US payloadID 0c30050 supplier com timestamp 2000 01 08T23 00 06 08 00 gt lt Header gt Routing identification and authentication informa
33. re punchout is simply a PunchOutSetupRequest with edit as its operation Step 5 Transmittal of Purchase Order After the contents of the shopping cart have been passed from your Website to the user s purchase requisition the procurement application approval processes take over When the purchase requisition is approved the procurement application converts it into a purchase order and sends it back to your Website for fulfillment Purchasing card data can be transmitted along with the order or you can invoice the order upon shipment The following figure illustrates purchase order transmittal Roe 5 When request is fully approved order is sent to supplier through e commerce network hub les multiple ways to select a product to search for hich are configurable choose a particular model nd View Configurable Models by Product Family mte 3 AGS Spaces E familly i E T lectins How does it work The procurement application sends all purchase orders to the e commerce hub in cXML format The hub then routes them to you using your preferred order routing method When you acknowledge the receipt of a purchase order you have effectively booked the order For punchout enabled suppliers the order routing method should be cXML because of the following reasons 18 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Punchout Docum
34. 00 Appendix A cXML Language Specification Protocol Specification From To Sender contains the Credential element which allows the receiving party to authenticate the sending party This allows strong authentication without requiring a public key end to end digital certificate infrastructure Only a user name and password need to be issued by the receiving party to allow the sending party to perform Requests Initially Sender and From are the same However if the cXML document travels through e commerce network hubs the Sender element changes to indicate current sending party This element identifies the originator of the cXML request It can optionally contain more than one Credential element allowing requestors to identify themselves using multiple identification methods This use of multiple credentials is analogous to sending both SMTP and X 400 addresses in an e mail message This element identifies the destination of the cXML request Like the From element it can contain more than one Credential to help identify the target Sender This element allows the receiving party to identify and authenticate the party that opened the HTTP connection It contains a stronger authentication Credential than the ones in the From or To elements because the receiving party must authenticate who is asking it to perform work Credential This element contains identification and authentication values used in cCXML messages Credential
35. 3 12 gt lt ltemID gt lt SupplierPartID gt 11223344 lt SupplierPartID gt lt ltemID gt lt ltemDetail gt lt ItemDetail gt lt ltemOut gt Line numbers for items must remain constant through change orders to identify the change Purchase Order Attachments Buyers often need to clarify purchase orders with memos drawings or faxes Procurement applications can now attach files of any type to cXML purchase orders by using MIME Multipurpose Internet Mail Extensions cXML contains only references to external MIME parts sent within one multipart MIME envelope with the cXML document in an e mail or faxed together 106 cXML User s Guide June 2000 Appendix B New Features in cXML 1 1 New Purchase Order Features A new Attachment element contains references to the attachments Comments Attachment URL cid uniqueCID buyer com lt Attachment gt Please see attached image for my idea of what this should look like Comments E commerce network hubs receive the attachments and they can forward them to the supplier or store them for online retrieval For more information about the MIME standard see the following Websites www hunnysoft com mime www rad com networks 1995 mime mime htm New shipComplete Attribute shipComplete is a new optional attribute to the OrderRequestHeader element that instructs suppliers to fill an order only when all items are available This attribute prevents partia
36. 6 cXML User s Guide June 2000 Appendix A cXML Language Specification Punchout Transaction PunchOutOrderMessage This element sends the contents of the remote shopping basket to the originator of a PunchOutSetupMessage It can contain much more data than the other messages because it needs to be able to fully express the contents of any conceivable shopping basket on the external Website This message does not strictly follow the Request Response model The remote Website generates a PunchOutOrderMessage when the user checks out This message communicates the contents of the remote shopping basket to the procurement application for example lt PunchOutOrderMessage gt lt BuyerCookie gt 34234234ADFSDF234234 lt BuyerCookie gt lt PunchOutOrderMessageHeader operationAllowed create gt lt Total gt lt Money currency USD gt 100 23 lt Money gt lt Total gt lt PunchOutOrderMessageHeader gt Itemln quantity 1 gt ItemID lt SupplierPartID gt 1234 lt SupplierPartID gt lt SupplierPartAuxiliaryID gt additional data about this item lt SupplierPartAuxiliaryID gt lt ltemID gt lt ltemDetail gt lt UnitPrice gt lt Money currency USD gt 10 23 lt Money gt lt UnitPrice gt lt Description xml lang en gt Learn ASP in a Week lt Description gt lt UnitOfMeasure gt EA lt UnitOfMeasure gt Classification domain SPSC gt 12345 lt Classification gt lt ltemDetail gt lt ltemIn gt lt Pun
37. Accepting Order Attachments Chapter 3 Receiving cXML Purchase Orders 44 cXML User s Guide June 2000 Appendix A cXML Language Specification This appendix describes the protocol and data formats of cXML commerce eXtensible Markup Language It contains all the information you need to implement any of the supported transactions from either the client or the server system perspective Both the protocol interactions and business documents contained in the transactions are discussed in depth Additionally examples of actual implementations illustrate and clarify the use of cXML This appendix contains the following sections Protocol Specification Basic Elements Profile Transaction Order Definitions Punchout Transaction Later Status Changes Catalog Definitions Subscription Management Definitions Message Retrieval Definitions cXML User s Guide 45 S S F S S m E z S9 lt Specification Protocol Specification Appendix A cXML Language Specification Protocol Specification There are two communications models for cXML transactions Request Response and One Way These two models enable simple implementation because the operations required are strictly described Both models are required because there are situations when one model would not be appropriate Request Response Model Request Response transactions can be performed only over an HTTP connection The following figure illustrate
38. D lt Indexltem gt lt IndexltemAdd gt lt IndexltemDetail gt lt IndexltemDetail gt lt IndexltemAdd gt lt IndexltemDelete gt lt IndexltemDelete gt lt IndexltemPunchout gt IndexltemPunchout Indexltem lt Index gt Indexltem IndexltemAdd IndexltemDelete and IndexltemPunchout The Indexltem element is a container for the list of items in an index It contains three types of elements IndexitemAdd Inserts a new item or updates an existing item in the index It contains an ItemID element a ItemDetail element and a IndexltemDetail element ndexltemDelete R emoves an item from the index It contains an ItemID element identifying the item IndexitemPunchout Inserts an item for initiating puchout to the supplier s Website It contains a PunchoutDetail element and an ItemID element It is similar to an IndexltemAdd element except that it does not require price information Buyers acquire item details in real time from the supplier s Website 86 cXML User s Guide June 2000 Appendix A cXML Language Specification Catalog Definitions ItemID The ItemID element uniquely identifies a supplier s items It contains a SupplierPartlD element and an optional SupplierPartAuxiliaryID element SupplierPartAuxiliaryID If SupplierPartID does not uniquely identify the item the supplier should use SupplierPartAuxiliaryID to specify an auxiliary key that identifies the part uniquely when c
39. D gt Format version 2 1 gt CIF lt Format gt lt Subscription gt lt SubscriptionChangeMessage gt lt Message gt lt CXML gt lt GetPendingResponse gt lt Response gt cXML User s Guide 97 Specification S S F S S m E z S9 lt Message Retrieval Definitions Appendix A cXML Language Specification 98 cXML User s Guide June 2000 Appendix B New Features in cXML 1 1 cXML 1 1 contains the following categories of new features General Changes to cXML Changes to Extrinsics Punchout Transaction Improvements New Purchase Order Features New Purchase Order Status Transaction For in depth discussions of any element or attribute mentioned here see Appendix A cXML Language Specification General Changes to cXML The following changes affect large areas of the cXML language These improvements make cXML easier to use internationally and address cXML version compatibility In addition a new Profile transaction allows cXML clients to query cXML server capabilities E Improved Multi Language Support M E For consistency and better multi language support the cXML Status and 2 ManufacturerName elements now have an optional xml lang attribute R 3 For more information Example m Status on page 54 Status xml langz en US code 200 text OK gt lt Status gt cXML User s Guide 99 General Changes to cXML Appendix B New Features in cXML 1 1
40. E commerce Hub All PunchOutSetupRequest documents route through an e commerce hub for authentication and to look up the URL of your punchout Website The steps are 1 The hub receives the PunchOutSetupRequest document from the user 2 The hub verifies the buyer s ID From and Shared Secret with that buyer s e commerce account It also identifies the requested supplier To 3 The hub looks up your shared secret from your account and inserts it Shared Secret into the Sender element 4 The hub finds the URL of your punchout Website in your account and sends the PunchOutSetupRequest document to it cXML User s Guide 23 d amp bd c E E S a E a 2 77 3 2 Q S a Punchout Documents Chapter 2 Implementing a Punchout Site 5 Your Website receives the cXML document and knows that it is authenticated because it contains your own shared secret 6 Your Website uses information in the From element to identify the requester at the company level for example acme com 7 You can use the Contact and extrinsic data in the body of the request to uniquely identify the user for example John Smith in Finance at acme com The PunchOutSetupRequest and PunchOutSetupResponse documents pass through the e commerce hub for authentication The PunchOutOrderMessage document returning the contents of the shopping basket to the procurement application travels directly between your Website and the user through st
41. M punchoutredirect asp bc 21 33hfefe amp url http workchairs com amp redirect Dim ret Dim punch Dim statusText Dim statusCode Dim cookie Dim url Dim xmlstr Dim fromUser Dim toUser cookie url xmlstr dir path Request ServerVariables PATH_INFO dir Left path InstrRev path if lsEmpty dir then dir end if REM This command reads the incoming HTTP cXML request xml Request BinaryRead Request TotalBytes for i 1 to Request TotalBytes xmlstr xmlstr String 1 AscB MidB xml i 1 Next cookie elementValue xmlstr lt BuyerCookie gt url elementValue xmlstr lt URL gt fromUser elementValue xmlstr lt Identity gt newXMLStr Right xmlstr Len xmlstr InStr xmlstr lt Identity gt Len lt Identity gt toUser elementValue newXMLStr lt Identity gt 9o REM This formats the cXML PunchOutSetupReponse lt if IsEmpty cookie then gt lt prologStr gt lt Response gt 30 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Modifications to Your Web Pages Status code 400 Text Bad Request gt Invalid Document Unable to extract BuyerCookie lt Status gt lt Response gt lt cXML gt lt else gt lt prologStr gt lt Response gt Status code 200 text OK gt lt PunchOutSetupResponse gt lt StartPage gt lt URLshttp lt Request ServerVariables LOCAL_ADDR gt lt dir gt punchoutr
42. OfMeasure describes how the product is packaged or shipped It must conform to UN CEFACT Unit of Measure Common Codes For a list of UN CEFACT codes see www unece org cefact 62 cXML User s Guide June 2000 Appendix A cXML Language Specification Profile Transaction URL A URL Uniform Resource Locator as defined by the HTTP 1 1 standard Base Elements These elements used throughout the specification range from generic ones such as Name and Extrinsic to specific ones such as Money Profile Transaction The ProfileRequest and ProfileResponse documents must be supported by cXML 1 1 server implementations This transaction can be used to retrieve server capabilities including supported cXML version transactions and options on those transactions The response should list all Requests supported at a particular Website not necessarily all those supported by the company Suppliers that can receive OrderRequest documents and send various messages or initiate Request Response transactions describe their OrderRequest support in the profile transaction The Profile transaction can be used to ping a server within the cXML protocol ProfileRequest This element has no content It is simply routed to the appropriate cXML server using the Header The server responds with a single ProfileResponse as described below The only dynamic portions of this response are the payloadld and timestamp attributes of the cXML element itself In th
43. Response are the request response pair used to set up a punchout session to a remote system The client uses them to identify the procurement application send setup information and receive a response indicating where to go to initiate an HTML browsing session on the remote Website A PunchOutSetupRequest element is carried within the Request element The following example shows a PunchOutSetupRequest PunchOutSetupRequest operation create gt lt BuyerCookie gt 34234234ADFSDF234234 lt BuyerCookie gt lt Extrinsic name department gt Marketing lt Extrinsic gt lt BrowserFormPost gt lt URLshttp orms acme com 1616 punchoutexit lt URL gt lt BrowserFormPost gt Selectedltem ItemID lt SupplierPartID gt 54543 lt SupplierPartID gt lt ltemID gt lt Selecteditem gt lt SupplierSetup gt lt URL gt hittp workchairs com cxml lt URL gt lt SupplierSetup gt lt PunchOutSetupRequest gt PunchOutSetupRequest has the following attribute od Specifies the type of PunchOutSetupRequest create inspect operation or edit This element also contains the following elements BuyerCookie Extrinsic BrowserFormPost Contact ShipTo Selectedltem SupplierSetup and an ItemOut list Only the BuyerCookie element is required The structure of Extrinsic Contact and ShipTo elements is discussed in more detail in OrderRequestHeader on page 65 The ItemOut element is discussed in ItemOut
44. XML 1 1 vi cXML User s Guide June 2000 cXML is S 2 Q 3 E z E r Chapter 1 Introduction to cXML This chapter introduces cXML commerce eXtensible Markup Language for electronic commerce transactions This chapter provides an overview of cXML It discusses the following topics cXML Capabilities Types of Applications that Use cXML Content Delivery Strategy Validation Against DTDs Profile Transaction XML Utilities cXML Capabilities cXML allows buyers suppliers aggregators and intermediaries to communicate using a single standard open language Successful business to business electronic commerce B2B e commerce portals depend upon a flexible widely adopted protocol cXML is the key to providing the widest access to your products and services because it is a well defined robust language designed specifically for B2B e commerce and it is the choice of high volume buyers and suppliers cXML transactions consist of documents which are simple text files with well defined format and contents Most types of cXML documents are analogous to hardcopy documents traditionally used in business The following subsections describe the main types of cXML documents cXML User s Guide 1 cXML Capabilities Chapter 1 Introduction to cXML Catalogs Catalogs are files that convey product and service content to buying organizations They describe the products and services you o
45. YYYY MM DDThh mm ss hh mm for example 1997 07 16T19 20 30 01 00 48 cXML User s Guide June 2000 Appendix A cXML Language Specification Protocol Specification Locale Specified by xml lang The xml lang attribute also appears with most free text elements such as Description and Comments While the XML specification allows the locale for an element to default to that specified for any parent element such defaults result in inefficient queries of the document tree cXML attempts to keep the locale identifiers together with the affected strings The xml lang attributes appearing throughout the cXML protocol have no effect upon formatted data such as numbers dates and times As described below for the timestamp attribute such discrete values are formatted according to their data types Longer strings and referenced Web pages not intended for machine processing might contain a locale specific numeric or date format that matches a nearby xml lang attribute Time and other Data Types The timestamp attribute and all other dates and times in cXML must be formatted in the restricted subset of ISO 8601 described in the Word Wide Web Consortium W3C Note entitled Date and Time Formats available at www W3 org TR NOTE datetime 970915 html Timestamps require a minimum of a complete date plus hours minutes and seconds Fractions of a second are optional This protocol requires times expressed in local time with a time z
46. acturerPartID gt lt ManufacturerName xml lang en gt foobar lt ManufacturerName gt lt URL gt www bar com lt URL gt lt ltemDetail gt lt ShipTo gt lt Address gt lt Name xml lang en gt Acme Corporation lt Name gt PostalAddress name Headquarters gt lt Street gt 123 Anystreet lt Street gt lt City gt Sunnyvale lt City gt lt State gt CA lt State gt lt PostalCode gt 90489 lt PostalCode gt lt Country isoCountryCode US gt USA lt Country gt lt PostalAddress gt lt Address gt lt ShipTo gt lt Shipping gt Money currency USD gt 1 34 lt Money gt lt Description xml lang en US gt FedEx 2 day lt Description gt lt Shipping gt lt Tax gt Money currency USD gt 1 34 lt Money gt Description xml lang en gt foo lt Description gt lt Tax gt lt Distribution gt lt Accounting name DistributionCharge gt lt Segment type G L Account id 23456 description Entertainment gt cXML User s Guide 71 Specification S S F S S m E z S9 lt Order Definitions Appendix A cXML Language Specification Segment type Cost Center id 2323 description Western Region Sales lt Accounting gt lt Charge gt lt Money currency USD gt 34 lt Money gt lt Charge gt lt Distribution gt lt Distribution gt lt Accounting name DistributionCharge gt lt Segment type G L Account id 456 description Travel gt lt Segment type Cost Center id 23
47. also serves as a way to avoid requiring a listening server on the buyer s system that is directly accessible through the Internet The PunchOutOrderMessage cXML message is not directly sent to the procurement application by the remote Website but is encoded as a hidden HTML Form field and posted to the URL specified in the BrowserFormPost element of the PunchOutSetupRequest When the user clicks Check Out the Website sends the data to the procurement application as an HTML Form Submit The following diagram illustrates what happens Remote Web Website Browser A D SS dS Sg Sg HTML page with 3 User clicks Submit p Form encoded xe button Form is cXML message M sent to URL specified by Originating System Originating Form is decoded cXML message extracted and passed to Originating System as anew cXML Request The semantics of packing and unpacking are described below cXML User s Guide 59 Protocol Specification Appendix A cXML Language Specification Form Packing The PunchOutOrderMessage document is URL Encoded per the HTTP specification and assigned to a hidden field on the Form named cXML urlencoded The HTML Form element is assigned a METHOD of POST and an ACTION consisting of the URL passed in the BrowserFormPost element of the PunchOutSetupRequest For example FORM METHOD POST ACTION http workchairs com 1616 punchoutexit gt lt INPUT TYPE HIDDEN NAME
48. anaging supplier data and catalog contents These definitions build on many of the previous definitions for cXML request responses one way messages and catalog definitions Supplier Data The definitions for supplier data management consist mainly of the elements SupplierListRequest SupplierListResponse SupplierDataRequest SupplierDataResponse and SupplierChangeMessage These elements are described below with examples where the intermediary is Ariba Network SupplierListRequest SupplierListRequest requests a list of the suppliers with whom the buyer has established trading relationships Request lt SupplierListRequest gt lt Request gt SupplierListResponse SupplierListResponse lists the suppliers with whom the buyer has established trading relationships lt Response gt Status code 200 text OK gt lt SupplierListResponse gt Supplier corporateURL http www workchairs com storeFrontURL http www workchairs com Name xml lang en US gt Workchairs Inc lt Name gt cXML User s Guide 89 Specification S S F S S m E z S9 lt Subscription Management Definitions Appendix A cXML Language Specification Comments xml lang en US gt this is a cool company lt Comments gt lt SupplierID domain DUNS gt 123456 lt SupplierID gt lt Supplier gt Supplier corporateURL http www computersRus com storeFrontURL http www computersRus com Name xml lang en US Comp
49. andard HTTP or HTTPS Supplier Setup URL and Selectedltem In previous cXML releases the SupplierSetup element provided the only way to specify the URL of your punchout Website Beginning with cXML 1 1 the e commerce hub already knows the URL of your punchout Website Also starting with cXML 1 1 procurement applications can use the SelectedItem element to specify store aisle or product level punchout The SupplierSetup element has been deprecated However your punchout Website must handle both methods until all punchout Websites recognize the Selectedltem element Contact Data for Extrinsic Data and User Identification The PunchoutSetupRequest document can contain detailed user information in the Contact element that your Website can use to authenticate and direct users such as User name and role E mail address In addition the PunchOutSetupRequest might also contain extrinsic data that you can use to further identify users such as User cost center and sub account Region Supervisor Default currency 24 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Punchout Documents Buying organizations configure their procurement applications to insert Contact and extrinsic data Ask your customers what data you can expect to receive PunchOutSetupResponse After receiving a PunchOutSetupRequest your Website sends a PunchOutSetupResponse The PunchOutSetupResponse document serves two f
50. anguage Specification Subscription Management Definitions isoCountryCode US 1 CountryCode lt AreaOrCityCode gt 800 lt AreaOrCityCode gt lt Number gt 5551212 lt Number gt lt TelephoneNumber gt lt Phone gt Fax name Order gt lt TelephoneNumber gt lt CountryCode isoCountryCode US gt 1 lt CountryCode gt lt AreaOrCityCode gt 408 lt AreaOrCityCode gt lt Number gt 5551234 lt Number gt lt TelephoneNumber gt lt Fax gt lt URLshitp www workchairs com Support htm lt URL gt lt Address gt lt OrderMethods gt lt OrderMethod gt lt OrderTarget gt lt URL gt hitp www workchairs com cxmlorder lt URL gt lt OrderTarget gt lt OrderProtocol gt cXML lt OrderProtocol gt lt OrderMethod gt lt OrderMethods gt lt SupplierLocation gt lt Supplier gt lt SupplierDataResponse gt lt Response gt SupplierChangeMessage This element is for notification of changes to supplier data lt Message gt SupplierChangeMessage type new gt Supplier corporateURL http www workchairs com storeFrontURL http www workchairs com Name xml lang en US gt Workchairs Inc lt Name gt Comments xml lang en US gt this is a cool company lt Comments gt lt SupplierID domain DUNS gt 123456 lt SupplierID gt lt SupplierLocation gt lt Address gt lt Name xml lang en US gt Main Office lt Name gt lt PostalAddress gt lt DeliverTo gt Bob A Worker lt DeliverTo gt lt Stre
51. arsed correctly Credentials provided in the Request the Sender element were not recognized by the server This Request must include a complete Payment element The user has insufficient privileges to execute this Request An alias for code 400 Request unacceptable to the server although it parsed correctly The current state of the server or its internal data prevented the update operation request An identical Request might succeed in the future especially after another operation has executed A precondition of the Request for example a punchout session appropriate for an PunchOutSetupRequest edit was not met This status normally implies the client ignored some portion of a previous transmission from a server for example the operationAllowed attribute of a PunchOutOrderMessageHeader Request implied a resource condition that was not met One example might be a SupplierDataRequest asking for information about a supplier unknown to the server This status might imply lost information at the client or server Server was unable to complete the Request The server does not implement the particular Request For example PunchOutSetupRequest or the requested operation might not be supported Status normally implies the client has ignored the server s profile 56 cXML User s Guide June 2000 Appendix A cXML Language Specification Protocol Specification When receiving unrecognized codes cXML clie
52. ations that Use cXML cXML Types of Applications that Use cXML is S 2 Q 3 E z E r cXML can be used by any e commerce application It is currently in use by buying organizations vertical and horizontal buying communities suppliers and application vendors The following subsections describe the main types of applications that currently use cXML Procurement Applications Procurement applications such as Ariba ORMS Operating Resource Management System and Ariba IBX Internet Business eXchange use cXML for external transactions Ariba ORMS is an enterprise application that is hosted by large organizations for use by their employees over an intranet Ariba IBX is an Internet based service that allows the creation of buying communities that are composed of many small to medium sized businesses These applications allow communities of users to buy contract products and services from vendors approved by their purchasing managers Requested purchases are first approved by managers in the communities and approved purchase orders are transmitted to suppliers through several possible channels including cXML over the Internet Commerce Network Platforms Commerce network platforms such as Ariba Network are Web based services for connecting buyers and suppliers These Web services provide features such as catalog validation and file management catalog publishing and subscription automated purchase order r
53. capsulates how that location does business or the ways that it can accept orders A SupplierLocation element contains an Address and a set of OrderMethods OrderMethods and OrderMethod The OrderMethods element is a grouping of one or more OrderMethod elements for the given SupplierLocation element The position of OrderMethods in the list is significant the first element is the preferred ordering method the second element is the next priority and so on in decreasing order of preference OrderMethod encapsulates ordering information in the form of an order target such as phone fax or URL and an optional protocol to further clarify the ordering expectations at the given target for example cxmI for a URL target cXML User s Guide 85 Catalog Definitions Appendix A cXML Language Specification Index This element is the root element for updating catalogs within buying organization s procurement systems An Index element is associated with a single supplier The Index element allows for a list of supplier IDs where each ID is considered a synonym for that supplier The Index contains one or more Indexltem elements as well as an optional set of SearchGroup elements for defining parametric search data for items The Indexltem element contains elements that add or delete from the buying organization s cached catalog The following example shows an outline of an Index element Index SupplierID Supplierl
54. cation Most of the definitions here are basic vocabulary with which the higher order business documents are described The common type entities and the common elements representing low level objects are defined here Type Entities Most of these definitions are from the XML Data note submission to the World Wide Web Consortium W3C A few higher level type entities that are also defined here are not from XML Data These types are also discussed in cXML Envelope on page 48 isoLangCode An ISO Language Code from the ISO 639 standard isoCountryCode An ISO Country Code from the ISO 3166 standard xmiLangCode A language code as defined by the XML 1 0 Specification at www w3 org TR 1998 REC xml 19980210 html In the most common case this includes an ISO 639 Language Code and optionally an ISO 3166 Country Code separated by a hyphen Unlike the full XML recommendation IANA or private language codes should not be used in cXML IANA and private subcodes are allowed though they should come after a valid ISO 3166 Country Code The recommended cXML language code format is xx Y Y zzz where xx is an ISO 639 Language code YY is an ISO 3166 Country Code and zzz is an IANA or private subcode for the language in question Again use of the Country Code is always recommended By convention the language code is lowercase and the country code is uppercase This is not required for correct matching of the codes unitOfMeasure Unit
55. chOutOrderMessage gt The following sections discuss these elements BuyerCookie This element is the same element that was passed in the original PunchOutSetupRequest It must be returned here to allow the procurement application to match the PunchOutOrderMessage with an earlier PunchOutSetupRequest cXML User s Guide 77 Specification S S F S S m E z S9 lt Punchout Transaction Appendix A cXML Language Specification PunchOutOrderMessageHeader This element contains information about the entire shopping basket contents being transferred The only required element is Total which is the overall cost of the items being added to the requisition Additional elements that are allowed are Shipping and Tax which are the amount and description of any shipping or tax charges computed on the remote Website ShipTo is also optional and it specifies the Ship To addressing information the user selected on the remote site or that was passed in the original PunchOutSetupRequest All monetary amounts are in a Money element that always specifies currency in a standardized format PunchOutOrderMessageHeader has the following attribute Specifies the PunchOutSetupRequest operations allowed create operationAllowed inspect or edit This attribute controls whether the user can initiate later PunchOutSetupRequest transactions containing data from this PunchOutOrderMessage If operationAllowed create only a later OrderR
56. cii should use this field instead of the cXML urlencoded hidden field This alternative has almost identical semantics but the entire document is base64 encoded throughout transport and not HTML encoded to the browser or URL encoded to the receiving Web server Base64 encoding is described in RFC 2045 Multipurpose Internet Mail Extensions MIME Part One Format of Internet Message Bodies 60 cXML User s Guide June 2000 Appendix A cXML Language Specification Protocol Specification The name cXML base64 is case insensitive Base64 encoding from the supplier site through the browser and to the receiving Web server at the client maintains the original character encoding of a cXML document Though no charset parameter arrives with the posted information the decoded document after the transfer encoding is removed can be treated as the media type application xml This encoding allows the receiving parser to honor any encoding attribute specified in the XML declaration For this field as for any application xml documents the default character encoding is UTF 8 Either of these hidden fields cXML urlencoded or cXML base64 must appear in the data posted to the procurement application Though recipients should first look for cXML base64 in the data it is wasteful to send both fields Form Unpacking and Processing The procurement application which previously provided the appropriate URL receives an HTML Form POST contain
57. d on your input Ariba shall own the modified cXML version Information in this document is subject to change without notice Table of Contents Preface accu x EA faa EG Ip VERA EE EAE anes Audience and Prerequisites 0 0 0 eee eee eee eese Which Chapters to Read 6 eee eee Chapter 1 Introduction to cXML 1 cece eee XML Capabilities rete eae HN er ee ees Catalogs jot ethan PRESE Cb IPC e PUNCHOUE 5 socer p qe LUPUS PURA eI hows Purchase Ordefs o cb Edu E ae eae ened Types of Applications that Use cXML 0008 Procurement Applications 0 0 0 cece eee eee eee Commerce Network Platforms 0 2 0 00005 Punchout Catalogs Order Receiving Systems 0 0 0 0 eee Content Delivery Strategy 0 0 eee eee eee Validation Against DTDs 0 cece ees Getting cXML DIDS hre e e a E eee Performing Validation 20 cece eee ee eee eee Profile Transaction zio korr elie gs A E ee em e XML Utilities cia aed bk bh edd gen eed dee tees cXML User s Guide Table of Contents Chapter 2 Implementing a Punchout Site 11 Punchout Requirements 0 0 cee eee eee eee eee 11 Buying Organizations 0 2 0 0 eee eee eee eee 11 Suppliers wg eae ees batch EE pu EU ebd 13 Punchout Event Sequence 15 Steps 1 amp 2 Punchout Request 0 000 15 Step 3 Product Selection esee 16 Ste
58. documents and to detect duplicate documents The From To and Sender elements allow receiving systems to identify and authorize parties The From and To elements in a document do not change However as the document travels to its destination intermediate nodes such as Ariba Network change the Sender element Create Edit and Inspect Operations The operation attribute specifies the type of session the buyer initiates It can create edit or inspect create sessions generate new shopping carts which correspond to new purchase requisitions edit sessions reopen previously created shopping carts for modification The procurement application sends line item data as part of the PunchOutSetupRequest The punchout Website can use this data to re instantiate the shopping cart created during the original session inspect sessions reopen previously created shopping carts for viewing only As with the edit operation the procurement application sends line item data as part of the PunchOutSetupRequest However after re instantiating the shopping cart the punchout Website does not allow modification of its contents The following example lists an edit request lt xml version 1 0 gt IDOCTYPE cXML SYSTEM http xml cxml org schemas cXML 1 1 007 cXML dtd gt lt cXML version 1 1 007 xml lang en US payloadID 933695135608 677295401 jlee timestamp 2000 08 15T08 45 35 07 00 gt lt Header gt lt From gt lt Credential
59. domain DUNS gt lt Identity gt 6565231 4 lt Identity gt lt Credential gt lt From gt lt To gt lt Credential domain DUNS gt lt Identity gt 83528721 lt Identity gt lt Credential gt lt To gt 22 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Punchout Documents Sender lt Credential domain AribaNetworkUserld gt lt Identity gt sysadmin ariba com lt Identity gt lt SharedSecret gt abracadabra lt SharedSecret gt lt Credential gt lt UserAgent gt Ariba ORMS 6 1 lt UserAgent gt lt Sender gt lt Header gt lt Request gt PunchOutSetupRequest operation edit gt lt BuyerCookie gt 1CX3L4843PPZO lt BuyerCookie gt lt Extrinsic name CostCenter gt 61 0 lt Extrinsic gt Extrinsic name User gt john_smith lt Extrinsic gt lt BrowserFormPost gt lt URL gt hitps aribaorms 26000 punchout asp lt URL gt lt BrowserFormPost gt lt SupplierSetup gt URL http www workchairs com punchout asp URL lt SupplierSetup gt ItemOut quantity 2 gt lt ItemID gt lt SupplierPartID gt 220 6338 lt SupplierPartID gt lt SupplierPartAuxiliaryID gt E000028901 lt SupplierPartAuxiliaryID gt lt ItemID gt ItemOut lt PunchOutSetupRequest gt lt Request gt lt cXML gt If the user initiated the edit session by selecting a catalog item the PunchOutSetupRequest would contain a Selectedltem element like a create session Authentication by an
60. e contents of any conceivable shopping basket This document does not strictly follow the Request Response paradigm its use will be explained in detail The following example lists a PunchOutOrderMessage cXML User s Guide 25 Punchout Documents Chapter 2 Implementing a Punchout Site lt xml version 1 0 gt IDOCTYPE cXML SYSTEM http xml cxml org schemas cXML 1 1 007 cXML dtd gt lt cXML version 1 1 007 xml lang en US payload D 933695 160894 timestamp 2000 08 15T08 47 00 07 00 gt lt Header gt lt From gt lt Credential domain DUNS gt lt Identity gt 83528721 lt Identity gt lt Credential gt lt From gt lt To gt lt Credential domain DUNS gt lt Identity gt 6565231 4 lt Identity gt lt Credential gt lt To gt lt Sender gt Credential domain workchairs com gt Identity website 1 lt Identity gt lt Credential gt lt UserAgent gt Workchairs cXML Application lt UserAgent gt lt Sender gt lt Header gt lt Message gt lt PunchOutOrderMessage gt lt BuyerCookie gt 1CX3L4843PPZO lt BuyerCookie gt lt PunchOutOrderMessageHeader operationAllowed edit gt lt Total gt lt Money currency USD gt 763 20 lt Money gt lt Total gt lt PunchOutOrderMessageHeader gt lt ltemIn quantity 3 gt ItemID lt SupplierPartID gt 5555 lt SupplierPartID gt lt SupplierPartAuxiliaryID gt E000028901 lt SupplierPartAuxiliaryID gt lt ltemID gt ItemDetail lt U
61. e gt lt Country isoCountryCode US gt USA lt Country gt lt PostalAddress gt lt Address gt lt BillTo gt lt Shipping gt lt Money currency USD gt 12 34 lt Money gt lt Description xml lang en US gt FedEx 2 day lt Description gt lt Shipping gt lt Tax gt lt Money currency USD gt 12 34 lt Money gt lt Description xml lang en gt CA State Tax lt Description gt lt Tax gt lt Payment gt lt PCard number 1234567890123456 expiration 1999 03 12 gt lt Payment gt lt Contact role purchasingAgent gt lt Name xml lang en US gt Mr Smart E Pants lt Name gt lt Email gt sepants acme com lt Email gt lt Phone name Office gt lt TelephoneNumber gt lt CountryCode isoCountryCode US gt 1 lt CountryCode gt lt AreaOrCityCode gt 800 lt AreaOrCityCode gt lt Number gt 555 1212 lt Number gt lt TelephoneNumber gt lt Phone gt lt Contact gt 66 cXML User s Guide June 2000 Appendix A cXML Language Specification Order Definitions Comments xml lang en US gt Anything well formed in XML can go here lt Comments gt lt Followup gt lt URLshttp acme com cgi orders cgi lt URL gt lt Followup gt lt OrderRequestHeader gt OrderRequestHeader has the following attributes orderlD The identifier for this order Analogous to the purchase order number orderDate The date and time this order was placed in ISO 8601 format type Type of the request new default
62. e it when transmitting cXML documents Note According to RFC 2376 XML Media Types the MIME charset parameter overrides any encoding specified in the XML declaration Further the default encoding for the text xml media type is us ascii not UTF 8 as mentioned in Section 4 3 3 of the XML Specification For clarity CXML documents should include an explicit encoding in the XML declaration MIME envelopes should use a matching charset parameter for the text xml or application xml media type An HTTP transmission of acXML document might include the following MIME and HTTP headers POST cXML HTTP 1 0 Content type text xml charset UTF 8 Content length 1862 Accept text html image gif image jpeg q 2 q 2 User Agent Java1 1 Host localhost 8080 Connection Keep Alive lt xml version 1 0 encoding UTF 8 gt 50 cXML User s Guide June 2000 Appendix A cXML Language Specification Protocol Specification Attachment Transmission When sending an OrderRequest that references external files the referenced files can either reside on a server accessible by the supplier or they can be transmitted along with the cXML document This second option requires the use of a multipart MIME envelope One cXML requirement for this envelope over the basics described in RFC 2046 Multipurpose Internet Mail Extensions MIME Part Two Media Types is the inclusion of Content ID headers with each attached file The fo
63. e one way approach the transport and encoding are specified A common example of a transaction that uses one way is the PunchOutOrderMessage One way messages have a similar structure to the Request Response model cXML Header cXML User s Guide 57 Protocol Specification Appendix A cXML Language Specification Header information here lt Header gt lt Message gt Message information here lt Message gt lt cXML gt The Header element is treated exactly as it is in the Request Response case The cXML element is also identical to the one described above The easiest way to tell the difference between a one way message and a Request Response message is the presence of a Message element instead of a Request or Response element The following section discusses the Message element in more detail Message This element carries all the body level information in a cXML message It can contain an optional Status element identical to that found in a Response element it would be used in messages that are logical responses to request messages Message has the following attributes deploymentMode Indicates whether the request is a test request or a production optional request Allowed values are production Default or test Specifies to which Message this Message responds The inReplyTo contents of the inReplyTo attribute would be the payloadID of a optional Message that was received earlier Th
64. edirect asp bc lt cookie gt amp amp url lt url gt amp amp from lt fromUser gt amp amp to lt toUser gt amp amp redirect lt StartPage gt lt URL gt lt StartPage gt lt PunchOutSetupResponse gt lt Response gt lt cXML gt lt end if gt v D o cs EO E EO CE Qc Eg N Your Launch Page should return a StartPage URL that is unique for that punchout session In addition this URL should be valid for only a limited amount of time By deactivating this URL you make it more difficult for unauthorized users to access your Start Page Remember to implement functionality for subsequent edit and inspect sessions Users cannot change order details for punchout items such as quantity within their procurement application They must re punchout with an edit session For the greatest benefit to users inspect sessions that occur after you receive the order should display order status Start Page Your Start Page logs the requester into an account on your Website From your Start Page users begin their shopping experience This page might already exist at your Website so modify it to query user name and password information from the PunchOutSetupRequest document Allow only authorized users into your Start Page If you wait until the check out step to authenticate them you do not protect your confidential pricing or terms If you use HTTP browser cookies to track user preferences destroy them after
65. ent 65 payloadID attribute 22 48 81 Payment element 68 pinging servers with the Profile transaction 8 Profile transaction 8 ProfileRequest element 63 ProfileResponse element 63 PunchoutDetail element 87 PunchOutOrderMessage 25 PunchOutOrderMessage element 77 PunchOutOrderMessageHeader element 78 PunchOutSetupRequest 21 PunchOutSetupRequest element 74 PunchOutSetupResponse 25 PunchOutSetupResponse element 76 purchase orders 39 43 attachments 43 quantity attribute 70 79 quoting orders 17 Request element 54 requestedDeliveryDate attribute 70 requestName attribute 65 requisitionID attribute 67 70 Response element 54 role attribute 68 segmentKey attribute 88 SelectedItem element 24 75 Sender element 22 Sender Page 32 Sender To and From elements 53 shipComplete attribute 67 Shipping element 68 ShipTo element 67 ShortName element 80 Start Page 31 StartPage element 76 Status element 54 StatusUpdateRequest element 82 storeFrontURL attribute 84 Subscription element 93 SubscriptionContentRequest element 94 SubscriptionContentResponse element 94 112 cXML User s Guide June 2000 Index SubscriptionListRequest element 93 SubscriptionListResponse element 93 supplier and buyer cookies 27 36 Supplier element 84 SupplierChangeMessage element 91 SupplierDataRequest element 90 SupplierDataResponse element 90 SupplierID element 20 SupplierListRequest element 89 SupplierListResponse element 89
66. ents cXML purchase orders allow embedded supplier cookie information to be transmitted back to you Because the supplier cookie is of data type any it does not easily map to other order routing methods such as fax e mail or EDI Punchout enabled suppliers are cXML aware so accepting cXML purchase orders is a small incremental effort Purchase orders are discussed in detail in Chapter 3 Receiving cXML Purchase Orders Punchout Documents There are four types of cXML documents Punchout Index Catalog PunchOutSetupRequest PunchOutSetupResponse PunchOutOrderMessage Punchout Index Catalog Type of cXML document and URL of DTD Your identifier for the punchout item URL of your punchout Website launch page Punchout index catalogs are files that list punchout items and point to your punchout Website The following example lists a punchout index catalog lt xml version 1 0 encoding UTF 8 gt IDOCTYPE Index SYSTEM hittp xml cxml org schemas cXML 1 1 007 cXML dtd gt Index lt SupplierID domainz DUNS 83528721 SupplierID Indexltem IndexltemPunchout ItemID lt SupplierPartID gt 5555 lt SupplierPartID gt lt ltemID gt lt PunchoutDetail gt lt Description xml lang en US gt Desk Chairs lt Description gt lt Description xml lang fr FR gt Chaises de Bureau lt Description gt URL http www workchairs com punchout asp URL Classification
67. equest can contain these items Otherwise the procurement application can inspect or edit the shopping cart later initiating subsequent PunchOutSetupRequest transactions with the appropriate operations and the ItemID elements corresponding to the ItemIn list returned in this PunchOutOrderMessage Support for edit implies support for inspect The procurement application can always use the items in a subsequent OrderRequest Empty Shopping Carts The PunchOutOrderMessage can contain a list of items corresponding to a shopping cart on the supplier Website It always indicates the end of the interactive punchout session The following paragraphs detail a few cases without a list of items in the PunchOutOrderMessage These messages allow clients to resume immediately when the user leaves the supplier Website If the operation in the original PunchOutSetupRequest was inspect the item list of the PunchOutOrderMessage must be ignored by the procurement application The supplier site should return no ItemIn elements in this case If a PunchOutOrderMessage contains no ItemIn elements and the operation was create no items should be added to the requisition The supplier site or the user has cancelled the punchout session without creating a shopping cart If the operation was edit and the PunchOutOrderMessage contains no Itemin elements existing items from this punchout session must be deleted from the requisition in the procurement application The Statu
68. er s Website while viewing new information in the local catalog rather than items in an existing requisition In either case the current shopping cart must appear in the ItemOut list Suppliers can create their catalogs so that Selectedltem leads to store aisle or product level punchout The more specific the item is in the catalog the less searching users have to do at the supplier s Website SupplierSetup This optional element specifies the URL to which to post the PunchOutSetupRequest This element is not needed if the e commerce network hub knows the supplier s punchout URL PunchOutSetupResponse After the remote Website has received a PunchOutSetupRequest it responds with a PunchOutSetupResponse as shown below lt PunchOutSetupResponse gt lt StartPage gt lt URL gt http premier workchairs com store 23423SDFSDF23 lt URL gt lt StartPage gt lt PunchOutSetupResponse gt StartPage This element contains a URL element that specifies the URL to pass to the browser to initiate the punchout browsing session requested in the PunchOutSetupRequest This URL must contain enough state information to bind to a session context on the remote Website such as the requestor identity and the appropriate BuyerCookie element At this point the user who initiated the PunchOutSetupRequest browses the external Website and selects items to be transferred back to the procurement application through a PunchOutOrderMessage 7
69. erID domain InternalSupplierID gt 29 lt SupplierID gt ItemSegment segmentKey Plant12 gt lt Contractltem gt ItemID lt SupplierPartID gt pn12345 lt SupplierPartID gt lt ltemID gt lt UnitPrice gt lt Money currency USD gt 40 00 lt Money gt lt UnitPrice gt lt Contractltem gt ItemSegment lt Contract gt ItemSegment The ItemSegment element is a container for a list of Contractltem elements for a given segment where a segment represents an arbitrary partitioning of contract items based on a segment key agreed upon between supplier and buyer ItemSegment has the following attribute segmentKey Agreed upon string used to segment custom prices optional 88 cXML User s Guide June 2000 Appendix A cXML Language Specification Subscription Management Definitions Contractltem A contract item element is a particular item overlay for an index item It contains an ItemID that uniquely identifies the index item within the procurement system to overlay It can contain any number of Extrinsic elements containing the overlaid value for the named index item attribute Subscription Management Definitions Intermediaries such as e commerce network hubs can manage the suppliers and supplier catalogs used by buying organizations procurement systems These intermediaries can provide direct links between procurement systems and supplier systems This section contains element definitions for m
70. es Internet Explorer 5 from Microsoft An XML aware Web browser that can validate XML files against DTDs www microsoft com windows ie default htm XML Notepad from Microsoft A simple XML editor msdn microsoft com xml notepad intro asp XML Authority from Extensibility A Java based XML DTD editor with hierarchical and graphical views www extensibility com XML Spy from Icon Information Systems A tool for maintaining DTDs and XML files with a grid source and browser view WWW icon is com XMetaL from Softquad Software A customizable XML authoring tool www softquad com CLIP from Techno2000 USA An easy to use XML authoring tool with guided editing www t2000 usa com XMLwriter from Wattle Software A graphical XML authoring tool designed to manage XML projects www xmlwriter net In addition the following Websites list more XML tools www xmlsoftware com www xml com pub pt Editors cXML User s Guide 9 XML Utilities Chapter 1 Introduction to cXML 10 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Punchout enables users of procurement applications to access supplier contracts for products or services that reside at your Website It eliminates the need for you to send whole catalogs to buying organizations Instead you send them just short files that contain a description of your storefront product categories or products v D o cs EO E EO CE Qc Eg N
71. est document Punchout Transaction Improvements Punchout transactions have been improved for better support of aisle level and product level shopping cXML also now supports cancelled punchout sessions Improved PunchOutSetupRequest The PunchOutSetupRequest document sent by buyers has been changed to improve the flexibility of punchout transactions The URL specified in the PunchOutSetupRequest has been deprecated cXML servers will ignore this element in the future The new methodology uses the identity from the Credential of the supplier E commerce network hubs receive the PunchOutSetupRequest document read the supplier s ID find the URL of the punchout Website from the supplier s account information and send the PunchOutSetupRequest document to that URL The e commerce network hub not the buyer specifies the URL of the punchout Website which is more flexible E commerce network hubs allow suppliers to store the URLs of their punchout Websites 104 cXML User s Guide June 2000 Appendix B New Features in cXML 1 1 Punchout Transaction Improvements Selecteditem Element As part of the PunchOutSetupRequest enhancement cXML now has better support for store aisle and product level punchout A new optional Selectedltem element in this document allows suppliers to specify punchout for an entire store or any subset of product offerings Procurement applications can include the Selectedltem element in PunchOutSetupReque
72. et gt 123 Front Street lt Street gt lt City gt Toosunny lt City gt lt State gt CA lt State gt lt PostalCode gt 95000 lt PostalCode gt lt Country isoCountryCode US gt USA lt Country gt cXML User s Guide 91 Specification S S F S S m E z S9 lt Subscription Management Definitions Appendix A cXML Language Specification lt PostalAddress gt lt Email gt bobw workchairs com lt Email gt Phone name Office gt lt TelephoneNumber gt lt CountryCode isoCountryCode US gt 1 lt CountryCode gt lt AreaOrCityCode gt 800 lt AreaOrCityCode gt lt Number gt 5551212 lt Number gt lt TelephoneNumber gt lt Phone gt lt Fax name Order gt lt TelephoneNumber gt lt CountryCode isoCountryCode US gt 1 lt CountryCode gt lt AreaOrCityCode gt 408 lt AreaOrCityCode gt lt Number gt 5551234 lt Number gt lt TelephoneNumber gt lt Fax gt URL http www workchairs com Support htm URL lt Address gt lt OrderMethods gt lt OrderMethod gt lt OrderTarget gt lt URL gt hitp www workchairs com cxmlorder lt URL gt lt OrderTarget gt lt OrderProtocol gt cXML lt OrderProtocol gt lt OrderMethod gt lt OrderMethods gt lt SupplierLocation gt lt Supplier gt lt SupplierChangeMessage gt lt Message gt 92 cXML User s Guide June 2000 Appendix A cXML Language Specification Subscription Management Definitions Catalog Subscriptions The definit
73. ex and Contract All three elements describe data intended for persistent or cached use within a hub or a buying organization s procurement system Supplier Contains basic data about the supplier such as address contact and ordering information Index Describes data about the supplier s inventory of goods and services such as description part numbers and classification codes Contract Describes data about flexible aspects of the inventory negotiated between the buyer and supplier such as price Note that Index uses several sub elements to describe line items in suppliers inventories Suppliers can send either price information for caching within buyers systems or punchout information to enable buyers to punch out to remote Websites for pricing and other information Specification S S F S S m E z S9 lt cXML User s Guide 83 Catalog Definitions Appendix A cXML Language Specification Supplier The Supplier element encapsulates a named supplier of goods or services It must have Name element and a SupplierlD element It additionally describes optional address and ordering information for the supplier Supplier corporateURL storeFrontURL C Name a xml lang SupplierlD Susi Loain S Pi domain value OrderMethods J oN d Address d OrderTarget OrderMethod Contact V code j kc Phone Email Fax URL 2 C gt OrderProt
74. ffer and the prices you charge and they are the main communication channel from you to your customers You create catalogs so that organizations that use procurement applications can see your product and service offerings and buy from you Procurement applications read your catalogs and store them internally in their databases After a buying organization approves your catalogs your content is visible to users who can choose items and add them to purchase requisitions Procurement Catalog Supplier System Sending product and service Buying Organization content to a buying organization You can create catalogs for any product or service regardless of how it is measured priced or delivered For each item in a catalog there is basic information that is required and optional information that enables advanced catalog features such as multi language descriptions 2 cXML User s Guide June 2000 Chapter 1 Introduction to cXML cXML Capabilities Punchout o 8 c 2 Q 3 8 E Punchout gives you an alternative to static catalog files Punchout sites are live interactive catalogs running on your Website If you have an e commerce Website you can modify it to support punchout Punchout sites communicate with procurement systems over the Internet by using cXML For punchout sites procurement applications display a button instead of product or pricing details When users click this button their Web brow
75. g This addition is not necessary for HTTP transmission Content description and Content disposition headers are optional within the cXML protocol although they provide useful documentation For more information about attaching external files to purchase orders see Attachment on page 69 The Header element contains addressing and authentication information The Header element is the same regardless of which specific Request or Response is contained in the body of the cXML message Applications need the requestor s identity but not validation that the information provided for identity is correct The following example shows the Header element Header From lt Credential domain AribaNetworkUserld gt lt Identity gt admin acme com lt Identity gt lt Credential gt lt From gt lt To gt lt Credential domain DUNS gt lt Identity gt 012345678 lt ldentity gt lt Credential gt lt To gt lt Sender gt lt Credential domain AribaNetworkUserld gt lt ldentity gt sysadmin ariba com lt Identity gt lt SharedSecret gt abracadabra lt SharedSecret gt lt Credential gt lt UserAgent gt Ariba Network 1 1 lt UserAgent gt lt Sender gt lt Header gt The From and To elements are synonymous with From and To in SMTP mail messages they are the logical source and destination of the messages Sender is the party that opens the HTTP connection and sends the cXML document 52 cXML User s Guide June 20
76. gous to a purchase order The following example shows an OrderRequest for an item lt xml version 1 0 encoding UTF 8 gt IDOCTYPE cXML SYSTEM http xml cxml org schemas cXML 1 1 007 cXML dtd gt lt cXML version 1 1 007 xml lang en US payloadID 93369535150910 10 57 136 timestamp 2000 08 03T08 49 11 07 00 gt lt Header gt lt From gt lt Credential domain AribaNetworkUserld gt lt Identity gt admin acme com lt Identity gt lt Credential gt lt From gt lt To gt lt Credential domain DUNS gt lt Identity gt 114315195 lt Identity gt lt Credential gt lt To gt lt Sender gt lt Credential domain AribaNetworkUserld gt lt ldentity gt sysadmin ariba com lt Identity gt lt SharedSecret gt abracadabra lt SharedSecret gt lt Credential gt lt UserAgent gt Ariba Network V1 1 lt UserAgent gt lt Sender gt lt Header gt lt Request gt lt OrderRequest gt lt OrderRequestHeader orderlID DO102880 orderDate 2000 08 03T08 49 09 07 00 type new gt lt Total gt lt Money currency USD gt 4688 00 lt Money gt lt Total gt lt ShipTo gt Address isoCountryCode US addressID 1000467 gt lt Name xml lang en gt Acme Inc lt Name gt lt PostalAddress name default gt lt DeliverTo gt John Q Smith lt DeliverTo gt DeliverTo Buyers Headquarters lt DeliverTo gt lt Street gt 123 Main Street lt Street gt 40 cXML User s Guide June 2000 Chapter 3 Receiving cXML
77. h external files to augment purchase orders The Attachment element appears within Comments and it contains only a reference to the external MIME part of the attachment All attachments should be sent in a single multipart transmission with the OrderRequest document Even if this is not possible the contentID provided by the Attachment element must be usable to retrieve the attachment For details about the transfer of attached files see Attachment Transmission on page 51 Attachment contains a single URL with scheme cid An attached file in a cXML document might appear as S SS lt Comments gt 3 3 lt Attachment gt sl lt URL gt cid uniqueCID cxml org lt URL gt 3 9 lt Attachment gt aS D lt Please see attached image for my idea of what this should look like lt Comments gt The Comments element appears in many places within the cXML protocol but it can contain the Attachment element only within OrderRequest documents Followup Specifies the URL to which future StatusUpdateRequest documents should be posted This location is the input location for any later documents that reference the current OrderRequest document cXML User s Guide 69 Order Definitions Appendix A cXML Language Specification Extrinsic This element contains machine readable information related to the order but not defined by the cXML protocol In contrast the Comments element passes information for human use Extrinsic ele
78. he Distribution and Comments elements and requisitionID and requestedDeliveryDate attributes available in the ItemOut element the ItemIn and ItemOut structures match one to one The originating buying system can convert directly between Itemin and ItemOut lists when initiating an inspect or edit operation Suppliers can convert one to the other dropping the listed extensions available in the ItemOut element when executing an edit operation The originating buying system can perform the direct conversion and add additional shipping and distribution information and comments when initiating an OrderRequest transaction ItemDetail data with the possible exception of Extrinsic elements contained within ItemIn elements must not be removed when converting from ItemIn to ItemOut Specification S S F S S m E z S9 lt ItemID This element uniquely identifies the item to the remote Website It is the only element required to be returned to the remote Website to re identity the item being transferred ItemID contains two elements SupplierPartID and SupplierPartAuxiliaryID Only SupplierPartID is required SupplierPartAuxiliaryID helps the remote Website transport complex configuration or bill of goods information to re identify the item when it is presented to the remote Website in the future cXML User s Guide 79 Punchout Transaction Appendix A cXML Language Specification If SupplierPartAuxiliaryID contains special characters
79. here to redirect that user 2 Compose a PunchOutSetupResponse document and return it to the sender Your Launch Page should store the following data for use by your Start Page Identity of the requester Sender Identity of the language of the user xml lang so you can provide localized content Type of the request create edit or inspect Any extrinsic data that further identifies the user and the user location The following is a sample Launch Page This code does not use an XML parser to dynamically generate the PunchOutSetupResponse but instead uses a static XML template into which line item data is filled This code is intended for illustrative purposes only script language JScript RUNAT Server gt function elementValue xml elem var begidx var endidx var retStr begidx xml indexOf elem if begidx gt 0 endidx xml indexOf lt begidx if endidx gt 0 retStr xml slice begidx elem length endidx return retStr return null function twoChar str var retStr 28 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Modifications to Your Web Pages str str toString if 1 str length retStr 0 str else retStr str return retStr v function timestamp dt 5 5 Ee var str ri S var milli E amp N str dt getFullYear twoChar 1 dt getMonth str twoChar dt getDate
80. ht id be the actual account code if the type were Cost Center Charge This element specifies the amount to be charged to the entity represented by the Accounting element Response to an OrderRequest This is the response part of the synchronous Request Response transaction The following example shows a Response to an OrderRequest document cXML version 1 1 007 payloadID 9949494 xml lang en timestamp 1999 03 12T 18 39 09 08 00 gt lt Response gt Status code 200 text OK gt lt Response gt lt CXML gt As shown above this Response is straightforward In this case there is no actual element named OrderResponse because the only data that needs to be sent back to the requestor is the Status part of the Response The Response tells the requestor its OrderRequest was successfully parsed and acted on by the remote part of HTTP connection It does not communicate order level acknowledgement such as which items can be shipped or which need to be backordered Punchout Transaction The punchout message definitions are request response messages that are carried inside the Request and Response elements All of the following messages must be implemented by suppliers to support punchout cXML User s Guide 73 Specification S S F S S m E z S9 lt Punchout Transaction Appendix A cXML Language Specification PunchOutSetupRequest PunchOutSetupRequest and PunchOutSetup
81. ht be required in future p versions of cXML The attributes of the Status element indicate what happened to the request The data within the Status element can be any data needed by the requestor For a 200 OK status code there might be no data However for a 500 Internal Server Error status code it is strongly recommended that the actual XML parse error or application error be presented This error allows better one sided debugging and interoperability testing Servers should not include additional response elements for example a PunchOutSetupResponse element unless the status code is in the 200 range for example 200 OK The HTTP 1 1 specification includes many status codes that are inappropriate for cXML Because cXML is layered above HTTP in most cases many errors such as 404 Not Found will be handled by the transport The 200 OK and 500 Internal Server Error status codes are most likely Validation errors in parsing a Request document would normally result in a transport error such as an HTTP 400 Bad Request error Specification The following table includes other HTTP codes that can be used S S F S S m E z S9 lt cXML includes very few non HTTP status codes 550 Unable to reach next cXML server to complete a transaction requiring upstream connections An intermediate hub can return this code when a supplier site is unreachable If upstream connections complete intermediate hubs should re
82. ing Credential elements Clients send requests for operations Only one Request element is allowed for each cXML envelope element which simplifies the server implementations because no de multiplexing needs to occur when reading cXML documents The Request element can contain virtually any type of XML data Request has the following attribute deploymentMode Indicates whether the request is a test request or a production optional request Allowed values are production default or test Response Status Servers send responses to inform clients of the results of operations Because the result of some requests might not have any data the Response element can optionally contain nothing but a Status element A Response element can also contain any application level data In the punchout scenarios that means a PunchOutSetupResponse element This element conveys the success or failure of a request operation 54 cXML User s Guide June 2000 Appendix A cXML Language Specification Protocol Specification Status has the following attributes The status code of the request This follows the HTTP status code code model For example 200 represents a successful request The text of the status message This text aids user readability text in logs and it consists of canonical strings in English xml lan The language of the data in the Status element Optional for o tional compatibility with cXML 1 1 Mig
83. ing the Form data as described above The Form POST processor would first look for the cXML base64 variable extract the value and base64 decode its contents If that field does not exist in the data the Form POST processor would look for the cXML urlencoded variable extract the URL encoded cXML message and URL decode it The decoded content of the field is then processed as if it had been received through a normal HTTP Request Response cycle The implied media type of the document after decoding varies with different possible character encodings Specification S S F S S m E z S9 lt The cXML urlencoded variable is of media type text xml with no charset attribute It is thus restricted to the us ascii character encoding The receiving parser must ignore any encoding attribute in the XML declaration of the cXML document because the browser might have changed the encoding The cXML base64 variable is of media type application xml and thus might have any character encoding indicated by the encoding attribute of the contained XML declaration if any The primary difference between this transaction and a normal Request Response transaction is that there is no response that can be generated because there is no HTTP connection through which to send it cXML User s Guide 61 Basic Elements Appendix A cXML Language Specification Basic Elements The following entities and elements are used throughout the cXML specifi
84. ions for catalog subscription management are described below The examples show the intermediary as Ariba Network Subscription This element captures metadata about a single catalog subscription Its sub elements include InternallD a unique ID internal to the intermediary Name the name of the subscription ChangeTime the date and time when anything about the subscription last changed SupplierlD the ID of the supplier who is supplying the catalog Format the format of the catalog Description a description of the catalog Subscription lt InternallD gt 1234 lt InternallD gt lt Name xml lang en US gt Q2 Prices lt Name gt lt Changetime gt 1999 03 12T 18 39 09 08 00 lt Changetime gt lt SupplierID domain DUNS gt 123456789 lt SupplierID gt Format version 2 1 gt ClIF lt Format gt lt Description xml lang en US gt The best prices for software lt Description gt lt Subscription gt SubscriptionListRequest This element requests the buyer s current list of catalog subscriptions lt Request gt lt SubscriptionListRequest gt lt Request gt SubscriptionListResponse This element lists the buyer s current list of catalog subscriptions lt Response gt Status code 200 text OK gt lt SubscriptionListResponse gt lt Subscription gt lt InternallD gt 1234 lt InternallD gt lt Name xml lang en US gt Q2 Prices lt Name gt cXML User s Guide 93
85. is particular case a supplier is not required to provide responses in multiple locales An example Request of this type is Request lt ProfileRequest gt lt Request gt ProfileResponse This element contains a list of supported transactions their locations and any supported options While no options are yet defined the following is a possible ProfileResponse cXML User s Guide 63 Specification S S F S S m E z S9 lt Profile Transaction Appendix A cXML Language Specification ProfileResponse effectiveDate 2001 03 03T12 13 14 05 00 Option name Locale gt 1 lt Option gt Transaction requestName PunchOutSetupRequest gt URL http www workchairs com cXML PunchOut asp URL Option name operationAllowed gt create inspect lt Option gt lt Option name dynamic pricing gt 0 lt Option gt lt Transaction gt lt ProfileResponse gt A more likely ProfileResponse from a current supplier might be ProfileResponse effectiveDate 2000 01 01T05 24 29 08 00 gt Transaction requestName OrderRequest gt lt URLshitp workchairs com cgi orders cgi lt URL gt lt Transaction gt Transaction requestName PunchOutSetupRequest gt lt URLs gt http workchairs com cgi PunchOut cgi lt URL gt lt Transaction gt lt ProfileResponse gt ProfileResponse has the following attribute The date and time when these services became available effectiveDate Dates sho
86. is would be used to construct a two way conversation with many messages The inReplyTo attribute can also reference the payloadID of an earlier Request or Response document When a Request Response transaction initiates a conversation through multiple one way interactions the first message can include the payloadID of the most recent relevant Request or Response that went in the other direction For example a Message containing a PunchOutOrderMessage might include an inReplyTo attribute containing the payloadID of the PunchOutSetupRequest that started the punchout session The BuyerCookie included in the punchout documents performs a similar function to such a use of the inReplyTo attribute Transport Options There are two commonly used transports for one way messages HTTP and URL Form Encoding These are just two of the well defined transports today more could become supported in the future 58 cXML User s Guide June 2000 Appendix A cXML Language Specification Protocol Specification HTTP HTTP is used for one way communication to allow procurement applications to pull information The one type of transaction that uses one way HTTP communication is GetPendingRequest which is discussed on page 96 URL Form Encoding This transport is best understood by examining how the PunchOutOrderMessage transaction is performed URL Form Encoding enables integration between a remote Website and procurement applications It
87. ite presents the data invisible to users to the procurement application as an HTML Form Submit 34 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Punchout Website Suggestions Cancelling Punchout You might want to add a Cancel button to your pages so that users can cancel their punchout session The Cancel button sends an empty PunchOutOrderMessage that tells the procurement application that no items will be returned and to delete exiting punchout items from the requisition You can also use it to perform any housekeeping needed by your Website such as clearing the shopping cart and closing the user session Order Receiver Page v D o cs EO E EO CE Qc Eg N The Order Receiver Page accepts cXML purchase orders sent by buying organizations It could be similar to the Launch Page discussed above For information about receiving purchase orders see Chapter 3 Receiving cXML Purchase Orders Punchout Website Suggestions When planning the implementation of a punchout Website consider the following suggestions Implementation Guidelines Follow these guidelines when developing your punchout Website Study the cXML specification Use an XML parser and validate documents against the cCXML DTD Use the xml lang property to identify users languages so you can provide localized content Use the From credential to identify buying organizations Send a unique tempora
88. l element contains index specific elements that define additional aspects of an item such as LeadTime ExpirationDate EffectiveDate SearchGroupData or TerritoryAvailable PunchoutDetail PunchoutDetail is similar to ItemDetail except it requires only one or more Description elements and a Classification It can also contain URL ManufacturerName ManufacturerPartID ExpirationDate EffectiveDate SearchGroupData TerritoryAvailable and Extrinsic elements It does not contain pricing lead time or unit of measure information cXML User s Guide 87 Catalog Definitions Appendix A cXML Language Specification Contract A Contract element represents a contract between a supplier and buyer for goods or services described in the supplier s index It allows the supplier to overlay item attributes such as price in the index with values negotiated with the buyer It further allows suppliers and buyers to segment these overlays based on an agreed upon segment key meaningful within a buying organization such as the name of a plant or cost center Contract has the following attributes effectiveDate Effective date and time of the contract in ISO 8601 format expirationDate Expiration date and time of the contract in ISO 8601 format Contract contains one or more ItemSegment elements for example Contract effectiveDate 2000 01 03T18 39 09 08 00 expirationDate 2000 07 03T 18 39 09 08 00 gt lt Suppli
89. l item shipments lt OrderRequest gt lt OrderRequestHeader orderID DO1234 orderDate 2000 03 12T13 30 23 8 00 type new requisitionID R4321 shipComplete yes gt lt Total gt lt Money currency USD gt 12 34 lt Money gt lt Total gt lt ShipTo gt ShipTo lt OrderRequestHeader gt lt ltemOut gt lt ltemOut gt lt OrderRequest gt cXML 1 1 S 7 o 3 E t u z a New ShortName Element ShortName is a new optional element within Item Description elements Description xml lang en US gt lt ShortName gt Big Computer lt ShortName gt cXML User s Guide 107 New Purchase Order Status Transaction Appendix B New Features in cXML 1 1 This wonder contains three really big disks four CD ROM drives two Zip drives an Ethernet card much more memory than you could ever use four CPUs on two motherboards We ll throw in two monitors a keyboard and the cheapest mouse we can find lying around lt Description gt ShortName is a short 30 character recommended 50 character maximum name for the item which fits product lists presented to users Previously because there was only a Description element long descriptions were truncated at unknown points Procurement applications and other cXML clients should display ShortName instead of a truncation of the Description text in any space restricted fields If no ShortName is provided cXML clients can continue to trunca
90. lFContent element If it is cXML the Index and Contract elements are directly included Response Status code 200 text OK gt lt SubscriptionContentResponse gt lt Subscription gt lt InternallD gt 1234 lt InternallD gt Name xml lang en US gt Q2 Prices lt Name gt lt Changetime gt 1999 03 12T 18 39 09 08 00 lt Changetime gt lt SupplierID domain DUNS gt 123456789 lt SupplierlD gt Format version 3 0 gt CIF lt Format gt lt Description xml lang en US gt The best prices for software lt Description gt 94 cXML User s Guide June 2000 Appendix A cXML Language Specification Subscription Management Definitions lt Subscription gt lt SubscriptionContent filename foobar cif gt lt ClFContent gt lt base64 encoded data gt ABCDBBDBDBDBDB lt ClFContent gt lt SubscriptionContent gt lt SubscriptionContentResponse gt lt Response gt SubscriptionChangeMessage This element signals the buying organization s procurement system that a subscribed catalog has changed lt Message gt lt SubscriptionChangeMessage type new gt lt Subscription gt lt InternallD gt 1234 lt InternallD gt lt Name xml lang en US gt Q2 Prices lt Name gt lt Changetime gt 1999 03 12T 18 39 09 08 00 lt Changetime gt lt SupplierID domain DUNS gt 123456789 lt SupplierlD gt Format version 2 1 gt CIF lt Format gt lt Subscription gt lt SubscriptionChangeMessage gt lt Me
91. llowing example shows the required skeleton of a cKML document with an attached JPEG image without the HTTP headers shown above POST cXML HTTP 1 0 Content type multipart mixed boundary something unique something unique Content type text xml charset UTF 8 lt xml version 1 0 encoding UTF 8 gt something unique Content type image jpeg Content ID lt uniqueCID cxml org gt something unique This skeleton is also all that a receiving MIME parser must be able to process Applications that make use of the media type described in RFC 2387 The MIME Multipart Related Content type will get much more information if the skeleton is enhanced Specification S S F S S m E z S9 lt POST cXML HTTP 1 0 Content type multipart related boundary something unique type text xml start lt uniqueC Dmain cxml org gt something unique Content type text xml charset UTF 8 Content ID lt uniqueCIDmain cxml org gt lt xml version 1 0 encoding UTF 8 gt something unique Content type image jpeg Content ID lt uniqueCID cxml org gt something unique cXML User s Guide 51 Protocol Specification Appendix A cXML Language Specification Header Receiving MIME parsers that do not understand the multipart related media type must treat the two examples above identically Each part of the MIME transmission can additionally have a Content transfer encoding and use that encodin
92. lt toUser gt lt Identity gt lt Credential gt lt UserAgent gt PunchoutSite lt UserAgent gt lt Sender gt lt Header gt lt Message gt lt PunchOutOrderMessage gt lt BuyerCookie gt lt buyerCookie gt lt BuyerCookie gt lt PunchOutOrderMessageHeader operationAllowed amp quot edit amp quot gt lt Total gt Money currency amp quot USD amp quot gt lt unitPrice gt lt Money gt lt Total gt lt PunchOutOrderMessageHeader gt ItemIn quantity amp quot 1 amp quot gt lt ltemID gt lt SupplierPartID gt lt supPartlId gt lt SupplierPartID gt lt SupplierPartAuxiliaryID gt lt supPartAuxld gt lt SupplierPartAuxiliaryID gt lt ltemID gt lt ltemDetail gt lt UnitPrice gt Money currency amp quot USD amp quot gt lt unitPrice gt lt Money gt lt UnitPrice gt Description xml lang amp quot en amp quot gt lt desc gt lt Description gt lt UnitOfMeasure gt EA lt UnitOfMeasure gt lt Classification domain amp quot SupplierPartID amp quot gt lt supPartld gt lt Classification gt lt ltemDetail gt lt ltemIn gt cXML User s Guide 33 d amp bd c E E S a E a 2 77 3 2 Q S a Modifications to Your Web Pages Chapter 2 Implementing a Punchout Site lt PunchOutOrderMessage gt lt Message gt lt cXML gt lt end function function AddBuyButton unitPrice supPartld supPartAuxld desc toUser Sessio
93. ments contain data that is likely to appear in later documents the Comments element does not At this level Extrinsic extends the description of all items contained in the purchase order Some Extrinsic information might also describe the overall purchase order without affecting the meaning of any contained ItemOut Each named Extrinsic can appear only once within the lists associated with the OrderRequestHeader and individual ItemOut elements within the contained ItemDetail elements The same name must not appear in both the OrderRequestHeader list and any list associated with the ItemOut elements If the same Extrinsic name and value is repeated in all ItemOut lists it should be moved to the OrderRequestHeader The Extrinsic element can also appear in the Indexltem PunchOutSetupRequest and Contractitem elements These contexts are described later in this document ItemOut The following example shows a minimum valid ItemOut element ItemOut quantity 1 gt ItemID lt SupplierPartID gt 5555 lt SupplierPartID gt lt ltemID gt lt ltemOut gt ItemOut has the following attributes The number of items desired Fractions are allowed for some units of measure The value might have already quantity been checked by the supplier during a punchout session Should never be negative Position of this item within an order This ordinal value increases once per ItemOut in a new OrderRequest e d Clients should always
94. ments received If you detect errors issue the appropriate error code so the sender can retransmit For best performance cXML clients should not fetch DTDs each time they parse cXML documents Instead they should look at the cXML version in the document headers and retrieve DTDs that have not already been stored locally Profile Transaction The Profile transaction communicates basic information about cXML servers It is the only transaction that all cXML servers must support This transaction consists of two documents ProfileRequest and ProfileResponse Together they retrieve server capabilities including supported cXML version supported transactions and options to those transactions Note All cXML 1 1 servers must support the Profile transaction Clients can use the Profile transaction to ping servers to verify that they are available ProfileRequest The ProfileRequest document has no content It simply routes to the specified cXML server ProfileResponse The server responds with a ProfileResponse document which lists transactions supported by the cXML server their locations and any named options with a string value 8 cXML User s Guide June 2000 Chapter 1 Introduction to cXML XML Utilities cXML XML Utilities is S 2 Q 3 E E E r Utilities for editing and validating XML files are available for free and for purchase on the Web The following listing describes a few of these utiliti
95. n gt CA State Tax lt Description gt lt Tax gt lt Payment gt lt PCard number 1234567890123456 expiration 2002 03 12 gt lt Payment gt lt OrderRequestHeader gt ItemOut quantity 2 gt ItemID z 5 2 2 X eo Purchase Orders cXML User s Guide 41 Receiving Purchase Orders Chapter 3 Receiving cXML Purchase Orders lt SupplierPartID gt 220 3165 lt SupplierPartID gt lt SupplierPartAuxiliaryID gt E000028901 lt SupplierPartAuxiliaryID gt ItemID ItemDetail lt UnitPrice gt lt Money currency USD gt 2344 00 lt Money gt lt UnitPrice gt Description xml lang en gt Laptop Computer Notebook Pentium II processor w AGP 300 MHz with 12 1 amp quot TFT XGA Display lt Description gt lt UnitOfMeasure gt EA lt UnitOfMeasure gt Classification domain UNSPSC gt 431 71801 lt Classification gt lt URL gt http www supplier com Punchout asp lt URL gt lt Extrinsic name ExtDescription gt Enhanced keyboard lt Extrinsic gt ItemDetail Distribution Accounting name DistributionCharge gt Segment type Account id 7720 description Office Supplies gt lt Segment type CostCenter id 610 description Engineering Management gt lt Accounting gt lt Charge gt lt Money currency USD gt 4688 00 lt Money gt lt Charge gt lt Distribution gt lt ltemOut gt lt OrderRequest gt lt Request gt lt CXML gt OrderResponse The OrderRespon
96. n toUser fromUser Session fromUser buyerCookie Session buyercookie url Session urlToPost if not IsEmpty buyerCookie then 9o lt FORM METHOD POST ACTION lt url gt gt lt INPUT TYPE HIDDEN NAME cxml urlencoded VALUE lt CreateCXML toUser fromUser buyerCookie unitPrice supPartld supPartAuxld desc gt gt lt INPUT TYPE SUBMIT value BUY gt lt FORM gt lt else gt lt p gt lt end if end function 9o The AddBuyButton function contains the FORM POST that sends the URL encoded PunchOutOrderMessage back to the user HTTP Form Encoding To send a PunchOutOrderMessage you use HTML form encoding which is a different transport model than the traditional HTTP request response model This different transport facilitates easier integration between your Website and the procurement application It also enables buying organizations to receive XML data without requiring them to have a Web server available through a firewall Instead of sending a PunchOutOrderMessage directly to the procurement application your Website encodes it as a hidden HTML Form field and posts it to the URL specified in the BrowserFormPost element of the PunchOutSetupRequest The hidden HTML Form field must be named either cxml urlencoded or cxml base64 these names are case insensitive This encoding permits you to design a checkout Web page that contains the cXML document When users click your Check Out button your Webs
97. nitPrice gt lt Money currency USD gt 763 20 lt Money gt lt UnitPrice gt lt Description xml lang en gt lt ShortName gt Excelsior Desk Chair lt ShortName gt Leather Reclining Desk Chair with Padded Arms lt Description gt lt UnitOfMeasure gt EA lt UnitOfMeasure gt lt Classification domain UNSPSC gt 51 36030000 lt Classification gt lt ltemDetail gt lt ltemIn gt lt PunchOutOrderMessage gt 26 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Modifications to Your Web Pages lt Message gt lt cXML gt BuyerCookie enables the procurement application to associate a given PunchOutOrderMessage with its originating PunchOutSetupRequest Therefore your Website should return this element whenever it appears Do not use the BuyerCookie to track punchout sessions because it changes for every session from create to inspect to edit SupplierPartAuxiliaryID acts as a supplier cookie This field allows you to transmit additional data such as quote number or another cXML document The procurement application passes it back to you in any subsequent PunchOutSetupRequest edit or inspect sessions and in the resulting cXML purchase order You can use the supplier cookie to associate items in a purchase requisition with the corresponding items in a shopping cart at your Website v D o cs EG E E Oo Qc Eg N UnitOfMeasure describes how the product is packaged or shipped It m
98. nts must handle them according to their class Therefore older clients should treat all new 2xx codes as 200 4xx codes as 400 and 5xx codes as 500 This behavior allows for both further expansions of the cXML protocol and server specific codes without loss of interoperability One Way Asynchronous Model Unlike Request Response transactions One Way messages are not restricted to the HTTP transport One way messages are for situations when an HTTP channel a synchronous request response type operation is not appropriate The following figure shows an example of how A and B might communicate with messages instead of the Request Response transaction Message One Way Message Asynchronous In this case a possible scenario would be 1 A formats and encodes a cXML document in a transport that B understands 2 A sends the document using the known transport A does not and cannot actively wait for a response to come back from B 3 B receives the cXML document and decodes it out of the transport stream Specification S S F S S m E z S9 lt 4 B processes the document In the One Way model A and B do not have an explicit Request Response cycle For example between One Way messages messages from other parties might arrive and other conversations could take place To fully specify a one way transaction the transport used for the message must also be documented For the cXML transactions that use th
99. ocol Supplier has the following attributes corporateURL URL for supplier s Website optional storeFrontURL URL for Website for shopping or browsing optional The following example shows an outline of the Supplier element lt Supplier gt lt SupplierID domain InternalSupplierID gt 29 lt SupplierID gt lt SupplierID domain DUNS gt 76554545 lt SupplierID gt lt SupplierLocation gt lt Address gt 84 cXML User s Guide June 2000 Appendix A cXML Language Specification Catalog Definitions Name xml lang en US gt Main Office lt Name gt lt PostalAddress gt lt PostalAddress gt lt Email gt bobw workchairs com lt Email gt Phone name Office gt lt Phone gt lt Fax name Order gt lt Fax gt URL http www workchairs com Support htm URL lt Address gt lt OrderMethods gt lt OrderMethod gt lt OrderTarget gt lt URL gt hitp www workchairs com cxmlorders lt URL gt lt OrderTarget gt lt OrderMethod gt lt Contact gt lt Name xml lang en US gt Mr Smart E Pants lt Name gt lt Email gt sepants workchairs com lt Email gt lt Phone name Office gt lt Phone gt lt Contact gt lt OrderMethods gt lt SupplierLocation gt lt Supplier gt SupplierLocation Specification S S F S S m E z S9 lt Some suppliers conduct business from more than one location A SupplierLocation element can be used for each location This element also en
100. oducts which are configurable choose a particular model and conti 4 Requisitioner checks lere it out of your site Vies Configurable Models by Product Tal Product AGSF Spares familly pm ei CT Eae How does it work When users click your Check Out button your Website sends a cXML PunchOutOrderMessage containing product details and prices to the procurement application You can also send hidden supplier cookies which can later associate items with a specific shopping session Effectively you have provided a quote for the requested items you have not yet received a purchase order so you cannot yet book the order If users later need to edit any of the items in a purchase requisition you can allow them to re punchout to your Website The procurement application sends back the contents of the original shopping cart to your Website and users make any changes there Upon check out your Website returns the items to the purchase requisition cXML User s Guide 17 Punchout Event Sequence Chapter 2 Implementing a Punchout Site Your Website is the information source for all punchout items Changes to the quantity or the addition of new items to the requisition might alter tax or shipping charges which would require recalculation at your Website Thus any changes to the original items need to be made at your Website not in the procurement application hence the need to re punchout A
101. ombined with the SupplierlD and SupplierPartID For example a supplier might use the same SupplierPartlD for an item but have a different price for units of EA and BOX In this case a reasonable SupplierPartAuxiliaryID for the two items might be EA and BOX SupplierPartAuxiliaryID could also be used as a supplier cookie enabling the supplier to refer to complex configuration or part data It could contain all the data necessary for the supplier to reconstruct what the item in question is in their computer system a basket or cookie of data that makes sense only to the supplier For more information see Buyer and Supplier Cookies on page 36 ItemDetail ItemDetail contains detailed information about an item or all the data that a user might want to see about an item beyond the essentials represented in the ItemID It must contain a UnitPrice a UnitOfMeasure one or more Description elements and a Classification and it can optionally contain a ManufacturerPartID a ManufacturerName a URL and any number of Extrinsic elements For more information see ItemDetail on page 80 In the context of an IndexltemAdd Extrinsic elements extend information about a particular item These extensions should not be transmitted to a supplier within an OrderRequest because the supplier can retrieve the same data using the unique ItemID Specification S S F S S m E z S9 lt IndexltemDetail The IndexltemDetai
102. on and open new purchase requisitions They find desired items by searching their local catalogs by commodity supplier or product description When they select a punchout item the procurement application opens a new browser window and logs them into their accounts at your Website v D o cs EO E E Oo Qc Eg N The following figure illustrates the punchout request steps Procuremer prod particular model end View Configurable Models by Product Family Pigs 5H family a Ay iussi How does it work When a user clicks a punchout item the procurement application sends a cXML PunchOutSetupRequest document to a network e commerce hub Acting as the trusted third party the hub accepts the request verifies the buying organization and passes the request to your punchout Website Note All cXML documents sent through the Internet can travel through secure SSL Secure Socket Layer 3 0 encrypted HTTPS connections The purpose of this request is to notify your Website of the buyer s identity and to communicate the operation to be performed Supported operations include the following create Initiates a new punchout session cXML User s Guide 15 Punchout Event Sequence Chapter 2 Implementing a Punchout Site edit Re opens a punchout session for editing inspect Re opens a punchout session for inspection no changes can be made to the data After your Website receives a reque
103. one offset from UTC Coordinated Universal Time also known as Greenwich Mean Time The Z time zone designator is not allowed For example 2000 04 14T013 36 00 08 00 corresponds to April 14 2000 1 36 p m U S Pacific Standard Time Specification S amp kl S E E S9 lt Further references for the date time and other data type formats used by cXML are Microsoft s XML Data Types Reference site msdn microsoft com xml reference schema datatypes asp The original XML Data proposal to the Word Wide Web Consortium W3C www W3c org TR 1998 NOTE XML data 0105 cXML User s Guide 49 Protocol Specification Appendix A cXML Language Specification Wrapping Layers The cXML element is the body of a normal XML document A document might begin lt xml version 1 0 encoding UTF 8 gt IDOCTYPE cXML SYSTEM http xml cxml org schemas cXML 1 1 007 cXML dtd gt lt cXML version 1 1 007 xml lang en US payloadID 0c300508b7863dcclb_13550 timestamp 2000 01 09T01 36 05 08 00 gt This document is normally transmitted via HTTP with a MIME media type of text xml and a charset parameter matching the encoding in the document Because HTTP is eight bit clean any encoding supported by the recipient parser can be used without a content transfer encoding such as base64 or quoted printable All XML parsers support the UTF 8 encoding which includes all Unicode characters Applications should therefore us
104. out enabled is to understand XML XML is a language for describing languages cXML documents are constructed based on XML Document Type Definitions DTDs Acting as templates DTDs can be used to define content models within a cXML document for example the bout XML valid order and nesting of elements and the datatypes of attributes XML eXtensible Markup Language is To implement a punchout Website you must have a fundamental a standard for passing data between Internet applications XML documents understanding of how to create parse query receive and transmit contain data in the form of tag value XML data to and from a remote source pairs XML has a structure similar to HTML hypertext markup language but Internet applications can extract The basic tools to process XML documents are XML parsers and use data from XML documents These parsers are freely available from Microsoft and other more easily than in plain HTML ones companies for example an XML parser is standard in Microsoft As Internet applications become more Internet Explorer 5 For a list of XML tools see XML Utilities widespread XML will become more on page 9 prevalent 14 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Punchout Event Sequence Punchout Event Sequence A punchout session is comprised of several distinct steps Steps 1 amp 2 Punchout Request Users log in to a procurement applicati
105. outing and purchase order history Communication between these Web services buyer applications and supplier applications can occur entirely through cXML over the Internet cXML User s Guide 5 Content Delivery Strategy Chapter 1 Introduction to cXML Punchout Catalogs As described above punchout catalogs are interactive catalogs available at supplier Websites Punchout catalogs are Web server applications written in a programming language such as ASP Active Server Pages JavaScript or CGI that manage buyers punchout sessions Punchout catalogs accept punchout requests from procurement applications identify the buying organization and display the appropriate products and prices in HTML format Users then select items configure them and select options if appropriate At the end of the punchout session the punchout site sends descriptions of the users selections in cXML format to the procurement applications Order Receiving Systems Order receiving systems are applications at supplier sites that accept and process purchase orders sent by buying organizations Order receiving systems can be any automated system such as inventory management systems order fulfillment systems or order processing systems Because it is simple to extract information from cXML purchase orders it is relatively easy to create the adapters that enable your existing order receiving systems to accept them Content Delivery Stra
106. p 4 Check Qut osse uhi pb bbb epe 17 Step 5 Transmittal of Purchase Order 18 Punchout Documents 0 0 00 eee eee eee 19 Punchout Index Catalog lle 19 PunchOutSetupRequest 0 0 0 0 eee eee eee 21 PunchOutSetupResponse 0 00 c ee eee eee 25 PunchOutOrderMessage 0 0 0 0 c eee eee eee 25 Modifications to Your Web Pages 00 0c eee eee eee 27 Launch Page oo cct po da Sa bt ha Bohan 28 Statt Pages cc so cere cen s Fee oats Medgar es feet re 31 sender Page eta dd ree DOE PH OP PII puede 32 Order Receiver Page 0 0 eee eee eee 35 Punchout Website Suggestions 0 0 0 2 02 se eee 35 Implementation Guidelines 000000 35 Buyer and Supplier Cookies 000000020005 36 Personalization sete SUE CNORNUNO ARE AWE 36 Chapter 3 Receiving cXML Purchase Orders 39 Purchase Order Process 0 0 0 eee eese 39 Receiving Purchase Orders llle eese 40 OrderRequest EE Ober qp pe 40 OrderResponse crus set OEC ERO BE Be AKARA 42 Accepting Order Attachments 0 0 00 0000000 43 ii cXML User s Guide June 2000 Table of Contents Appendix A cXML Language Specification 45 Protocol Specification 0 0 0 eee eee eee 46 Request Response Model 00002 sees 46 XML Conventions lees 47 eXML Envelope y osos Dx
107. pTo BillTo These elements contain the addresses of the Ship To and Bill To entities on the OrderRequest cXML User s Guide 67 Order Definitions Appendix A cXML Language Specification One order must be billed to a single entity Therefore the BillTo element appears only in the OrderRequestHeader Items from an order can be sent to multiple locations Like the Shipping element see next section the ShipTo element can therefore appear either in the OrderRequestHeader or in individual ItemOut elements Shipping This element describes how to ship the items in the request and the cost of doing so If the Shipping element is present in the OrderRequestHeader it must not appear on individual ItemOut elements If it is not present in the OrderRequestHeader it must appear in the ItemOut elements Tax This element contains the tax associated with the order This element is present if the buying organization computes tax When appearing within the OrderRequestHeader Tax describes the total tax for an order Tax elements at the item level can describe individual tax amounts Payment This element describes the payment instrument used to pay for the items requested In the above example the Payment element contains a PCard element which encodes a standard purchasing card into the cXML document In the future other payment instruments will be defined and supported Contact Contact information the supplier can use to follow up on
108. r commodity for example printed materials chemical and reagents or services Real time pricing inventory and availability checking Automatic tax and freight calculations based on ship to destination size or quantity of items not necessary to calculate during the punchout session 16 cXML User s Guide June 2000 Chapter 2 Implementing a Punchout Site Punchout Event Sequence How does it work After the procurement application directs users to your Website the shopping experience is the same as if they had logged on to your Website directly Thus none of the previously listed features and services require modification Step 4 Check Out Your Website calculates the total cost of the user s selections including tax freight and customer specific discounts Users then click your Website s Check Out button to send the contents of the shopping cart to the their purchase requisitions within the procurement application v D o cs EG E E Oo Qc Eg N The following figure illustrates the check out steps Items then appear in purchase requisition in procurement application int isounus0 po sso Be Es E iis Naturlig Products Mabe Configuration Tool P idk on his banner to acces a Kiosk let inks youto Configuration Tool formation snan online Erheneemart Bagest Fora This Agent provides multiple ways to select a product to search for Other Tools Cisco pr
109. rts on past activity To avoid security problems store quote history only at the per user level A key consideration during planning is the amount of effort required to implement a highly dynamic and customized punchout Website You need to balance between customization and complexity a complex Website takes longer to implement and maintain but it could offer more value to users It is recommended that you start with a simple punchout Website and enhance it over time v D o cs EO E EO CE Qc Eg N cXML User s Guide 37 Punchout Website Suggestions Chapter 2 Implementing a Punchout Site 38 cXML User s Guide June 2000 Chapter 3 Receiving cXML Purchase Orders This chapter describes how to set up a Website to receive cXML format purchase orders It also describes how to send purchase order status messages to buying organizations or marketplaces Purchase Order Process Procurement applications convert approved purchase requisitions into one or more purchase orders purchase order is a formal request from a buying organization to a supplier to fulfill a contract z 5 2 2 X eo Purchase Orders cXML is just one format for transmitting purchase orders Other common formats are e mail fax and EDI X 12 Electronic Data Interchange cXML is the best format for purchase orders because it allows you to easily automate order processing cXML s well defined structure allows order processing s
110. ry URL for the session on redirect Do not persist browser cookies Do not overburden your customers with extrinsic data requirements For each line item use UNUOM United Nations Units of Measure and UNSPSC United Nations Standard Product and Service Codes cXML User s Guide 35 Punchout Website Suggestions Chapter 2 Implementing a Punchout Site Provide real value to your customers Display product availability order status and special promotions Checkout should be easy and intuitive Ideally users should need to click only three buttons to buy Code for subsequent edit and inspect sessions Users cannot change order details for punchout items such as quantity within their procurement application They must re punchout with an edit session For the greatest benefit to users inspect sessions should display order status Test your punchout Website Allow time for testing with your customers procurement applications Punchout transactions produce quotes not purchase orders Implement a cKML purchase order receiving page to accept orders Buyer and Supplier Cookies The buyer and supplier cookies enable both buyers and suppliers to re instantiate their own line item data for their back end systems Return the buyer cookie BuyerCookie you receive Do not change it Make use of the supplier cookie SupplierPartAuxiliaryID The buyer cookie is analogous to a purchase requisition number it
111. s code 204 No Content indicates the end of a session without change to the shopping cart Again the PunchOutOrderMessage which is always needed for the BuyerCookie should not contain Itemin elements This code would be handled 78 cXML User s Guide June 2000 Appendix A cXML Language Specification Punchout Transaction identically to the other empty cases detailed above unless the operation was edit In that case the user cancelled the session without making any change and no change should be made to the requisition in the procurement application Itemin This element adds an item from a shopping basket to a requisition in the procurement application It can contain a variety of elements only two of which are required ItemID and ItemDetail ItemIn has the following attributes The number of items selected by the user on the remote Website Because the supplier site can enforce rules for partial units the protocol allows fractional quantities Should never be negative quantity The position of this item within an order Because punchout lineNumber sessions normally take place prior to ordering and the server optional cannot control placement of items within an order in any case this attribute is not relevant within a PunchOutOrderMessage The optional elements are ShipTo Shipping and Tax which are the same elements as those specified in PunchOutOrderMessage above With the exception of t
112. s element does not have to be included Extrinsic This optional element contains any additional data that the requestor wants to pass to the external Website This example passes the department of the user initiating the punchout operation The cXML specification does not define the content of Extrinsic elements it is something that each requestor and remote Website must agree on and implement Extrinsic elements are intended to provide additional machine readable information They extend the cXML protocol to support features not required by all implementations In this context the new data further describes the user initiating the punchout request Specification S S F S S m E z S9 lt The Extrinsic element can also appear in the OrderRequestHeader ItemDetail and Contractlitem elements These contexts are described further elsewhere in this document Selectedltem This optional element indicates the items users want to punchout to purchase It contains a single required ItemID This item leads users from their local catalog to the supplier s Website This element is usually present in create operations Procurement applications that allow users to punchout directly from a supplier listing should leave out Selectedltem cXML User s Guide 75 Punchout Transaction Appendix A cXML Language Specification For edit and inspect operations Selectedltem should appear only if the user chose to return to the suppli
113. s the steps in a Request Response interaction between parties A and B 2 Request gt One HTTP B Performs POST Response Request A Request Response 4 Response Transaction This transaction contains the following steps 1 A initiates an HTTP 1 x connection with B on a predetermined URL that represents B s address 2 A uses a POST operation to send the cXML document through the HTTP connection 3 A waits for a response to return through the HTTP connection 4 B has an HTTP 1 x compliant server that dispatches the HTTP Request to the resource specified by the URL used in step 1 This resource can be any valid location known to B s HTTP server for example a CGI program or an ASP page 5 B s resource identified in step 4 reads the cXML document contents and maps the Request to the appropriate handler for that request 6 B s handler for the cXML Request performs the work that the Request specifies and formats a CXML document as a Response 7 B sends the cXML Response to A through the HTTP connection established in step 1 46 cXML User s Guide June 2000 Appendix A cXML Language Specification Protocol Specification 8 A reads the cXML Response and returns it to the process that initiated the Request 9 A closes the HTTP connection established in step 1 This process is then repeated for further Request Response cycles To simplify the work in the above steps cXML documents are divided into two
114. se document acknowledges that you received the purchase order and that it parses correctly It is not a commitment to execute the purchase order it confirms that you received it and that it is a valid cXML document lt xml version 1 0 gt IDOCTYPE cXML SYSTEM http xml cxml org schemas cXML 1 1 007 cXML dtd gt cXML version 1 1 007 payloadID 8 3 2000 8 49 30 PM 205 180 14 45 timestamp 2000 08 03T08 49 30 07 00 gt lt Response gt Status code 200 text OK gt lt Response gt lt cXML gt 42 cXML User s Guide June 2000 Chapter 3 Receiving cXML Purchase Orders Accepting Order Attachments Accepting Order Attachments Buyers often need to clarify purchase orders with associated memos drawings or faxes They can attach files of any type to cXML purchase orders by using MIME Multipurpose Internet Mail Extensions cXML contains only references to external MIME parts sent within one multipart MIME envelope with the cXML document in an e mail or faxed together The e commerce network hub receives the attachments and can forward them to the supplier or store them for online retrieval For more information about purchase order attachments see Attachment Transmission on page 51 For more information about the MIME standard see the following Websites www hunnysoft com mime www rad com networks 1995 mime mime htm 5 2 2 cc eo Purchase Orders cXML User s Guide 43
115. sers display pages from your local Website Depending on how you implement your pages users can browse product options specify configurations and select delivery methods When users are done selecting items they click a button that returns the order information to the pro curement application The fully configured products and their prices appear within users purchase requisitions Punchout Session Item Descriptions Supplier Procurement System Interactive punchout session between Buying Organization a user and a supplier Website Your Website can offer previously agreed upon contract products and prices cXML User s Guide 3 cXML Capabilities Chapter 1 Introduction to cXML Purchase Orders Buying organizations send purchase orders to suppliers to request fulfillment of a contract They can be routed to suppliers through an e commerce network platform such as Ariba Network Procurement Purchase Order Supplier System Purchase order communicated Buying Organization to a supplier cXML is just one of several possible formats for purchase orders Other formats include e mail fax and EDI X 12 Electronic Data Interchange However cXML is the ideal format for purchase orders because it is flexible inexpensive to implement supports the widest array of data and attachments and can be used by automated systems 4 cXML User s Guide June 2000 Chapter 1 Introduction to cXML Types of Applic
116. sification domain UNSPSC gt 12345 lt Classification gt lt ltemDetail gt Contact role customerService gt lt Address gt lt Name xml lang en US gt Joe Bob Emmet lt Name gt lt Email gt joebob workchairs com lt Email gt Phone name Office gt lt TelephoneNumber gt CountryCode isoCountryCode US gt 1 lt CountryCode gt lt AreaOrCityCode gt 800 lt AreaOrCityCode gt lt Number gt 5551212 lt Number gt lt TelephoneNumber gt lt Phone gt Fax name Order gt lt TelephoneNumber gt CountryCode isoCountryCode US gt 1 lt CountryCode gt lt AreaOrCityCode gt 408 lt AreaOrCityCode gt lt Number gt 5551234 lt Number gt lt TelephoneNumber gt lt Fax gt lt Address gt lt Contact gt lt ltemOut gt The role attribute specifies the position or title of the contact person Allowed roles are endUser administrator purchasingAgent technicalSupport customerService or sales 102 cXML User s Guide June 2000 Appendix B New Features in cXML 1 1 Changes to Extrinsics requisitionID Attribute Supported requisitionID is now fully supported It is an optional attribute to the OrderRequest and ItemOut elements that identifies the buyer s requisition for a line item lt OrderRequest gt lt OrderRequestHeader orderID DO1234 orderDate 2000 03 12T 13 30 23 8 00 type new requisitionID R4321 gt lt Total gt lt Money currency USD gt 12 34 lt Money gt lt Total gt lt
117. sing within the supplier s organization Note This transaction informs interested parties about changes in the delivery and processing status of purchase order documents not the shipping status of actual items One change is of particular significance When an intermediate hub successfully forwards an OrderRequest document it can inform the original sender or a previous hub about that success Transitions through various queues and processing steps at a supplier or hub might also be significant to the buyer New Followup Element Followup is an element within OrderRequestHeader that specifies the URL to which future StatusUpdateRequest documents should be posted This location is the input location for any later documents which reference the current OrderRequest document cXML User s Guide 109 cXML 1 1 S 7 o 3 E t u 2 a New Purchase Order Status Transaction Appendix B New Features in cXML 1 1 110 cXML User s Guide June 2000 Index A Accounting element 72 Attachment element 69 attachments to purchase orders 43 BillTo element 67 booking orders 18 BrowserFormPost element 75 buyer and supplier cookies 27 36 BuyerCookie element 75 77 character encoding 50 Charge element 73 Classification element 20 code attribute 55 Comments element 69 Contact element 68 Contract element 88 cookies buyer and supplier 27 36 corporateURL attribute 84 Credential element 53 cXML element 48
118. specify this attribute in an OrderRequest although it might not be useful in other ItemOut contexts The buyer s requisition identifier for this line item Must not be included if requisitionID is specified in the OrderRequestHeader requisitionID optional The date item was requested for delivery which allows Sac e 2 item level delivery dates in the OrderRequest It must be in p ISO 8601 format 70 cXML User s Guide June 2000 Appendix A cXML Language Specification Order Definitions The lineNumber attribute remains constant for any item through updates to the order Deletion of items from an order never changes the lineNumber of remaining items New items have higher numbers than those previously included in the order A change to an existing item an increased quantity for example does not affect the lineNumber of that item The following example shows a more complicated ItemOut ItemOut quantity 2 lineNumber 1 equestedDeliveryDate 1999 03 12 gt ItemID lt SupplierPartID gt 1233244 lt SupplierPartID gt lt SupplierPartAuxiliaryID gt ABC lt SupplierPartAuxiliaryID gt lt ltemID gt lt ltemDetail gt lt UnitPrice gt Money currency USD gt 1 34 lt Money gt lt UnitPrice gt lt Description xml lang en gt hello lt Description gt lt UnitOfMeasure gt EA lt UnitOfMeasure gt Classification domain SPSC gt 12345 lt Classification gt lt ManufacturerPartID gt 234 lt Manuf
119. ssage gt SubscriptionChangeMessage has the following attribute type The type of the change new delete or update cXML User s Guide 95 Specification S S S S S m E z S9 lt Message Retrieval Definitions Appendix A cXML Language Specification Message Retrieval Definitions Some buying organizations do not have HTTP entry points for receiving cXML messages from outside their corporate firewalls The cXML specification allows for these environments This section introduces definitions that allow source systems to queue messages when targets are unable to directly accept HTTP posts Targets instead pull messages at their convenience GetPendingRequest This element pulls a set of messages waiting for the requester The MessageType element and the lastReceivedTimestamp and maxMessages attributes control the type and count of the fetched messages lastReceivedTimestamp The timestamp of the most recent message received optional maxMessages Maximum number of messages in a single response optional that the requester can handle Upon receiving the request the receiver returns the oldest messages of the specified types with timestamps equal to or later than the specified timestamp If there are multiple messages meeting this criterion multiple messages can be returned subject to the maxMessages attribute The queuing system discards all pending messages of the specified message t
120. st it sends back a PunchOutSetupResponse containing a URL that tells the procurement application where to go to initiate a browsing session on your Website The procurement application opens a new browser window which displays a session logged into an account on your Website This account can be specific to a region a company a department or a user Step 3 Product Selection Users select items from your inventory using all the features and services provided by your Website Ek Ek Yow Go facis Peon ene MILIUM MNTISN MN ITO MTS DE NIE prr Configuration Tol i mm agra Td 2 IBI r 3 Requisitioner uses Tae Inks pato Configuration Too mfoermation a supplier site to find and This Agent provides multiple ways to select a product to search for configure products Cisco products which are configurable choose a particular model and configure it 2 View Configurable Models by Product Family Product ACS Spares Family m a I Slssitisslune Depending on the product or customer these features might include the following Configurator tools for building customized products for example computers organic compounds or personalized products Search engines for finding desired products from large catalogs Views of normalized data for comparing products based on price features or availability for example MRO products Views of attributes unique to a particula
121. st documents and punchout sites can use it to determine which products to display to users If there is no Selectedltem suppliers should present their entire store level product offerings A Selectedltem contains an ItemOut element which contains an ItemID for example Selectedltem ItemID lt SupplierPartID gt 5555 lt SupplierPartID gt ItemID lt Selecteditem gt For the contents of the Selectedltem element procurement applications use the ItemID SupplierPartlD and SupplierPartAuxiliaryID from the punchout index catalog No catalog changes are required Procurement applications should initially send both the new Selectedltem element and the old punchout URL in the PunchOutSetupRequest E commerce network hubs use the old URL only for suppliers that have not yet stored their punchout URL destinations Empty PunchOutOrderMessage cXML now allows empty PunchOutOrderMessage documents which allows users to end punchout shopping sessions without picking any items Previously the returned PunchOutOrderMessage had to contain at least one item Suppliers can implement a Cancel button that generates an empty PunchOutOrderMessage document Then both the punchout site and the procurement application know when a user has canceled a shopping session and they can delete the shopping cart delete items from the requisition and perform other housekeeping tasks cXML 1 1 S 7 o 3 E t u 2 a New cXML
122. te If the answer to any of the above questions is yes then punchout might be appropriate for your organization Technical Issues Suppliers must meet the following technical requirements cXML User s Guide 13 Punchout Requirements Chapter 2 Implementing a Punchout Site Reliable Internet Connection The Web server infrastructure and Internet connection must be extremely reliable If users cannot access remote content they are likely to go to another supplier e Competent Website Administrators The punchout Website and supporting applications will require periodic maintenance and modification Users needs and your product offerings will change so you need personnel to modify your punchout infrastructure Support for Basic Transactions Punchout Websites do not need to support all cXML functionality but they must support the following required transactions Profile Transaction PunchOutSetupRequest PunchOutSetupResponse PunchOutOrderMessage Work Estimate The following table lists estimates of work required for cXML punchout integration based on estimates from suppliers Level of Pre existing Infrastructure Estimated Time for Completion Transactive site with XML infrastructure 3 weeks with in house IT staff 3 4 weeks with contractors Transactive site without XML infrastructure 4 weeks with in house IT staff 4 5 weeks with contractors Understanding XML The first step to becoming punch
123. te the Description text Catalog creators should not use ShortName to duplicate the information in Description Instead they should use ShortName to name the product and Description to describe product details CIF 3 0 catalog format has also been enhanced to support ShortName The CIF field name is Short Name New Purchase Order Status Transaction cXML 1 1 introduces a new transaction for sending the status of purchase orders to e commerce network hubs This transaction relies upon the new DocumentReference element which associates the status update with the OrderRequest most recently received from the buyer New DocumentReference Element The new DocumentReference element associates a status update with a particular OrderRequest document lt DocumentReference payloadID 0c300508b7863dcclb_ 14999 lt DocumentReference gt The new StatusUpdateRequest transaction uses this element 108 cXML User s Guide June 2000 Appendix B New Features in cXML 1 1 New Purchase Order Status Transaction New StatusUpdateRequest Transaction e information Order processing partners such as fax or EDI service providers send the new StatusUpdateRequest transaction to e commerce network hubs to set purchase order status It affects the order status indicator on the hub which is visible to both buyers and suppliers Additionally suppliers can send this transaction to allow buyers to see the status of document proces
124. tegy Procurement applications present product and service content to users Suppliers want to control the way their customers view their products or services because presentation is critical to their sales process Buying organizations want to make content easily accessible and searchable to ensure high contract compliance Buying organizations and suppliers can choose from multiple methods for delivering product and service content The particular method to use is determined by agreement between a buying organization and a supplier and the nature of the products or services traded 6 cXML User s Guide June 2000 Chapter 1 Introduction to cXML Validation Against DTDs 2 S 2 The following table lists example categories of commonly procured products and E services and their preferred content delivery methods e S Commodity Properties Content Delivery Method x Office Supplies Static content stable Static catalogs Internal Supplies pricing Lab Supplies Requires normalization to Punchout to a vertical MRO Maintenance be useful commodity portal Repair and Operations Electronic Parts Books Large number of line Punchout to a supplier Chemicals Items hosted site Computers Many possible Punchout to a supplier Network Equipment configurations configuration tool Peripherals Services Content has highly Punchout to an electronic Printed Materials variable attributes form at a supplier site Buying organi
125. tion lt Header gt lt Request gt lt StatusUpdateRequest gt lt DocumentReference payloadID 0c300508b7863dcclb_14999 gt lt Status code 200 text OK xml lang en US gt Forwarded to supplier lt Status gt lt StatusUpdateRequest gt lt Request gt lt cXML gt This request contains only an DocumentReference and a Status element Both are required The Status can communicate a later transport error encountered by an intermediate hub The semantics of this element are identical to a Status that might have been returned in the initial HTTP response to an OrderRequest document The 200 OK code is especially important when documents are stored and forwarded This code indicates that a supplier has begun processing the OrderRequest or a hub has forwarded the document The recipient should expect no further StatusUpdateRequest documents after 200 OK arrives Suppliers and hubs utilizing the StatusUpdate transaction must return code 201 Accepted when an OrderRequest is queued for later processing After it sends 200 OK in the immediate Response to an OrderRequest or a later StatusUpdateRequest the server should send no further StatusUpdate transactions for that order Errors later in processing might lead to exceptions to this rule 82 cXML User s Guide June 2000 Appendix A cXML Language Specification Catalog Definitions Catalog Definitions The cXML catalog definitions consist of three main elements Supplier Ind
126. turn errors directly to the client 551 Unable to forward request due to supplier misconfiguration For example an intermediate hub failed to authenticate itself to a supplier Clients cannot rectify this error but this error might be resolved before the client retries cXML User s Guide 55 Protocol Specification Appendix A cXML Language Specification 560 Temporary server error For example a server might be down for maintenance Client should retry later Status 200 201 204 400 401 402 403 406 409 412 417 500 501 Canonical text OK Accepted No Content Bad Request Unauthorized Payment Required Forbidden Not Acceptable Conflict Precondition Failed Expectation Failed Internal Server Error Not Implemented Meaning The server was able to execute this Request although the returned Response might contain application warnings or errors Some processing might not yet have completed As mentioned in StatusUpdateRequest on page 82 _ the client should expect later StatusUpdate transactions if this status is returned in response to an OrderRequest All Request information was valid and recognized The server has no Response data of the type requested In a PunchOutOrderMessage this status indicates that the punchout session ended without change to the shopping cart or client requisition Request unacceptable to the server although it p
127. tus Transaction 2005 108 New DocumentReference Element 2005 108 New StatusUpdateRequest Transaction 109 New Followup Element 00 00 eee 109 Index iss ni ore e OO wee BUR GC gE Ole 111 iv cXML User s Guide June 2000 Preface This document describes how to use cXML commerce eXtensible Markup Language for communication of data related to electronic commerce Audience and Prerequisites This document is intended for programmers designing cXML enabled applications It is oriented toward suppliers that are modifying their e commerce Websites for punchout cXML is an open versatile language for the transaction requirements of Electronic product catalogs cXML punchout catalogs Procurement applications Buying communities Readers should have a working knowledge of e commerce concepts and the HTTP Web communication standard This document does not describe how to use specific procurement applications or network e commerce hubs Which Chapters to Read E commerce Business Managers For an overview of cXML capabilities read Chapter 1 Introduction to cXML Web Programmers Web programmers who are implementing e commerce sites should read all chapters cXML User s Guide v Which Chapters to Read Preface Punchout Site Administrators Web engineers experienced with punchout Websites should read Appendix B New Features in c
128. uld not be in the future Option Value for a defined option either for the overall service or for a specific transaction No options are yet defined Option has the following attribute The name of this option This attribute should not be viewed name directly because the profile is intended for machine consumption Transaction The description of a transaction supported by this service The Profile definition currently indicates the locations to which to send specific requests Future versions of cXML will add Option definitions and extend the Profile information to include more information about supported requests 64 cXML User s Guide June 2000 Appendix A cXML Language Specification Order Definitions The Transaction element must contain a URL element Transaction has the following attribute A specific request that this server accepts at the given URL Values can be ProfileRequest OrderRequest requestName PunchOutSetupRequest StatusUpdateRequest GetPendingRequest SubscriptionListRequest SupplierListRequest SubscriptionContentRequest SupplierDataRequest Order Definitions The cXML ordering documents are OrderRequest and a generic response OrderRequest is analogous to a purchase order The response is the acknowledgment that the supplier received the purchase order It is not a commitment to execute the purchase order but a confirmation that it was correctly received
129. unctions It indicates whether the PunchOutSetupRequest was successful t provides the procurement application with a redirect URL to your Start Page v D o cs EO E EO CE Qc Eg N It contains a lt URL gt element that specifies the Start Page URL to pass to the user s Web browser for the interactive browsing session This URL must contain enough state information to bind to a session context on your Website such as the identity of the requester and the contents of the BuyerCookie element The following example lists a PunchOutSetupResponse document lt xml version 1 0 gt IDOCTYPE cXML SYSTEM http xml cxml org schemas cXML 1 1 007 cXML dtd gt lt cXML version 1 1 007 xml lang en US payloadID 933694607739 timestamp 2000 08 15T08 46 00 07 00 gt lt Response gt lt Status code 200 text success gt lt Status gt lt PunchOutSetupResponse gt lt StartPage gt lt URL gt http xml workchairs com retrieve reqUrl 20626 Initial TRUE lt URL gt lt StartPage gt lt PunchOutSetupResponse gt lt Response gt lt cXML gt PunchOutOrderMessage After the user selects items on your Website configures them and clicks your Check Out button you send a PunchOutOrderMessage document to communicate the contents of the shopping basket to the buyer s procurement application This document can contain much more data than the other documents because it needs to be able to fully express th
130. ust conform to UN CEFACT Unit of Measure Common Codes For a list of UN CEFACT codes see www unece org cefact Classification lists the UNSPSC United Nations Standard Product and Service Code commodity code for each selected item These codes are used by back end systems within buyer and supplier organizations for accounting and report generation For the list of UNSPSC codes see www unspsc org Modifications to Your Web Pages To receive or send the three cXML punchout documents you might need to modify or create four pages on your Website Launch Page Start Page Sender Page Order Receiver Page To illustrate how you might implement these pages simple Active Server Page ASP code samples and the Microsoft Internet Explorer 5 XML Parser will be used Actual implementation of these pages will vary depending on the supplier development environment for example CGI JavaScript or WebObjects cXML User s Guide 27 Modifications to Your Web Pages Chapter 2 Implementing a Punchout Site Launch Page The Launch Page receives all authenticated PunchOutSetupRequest documents from the e commerce hub It reads the HTTP stream sent from the hub and validates the CXML request imbedded within that stream against the cXML DTD in the case of ASP using method calls to the Internet Explorer 5 XML parser After validation your Launch Page extracts elements from the document in order to 1 Identify the user and determine w
131. uters R us lt Name gt Comments xml lang en US gt another cool company lt Comments gt lt SupplierID domain DUNS gt 123456789 lt SupplierlD gt lt Supplier gt lt SupplierListResponse gt lt Response gt SupplierDataRequest SupplierDataRequest requests data about a supplier lt Request gt lt SupplierDataRequest gt lt SupplierID domain DUNS gt 123456789 lt SupplierlD gt lt SupplierDataRequest gt lt Request gt SupplierDataResponse SupplierDataResponse contains data about a supplier lt Response gt Status code 200 text OK gt lt SupplierDataResponse gt Supplier corporateURL http www workchairs com storeFrontURL http www workchairs com Name xml lang en US gt Workchairs Inc lt Name gt Comments xml lang en US gt this is a cool company lt Comments gt lt SupplierID domain DUNS gt 123456 lt SupplierlID gt lt SupplierLocation gt lt Address gt lt Name xml lang en US gt Main Office lt Name gt lt PostalAddress gt lt DeliverTo gt Bob A Worker lt DeliverTo gt lt Street gt 123 Front Street lt Street gt lt City gt Toosunny lt City gt lt State gt CA lt State gt lt PostalCode gt 95000 lt PostalCode gt lt Country isoCountryCode US gt USA lt Country gt lt PostalAddress gt lt Email gt bobw workchairs com lt Email gt lt Phone name Office gt lt TelephoneNumber gt lt CountryCode 90 cXML User s Guide June 2000 Appendix A cXML L
132. utes cXML Envelope Sender Credential Payment ItemDetail version payloadID lineNumber domain The envelope element is the root of the cXML document structure and it contains all other elements The cXML element is present in each cXML transaction The following example shows a fully specified cXML element lt cXML version 1 1 007 xml lang en US payloadID 1234567 4567 5678 test ariba com timestamp 1999 03 31T18 39 09 08 00 gt cXML has the following attributes version optional xml lang optional payloadID timestamp Specifies the version of the cXML protocol A validating XML parser could also determine the version attribute from the referenced DTD However all cXML documents should include the version explicitly to assist applications using non validating parsers The locale used for all free text sent within this document The receiver should reply or display information in the same or a similar locale For example a client specifying xml lang en UK in a request might receive en data in return A unique number with respect to space and time used for logging purposes to identify documents that might have been lost or had problems This value should not change for retry attempts The recommended implementation is datetime process id random number hostname The date and time the message was sent in ISO 8601 format This value should not change for retry attempts The format is
133. value marketplace Use it to differentiate credentials for marketplace members from credentials for regular buyer or supplier companies Credential elements without a type attribute identify companies that are not associated with a marketplace Requests to or from a marketplace must identify both the marketplace and the member company in To or From Credential elements cXML 1 1 S 7 o 3 E t u 2 a Changes to Extrinsics cXML 1 1 introduces additional elements and attributes for data previously contained in Extrinsic elements These additions move information that was previously sent using Extrinsic into the base specification cXML User s Guide 101 Changes to Extrinsics Appendix B New Features in cXML 1 1 cXML 1 1 also introduces support for Extrinsic at the header level New Contact Element The OrderRequestHeader PunchOutSetupRequest and ItemOut elements can now contain optional Contact elements which list a person or group to contact for additional information ItemOut quantity 1 gt ItemID lt SupplierPartID gt 5555 lt SupplierPartID gt lt ltemID gt lt ltemDetail gt lt UnitPrice gt lt Money currency USD gt 134 00 lt Money gt lt UnitPrice gt lt Description xml lang en gt lt ShortName gt Office Chair lt ShortName gt Black leather with adjustable arms adjustable height and back angle lt Description gt lt UnitOfMeasure gt EA lt UnitOfMeasure gt Clas
134. ypes with timestamps earlier than the specified timestamp Request GetPendingRequest lastReceivedTimestamp 1999 03 12T18 39 09 08 00 maxMessages 5 gt lt MessageType gt SubscriptionChangedMessage lt MessageType gt lt GetPendingRequest gt lt Request gt GetPendingResponse This element contains one or more messages waiting for the requester lt Response gt Status code 200 text OK gt lt GetPendingResponse gt lt cXML version 1 1 007 xml lang en US payloadID 456778 ariba com timestamp 1999 03 12T 18 39 09 08 00 gt 96 cXML User s Guide June 2000 Appendix A cXML Language Specification Message Retrieval Definitions Header From lt Credential domainz AribaNetworkUserld lt Identity gt admin ariba com lt Identity gt lt Credential gt lt From gt lt To gt lt Credential domainz AribaNetworkUserld lt Identity gt admin acme com lt Identity gt lt Credential gt lt To gt lt Sender gt lt Credential domainz AribaNetworkUserld lt Identity gt admin ariba com lt Identity gt lt Credential gt lt UserAgent gt Ariba com lt UserAgent gt lt Sender gt lt Header gt lt Message gt lt SubscriptionChangeMessage type new gt lt Subscription gt lt InternallD gt 1234 lt InternallD gt Name xml lang en US gt Q2 Prices lt Name gt lt Changetime gt 1999 03 12T 18 39 09 08 00 lt Changetime gt lt SupplierID domain DUNS gt 123456789 lt SupplierlI
135. ystems to easily interpret the elements within a purchase order With little or no human intervention the appropriate data within purchase orders can be routed to your shipping billing and sales departments as needed In addition the cXML order routing method allows the transmittal of any supplier cookies SupplierPartAuxiliaryID and purchase order attachments 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 as you normally would Your Website must also return an Order Response acknowledgement to the e commerce network hub which tells the buyer that you successfully received and parsed the purchase order You do not need a punchout Website in order to receive cXML purchase orders punchout and cXML order receiving are distinct capabilities However the infrastructure and applications required for supporting punchout are the same for receiving cXML purchase orders cXML User s Guide 39 Receiving Purchase Orders Chapter 3 Receiving cXML Purchase Orders Receiving Purchase Orders There are two types of cXML documents used for communicating purchase orders The procurement application sends an OrderRequest and you respond with an OrderResponse These documents pass through the e commerce network hub OrderRequest The OrderRequest document is analo
136. zations can either store content locally within the organization or they can access it remotely on the Internet through punchout cXML catalogs support both storage strategies As the table above indicates punchout offers a flexible framework upon which suppliers depending on their commodity or customer can provide customized content The objective of this content strategy is to allow buyers and suppliers to exchange catalog data in the method that make the most sense Validation Against DTDs Because cXML is an XML language a set of Document Type Definitions DTDs thoroughly define it These DTDs are text files that describe the precise syntax and order of cXML elements DTDs enable applications to validate the cXML they read or write cXML applications are not required to validate cXML documents although it is recommended Getting cXML DTDs DTDs for all versions of cXML are available at consistent locations on cxml org http xml cXML org schemas cXML lt version gt cXML dtd cXML User s Guide 7 Profile Transaction Chapter 1 Introduction to cXML where version is the full cXML version number such as 1 1 007 Performing Validation Your applications can use these DTDs to validate all incoming and outgoing cXML documents XML validation applications are available on the Web Microsoft Internet Explorer 5 has built in XML validation capability For the most robust transaction handling validate all cXML docu

Download Pdf Manuals

image

Related Search

Related Contents

User Guide for FEDFOD8316 Evaluation Board  South Shore Furniture 3168035 Instructions / Assembly  USER MANUAL  Epson T6248 User's Manual  docu. cartel:Maquetación 1 - Instituto Nacional de Seguridad e  LEKR219081W-LD9  22-7a-61z  HCB-LA・HFB-LA・HPB  2-way Speaker 3-way Speaker  CTU Descrizione del sistema  

Copyright © All rights reserved.
Failed to retrieve file