Outbox

B2B Outbox

Das B2B Outbox Feature ermöglicht es, Dateien aus dem B2B-Channel-Workflow heraus per Message-Broker (AMQP) zu verschicken.

Das Feature besteht dabei aus zwei Komponenten, die zusammen konfiguriert werden müssen: der OutboxAction (Action eines B2B-Channels) und dem Outbox-Relay (Komponente innerhalb des B2B-Message-Service). Die Action wird im B2B-Channel ausgeführt, das Relay verschickt die Nachricht an den Message-Broker. Beide Komponenten kommunizieren über eine SQL-Tabelle miteinander.

b2b_pf_outbox.png

Tip für den Support: Outbox Architektur

B2B-Monolith: Outbox Action

Vorbedingung: Die Datenbanktabelle B2BBP_OUTBOX wurde angelegt (für den Support: Postgres)

Action class: org.b2bbp.runtime.actions.internal.OutboxAction

Mit dieser B2B-Action soll bei der Verarbeitung einer Nachricht mit Dokumentanhang ein Eintrag in der Tabelle B2BBP_OUTBOX für die Outbox-Relay-Komponente erstellt werden.

Die Aktion kann über die Admin-UI an einen B2B-Channel gebunden werden. Das Folgende ist die Aktionskonfiguration:

OutboxAction-AdminUI

Action Eigenschaften

Action Property Beispiel-Konfiguration Default Beschreibung
PAYLOAD_ATTRIBUTE ${template(EXCHANGE_AS4_OUTBOUND_PAYLOAD)} EXCHANGE_AS4_OUTBOUND_PAYLOAD Key des Attributes, welches per Message-Broker verschickt werden soll.
HEADERS ${template()}{"direction": "outbound", "routingKey": "https://www.bdew.de/as4/communication/services/FP", "tenant": "${template(&(this.FORMAT.senderCode))}"}   Optional kann dieser Header dem Message-Broker mitgegeben werden.
B2B_OUTBOX_PRIORITY 5 0 Priorität der Nachricht. Eine Nachricht mit höherer Priorität kann andere Nachrichten überholen. B2B_OUTBOX_PRIORITY kann ein beliebiger konstanter Wert zwischen 1 und 10 sein.
DELETE_PAYLOAD_AFTER_PROCESSING ${template(false)} false Soll das Payload-Attribut nach dem Versand gelöscht werden?
MESSAGE_STATE_ON_SUCCESS A4P leer bzw. SUC Setzt den Nachrichten-Status am Ende einer erfolgreichen Verarbeitung in der B2B auf diesen Wert.

Beachten Sie, dass die meisten Attribute zwingend über dynamische Ausdrücke konfiguriert werden müssen, selbst wenn es sich um konstante Werte handelt. Ansonsten wird die Eigenschaft unter Umständen nicht persistiert, was eine weitere Outbox-Verarbeitung unmöglich macht.

Standard-Konfiguration für ausgehende API-Requests

Action Property Konfiguration
PAYLOAD_ATTRIBUTE ${template(JSON_STRING)}
JSON_STRING {"b2bMessageId":"${template(&(this.B3P_OBJ_MESSAGE.messageId))}","isResend":${if(${equals(${var(MESSAGE_IS_RESTARTED)},true)},true,false)},${stringsplit(${var(CURRENT_PAYLOAD)},^\s*{,1)}
HEADERS ${template()}{"direction": "outbound", "routingKey": "Api-Request-Information", "tenant": "${template(&(this.FORMAT.senderCode))}"}
B2B_OUTBOX_PRIORITY 5
DELETE_PAYLOAD_AFTER_PROCESSING ${template(false)}
MESSAGE_STATE_ON_SUCCESS A4P

B2B-Message-Service: Outbox Relay

Outbox Relay

View Me   Edit Me