How to substract one row data from another in a DSO in SAP BW

Scenario: The source data is coming in the form of ytd numbers. Below is an example of year to date (YTD) numbers:

ytd numbers.png

The user wants to see the monthly values instead of the YTD values, below is the data which the user wants to see in the report:

ytd numbers.png

Thus the monthly 2017.02 values are 2017.02 value – 2017.01 value.

Thus, the first month value will be as it is, the second month value will  be second month – first month, the third month value will be third month value – second month value.


Continue reading →

Private: How to read child hierarchy entries in DTP

Scenario: There is a requirement to load data with a filter on a certain infoObject.

This filter is a parent node of a hierarchy.

The data in the source is having rows with leaf nodes only for this infoObject.

See below diagram to get clarity:


source data.png

From the above diagrams, observe that the data in the source cube is having only leaf nodes for the Region ZREG1. Continue reading →

SAP Netweaver BI Accelerator



BI Accelerator is a separate server which runs on TREX (Text Retrieval Extraction). The BI-Accelerator is a an addition to SAP BW 7 version and is now becoming obsolete with the advent of HANA.

BIA serves the purpose of putting some of the data in the memory whereas HANA puts all the data in memory.

Many companies have opted for BIA when it was launched and it has given impressive performance with typical improvement factors between 10 and 100.

Long running Sales/AR/Finance queries have improved drastically when the cubes on which they are based are indexed on BIA. Continue reading →

Steps to enhance LO Datasource in SAP ECC

Enhance LO standard business content data source with a field not present in the data source extract structure

Scenario 1:

The field to be added in the LO Data source is not present in the extract structure but it is available in the communication structure.


If the field to be added is available in the communication structure, no need to enhance the data source in such cases. You simply have to add that field from the communication structure into the extract structure. Continue reading →

Steps to enhance Datasource in SAP ECC

Below is a sample scenario to enhance the extract structure of a standard Data source. The procedure is same for custom data source. However, the procedure is slightly different for enhancing the LO extractors.

Enhancing a data source structure signifies that you want to add an extra field to the data source which is not present in the extract structure. For this you need to add this field in the extract structure and then write a logic to populate this field in tcode CMOD. The extractor then can be checked in tcode RSA3. Continue reading →

How to create Package and TR in SAP System

Before starting any development, it is mandatory to have a package and TR assigned to your user id so that you can neatly collect all your changes in the TR and transport it without any errors. One should avoid collecting objects in the local package unless necessary.

Below are the steps outlined to create a package and a TR in SAP system. You can also check my video below-

Continue reading →

How to resolve the transport errors RC 12 and RC 8 in a specific scenario


When transporting objects from Development to Test Servers, the transport gets cancelled (RC=12) or ends with errors (RC=8) with the following messages-

If transporting BEx objects like query elements: error message:
  • Invalid Objects: ‘After Import’ terminated (see long text). Error Current imported l_th_trkorr_import_all has 2 (lines) in TP command fatal error
  • Error (000) in TP command Returncode of trkorr trkorr_no_1
  • Errors occurred during post-handling RS_AFTER_IMPORT for ELEM L
  • The errors affect the following components: BW-WHM-MTD (Metadata Repository)
  • Error activating element

Continue reading →

How to do Remodeling of Infocube using customer exit option

Remodeling is a new feature added in NW04s BI 7.0 version of SAP BW. It enables to change the structure of an Infocube that is already loaded with data.

Using remodeling a characteristic can be simply deleted or added/ replaced with a constant value, value of another InfoObject (in the same dimension), with value of an attribute of another InfoObject (in the same dimension) or with a value derived using Customer exit.

Similarly, a key figure can be deleted, replaced with a constant value or a new key figure can be added and populated using a constant value or a Customer exit.

Assume, you have an InfoCube for Sales which is already loaded with data. Assume, there is an InfoObject ZCUST_DOB which maintains Customer’s date of birth.

The Business requirement is, the InfoCube should contain Age of the customer also. For remodeling of InfoCube with an extra InfoObject for age, first create an InfoObject ZCUST_AGE and start Remodeling process for cube as follows. The new InfoObject ZCUST_AGE added to the cube will be filled by the remodeling rule which will calculate the values based on the values of ZCUST_DOB for each data record.

Continue reading →

How to write ABAP program to trigger PC based on file in application server

In this post, I will detail on how to write an ABAP program which checks for a specific file in the application server and triggers a process chain. If no file is found, it just displays a message and does not do anything.

Once the program is ready, you need to schedule a job with this program which runs in the background every 30 minutes for example to check the file and trigger the PC.

Continue reading →

How to write ABAP program to Merge multiple files in one file in Application server

In some scenarios, it may happen that business has loaded multiple files in a period for sales for example. All these files should be merged into one consolidation file and loaded once to target instead of loading each file separately.

Also the consolidation file will have a standard name which the infopackage can recognize and pick up rather than changing the infopackage to load multiple files with different names.

Continue reading →