Nachrichten Schnittstelle per http
Einleitung
Alternativ zur Nutzung des HttpConnector zur Kommunikation mit dem ordermanager, kann auch direkt das http-basierte Protokoll implementiert werden. Hiermit können Nachrichten / Dateien im OM spezifischen Format an den OM zur Verarbeitung gesendet werden. Desweiteren können bereitgestellte Nachrichten damit abgeholt werden.
Absicherung
Zur Absicherung der Schnittstelle erfolgt die Kommunikation über https. Zur Authentifizierung wird die Basic http Authentication verwendet.
Schnittstelle
Pro Händler werden ein Eingang und ein Ausgang bereitgestellt. Alle Nachrichten von und an den orderManager werden über diesen Eingang/Ausgang abgewickelt.
Die Kommunikations-URL sind wie folgt benannt:
Eingang (Nachrichten vom ERP an den orderManager):
<BASIS_URL>/ Incoming.ashx
Eingang von Produktdokumenten und Produktbildern (Dokumente und Bilder vom ERP an den orderManager):
zur Verwendung in ProductUdpate und DocumentUpdate
<BASIS_URL>/ IncomingAttachment.ashx
Ausgang (Nachrichten vom orderManager an das ERP):
<BASIS_URL>/ Outgoing.ashx
Technische Funktion der Eingangsschnittstelle
Alle Nachrichten die an den orderManager übergeben werden, werden über die Seite Incoming.ashx übergeben.
Der Seite Incoming.ashx kann eine Nachrichte mittels http POST übergeben werden. Der Inhalt der Nachricht wird mittels Stream zum Server übergeben. Damit die Nachricht auf dem Server wieder unter dem korrekten Namen behandelt werden kann, muss per Query-Parameter ObjectId der, möglichst, eindeutige Name übergeben werden. Wenn der Server die Nachricht korrekt übernehmen konnte, wird dies mittels des http-Status Codes 200 signalisiert. Dies sagt jedoch noch nichts über die inhaltliche Korrektheit der Nachricht aus.
Gibt es Probleme beim Speichern der Nachricht, so wird Statuscode 500 zurückgegeben.
Produktdokumente und Produktbilder müssen über IncomingAttachment.ashx hochgeladen werden. Sind diese komplett hochgeladen, so können die Nachrichten ProductUpdate und DocumentUpdate, die diese Dateien referenzieren, über Incoming.ashx hochgeladen werden.
Technische Funktion der Ausgangsschnittstelle
Alle Nachrichten die vom orderManager an das ERP übergeben werden sollen, können mittels der Seite Outgoing.ashx vom Server abgeholt werden. Hierzu muss die Seite Outgoing.ashx in regelmäßigen Abständen angefragt werden. Ob Nachrichten zum Abholen bereit stehen, kann anhand des http Statuscode erkannt werden. Wird der Statuscode 200 zurückgegeben, liegen Nachrichten vor und die erste Nachricht ist
bereits in der Antwort des Servers enthalten. Liegen jedoch keine Nachrichten vor, gibt der Server den Statuscode 204 (No content) zurück.
Um dem Server zu signalisieren, dass die letzte Nachricht korrekt verarbeitet werden konnte, muss der Query-Parameter LastMessageOk gesetzt werden. Dieser Parameter kann die Werte true und false annehmen. True signalisiert, dass die zuletzt abgeholte Nachricht korrekt verarbeitet wurde. False signalisiert, dass die zuletzt abgeholte Nachricht nicht korrekt verarbeitet wurde. Der Server gibt in diesem Fall nochmals die gleiche Nachricht zurück. Dies geschieht solange, bis die Nachricht bestätigt wurde. Ein Beispielablauf ist der Abbildung 1 zu entnehmen.
Mittels des Feldes „Content-Disposition" im http-Header wird dem Client der Name der Nachricht mitgeteilt.
Ablauf Nachrichtenabholung innerhalb eines Poolingzyklus