Zum Hauptinhalt springen

Der CompositeProvider und eine „versteckte“ Funktion

Mit der Migration auf SAP BW/4 HANA oder der Aktivierung des BW/4-HANA-Modus, der hier beschrieben ist, können Legacy-Objekte nicht mehr genutzt werden. Darunter fallen auch die beliebten MultiProvider. Diese werden genutzt, um verschiedene InfoProvider zu kombinieren und eine Abstraktionsschicht zu einer BW-Query herzustellen. Dabei können Objekte der InfoProvider verbunden werden, auch wenn diese in einem der Provider nur als Navigationsattribut vorliegen, also nicht direkt in der Faktentabelle des InfoProviders. In diesem Beispiel wird das Land einmal direkt und einmal als Navigationsattribut vom Kunden zugeordnet.

 

beispiel-navigationsattribut

 

Nutzung von Legacy-Objekten bei CompositeProvidern

Wie realisiert man dies bei CompositeProvidern? Bei der ersten Nutzung von CompositeProvidern in Projekten fällt erstmal auf, dass die grundsätzliche Funktionalität der des MultiProviders entspricht und der Funktionsumfang sogar umfangreicher ist. Ein CompositeProvider kann mit der Möglichkeit, Objekte durch einen „Join“ zusammenzuführen, mehr als der MultiProvider, der nur einen „Union“ beherrscht. Daher wird der CompositeProvider auch als Nachfolger von InfoSets und MultiProvidern gehandelt. Aber zurück zur ersten Nutzung des CompositeProviders: Vorerst fällt nichts Besonderes auf. Die Funktionen sind alle vorhanden und statt des MultiProviders können nun CompositeProvider genutzt werden. Auch die Aktivierung von Navigationsattributen ist im Reiter „Output“ problemlos möglich.

 

aktivierung-von-navigationsattributen

aktivierung-von-navigationsattributen

 

Wenn es dann im Laufe der Implementierung dazu kommt, dass Objekte verknüpft werden sollen, die in nur einem InfoProvider als direkt verfügbares Objekt vorliegen, stoßen einem die Modeling Tools gehörig vor den Kopf. Es ist nicht möglich, im Reiter „Scenario“ im Target-Bereich des CompositeProviders Navigationsattribute für eine Zuordnung hinzuzufügen.

 

keine-zuordnung-von-navigationsattributen

 

Hat die SAP also diese beliebte Funktion des MultiProviders vergessen oder absichtlich entfernt? Nein, ich kann Sie dort beruhigen. Sie ist nur „versteckt“, wie schon im Titel dieses Artikels angekündigt, und zudem hat sich die Logik der Zuordnung geändert. Ein CompositeProvider kann weiterhin keine Navigationsattribute für ein Mapping bereitstellen, jedoch kann man den Zielobjekten Navigationsattribute der InfoProvider zuordnen. Dafür müssen diese in der Ansicht mit einem Rechtsklick auf den InfoProvider angezeigt werden.

 

zuordnung-von-navigationsattributen

 

Sobald diese Darstellung aktiviert ist, erscheinen alle Navigationsattribute unter den jeweiligen Objekten beim InfoProvider und können mit den Zielobjekten des CompositeProviders verbunden werden.

 

verbindung-von-zielobjekten-des-compositeproviders

 

Anfangs habe ich mir die Frage gestellt, warum die SAP diese tolle Funktion wohl versteckt hat. Ein Grund könnte sicher in der Performance liegen. Durch den zusätzlichen Join bei der Nutzung von Navigationsattributen (Hinweis: Man kann im Output auf das Objekt im CompositeProvider wieder ein Navigationsattribut aktivieren, hat somit mehrfache Joins der Objekte – InfoObjekt im InfoProvider -> Navigationsobjekt im InfoProvider -> Navigationsobjekt im CompositeProvider) kann es bei größeren Datenmengen schnell zu einer Verschlechterung der Performance kommen, wenn die InfoObjekte eine hohe Granularität besitzen, also viele verschiedene Einträge.