
Most of the common attributes of products and locations are delivered as attributes of the InfoObjects Internal Product (/DDF/PRODUCT) and Internal Location (/DDF/LOCATION). However, you might need to report on attributes that are not available in the standard content because they are only used in certain industries, categories, or countries.
There are different options for adding and integrating new attributes:
Enhancing InfoObjects using standard SAP NetWeaver Business Warehouse capabilities
Depending of the nature of the attribute you can add the attribute to the internal product (/DDF/PRODUCT) or internal location (/DDF/LOCATION) or to the corresponding global objects /DDF/GPID and /DDF/GLID. In this case you have to enhance all objects accordingly, such as DataSources, transformations, InfoSources, using standard BW capabilities. This approach is suitable for common master data attributes that are required for global reports, for example, attributes that are relevant for multiple categories or countries.
Using name-value pairs
Using the concept of name-value pairs you can upload new product attributes and the corresponding values to the DataStore object (DSO) (/DDF/DS53). Accordingly, new location attributes can be uploaded to the DSO /DDF/DS32. This approach is suitable for specific master data attributes that are required for local reports, for example, country-specific reports.
To make new attributes available for reporting, you have to filter them out of the name-value pairs and join them to the reporting objects. This can be done in in the following ways:
You can use the standard BI Content capabilities to create new InfoObjects for each attribute you want to add and filter the corresponding attribute values in transformations. Afterwards, you have to add the new InfoObjects to the Data Propagation Layer for transaction data and to combine the DSOs using MultiProviders or CompositeProviders.
You can build a logical model without additional persistence using SAP NetWeaver Business Warehouse on SAP HANA database. For this purpose you have to create an analytic view for each additional attribute and publish this view using transaction RSDD_HM_PUBLISH. Afterwards, you can use a CompositeProvider to join the views as TransientProviders with the DSOs containing the transaction data. Queries built on top of the CompositeProvider filter the attribute values out of the name-value pair DSO during run time.