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.
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:
Action Eigenschaften
Action Property | Expression | Default Value | 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”} | Optional kann dieser Header dem Message-Broker mitgegeben werden. | |
HEADERS | ${template()}{“direction”: “outbound”, “routingKey”: “https://www.bdew.de/as4/communication/services/FP”, “tenant”: “${template(&(this.FORMAT.senderCode))}”} | mit tenant Header Informationen. | |
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? |
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.