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.
USE_BASE64_ENCODED_PAYLOAD ${template(true)} false Encoded den angegebenen Payload Baes64.

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

Empfohlene Konfiguration für Testsysteme

In der AS4- und API-Kommunikation nehmen zahlreiche Systeme, darunter auch unsere eigenen, an der SM-Test-PKI teil. Dies ermöglicht eine marktpartnerübergreifende Testkommunikation. Für eine gezielte Steuerung der Testkommunikation können Sie den Conditional Execute nutzen. Bitte beachten Sie, dass diese Konfiguration ausschließlich die Kommunikation mit den hinterlegten Partnern gestattet. Verwenden Sie diese Einstellungen ausschließlich in Testsystemen und nur, sofern dies ausdrücklich gewünscht ist.

Folgende Konfiguration ist exemplarisch für die API Konfiguration. Diese kann auch für die AS4 verwendet werden und ist abhängig davon, ob Sie die AS4_RELATIONS verwenden. Wenn dies der Fall ist, erfolgt die Steuerung für AS4 darüber.

Ergänzen Sie die Konfiguration der Outbox-Aktion um die folgenden Eigenschaften:

Aktionseigenschaft Wert Kontext überschreiben Optionen
ACTION_DECORATORS ConditionalExecute nein  
EXECUTE_ACTION ${loadExtensionProperty(ALLOWED_API_COMMUNICATION,${template(API_&(this.FORMAT.senderCode)_&(this.FORMAT.partnerCode))},false)} Ja technisch

Legen Sie dann die Extension ALLOWED_API_COMMUNICATION an. Tragen Sie hier Ihre von Ihnen erlaubte Konfiguraton ein.

# Erlaubt Kommunikation für die API Testkommunikation
# Sytntax API_AbsenderMpId_EmpfängerMpId=true

API_990Absender00_990Empfänger01=true

B2B-Message-Service: Outbox Relay

Outbox Relay

View Me   Edit Me