AS4 Receipt Service Dokumentation

Der Receipt Service validiert zum Einen eingehende Nachrichten der Marktpartner und erstellt für diese ausgehende Bestätigungen (Receipts) und zum anderen parsed der Service wiederum eingehende Bestätigungen der Marktpartner. Die Anbindung erfolgt über den Message Broker.

Einfache Konfiguration der as4-receipt-service.properties

Der AS Receipt Service besitzt neben einer REST Schnittstelle Verbindungen zu einem Message Broker, welche hier konfiguriert werden müssen.

#=== RabbitMQ Con
rabbitmq.host=localhost
rabbitmq.port=5672
rabbitmq.username=guest
rabbitmq.password=guest

Über diesen Consumer werden eingehende Receipts entgegengenommen, damit diese geparsed und die erhaltenen Informationen weitergeleitet werden können.

receiptParseExchangeName=as4.receipt.parse

In der Regel wird diese Queue vom Crypto Operation Service befüllt und enhält Informationen über den Verificationsstatus. Ist der Verifikationsstatus negativ, so wird das Receipt in folgende Error Queue verschoben:

negativeVerifiedReceiptExchangeName=as4.neg.verified.receipt

Aus dieser Queue kann die Nachricht, wenn gewünscht, direkt in die Queue des Message Service verschoben werden, damit diese in der Datenbank gespeichert wird. Ist das Receipt negativ, so wird es zusätzlich zu Überwachungszwecken in folgende Error Queue geroutet:

negativeReceiptExchangeName=as4.received.neg.receipt.not.restartable

Über diesen Producer werden Receipts an den AS4 Message Service gesendet, um diese in der Datenbank zu speichern. Dies geschieht bei eingehenden Receipts, wenn diese positiv verifiziert wurden und bei ausgehenden Receipts, wenn diese positiv sind.

receiptExchangeName=as4.receipt

Um zu einer eingehenden Nachricht ein Receipt zu erstellen, wird die Nachricht vorerst validiert. Zur Validierung sind die folgenden Parameter erforderlich. Wichtig ist hier, für die Variable expectedSystems die Receiver, also die Mandanten selbst einzutragen, damit geprüft werden kann, ob der Marktpartner auch an den richtigen Mandanten geantwortet hat. Die weiteren Prüfungskategorien sind AS4 Protokoll spezifisch und sollten von einem Fachmann verändert werden. ServiceId gibt dabei den Service aus dem Header der AS4 Message an und ActionId die Action aus dem Header.

# as4 validation config
expectedSystems=9907647000008,9903111000003
expectedGasServiceIds=A02
expectedElectricityServiceIds=http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/service
expectedGasActionIds=http://docs.oasis-open.org/ebxml-msg/as4/200902/action
expectedElectricityActionIds=http://docs.oasis-open.org/ebxml-msg/as4/200902/action

Routing Konfiguration der as4-receipt-service.properties

Für die Aktivierung des Routings müssen für die Producer headerName und headerValues angegeben werden. Den headerName kann man sich als Filterkategorie vorstellen, während die headerValues den zu filternden Werten entsprechen. Als headerName werden folgende Parameter angeboten: tenant, partner und sector. Für die headerValues können mehrere Werte kommasepariert angegeben werden.

Die möglichen Filterkategorien sind:

  • tenant: ILN Nummer des Mandanten der AS4 Nachricht (im eingehenden Fall also der Empfänger und im ausgehenden der Sender)
  • partner: ILN Nummer des Marktpartners der AS4 Nachricht (im eingehenden Fall also der Sender und im ausgehenden der Empfänger)
  • sector: electricity/gas

Dieser Producer sendet das Receipt an den AS4 Message Service über den Message Broker, um ein Receipt inkl. des Status zu hinterlegen.

receiptExchangeName=as4.receipt
receiptHeaderName=tenant
receiptHeaderValues=9900051000004

Der Consumer empfängt das Receipt vom AS4 Crypto Operation Service zur strukturellen Überprüfung. Beim Routing muss der zu erwartende Wert hinzugefügt werden. Beim Consumer erfolgt dies über die Gruppenbezeichnung receiptParseGroup.

receiptParseExchangeName=as4.receipt.parse
receiptParseGroup=9900051000004

In diesem Beispiel empfängt der Receipt Service demnach Nachrichten über die Queue as4.receipt.parse.9900051000004 und über die default Queue.

Für die Producer der Error Queues müssen folgende Eigenschaften gesetzt werden, um das Routing zu nutzen

negativeVerifiedReceiptExchangeName=as4.neg.verified.receipt
negativeVerifiedReceiptHeaderName=tenant
negativeVerifiedReceiptHeaderValues=

und

negativeReceiptExchangeName=as4.received.neg.receipt.not.restartable
negativeReceiptHeaderName=tenant
negativeReceiptHeaderValues=

REST API Dokumenation

Die Beschreibung der REST API lässt sich, im Fall einer Docker Installation, unter

http://host.docker.internal:8095/aep-as4-receipt-service/swagger-ui/index.html

oder unter

http://localhost:8080/aep-as4-receipt-service/swagger-ui/index.html

finden.

View Me   Edit Me