Skip to main content

CompositeProvider and a "hidden" Function

With the migration to SAP BW/4 HANA or activation of the BW/4 HANA mode described here, it is no longer possible to use legacy objects. This includes the popular MultiProvider, used to combine different InfoProviders and to create an abstraction layer for a BW query. It can link InfoProvider objects, even if these are only available as navigation attributes in one of the providers and not directly in the InfoProvider fact table. In this example, the country is allocated once directly and once as a customer navigation attribute.




Using legacy objects with CompositeProviders

How do you do this with CompositeProviders ...? When you start using CompositeProviders in projects, you immediately notice that the basic functionality is the same as MultiProvider, although it can do even more. CompositeProvider, with its ability to merge objects using "join", can do more than the MultiProvider, which can only use "union". CompositeProvider can therefore also be considered a successor to InfoSets and MultiProviders. But back to the scenario in which you start using CompositeProvider ... For a while, you will not notice anything out of the ordinary. All the functions are available and you can now use CompositeProvider instead of MultiProvider. You can also activate navigation attributes in the "Output" tab.





If during implementation you wish to link objects that are only directly available as objects in one InfoProvider, it would make sense to use the Modeling Tools. However, it is not possible to assign navigation attributes in the "Scenario" tab in the CompositeProvider's target area..




Does this mean that SAP has forgotten to include or deliberately removed this popular MultiProvider function? No, fortunately not. As the title of this article suggests, it is only hidden, and the assignment logic has been changed. CompositeProvider is still unable to provide navigation attributes for mapping, but you can assign InfoProvider navigation attributes to the target objects. To do this, you need to display them by right clicking in InfoProvider.




As soon as the display is selected, InfoProvider displays all the navigational attributes under their respective objects, which you can link to target objects in CompositeProvider.




I initially wondered why SAP had decided to hide this excellent function. My guess is that the decision was taken for performance reasons. Due to the additional join when using navigation attributes, (Note: you can reactivate an object's navigation attribute in the CompositeProvider output, resulting in multiple object joins (info object in InfoProvider -> navigation object in InfoProvider -> navigation object in CompositeProvider)) large data volumes can lead to a deterioration in performance if the InfoObjects have a high degree of granularity, that is, of there are a lot of different entries.