Ein Kunde will acht Ersatzteile bestellen. Im Shop klickt er zuerst auf „Verfügbarkeit prüfen“ und später auf „Kostenpflichtig bestellen“. Beide Male braucht der Shop das ERP-System. Trotzdem stellen die beiden Klicks unterschiedliche Anforderungen an die Schnittstelle: Bei der ersten Frage wartet jemand auf eine Auskunft. Beim zweiten Klick muss ein Auftrag zuverlässig ankommen, auch wenn das ERP gerade neu startet.
Verfügbarkeit prüfen: eine direkte Antwort per REST
Für die Auskunft fragt der Shop über die HTTP-Schnittstelle des ERP: „Wie viele Stück von Artikel A sind lieferbar?“ Das ERP antwortet mit dem Bestand und dem Zeitpunkt der Auskunft. Der Kunde sieht, ob acht Stück verfügbar sind, und kann seine Bestellung anpassen. Eine Warteschlange dazwischen würde hier wenig helfen: Der Kunde braucht die Antwort, solange er noch auf der Produktseite ist.
Für den Aufruf vereinbaren die Systeme eine kurze Wartefrist. Antwortet das ERP in dieser Zeit nicht, zeigt der Shop „Verfügbarkeit derzeit nicht prüfbar“. Ein technischer Ausfall bedeutet weder „ausverkauft“ noch „lieferbar“. Und selbst eine aktuelle Auskunft reserviert die acht Teile noch nicht. Soll der Shop beim Kauf eine feste Lieferzusage geben, braucht er dafür eine bestätigte Reservierung oder eine andere verlässliche Bestandsregel.
Auftrag übergeben: eine Warteschlange überbrückt den Ausfall
Nehmen wir an, das ERP wird um 10 Uhr gewartet. Der Shop darf Bestellungen weiterhin entgegennehmen und die Lieferbarkeit später bestätigen. Um 10:03 Uhr speichert er die Bestellung samt eindeutiger Auftragsnummer. Zusammen mit der Bestellung speichert er in derselben Datenbanktransaktion den Auftrag zur Weitergabe. So kann ein Neustart zwischen Speichern und Versenden die Übergabe nicht verschlucken.
Der Kunde erhält die Meldung „Bestellung eingegangen“ mit seiner Auftragsnummer. Ein Hintergrunddienst stellt die Nachricht in eine Warteschlange. Sobald das ERP wieder verfügbar ist, übernimmt ein Verarbeiter den Auftrag und meldet das Ergebnis an den Shop. Erst dann zeigt dieser beispielsweise „Im ERP übernommen“. Für den Kunden ist der Unterschied wichtig: Der Shop hat seine Bestellung bereits entgegengenommen, auch wenn die Bearbeitung im ERP noch aussteht.
Der schwierige Fall: Das ERP hat gebucht, aber die Antwort fehlt
Angenommen, das ERP legt den Auftrag an. Bevor der Verarbeiter den Erfolg quittieren kann, bricht die Verbindung ab. Die Nachricht wird erneut zugestellt. Damit daraus kein zweiter Auftrag entsteht, speichert das ERP die Auftragsnummer des Shops als eindeutige externe Referenz. Trifft dieselbe Bestellung noch einmal ein, liefert es die vorhandene ERP-Auftragsnummer zurück. Diese Prüfung muss auch dann greifen, wenn zwei Versuche fast gleichzeitig eintreffen.
Eine Wiederholung hilft bei einem vorübergehenden Verbindungsausfall. Bei einer unbekannten Artikelnummer hilft sie nicht. Solche Fälle gehören nach einer begrenzten Zahl sinnvoller Versuche mit Fehlergrund in eine sichtbare Arbeitsliste. Dort kann der Vertrieb die Daten klären und denselben Auftrag erneut freigeben. Wer die Liste betreut und ab wann ein wartender Auftrag auffällt, gehört zur Schnittstellenvereinbarung.
Was muss beim Klick bereits feststehen?
- Der nächste Schritt braucht sofort ein fachliches Ergebnis: Ein direkter REST-Aufruf passt, wenn das Ziel schnell genug antworten kann und klar ist, was der Benutzer bei einem Ausfall sieht.
- Die Arbeit darf später fertig werden: Eine Warteschlange passt, wenn der Absender den Vorgang dauerhaft annehmen kann. Dazu gehören ein sichtbarer Bearbeitungsstand, sichere Wiederholungen und eine Zuständigkeit für Fehler.
Beides lässt sich kombinieren. Der Shop kann die Bestellung über eine REST-API entgegennehmen und die Übergabe ans ERP anschließend über eine Warteschlange abarbeiten. Im ersten Projektgespräch lohnt sich deshalb die Frage: „Was dürfen wir dem Kunden beim Klick verbindlich bestätigen – und wie lange darf der nächste Schritt offenbleiben?“ Wer diese Frage beantwortet, kann das Verhalten bei Ausfällen festlegen, bevor er ein Protokoll oder einen Nachrichtenbroker auswählt.
Mehr zur Übergabe zwischen Systemen: Schnittstellen zwischen ERP, Excel und Webanwendung planen.