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

FeldPrüfung
lineNumberEindeutige Positionsnummer
quantityPositiv und mit Dezimalregeln kompatibel
SupplierPartIDIm Zielsystem eindeutig auflösbar
UnitPrice / MoneyWährung und Preisvereinbarung prüfen
UnitOfMeasureAuf ERP-Mengeneinheit abbilden
DescriptionNicht 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.

Empfehlung: Erst nach erfolgreicher Validierung eine interne Bestellung anlegen. Payload-ID, externe Bestellnummer und Prüfsumme helfen bei Idempotenz und Supportfällen.

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 →