Working with cXML
Introduction:
cXML (commerce eXtensible Markup Language) is a protocol, created by Ariba in 1999, intended for communication of business documents between procurement applications, e-commerce hubs and suppliers. cXML is based on XML and provides formal XML schemas for standard business transactions, allowing programs to modify and validate documents without prior knowledge of their form. Each cXML document is constructed based on XML Document Type Definitions (DTDs). Acting as templates, DTDs define the content model of a cXML document, for example, the valid order and nesting of elements, and the data types of attributes.
You can find more information on cXML at www.cxml.org
How to obtain the cXML DTD:
All the versions of cXML DTD’s are present in the cxml.org website. Please see the table below for details:
Document |
DTD |
Basic cXML documents |
http://xml.cXML.org/schemas/cXML/<version>/cXML.dtd |
Confirmation and Ship Notice |
http://xml.cXML.org/schemas/cXML/<version>/Fulfill.dtd |
Invoice |
http://xml.cXML.org/schemas/cXML/<version>/InvoiceDetail.dtd |
Type Definition |
http://xml.cXML.org/schemas/cXML/<version>/Catalog.dtd |
Payment Remittance |
http://xml.cXML.org/schemas/cXML/<version>/PaymentRemittance.dtd |
Example:
I need version 1.2.011 in my project, so to get all the details I need to use the URL’s below:
Document |
DTD |
Basic cXML documents |
|
Confirmation and Ship Notice |
|
Invoice |
|
Type Definition |
|
Payment Remittance |
http://xml.cXML.org/schemas/cXML/1.2.011/PaymentRemittance.dtd |
Use any tools to convert the DTD into an XSD
In SAP PI, Import the XSD as an External Definition in the required namespace. I have imported it as cXML_1_2_011
When choosing the message in message mapping, choose cXML.
Disable nodes that you are not using in the mapping.
When selection the Operation Interface choose cXML
The rest of the steps for building the interface are the same…
References:
Very Nice Information
Thanks for sharing it. Helpful information.
Hi Preetam,
Nice blog, with good explanation.
we have a requirement to send the purchase orders in CXML format.
i didn't find the DTD for this, please help me.
Can we send the data in CXML format using PI standard adapters or we have to use ARIBA adapters?
Regards
Bhargava krishna
Hi Bhargava,
Was this problem solved? can you let me know the solution made for it?
Regards,
Siva.
Nice info...
We can alwayse use DTD as well... thought to mention this as you mentioned in a blog to convert DTD to XSD.
--Divyesh
Hi Preetam,
It helps a lot to understand the cxml concept and working in PI!
I am having the exact scenario as below url:
https://archive.sap.com/discussions/thread/3706602
I am planning to send PO from SAP SRM to some third party vendor and they only accepted cXML format. once i converted the PO DTD to xsd (as you suggested above) and prepare final xml, how do i convert the message into cxml format? or the above inbound service will get cxml after messageĀ from source xml?
Appreciate your quick response - Thanks.
Regards,
Siva.