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
/01
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.
/02
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.
/03
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.
/04
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.
/05
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.
/06 Fragen
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.
