Skip to Content
Author's profile photo Former Member

BPC 7.5 : Transactional data retraction using a custom extractor

Applies to:

SAP BPC 7.5 / SAP BW 7.3x 



This document is a step by step guide to implement a BPC transactional data retraction solution using a custom extractor.


Author(s)          : Lijo John

Company         : Infosys Limited

Created on       : 09 August 2013


Author Bio:


Lijo John works as Senior SAP Consultant with Infosys Limited. He has 7 years of experience in IT Consulting Industry and during this time he has worked majorly on SAP NetWeaver BW, Business Objects and BPC. He has worked on multiple implementation projects.


Table of Contents



The standard approach for retracting transactional data from BPC to BW is by implementing the transactional data retraction BAdI provided by SAP. In this document we look into an alternate approach of data retraction using a function module based custom extractor in BW. Though the standard retraction BAdI based approach works very well and is recommended in most situations, the below solution can come handy in certain scenarios where we need the more control on the data retraction and there are lot of dependencies with other BW loads


  • Ability to retract huge data volumes.
  • Ability to setup the retraction job as a batch job via a  BW process chain.
  • More flexibility in handling dependencies of BPC data retraction with other BW jobs/process.
  • No BPC login required to run the package or monitor the package runs.

Step by step implementation guide

Defining the extract structure for the custom extractor



Create an extract structure mirroring the structure of the BPC application from which you need to retract data to BW. Please ensure the following

  • The component names of the structure should be exactly same as the DIMENSION names in the BPC Application
  • The data type and length of the components should be compatible with the DIMENSIONS in the BPC Application
  • You are free to choose the short descriptions of the components in the extract structure


In below example our BPC application has eleven DIMENSIONS and we have created an extract structure to exactly mirror this.


BPC Application

Extract struct 1.jpg




Extract structure created (transaction SE12)

Extract struct 2.jpg



Defining the function module for the custom extractor

Go to transaction code SE80 and copy the function group RSAX to the new function group say Z_RSAX.

Custom extractor 1.png

Copy the function module RSAX_BIW_GET_DATA_SIMPLE  to ZBPC_TRANS_RETRACTION. Ensure that you copy and activate all the related objects.


Func Mod 2.jpg

Edit the TABLES parameter of the function module and change it to the extract structure that you created. Activate the function module

Func Mod 3.jpg


Copy paste source code in the attached document (Transactional data Retraction Fn Module Code.txt) into the function module.

Ensure that you change the APPSET name, APPLICATION name and the DATASOURCE NAME as per your requirements.

Activate the function module.

Creating the data source

Go to transaction code RSO2 and create a data source as show below.

Mention data source name and click create

Data Source 1.jpg


Provide the details like application component, descriptions, function module and extract structure and click SAVE

Data Source 2.jpg

Mention the dimensions that needs to be available for selection option and the ones that needs to be hidden.

Click save.



Data Source 3.jpg

Testing the data source

  1. Go to transaction RSA3 and provide the data source name.
  2. Provide the selections for which data needs to be extracted.
  3. Extract data using the extract button.
  4. Click the ALV grid button to see the data extracted.

1.  Test 1.jpg

Making use of the customer extractor


·      The custom extractor that we just created can be used to load data into a DSO or cube in BW.

Process chains can then be setup to automate these loads and to schedule it as per requirements.

data flow 1.jpg

Assigned tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Daniel N
      Daniel N

      Hello Lijo - Thanks for the posting. It's very useful.

      You said that this Alternative way using function module can handle huge data, I'm wondering whether you've got an issue handle huge data via Badi. If yes, how much data (how many millions data you're dealing) that you've got an issue when you're using BADI?

      Did you find any disadvantages or difficulty to use function module compare to Badi usage?

      How's scenario you did when you retract data to ECC, do you dump the data first to Customised table in ECC, or you straight do the posting.

      Kindly please ask your thoughts, and appreciate it much,



      Daniel N

      Author's profile photo Former Member
      Former Member

      Hi John,


      Cant seem to find the attachment?