Ein Webhook (SAP Business One) ist eine automatische Benachrichtigung, die der Service Layer von SAP Business One bei einem bestimmten Ereignis im System an eine externe Anwendung sendet. SAP unterstützt Webhooks im Service Layer seit SAP Business One 10.0 Feature Package 2602.
Funktionsweise
Ein Ereignis entsteht, wenn ein Geschäftsobjekt angelegt oder geändert wird, zum Beispiel über den Service Layer, die DI API oder den Client. Der Webhook Messenger Service läuft als Hintergrunddienst hinter dem Service Layer und stellt die Benachrichtigungen zu. Er sendet dazu einen HTTP-POST an die hinterlegte Webhook-URL. Im Grundformat enthält die Benachrichtigung nur den Schlüssel des Objekts, etwa die DocEntry eines Belegs. Mehrere Ereignisse können gebündelt in einer Anfrage ankommen.
Einrichtung
Webhooks sind je Mandant standardmäßig ausgeschaltet. Sie werden zunächst aktiviert, und die empfangende Anwendung stellt einen Endpunkt bereit. Anschließend wird ein Ereignis-Abonnement angelegt. Das Abonnement enthält die Webhook-URL (HTTPS), die Authentifizierungsart (None, Basic, HMAC oder OAuth) und die Liste der Ereignisse. Ein Ereigniskatalog nennt die unterstützten Ereignisse je Geschäftsobjekt. Beim Kundenauftrag sind das zum Beispiel Anlegen, Ändern, Löschen, Schließen, Stornieren und Wiedereröffnen. Der Katalog umfasst Systemobjekte sowie benutzerdefinierte Objekte und Tabellen. Normale Benutzer dürfen Abonnements standardmäßig nicht verwalten. Die Freigabe erfolgt über die allgemeine Berechtigung „Webhook Manipulation“.
Zustellung und Fehlerbehandlung
Der Messenger arbeitet asynchron und blockiert SAP Business One deshalb nicht. Bei vorübergehenden Fehlern wiederholt er die Zustellung automatisch in wachsenden Abständen. Die Reihenfolge innerhalb eines Mandanten hält er nach bestem Bemühen ein. Schlägt ein Webhook dauerhaft fehl, deaktiviert das System ihn automatisch. Er muss anschließend per Resume reaktiviert werden. Über Replay liefert der Dienst verpasste Benachrichtigungen nach. Empfänger sollten deshalb doppelte Benachrichtigungen erkennen und Abweichungen in der Reihenfolge abfangen.
Erweiterungen mit Feature Package 2608
Mit Feature Package 2608 liefern Webhooks mehr Kontext. BizObjProps schickt ausgewählte Felder direkt im Ereignis mit, statt nur den Schlüssel zu übergeben. Dadurch sinkt die Zahl der Folgeabfragen. DeliveryDetails liefert Statusinformationen zur Zustellung und zu Fehlversuchen direkt in der Nutzlast. FilterExpr löst ein Ereignis nur aus, wenn definierte Bedingungen erfüllt sind. Die Kontextvariable app.Name erkennt die aufrufende Anwendung.
Bezug zu SAP Business One
Der Service Layer entwickelt sich damit vom reinen Datenlieferanten zu einem ereignisgesteuerten System. Externe Anwendungen erhalten sofort eine Benachrichtigung über Änderungen, statt Daten erst auf Anfrage abzurufen. Gleichzeitig ersetzt die neue Filterlogik einen Teil des bisher notwendigen Verbindungscodes in der Middleware.
Abgrenzung
Ein Webhook unterscheidet sich von einer OData-Abfrage. Bei der OData-Abfrage fordert die Anwendung Daten an. Beim Webhook meldet der Service Layer ein Ereignis von sich aus. Webhooks sind reguläre, produktive Funktionen des Service Layers. Das mit Feature Package 2608 veröffentlichte Beispielprojekt für das Model Context Protocol (MCP) ist dagegen Referenzmaterial und kein fertiges Produkt.
Shopware 6 für SAP Business One
SAP Business One und DATEV – Synchron
DATEV und SAP Business One Export & Import
Elektronische Rechnungen an Behörden
SAP Business One Connect für Frachtführer

