Übersicht
Mit der B2B Inbox können Nachrichten direkt per AMQP an die B2B übergeben werden, ohne dass dabei eine spezifische API eingehalten werden muss. Die Fachnachricht wird dabei unmittelbar als Payload der AMQP-Nachricht übertragen, zum Beispiel ein Json mir Metadaten und einer Fahrplan-XML.
Die Anbindung erfolgt über den B2B-Message-Service, der die eingehenden Nachrichten entgegennimmt und an einen im B2B-Customizing gepflegten Base-Service übergibt.
Konfiguration
Um die B2B Inbox zu nutzen, muss der entsprechende Consumer in der B2B-Message-Service Konfiguration (via application.yml) aktiviert werden.
Zusätzlich ist ein Base-Service anzugeben. Dieser Base-Service muss im B2B-Customizing vorhanden sein.
b2b-inbox:
enabled: true
base-service: B2B-AMQP-Inbox-Service
| Eigenschaft | Pflicht | Beschreibung |
|---|---|---|
enabled |
ja | Aktiviert (true) oder deaktiviert (false) die B2B Inbox. |
base-service |
ja | Fallback-Service, wenn kein service-Header gesetzt ist. Der Service muss in der B2B als Service vorhanden sein. |
B2B Service Konfiguration
Konfiguration des Standard-Base-Services B2B-AMQP-Inbox-Service im B2B-Customizing:

Service-Properties
| Property | Pflicht | Default | Beispielkonfiguration | Beschreibung |
|---|---|---|---|---|
BASE_MESSAGE_JSON_PATH |
nein | nicht gesetzt | $.message |
JSONPath-Ausdruck zur Ermittlung von B3P_BASE_MESSAGE aus der Inbox-Payload. Bei nicht gesetzter oder leerer Property wird die komplette Payload als B3P_BASE_MESSAGE gespeichert.Fallback auf komplette Payload: Bei ungültigem JSONPath, JSONPath-Verarbeitungsfehler oder Base64-Decoding-Fehler wird B3P_BASE_MESSAGE mit der kompletten Payload befüllt, INPUT_MESSAGE nicht geschrieben und B2B_MESSAGE_SERVICE_ERROR_DETAILS persistiert. |
Konsumierte AMQP-Header und Auswirkung
| Header | Auswirkung |
|---|---|
payloadName |
Wird im Event übernommen und protokolliert. |
service |
Steuert den zu ladenden B2B-Service. Wenn nicht gesetzt, wird b2b-inbox.base-service verwendet. |
channel |
Wird aus der Nachricht gelesen und protokolliert; der persistierte B2B-Channel wird jedoch aus dem ermittelten B2B-Service bestimmt. |
prio |
Wird als Queue-Prioritaet verwendet, wenn als Name oder Integer parsebar; sonst greift die konfigurierte Standard-Priorisierung. |
alternativeId |
Wird in Message-Kontext und Message (sofern vorhanden) übernommen. |
encoding |
Definiert das Charset für die Payload-Konvertierung (Default: UTF_8). |
Verarbeitungsablauf
- Der B2B-Message-Service konsumiert eine Nachricht aus der Inbox-Queue (z. B.
b2b.inbox.default). - Die Payload wird zu
Stringkonvertiert (inkl. Base64-Decoding, falls erforderlich) und mitencodinggelesen. - Das
InboxMessageEventwird aus Payload und Headern aufgebaut und auf Info-Level protokolliert. - Ohne Payload wird die Nachricht mit Fehlerlog quittiert (ack), ohne weitere Verarbeitung.
- Der Ziel-Service wird über Header
serviceoder überb2b-inbox.base-serviceermittelt. - Aus dem Service werden B2B-Channel und Richtung bestimmt.
- Message, Action und Message-Attribute werden persistiert.
- Danach wird ein Queue-Eintrag (
state = NEW) mit Kontextdaten für die weitere B2B-Verarbeitung erzeugt.
Persistierte Daten
Message
messageId: generierte UUIDdirection: aus Service-Richtung (0oder1)state:QUEchannelId: aus ServicealternativeId: aus Header (falls gesetzt)
Action
type:Servicename: Service-Nameclassname:com.arvato.application.message.InboxMessageProcessorstate:SUC
Message-Attribute
B3P_BASE_MESSAGEB3P_BASE_CHANNEL_IDB3P_BASE_SERVICE_ID- optional
INPUT_MESSAGE - optional
B2B_MESSAGE_SERVICE_ERROR_DETAILS
Queue
serviceId: aus ermitteltem Servicestate:NEWdirection: aus Service-Richtungprio: aus Headerpriooder aus Standard-Konfigurationentry: serialisierter Message-Kontext
Fehlerfälle und Fallbacks
- Unsupported Encoding: Fehler wird geloggt, Verarbeitung erfolgt mit
UTF_8weiter. - Payload fehlt: Fehler wird geloggt, AMQP-Nachricht wird quittiert und nicht weiter verarbeitet.
- Service nicht gefunden:
ServiceNotFoundException; die Nachricht wird nicht quittiert. - JSONPath-/Decoding-Fehler: Fallback auf komplette Payload als
B3P_BASE_MESSAGEund Fehlerdetails inB2B_MESSAGE_SERVICE_ERROR_DETAILS. - Ungueltige
prio: Fallback auf konfigurierte Queue-Standard-Prioritaet.