Die drei Ebenen einer Nachricht
Das Wurzelelement cXML enthält unter anderem Payload-ID und Zeitstempel. Der Header beschreibt Absender, Empfänger und Sender. Im Request steht die eigentliche Bestellung mit Kopfdaten und Positionen.
<cXML payloadID=\"...\" timestamp=\"...\">
<Header>...Identitäten und Credential...</Header>
<Request deploymentMode=\"production\">
<OrderRequest>
<OrderRequestHeader orderID=\"PO-4711\" ... />
<ItemOut quantity=\"2\" lineNumber=\"1\">...</ItemOut>
</OrderRequest>
</Request>
</cXML>
Header und Authentifizierung
From, To und Sender besitzen jeweils Credentials mit einer Domain und einer Identität. Die Werte müssen mit der vereinbarten Partnerkonfiguration übereinstimmen. Der Sender kann zusätzlich ein Shared Secret enthalten. Dieses gehört weder in Anwendungslogs noch in Fehlermeldungen.
Bestellkopf
Der OrderRequestHeader enthält Bestellnummer, Datum, Art und häufig Gesamtbetrag. Hinzu kommen Liefer- und Rechnungsadresse, Versandinformationen, Kommentare sowie kundenspezifische Extrinsic-Felder. Die externe Bestellnummer sollte eindeutig gespeichert werden, um doppelte Verarbeitung zu verhindern.
Bestellpositionen
| Feld | Prüfung |
|---|---|
| lineNumber | Eindeutige Positionsnummer |
| quantity | Positiv und mit Dezimalregeln kompatibel |
| SupplierPartID | Im Zielsystem eindeutig auflösbar |
| UnitPrice / Money | Währung und Preisvereinbarung prüfen |
| UnitOfMeasure | Auf ERP-Mengeneinheit abbilden |
| Description | Nicht als alleinige Produktidentifikation verwenden |
Technische und fachliche Validierung
Eine DTD-Prüfung erkennt Strukturfehler, aber nicht alle fachlichen Probleme. Ein valider Request kann eine unbekannte Artikelnummer, unzulässige Lieferadresse oder nicht unterstützte Währung enthalten. Deshalb benötigt die Verarbeitung mindestens drei Stufen: XML/DTD, Partner und Authentifizierung sowie fachliches Mapping.
Antwort und Fehlerbehandlung
Der HTTP-Status allein reicht nicht aus. cXML verwendet Response-Elemente mit Statuscode und Beschreibung. Die Schnittstelle sollte klar unterscheiden zwischen temporären Fehlern, permanenten fachlichen Ablehnungen und bereits verarbeiteten Duplikaten. Eingehende Nachrichten sollten mit maskierten Secrets revisionssicher nachvollziehbar sein.
Quelle: cXML Reference Guide, Bereiche Header, OrderRequest und Response.
OrderRequest in Ihr ERP übernehmen?
Der Basis-Check bewertet einen abgegrenzten Bestellprozess und seine Schnittstellen.
Basis-Check anfragen →