Tech Talks

SAP-Rückmeldungen mit Peakboard Hub Flows asynchron verarbeiten

Mit Peakboard Hub Flows kannst du Rückmeldungen zu Fertigungsaufträgen asynchron an SAP senden: Die Rückmeldung landet zunächst in einer Hub-Liste, und ein Hub Flow übernimmt das Senden, den Status und den erneuten Versuch bei Fehlern.

04.11.2026

·

5 Min. Lesezeit

Hände in Arbeitshandschuhen legen ein fertig montiertes Bauteil am Montageplatz in einen Kleinladungsträger (KI-generiertes Bild)
Das Wichtigste in Kürze
  • Eine Hub-Liste kann als Message Queue für Rückmeldungen dienen, die ein Hub Flow asynchron an SAP sendet.
  • Die Anwendung muss nur warten, bis die Rückmeldung in der Hub-Liste gespeichert ist, und kann sofort weiterarbeiten.
  • Der Hub Flow läuft im Beispiel alle 60 Sekunden, sendet offene Rückmeldungen per BAPI an SAP und setzt den Status.
  • Rückmeldungen mit Fehler sendet der Hub Flow erneut, sobald sich die offenen Rückmeldungen ändern.

Die Hub-Liste dient dabei als Message Queue. Die Grundlagen zu Flow-Projekten kannst du in Teil 1 der Reihe zum Historisieren von MQTT-Daten nachlesen.

Was eine Message Queue ist

Eine Message Queue nimmt Nachrichten von Produzenten an, speichert sie zwischen und leitet sie dann an ihr Ziel weiter. Mit Peakboard sieht das so aus:

  1. Eine Person meldet in einer Peakboard-Anwendung einen Fertigungsauftrag zurück.
  2. Die Rückmeldung landet in einer Hub-Liste, die als Message Queue dient.
  3. Ein Hub Flow geht die Rückmeldungen in der Hub-Liste durch und sendet jede an das ERP-System.

Warum sich der Umweg lohnt

Die Anwendung bleibt bedienbar

Geht eine Rückmeldung direkt an das ERP-System, muss die Anwendung warten, bis das System sie verarbeitet und antwortet. So lange ist sie blockiert. Mit der Message Queue dauert es nur, bis die Rückmeldung in der Hub-Liste gespeichert ist, und das geht sehr schnell. Danach kann die Person sofort weiterarbeiten.

Fehler automatisch behandeln

Ist das ERP-System nicht erreichbar oder lässt sich eine Rückmeldung nicht verarbeiten, etwa weil der Auftrag gesperrt ist, soll sie später erneut gesendet werden. Mit der Message Queue kümmert sich der Hub Flow darum. Sobald die Rückmeldung in der Hub-Liste steht, hat die Anwendung ihre Aufgabe erledigt.

Schritt für Schritt

Ausgangspunkt ist eine Peakboard-Anwendung, die Rückmeldungen bisher direkt an SAP sendet. Der Artikel zur Produktionsauftragsbestätigung mit Peakboard und SAP erklärt, wie du eine solche Anwendung bauen kannst.

1. Hub-Liste als Message Queue anlegen

Im Peakboard Hub kannst du dafür die Hub-Liste SAPConfirmations mit diesen Spalten anlegen:

  • ConfirmationNo: Rückmeldenummer, die den Fertigungsauftrag identifiziert
  • YieldQuantity: Gutmenge
  • ScrapQuantity: Ausschussmenge
  • MachineTime: benötigte Maschinenzeit
  • State: Status der Rückmeldung, N (neu), D (erledigt) oder E (Fehler)
  • Message: Antwort von SAP, sobald die Rückmeldung gesendet wurde

Die letzten beiden Spalten nutzt der Hub Flow, um festzuhalten, welche Rückmeldungen schon verarbeitet sind, und um Statusinformationen anzuzeigen.

2. Datenquelle für offene Rückmeldungen

Im neuen Flow-Projekt kannst du die Hub-Liste über die Datenquelle OpenConfirmations mit dem Filter State ~= D einbinden. So enthält die Datenquelle alle neuen Rückmeldungen (N) und alle mit Fehler (E), also genau die, die noch gesendet werden müssen.

Hub-Listen-Datenquelle OpenConfirmations mit Filter State ungleich D für offene Rückmeldungen

3. Variablen und SAP-Datenquelle

Für das XQL-Statement kannst du vier Variablen anlegen: ConfirmationNo mit dem Datentyp String sowie YieldQuantity, ScrapQuantity und MachineTime mit dem Datentyp Number.

Variablen ConfirmationNo, MachineTime, ScrapQuantity und YieldQuantity im Flow-Projekt, ConfirmationNo mit Datentyp String

Über die SAP-Datenquelle SAPSendConfirmation geht die Rückmeldung mit folgendem XQL an SAP. In die Platzhalter #[…]# kommen die Werte der Variablen, 'H' gibt die Maschinenzeit in Stunden an, und 'Submitted by Peakboard' ist der Rückmeldetext. Zusätzlich speichert die Datenquelle die Tabelle DETAIL_RETURN mit Status und Meldung von SAP.

EXECUTE FUNCTION 'BAPI_PRODORDCONF_CREATE_TT'
   TABLES
      TIMETICKETS = ((CONF_NO, YIELD, SCRAP, CONF_ACTIVITY2, CONF_ACTI_UNIT2, CONF_TEXT),
         ('#[ConfirmationNo]#', '#[YieldQuantity]#', '#[ScrapQuantity]#', 
            '#[MachineTime]#', 'H', 'Submitted by Peakboard')),
      DETAIL_RETURN INTO @RETVAL;

