!--a11y-->
Message-ID Erzeugung, Persistenz und
Mapping 
Das Mapping einer XI-Message-ID auf eine externe Message-ID wird gespeichert, um doppelte Messages ermitteln zu können oder um eine Message rückverfolgen zu können. Für das Mapping können Sie den MessageIdMapperverwenden.
Siehe unter: Schritte im asynchronen Empfänger-/Outbound-Message-Fluss und Schritte im asynchronen Sender-/Inbound-Message-Fluss
Interface-Überblick
Merkmal |
Wert |
Name |
AF Utility Service |
Zweck |
Erzeugung von Message-ID Mappings zur Überprüfung von doppelten Einträgen und für die Verfolgung im PMI |
Typ |
J2EE-Service |
Technischer Name |
com.sap.aii.af.service.idmap com.sap.aii.utilxi.misc.api |
Zertifizierung |
Optional |
Syntax |
Siehe JavaDoc (.\index.html) package com.sap.aii.af.service.idmap |
package my.adapter.ra;
…
import com.sap.aii.af.service.idmap.MessageIDMapper;
import com.sap.aii.utilxi.misc.api.GUIDFactory;
import com.sap.guid.IGUID;
…
public onMessage() throws ResourceException {
…
try {
// Create the XI message ID. This ID is used later in den modules and set
// as GUID of the resulting new XI message.
// It must be consistent for the audit log entries
IGUID xmbmsgid = GUIDFactory.getInstance().createGUID(IGUID.VERSION_TIME);
…
// Forward the external message and the XI message ID to use to the XI AF MP
ModuleData inputModuleData = new ModuleData();
inputModuleData.setPrincipalData(message);
inputModuleData.setSupplementalData("my.adapter.xmbmsgid", xmbmsgid);
ModuleData outputModuleData =
moduleProcessor.process(handler.getName(), inputModuleData);
…
// Save message ID mapping for duplicate recognition and PMI logging
// PMI logging is triggered inside the messageIDmapper
messageIDMapper.createIDMap(jmsmsgid, xmbmsgid.toHexString(),
System.currentTimeMillis() + 1000*3600*24);
…
}
catch(Exception e) {
…
}
…
Dieser Auszug zeigt den Einsatz des MessageIDMapper. Er zeigt außerdem die Verwendung der GUIDFactory und IGUID-Hilfsklasse, die die Erzeugung einer ID vor dem Anlegen der Message ermöglichen.
Dieser Mechanismus kann eingesetzt werden, wenn die XI-Message zu einem späteren Zeitpunkt, z.B. in den Modulen des Adapter-Framework erzeugt wird. Das Mapping muss jedoch im Adapter durchgeführt werden, damit dieser Vorgang der allgemeinen Strategie zum Einsatz von Transaktionen entspricht.

Im Aufruf für createIDMap() muss die XI-Message-ID als hexadezimaler String angegeben werden.