Delete overlapping requests DataStore Object using ABAP

Do you want to snapshot on a daily basis but only want to keep one request per calendar week? The attached ABAP makes this possible! You can use it the start routine of a transformation.

The logic uses the current calendar week (based on the system date) to retrieve a list of requests which are loaded in the same calendar week. This list is then sorted descending based on the loading date. Then one by one the loads are being removed from the DataStore Object (DSO), leaving only the current request active. When this load is executed on a daily basis only one request per calendar week will remain in the DSO.

Loop over table columns dynamically

In case of data cleanse activities there could be a necessity to loop over columns. Doing this dynamically will enable you to easily verify each column without writing to much ABAP code, as the code is valid for all columns.

Since everybody knows how to loop over rows but not over columns I began my quest of finding the most proper solution. I stumbled across this blog explaining me how to achieve this with just a couple lines of ABAP. The ABAP uses a standard SAP class cl_abap_typedescr to retrieve data.

Be sure to have a good look at this class since it has more nifty methods available which might get in handy during your developments in SAP BW.

SAP Business Warehouse extractor and table analyzer

Building up a new dataflow can be very time-consuming, mainly when there is no data acquisition layer to extract data from. Setting up a proper data acquisition layer means considering which fields to extract towards the data warehouse system. Since not all fields of a table used in the source system it is advisable to first analyze which fields are useful. Extracting all fields results in empty and unused objects in the Data Warehouse system, which technically results in a bigger database.

In order to make everybody’s life easier I created the ABAP program “SAP Business Warehouse extractor and table analyzer”. This program can be used to analyze Business Content extractors (like 2LIS structures) or SAP tables.
SAP Business Warehouse extractor and table analyzer

Verify dimension sizes of InfoCubes

Maybe you are one of the lucky few who is currently working with BW on HANA and do not have to model InfoCubes anymore (from a performance perspective). But for those who still need to do this, ABAP program SAP_INFOCUBE_DESIGN could help you verify how well your InfoCubes are modelled in SAP Business Warehouse. This program collects data for every InfoCube in the BW system and counts the records available in the related dimension tables and fact table. The program then checks the ratio between the number of records in the dimension tables against the number of records in the fact table.
ABAP program SAP_INFOCUBE_DESIGNS
A ratio between 10% and 20% is considered as high cardinality and therefore indicated in red. In most cases you should avoid dimension tables larger than 10%. Of course this it all depends on how frequent the data is used in the mentioned dimension table. If possible use line item dimensions instead!
SAP_INFOCUBE_DESIGNS output
Note: The data which is used for this analysis comes from BW statistics, so be sure that if you want to analyze a specific InfoCube, statistics are created for it.

Schedule Bex Broadcaster report using a process chain

A couple of weeks ago I posted a blog about changing Bex Broadcaster variables. Now this post is an follow-up on that article which describes how to automate the process of changing Bex Broadcaster variables and sending the reports to the users.

One way of automating this process is by creating a process chain. Leaving aside that this is probably the most easiest activity for a SAP BI consultant, creating a process chain with a Bex Broadcaster step could be challenging. Why? Because the default program which SAP advises to use for sending Bex Broadcaster workbooks, sets the monitor of the process chain directly to green. This results in multiple workbooks being calculated at the same time, which then leads to a decrease in performance on our Precalculation servers.