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)

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
View Me   Edit Me