
In einer Anwendung wird ein Web-Service-Consumer-Proxy aufgerufen, um einen bestimmten Web-Service zu konsumieren. In Standardsoftware ist ein Web-Service-Aufruf dieser Art in der Regel unabhängig von der Version oder dem Interface eines bestimmten Web-Service-Providers implementiert. Häufig bieten verschiedene Provider eines Web-Service unterschiedliche Interfaces für den gleichen Zweck an, aber ein Web-Service-Consumer muss unter Umständen mit allen kommunizieren können. Beispielsweise können verschiedene Provider eine unterschiedliche Anzahl Operationen oder unterschiedliche Datenstrukturen oder sogar eine unterschiedliche Anzahl Interfaces verwenden. Um die Kommunikation zu ermöglichen, wird auf Consumer-Seite ein Mapping-Mechanismus verwendet. Ein Mapping dieser Art wird als Consumer-Mapping bezeichnet. Ein Consumer-Mapping bildet den ursprünglichen Consumer ( Quell-Consumer) auf den Consumer ab, der dem Provider-Interface entspricht ( Ziel-Consumer). Mit einem Mapping kann auch ein Quell-Consumer auf mehrere Ziel-Consumer abgebildet werden. Für die meisten Anwendungsfälle ist ein einzelner Ziel-Consumer ausreichend. Daher ist ein Consumer-Mapping standardmäßig ein Consumer-Mapping mit einzelnem Ziel.
Ein Consumer-Mapping referenziert Operationsmappings für jede Operation des Quell-Consumers. Das Consumer-Mapping fungiert also wie eine Art Envelope für alle Operationsmappings. In einem Operationsmapping wird eine Mapping-Implementierung definiert. Wenn jede Operation von einem Operationsmapping behandelt wird, erfordert das Consumer-Mapping keine Implementierung. In den folgenden Abschnitten finden Sie weitere Informationen zu Direktmappings für spezielle Szenarios, in denen Operationen nicht von Operationsmappings behandelt werden.
Consumer-Mappings mit einzelnem Ziel (STCM, Single-Target Consumer Mapping)
Ein Consumer-Mapping wird als Consumer-Mapping mit einzelnem Ziel bezeichnet, wenn alle Operationsmappings den gleichen Ziel-Consumer haben. Dies ist der Standardtyp eines Consumer-Mappings. Die Konfiguration wird weniger komplex, da das Mapping wie ein normaler Consumer-Proxy konfiguriert werden kann. Da dies die meisten Anwendungsfälle abdeckt, ist ein Consumer-Mapping standardmäßig als Consumer-Mapping mit einzelnem Ziel (STCM) definiert. Ein Consumer-Mapping mit einzelnem Ziel kann einen RFC-Consumer als Ziel-Consumer verwenden. Dies ermöglicht den Aufruf eines Funktionsbausteins in einem Remote-System, was für die Kommunikation mit Systemen ohne Web-Service-Infrastruktur nützlich sein kann. Weitere Informationen finden Sie unter RFC-Consumer für Consumer-Mappings mit einzelnem Ziel anlegen.
Anwendungsfälle für Consumer-Mappings mit einzelnem Ziel (STCMs):
Sie können STCMs zum Konsumieren vorhandener Interfaces definieren, die auf der Provider-Seite erweitert wurden, nachdem die Consumer-Anwendung implementiert wurde.
Sie können STCMs mit RFC-Consumern als Ziel-Consumer definieren, um Funktionsbausteine in anderen Systemen über Web-Services aufzurufen.
Sie können mehrere STCMs für unterschiedliche Versionen eines Provider-Interface definieren.
Sie können mehrere STCMs zum Konsumieren unterschiedlicher Drittanbieter-Interfaces für den gleichen Zweck definieren.
Beachten Sie, dass ein Consumer-Mapping mit einzelnem Ziel Operationsmappings für jede Operation umfassen muss. Anstelle eines Operationsmappings können Sie auch ein Direktmapping für eine Operation verwenden (siehe unten). Direktmappings können jedoch nicht in Consumer-Mappings mit einzelnem Ziel verwendet werden.
Operationsmappings
Mit Hilfe von Operationsmappings bilden Sie einzelne Operationen eines Quell-Consumers auf ein oder mehrere Ziel-Consumer ab. Ein Operationsmapping bietet ein Interface mit Methoden, die jedes einzelne Mapping beschreiben. Um ein bestimmtes Mapping durchzuführen, muss dieses Interface implementiert werden. Anschließend nehmen Sie Operationsmappings in Consumer-Mappings auf. Der Kommunikationsmodus der Operation bestimmt die Anzahl der Methoden, die innerhalb der ABAP-Klasse für ein Operationsmapping implementiert werden müssen. Weitere Informationen finden Sie unter Basiskonzepte von Consumer-Mappings.
Direktmappings
In hochkomplexen Anwendungsfällen, in denen Operationsmappings nicht geeignet sind, können Sie die Mappings für Operationen als Direktmappings im Consumer-Mapping definieren. Bei einem Direktmapping wird der Quell-Consumer direkt auf einen oder mehrere Ziel-Consumer abgebildet, und es muss ein Consumer-Mapping implementiert werden, das Direktmappings enthält. Bei einem Direktmapping müssen sowohl die Message-Asembly als auch der Aufruf der Ziel-Consumer implementiert werden. Bei dieser Implementierung erhält der Entwickler mehr Optionen zur Handhabung von Mapping-Szenarios, bei denen die Anzahl der Aufrufe eines Ziel-Consumers dynamisch ermittelt werden muss. Außerdem kann bei einem Direktmapping eine asynchrone Operation des Quell-Consumers auf eine oder mehrere synchrone Operationen des Ziel-Consumers abgebildet werden. Sie können auch die Abfolge von Messages ändern, die gemäß der Zustellart EOIO (Exactly Once In Order) zugestellt werden. Diese Optionen sind nicht verfügbar, wenn Operationsmappings definiert werden.
Sie verwenden einzelne Consumer-Proxys. Consumer-Mappings können nicht für Service-Gruppen angelegt werden.
Aufgaben zur Designzeit
Da Consumer-Mappings Datentransformationen auf Geschäftsebene beschreiben, werden sie zur Designzeit definiert.
Legen Sie für jede Operation des Quell-Consumers Operationsmappings an.
Legen Sie ein Consumer-Mapping durch Referenzierung von Operationsmappings an.
Aufgaben zur Konfigurationszeit
Die Konfiguration von Consumer-Mappings mit einzelnem Ziel (STCM) funktioniert genauso wie die Konfiguration eines normalen Consumer-Proxy. Bei anderen Consumer-Mappings müssen alle Ziel-Consumer separat konfiguriert werden. Jedes Consumer-Mapping hat einen logischen Port, dem die logischen Ports der Ziel-Consumer zugeordnet sind. Der Quell-Proxy wird dann mit dem logischen Port des Mappings instanziiert.
Überwachung von Consumer-Mappings
Im Message-Monitor (Transaktionscode SRT_MONI) werden Messages angezeigt, die aus Mappings stammen. Pro Message wird die ID der übergeordneten Message und der übergeordnete Typ Mapping angezeigt. Sie können sich auch alle Messages anzeigen lassen, die sich aufgrund eines Mappings auf eine bestimmte Message beziehen.
Weitere Informationen finden Sie unter ABAP-Web-Service-Messages überwachen.