Übersicht
In der B2B Verarbeitung von Nachrichten findet initial immer eine sogenannte Format-Erkennung statt um Meta-Informationen über die Nachricht zu sammeln, anhand dieser die weitere Verarbeitung zu definieren und im Nachrichtenmonitor darzustellen.
Mit der Extension B3P_FORMAT_RECOGNITION_JSON_PATHS kann die Format-Erkennung auch für JSON-Nachrichten eingerichtet werden.
Einrichtung
Damit die B2B Format-Erkennung für JSON-Nachrichten durchgeführt wird, muss die Extension B3P_FORMAT_RECOGNITION_JSON_PATHS angelegt und konfiguriert werden. In dieser Extension werden die spezifischen JSON-Formate definiert und die Informationen, die aus den Nachrichten extrahiert werden sollen.
Zunächst wird eine Liste der spezifischen JSON-Formate definiert, die (in konfigurierter Reihenfolge) erkannt werden können. Anschließend wird für jedes spezifische JSON-Format ein JsonPath-Ausdruck definiert, der in allen Nachrichten dieses Formats vorkommt und dieses durch einen Match identifiziert.
Zu jedem spezifischen JSON-Format werden dann die Informationen definiert, die aus den Nachrichten extrahiert werden und an der entsprechenden Stelle im Format-Objekt abgelegt werden sollen.
Beispiel der Extension B3P_FORMAT_RECOGNITION_JSON_PATHS:
# Liste aller bekannten spezifischern Json-Formate, mit Komma getrennt
specificPresentations=InboundApiRequest,OutboundApiRequest,myJson
# Idenfikation des spezifischen Json-Formats über JsonPath Ausdrücke
InboundApiRequest.specificPresentation=['id']
OutboundApiRequest.specificPresentation=['apiId']
myJson.specificPresentation=['myJson']
InboundApiRequest.type=['apiId']
InboundApiRequest.version=['majorVersion']
InboundApiRequest.referenceId=['headers']['transactionId']
# consider system partner switch for inbound messages according to system=sender
InboundApiRequest.system=['partnerMpId']
InboundApiRequest.systemCode=['partnerMpId']
InboundApiRequest.partner=['tenantMpId']
InboundApiRequest.partnerCode=['tenantMpId']
InboundApiRequest.correlationId=['parameters']['referenceId']
InboundApiRequest.additional.requestType=['endpointPath']
OutboundApiRequest.type=['apiId']
OutboundApiRequest.referenceId=['headers']['transactionId']
OutboundApiRequest.partner=['partnerMpId']
OutboundApiRequest.partnerCode=['partnerMpId']
OutboundApiRequest.system=['tenantMpId']
OutboundApiRequest.systemCode=['tenantMpId']
OutboundApiRequest.correlationId=['parameters']['referenceId']
OutboundApiRequest.additional.requestType=['endpointPath']
myJson.type=['myJson']['myType']
myJson.version=['myJson']['myVersion']
myJson.referenceId=['myJson']['messageIdentifier']
myJson.partner=['myJson']['partner']
myJson.partnerCode=['myJson']['partner']
myJson.system=['myJson']['system']
myJson.systemCode=['myJson']['system']