cXML

commerce eXtensible Markup Language · seit 1999

cXML (commerce eXtensible Markup Language) ist ein XML-basiertes Protokoll für den Austausch von Beschaffungsdokumenten zwischen Einkaufssystemen und Lieferanten. Ariba hat es 1999 veröffentlicht, seit der Übernahme von Ariba 2012 gehört es SAP; die Spezifikation steht frei zugänglich auf cxml.org. cXML beschreibt unter anderem den Punchout (PunchOutSetupRequest, PunchOutOrderMessage), die Bestellung (OrderRequest), die Auftragsbestätigung, das Lieferavis und die Rechnung.

Stand:

Herausgeber
Ariba (1999), heute SAP
Aktuelle Version
1.2, laufend fortgeschrieben
Übertragung
XML-Dokumente per HTTPS POST
Einkaufssysteme
SAP Ariba, Coupa, Jaggaer, Oracle iProcurement und viele weitere
Verwandt
Punchout, SAP OCI

Aufbau eines cXML-Dokuments

Jedes cXML-Dokument beginnt mit dem Element cXML, das eine eindeutige payloadID und einen Zeitstempel trägt. Der Header nennt Absender und Empfänger (From, To, Sender) mit ihren Kennungen, etwa einer Ariba Network ID, und enthält das gemeinsame Geheimnis (SharedSecret), mit dem sich der Absender ausweist. Darunter folgt entweder ein Request, auf den der Empfänger mit einer Response samt Statuscode antwortet, oder eine Message, die ohne Antwort auskommt.

Punchout mit cXML

Für den Punchout sendet das Einkaufssystem einen PunchOutSetupRequest an den Shop des Lieferanten. Er enthält ein BuyerCookie, das die Sitzung zuordnet, und die BrowserFormPost-Adresse für die Rückgabe. Der Shop antwortet mit einer PunchOutSetupResponse, deren StartPage-URL der Browser des Einkäufers öffnet.

Ist der Einkauf fertig, sendet der Browser den Warenkorb als PunchOutOrderMessage an die BrowserFormPost-Adresse, als Formularfeld cxml-urlencoded oder cxml-base64. Jede Position steht dort als ItemIn mit Artikelnummer (SupplierPartID), Menge, Preis, Einheit und Beschreibung.

Bestellung, Bestätigung, Lieferung, Rechnung

Die freigegebene Bestellung sendet das Einkaufssystem als OrderRequest per HTTPS an den Lieferanten, der den Empfang mit einer Response bestätigt. Danach kann der Lieferant eine Auftragsbestätigung (ConfirmationRequest), ein Lieferavis (ShipNoticeRequest) und eine Rechnung (InvoiceDetailRequest) zurücksenden. So deckt cXML den Ablauf vom Katalog bis zur Rechnung in einem Standard ab.

cXML, SAP OCI, openTRANS und IDoc

SAP OCI regelt nur den Katalogaufruf und die Rückgabe des Warenkorbs, und zwar über Formularfelder. cXML deckt den Punchout und die folgenden Belege gemeinsam ab. openTRANS und IDoc ORDERS05 sind wie cXML Formate für Bestellungen: openTRANS ist ein offener Standard, der zum Katalogformat BMEcat passt, IDoc ORDERS05 das Format, in dem SAP-Systeme Bestellungen versenden.

cXML mit orcamultimedia und punchout.dev

orcamultimedia setzt cXML in drei Schnittstellen um: cXML Punchout Transaction für Einkaufssysteme wie Coupa, Jaggaer und Oracle iProcurement, SAP Ariba PunchOut mit Level 2 und cXML Purchase Order für eingehende Bestellungen. punchout.dev bietet den cXML-Punchout ohne Plugin über ein einziges Script-Tag.

Wer nutzt cXML?

cXML nutzen Einkaufssysteme wie SAP Ariba, Coupa, Jaggaer und Oracle iProcurement und die Lieferanten, die an diese Systeme angebunden sind.

Ist cXML dasselbe wie PunchOut?

cXML ist nicht dasselbe wie PunchOut: PunchOut ist das Verfahren, bei dem der Einkäufer aus seinem Einkaufssystem in den Shop des Lieferanten wechselt, und cXML ist eines der Protokolle dafür. cXML beschreibt außerdem Bestellung, Auftragsbestätigung, Lieferavis und Rechnung.

Welche cXML-Version ist aktuell?

cXML wird in der Versionsreihe 1.2 laufend fortgeschrieben; eine neue Fassung ändert Details, nicht den Aufbau. Die Spezifikation und die DTDs jeder Version stehen auf cxml.org.

Kontakt

Fragen zu Ihrer Anbindung?

Nehmen Sie direkt Kontakt mit uns auf und fordern Sie detaillierte Informationen an. Oder starten Sie die Sandbox und testen Sie selbst.