Mapping-Lookups
Mapping-Programme (Message-, Java- und XSLT-Mappings) werden auf dem Integration Server ausgeführt und können dort auf die globale Werte-Mapping-Tabelle (siehe Werte-Mappings ausführen) und auf Konstanten der Mapping-Laufzeit zugreifen. Zusätzlich können Aufrufe in andere Anwendungssysteme aus folgenden Anforderungen notwendig sein:
· Um lesend auf Daten eines Anwendungssystems im Mapping-Programm zuzugreifen.
· Um im Anwendungssystem bereits vorhandene Mapping-Routinen aufzurufen.
Die Mapping-Laufzeit bietet eine API für Mapping-Lookups an, um solche Anforderungen abzudecken. Die API kann von Message-, Java- und XSLT-Mappings auf dem Application Server Java ausgeführt werden.
Die Lookup-API leitet ruft während der Ausführung eines Mapping-Programms auf dem Integration Server über die zentrale Adapter Engine in das gewünschte Anwendungssystem:

Der Aufruf ist synchron. Der aufgerufene Adapter liefert also das Ergebnis des Aufrufs unmittelbar zurück (in der Grafik nicht dargestellt).
Entwickler übergeben der Lookup-API im Mapping-Programm den Namen eines Kommunikationskanals, über den Berater später den Aufruf des Adapters im Integration Directory konfigurieren. Im entsprechenden Guide der Anwendung muss dieser Name dokumentiert sein.
Wenn über den Mapping-Lookup Daten aus einer Datenbanktabelle ausgelesen werden sollen, muss der Name dieser Tabelle bekannt sein. Um diesen Namen dynamisch zu setzen, könnte beispielsweise der Sender der Message diesen mit in die Payload schreiben. Das Mapping-Programm liest dann den Tabellennamen aus der Payload und übernimmt ihn für den Aufruf über die Lookup-API.
Die Mapping-Lookup-API ist ab SAP NetWeaver ’04 SPS13 verfügbar.
Die API für Mapping-Lookups unterstützt Zugriffe über den RFC-, JDBC- und SOAP-Adapter. Wenn Sie mit einem Adapter eines Drittanbieters einen Mapping-Lookup in ein Anwendungssystem machen wollen, muss der Adapter folgende Voraussetzungen erfüllen:
· Der Adapter muss synchrone Aufrufe unterstützen.
· Der Adapter darf nicht auf Informationen aus einer Empfängervereinbarung angewiesen sein. In solchen Fällen bricht die Verarbeitung des Mapping-Lookups ab.
Mapping-Lookups sind nur über die zentrale Adapter Engine möglich.
Für Aufrufe in ein Anwendungssystem über die Lookup-API verwenden Entwickler entweder eine generische oder eine spezielle Lookup-API.
Beim generischen Zugriff müssen Entwickler die Payload, der der Adapter erwartet, vor dem Lookup selbst aufbauen und die Ergebnis-Payload selbst parsen.
Um generisch auf ein Anwendungssystem zuzugreifen, verwenden Entwickler die Klasse SystemAccessor. Bei generischen Aufrufen müssen Entwickler einer Methode einen Stream mit der Payload übergeben, die an den Adapter geschickt werden soll. Als Ergebnis des Aufrufs erhalten Sie wiederum ein Payload-Objekt, über das Sie die Payload als Stream auslesen können, um die Payload zu parsen.
Die generische Lookup-API ist Teil der Mapping-API (siehe Klasse LookupService in der javadoc-Dokumentation). Weitere Informationen zu diesen APIs finden Sie im SAP Developer Network unter der Adresse https://www.sdn.sap.com/irj/sdn/javadocs (SDN-User nötig).

Das Schema für den Aufruf eines RFCs können Sie sich besorgen, indem Sie den RFC in das Integration Repository importieren (siehe: Import von IDocs und RFCs).
Beim Zugriff über die spezielle Lookup-API brauchen Entwickler den Aufbau der Payload nicht zu kennen, sondern übergeben der API String-Kommandos, die im gerufenen Anwendungssystem ausgeführt werden sollen.
Bisher gibt es eine spezielle Lookup-API für den JDBC-Adapter. Um diese API einzusetzen, verwenden Entwickler statt der Klasse SystemAccessor die Klasse DataBaseAccessor.
Die spezielle Lookup-API ist Teil der Mapping-API (siehe Methode getDataBaseAccessor der Klasse LookupService in der javadoc-Dokumentation). Weitere Informationen zu diesen APIs finden Sie im SAP Developer Network unter der Adresse https://www.sdn.sap.com/irj/sdn/javadocs (SDN-User nötig).
...
1. Entwickeln Sie Ihre Mapping-Lookup-Routine in Java mit Hilfe der Lookup-API. Sie können die Routine in folgenden Mapping-Programmen verwenden:
¡ In benutzerdefinierten Funktionen von Message-Mappings.
¡ In Java-Mappings oder XSLT-Mappings, die Sie als Archiv in das Integration Repository importieren (siehe Importierte Archive (XSLT/Java)). Um die Lookup-Routine aus XSLT-Mappings heraus aufrufen zu können, verwenden Sie XSLT-Mappings mit Java-Erweiterung.
2. Dokumentieren Sie, welcher Adapter über welchen Empfängerkanal während des Mapping-Lookups gerufen wird.
3. Um die Lookup-Routine über ein Interface-Mapping testen zu können, muss der Empfängerkanal im Integration Directory konfiguriert sein und die Laufzeitkomponenten des Integration Server installiert sein. Ist dies nicht der Fall, bricht das gesamte Mapping mit einer Fehlermeldung ab.