Der MKG Versandstatus Rückmeldung Service ist ein zum MK-Gateway integrativer Service, der Statusinformationen zum Versand einer vom MKG über die B2B in Markt gesendeter Nachricht an das MKG zurückmeldet.

Beschreibung

Der Service bietet die folgende integrative Funktion zwischen B2B, AS4-Modul und MK-Gateway (kurz: MKG) beim Versand von Marktnachrichten über die B2B:

Wird eine Nachricht vom MKG über die B2B in den Markt gesendet, so wird der Status des Versands der Nachricht samt Meta-Informationen per REST an das MKG zurückgemeldet.

Die B2B entscheidet anhand dabei ihrer Marktpartner-Daten, ob der marktkonforme Versand der Nachricht per Mail, AS2 oder AS4 stattfindet.

Im Falle eines Mail oder AS2 Versands wird der Service MKG-Versandstatus-Rückmeldung-Service am Ende der Nachrichten-Verarbeitung getriggert. Technisch genauer: Per RESTClientService wird der Nachrichten-Trigger Endpunkt des b2b-message-services angesprochen, welcher als AMQP Adapter dient und die Nachricht in eine Queue schreibt. Der MKG-Versandstatus-Rückmeldung-Service sammelt die dann die benötigten Informationen zum Nachrichtenversand aus der B2B zusammen, bringt sie in das gewünschte Format und meldet sie an das MKG zurück.

Im Fall eines AS4 Versands wird der MKG-Versandstatus-Rückmeldung-Service per Message-Broker Exchange-Konfiguration direkt aus dem AS4 Modul heraus getriggert. Genauer geschieht dies dann, wenn der as4-message-service die versendete AS4 Nachricht und Receipt in der B2B speichern möchte.

An das MKG werden neben dem Status (erfolgreich/nicht erfolgreich) zum Versand der Nachricht im Markt noch weitere Zusatzinforamtionen zurückgemeldet, wie

  • das Protokoll (Mail, AS2, AS4)
  • der Zeitpunkt des Versands (im Erfolgsfall)
  • die B2B Nachrichten-ID (zur eindeutigen Zuordnung zur Nachricht)
  • der verwendete Endpunkt im Markt (AS4- oder AS2-URL bzw. Mailaddresse im Erfolgsfall)
  • ein Fehlertext (im Fehlerfall)
  • die alternativeId der B2B Nachricht (in der die MRSLOTNR Nachrichten Id des MKG gespeichert wurde)

Beispiel:

{
    "messageId": "ab7035f1-a729-11ef-83f1-0242ac121234",
    "successful": true,
    "errorMessage": null,
    "protocolType": "AS4",
    "sentTime": "2024-11-01T10:25:52.338Z",
    "endpoint": "https://9903323000007.as4.makgw.seeburger.cloud:443",
    "alternativeId": "myMRSlotNr"
}

Installation

Der Service wird als Docker Image und Helm Chart (kostenpflichtig/bei entsprechender Berechtigung) bereitgestellt.

Entsprechende Helm Charts oder Docker Compose Umgebungen können bei Bedarf angefordert und bereitgestellt werden.

Konfiguration

Der Service wird über die folgenden Umgebungsvariablen aus der application.yml konfiguriert.

Dabei müssen im Wesentlichen die technischen Schnittstellen konfiguriert werden:

  • die RabbitMQ Verbindung
  • die B2B (abgesichert via OAuth2 mit angelegter Keycloak Client Konfiguration)
  • das MKG (abgesichert via Basic Auth)
spring:
  # RabbitMQ
  cloud:
    function:
      definition: consumeSentMessageEvent
    stream:
      bindings:
        consumeSentMessageEvent-in-0.destination: ${messaging.sentMessageExchangeName}
        consumeSentMessageEvent-in-0.group: ${messaging.sentMessageConsumerGroup}
        consumeSentMessageEvent-in-0.consumer.max-attempts: ${messaging.consumerMaxAttempts}
      rabbit:
        bindings:
          consumeSentMessageEvent-in-0.consumer.exchange-type: topic
          consumeSentMessageEvent-in-0.consumer.quorum.enabled: true
          consumeSentMessageEvent-in-0.consumer.auto-bind-dlq: true
          consumeSentMessageEvent-in-0.consumer.dlq-quorum.enabled: true
  rabbitmq:
    host: rabbit-host
    port: 5672
    username: rabbitmqUser
    password: rabbitmqPassword
  # Keycloak client
  security:
    oauth2:
      client:
        provider:
          keycloak:
            issuer-uri: http://keycloak-server:8080/auth/realms/pks
        registration:
          keycloak:
            provider: keycloak
            client-id: mkg-shipping-status-sender
            client-secret: meinClientSecret
            authorization-grant-type: client_credentials
      resourceserver:
        jwt:
          issuer-uri: http://keycloak-server:8080/auth/realms/pks

# RabbitMQ messaging default configurations
messaging:
  sentMessageExchangeName: b2b.message.reference
  sentMessageConsumerGroup: default
  consumerMaxAttempts: 1

b2b:
  url: http://b2b-server:8080

mkg:
  url: http://mkg-server:8080
  username: admin
  password: 123456

server:
  servlet:
    contextPath: /mkg-shipping-status-sender

Release Notes

2024-11-28

Typ Ticket Beschreibung
Story BTOB-12869 Erhält der Service den Response Code 508 bei der Übermittlung des Versandstatus zurück, wird dieser Versandstatus nicht erneut übermittelt.
Story BTOB-12870 Im übermittelten Versandstatus wird nun auch die “alternativeId” (verwendet durch die MKG MRSLOTNR) der B2B Nachricht angegeben.

2024-06-24

Typ Ticket Beschreibung
Story BTOB-12404 Es wurden diverse Einstellungen erweitert um die Stabilität des AMQP Consumers zur Queue zu gewährleisten.

2024-01-12

Typ Ticket Beschreibung
Story BTOB-11564 Initiale Implementierung des Services
View Me   Edit Me