Für ein performantes Berichtswesen basierend auf SAP BW ist es notwendig, unnötige Abfragen zu vermeiden. Ein wichtiger Baustein hierbei ist das optimierte Abfragen von Stammdaten. Besonders einfach und wirkungsvoll lässt sich dies bei Hierarchieobjekten (insbesondere Menühierarchien) umsetzen.
Als Beispiel dient in diesem Fall ein Menühierarchieobjekt, in dem die Kunden einer Anwendung selektiert werden können. Wird das Kundenelement aus dem Datenbankfenster in das Menühierarchieobjekt gezogen, werden die Standard-Ebeneneinstellungen gesetzt. Sichtbar wird dabei lediglich der All-Knoten. Im Hintergrund erzeugt arcplan eine MDX-Abfrage zur Ermittlung des Menüinhaltes. Dies führt, obwohl nur Stammdaten sichtbar sind, zu einem Join mit den Faktendaten innerhalb von SAP BW und somit zu einer tendenziell teuren Operation:
Um diesen Join mit den Fakten zu vermeiden, stellt SAP spezielle Funktionsbausteine zur Verfügung, die direkt die Dimensionsdaten abfragen. Diese Funktionsbausteine können von arcplan genutzt werden, indem die Ebeneneinstellungen für das Menühierarchieobjekt geändert werden. Dabei ist zu beachten, dass auf diese Weise immer (!) die gesamte Hierarchie abgefragt wird, womit diese Einstellung nur bei kleineren Hierarchien (<1000 Elemente) Anwendung finden sollte. Für diese ist die Abfrage aller Elemente aber in der Regel deutlich performanter als ein Join mit den Fakten.
Sind die Ebeneneinstellungen wie in Bild 2 gesetzt, erzeugt arcplan im Hintergrund den Aufruf des Funktionsbausteins. Nun wird die komplette Hierarchie abgerufen und initial in arcplan dargestellt. Über die Hierarchieformatierung und den Button „Anfangszustand festlegen“ ist es möglich, die initiale Darstellung nach Wunsch anzupassen, sodass der End-User die Hierarchie nicht schließen muss:
Somit sieht das Menü nach außen für den End-User vollkommen gleich aus.
Im Hintergrund wird jedoch der für kleine Hierarchien deutlich performantere Zugriff über den Funktionsbaustein erzeugt. Der Join mit den Fakten wird dadurch vermieden.