EXECUTE FUNCTION 'BAPI_TRANSACTION_COMMIT'
SAP-Datenquelle SAPSendConfirmation mit XQL für BAPI_PRODORDCONF_CREATE_TT und BAPI_TRANSACTION_COMMIT

4. Rückmeldungen per Building Blocks verarbeiten

Die Funktion ProcessConfirmations kannst du mit Building Blocks bauen. In einer Schleife geht sie jede Zeile von OpenConfirmations durch:

  1. Die vier Variablen bekommen die Werte der Zeile.
  2. Mit „reload and await list“ wird SAPSendConfirmation neu geladen, und die Rückmeldung geht an SAP.
  3. Steht in Zeile 0 von SAPSendConfirmation in der Spalte TYPE der Wert I, war die Rückmeldung erfolgreich, und die Zeile bekommt den Status D. In allen anderen Fällen bekommt sie den Status E.
  4. Mit dem Block „set values at row ID“ landen der Status und die Meldung aus der Spalte MESSAGE in der passenden Zeile der Hub-Liste. Die Zeile wird über die Spalte ID der Hub-Liste gefunden.
Building-Blocks-Funktion ProcessConfirmations mit Schleife über offene Rückmeldungen und Statusprüfung

5. Trigger einrichten und Hub Flow hochladen

Mit einem periodischen Trigger kannst du den Hub Flow ProcessConfirmations alle 60 Sekunden starten lassen. Bei jedem Lauf wird zuerst die Datenquelle OpenConfirmations neu geladen, danach folgt die Funktion. Zwischen beiden Schritten steht die Bedingung „Data change“: Die Funktion läuft nur, wenn sich die Daten geändert haben. Nach dem Upload in den Peakboard Hub startet der Hub Flow im festgelegten Takt.

Hub Flow ProcessConfirmations mit periodischem Trigger alle 60 Sekunden, Reload und Run function

Im Peakboard Hub kannst du unter „Hub Flows“ verfolgen, wann der Hub Flow zuletzt gelaufen ist und ob jeder Schritt erfolgreich war.

Hub Flow ProcessConfirmations im Peakboard Hub mit grünem Status für Periodic, Load list und Run function

Das Ergebnis

Nach dem ersten Lauf ist eine Rückmeldung erfolgreich an SAP gegangen, die andere ist mit einem Fehler zurückgekommen. Sie wird erneut gesendet, sobald sich die offenen Rückmeldungen ändern, zum Beispiel durch eine neue Rückmeldung.

Hub-Liste SAPConfirmations mit einer erfolgreichen Rückmeldung (State D) und einer fehlerhaften (State E)

Das Beispiel verzichtet auf eine aufwendige Fehlerbehandlung und sendet fehlerhafte Rückmeldungen einfach erneut. Erweitern kannst du das Muster zum Beispiel mit einem Zähler: Scheitert eine Rückmeldung zehnmal, endet der Versand, und eine zuständige Person erhält eine E-Mail. Ebenso kannst du bei jedem Fehler eine E-Mail senden lassen.

Das Beispiel im Video

Weiterführende Links

Das Flow-Projekt SAPProdOrderConfQueueing.pbfx kannst du herunterladen und im Peakboard Designer öffnen. Alles zur Anbindung von SAP im Peakboard Designer kannst du auf der Seite zur Datenanbindung SAP nachlesen.

Produkt

Peakboard Hub Flows

Alle Funktionen, die Preise und die 60-tägige Testphase des Peakboard Hub stehen auf der Produktseite zu Peakboard Hub Flows.

Warum Rückmeldungen über eine Message Queue senden?

Die Anwendung muss nur warten, bis die Rückmeldung in der Hub-Liste gespeichert ist, und bleibt damit bedienbar. Senden, Status und erneute Versuche bei Fehlern übernimmt der Hub Flow.

Wie erkennt der Hub Flow, welche Rückmeldungen offen sind?

Über die Spalte State. Die Datenquelle filtert alle Zeilen mit State ungleich D, also neue Rückmeldungen (N) und solche mit Fehler (E).

Welchen SAP-Baustein nutzt das Beispiel?

Das XQL-Statement ruft BAPI_PRODORDCONF_CREATE_TT auf und danach BAPI_TRANSACTION_COMMIT. Die Tabelle DETAIL_RETURN liefert Status und Meldung von SAP.

Was passiert mit fehlerhaften Rückmeldungen?

Sie bekommen den Status E und die Meldung von SAP. Der Hub Flow sendet sie erneut, sobald sich die offenen Rückmeldungen ändern, zum Beispiel durch eine neue Rückmeldung.

Welche Daten enthält eine Rückmeldung?

Die Rückmeldenummer ConfirmationNo, die Gutmenge YieldQuantity, die Ausschussmenge ScrapQuantity und die Maschinenzeit MachineTime. Dazu kommen in der Hub-Liste die Spalten State für den Status und Message für die Antwort von SAP.

Teile diesen Artikel:
Peakboard Favicon
Author: Peakboard Redaktion

Die Peakboard Redaktion schreibt über Digitalisierung, Datenvisualisierung und Prozessoptimierung in Industrie und Logistik. Der Fokus liegt auf praxisnahen Lösungen, aktuellen Entwicklungen und verständlich aufbereitetem Fachwissen.

Schneebedeckter Berg mit orangefarbener Markierung entlang des Gipfels.
Schwarz-weiß-Bild von schneebedeckten Bergen in einem Tal.
Weiße Wolken vor schwarzem Hintergrund, die in horizontalen Linien verlaufen.
Weiße Wolken vor schwarzem Hintergrund, die in horizontalen Linien verlaufen.