You are on page 1of 19

Implementing Dynamic Filters in InfoPackage: Two Scenarios

Applies to:
BI/BW and ABAP Developers working in SAP BW 3.x, SAP BI 7.x.For more information, visit the EDW homepage..

Summary
This article encompasses the usage of Infopackage routines that can be implemented to put dynamic filters for extraction purposes. The nature of the filter can vary based on type of Data (i.e. Master Data Hierarchy or Transactional). Two types of filters will be demonstrated here with sample codes. Author: Company: Akashdeep Banerjee IBM India Pvt. Ltd.

Created on: 28 September 2010

Author Bio
The author is working in SAP BI for a period of 4 years. He has worked in both Implementation & Support projects with his current as well as previous organization (Pricewaterhouse Coopers). Besides BI, he has knowledge on BI security and basic SAP security.

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 1

Implementing Dynamic Filters in InfoPackage: Two Scenarios

Table of Contents
Business Scenario .............................................................................................................................................. 3 Scenario 1: Automatically selecting the latest available hierarchy from source system & loading it in BI ..... 3
Step-by-Step Procedure .............................................................................................................................................. 3

Scenario 2: Dynamic Filter on Infopackage for Transactional Data ............................................................. 10


Step-by-Step Procedure ............................................................................................................................................ 11

Related Content ................................................................................................................................................ 18 Disclaimer and Liability Notice .......................................................................................................................... 19

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 2

Implementing Dynamic Filters in InfoPackage: Two Scenarios

Business Scenario
Many-a-time, business has requirement to restrict the volume of data inflow from source system to save space in database to accelerate DB time in reporting. Another scenario is to have updated values only whenever they are launched in the source system (like latest hierarchies or data for the latest posting dates). Here two such scenarios are mentioned: A number of time-based or name-based hierarchies exist in source system. But requirement is to bring in the latest available hierarchy to the BI system, ignoring any dummy hierarchy created as a test object for the future periods. Restrict transactional records while those are flowing into BI system (like to restrict the infopackage with the some conditional values in Info Object Master Data). We are calling it dynamic as the number of Master Data entries may get changed in the next month or anytime in the future.

Scenario 1: Automatically selecting the latest available hierarchy from source system & loading it in BI Lets us assume that we have many hierarchies created in the source system to load the business content Info Object Consolidation Unit (0CS_UNIT). They are named as BPBU, BPCB, BPS2 etc and each of them is time-dependent i.e. they get changed monthly. One can see all of them in the infopackage view by clicking Available hierarchies from OLTP. Then we need to select the latest hierarchy by scrolling & searching manually (radio button). After that we run the infopackage.

Imagine the degree of manual intervention when there are hierarchies for last 5 years i.e. say 12 types of hierarchies each one having 60 monthly hierarchies for last 60 months (12 years). Requirement is to load these hierarchies everyday and to start loading the new hierarchy for each one of them automatically from the day they are created in the source system. In this way, no manual intervention or delay is expected. Also, no one supporting the BI system needs to know when the new hierarchy was created in source system. Step-by-Step Procedure This describes how to load one hierarchy (BPBU) dynamically. For other hierarchies, one needs to repeat it within a different infopackages i.e. if 6 different hierarchies are needed to be loaded, we need to create 6 infopackages. 1. Create an Infopackage under Hierarchy Datasource & go to tab Hierarchy Selection & press Dynamic Hierarchy Selections.

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 3

Implementing Dynamic Filters in InfoPackage: Two Scenarios

2. Select option Determine Using Routine & click

3. Give a name & click Editor

4. This opens up the ABAP Editor with some pre-loaded code.

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 4

Implementing Dynamic Filters in InfoPackage: Two Scenarios

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 5

Implementing Dynamic Filters in InfoPackage: Two Scenarios

5. Change the editable portion like below

Code sample with explanation in Red (not to be written in code):


DATA : i_hier_vers TYPE TABLE OF rshiertrsf. * p_s_sel_hier = l_s_presel_hier. loop at l_t_all_hier. IF l_t_all_hier-hienm = 'BPBU' (This condition gets changed in different Infopackages) AND l_t_all_hier-version = 'GRA' (This version may not relevant everytime) AND l_t_all_hier-datefrom LE sy-datum. APPEND l_t_all_hier TO i_hier_vers. (only BPBU hier leaving any future-dated one) ENDIF. *.... endloop. SORT i_hier_vers DESCENDING BY dateto. (latest hier on the top) READ TABLE i_hier_vers INDEX 1 INTO p_s_sel_hier. (top-most one selected for loading) clear p_subrc.

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 6

Implementing Dynamic Filters in InfoPackage: Two Scenarios

6. Check the syntax with

& save the code

. Hit enter to the following window :

7. The button is now verified for the code

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 7

Implementing Dynamic Filters in InfoPackage: Two Scenarios

8. Schedule the infopackage normally & run. In the monitor screen it shows which hierarchy got loaded

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 8

Implementing Dynamic Filters in InfoPackage: Two Scenarios

Notes: For automation, we need to schedule it in a process chain & need as many infopackages as the number of different hierarchy names. A process named Save Hierarchy (3.x) may be needed after Infopackage in the Process Chain (sometimes loaded hierarchy needs this to get activated)

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 9

Implementing Dynamic Filters in InfoPackage: Two Scenarios

Scenario 2: Dynamic Filter on Infopackage for Transactional Data Lets now take the situation where we are having a transactional datasource to load a DSO. The loading frequency and the data volume may be high and also customer only needs the data for the Consolidation Units which are appearing in the master data table with Country US. Master Data for Consolidation Unit

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 10

Implementing Dynamic Filters in InfoPackage: Two Scenarios

Step-by-Step Procedure 1. Create an infopackage on the datasource. Go-to Data Selection tab. Identify Consolidation Unit.

2. Hit F4 help & select 6 (ABAP Routine)

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 11

Implementing Dynamic Filters in InfoPackage: Two Scenarios

3. Click on Detail button

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 12

Implementing Dynamic Filters in InfoPackage: Two Scenarios

4. An automatically generated code will appear. Change the code as below & run a syntax check with button

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 13

Implementing Dynamic Filters in InfoPackage: Two Scenarios

Code sample with explanation in Red (not to be written in code):


DATA: l_idx LIKE sy-tabix, cons_unit TYPE char18, it_cu TYPE STANDARD TABLE OF /bi0/pcs_unit, wa_cu LIKE LINE OF it_cu, g_msg TYPE string. READ TABLE l_t_range WITH KEY fieldname = 'CS_UNIT'. CLEAR l_t_range[]. SELECT * FROM /bi0/pcs_unit INTO TABLE it_cu (Cons Units for US from Master Data) WHERE country = 'US'. IF sy-subrc = 0. LOOP AT it_cu INTO wa_cu. l_t_range-sign = 'I'. l_t_range-option = 'EQ'. l_t_range-low = wa_cu-cs_unit. APPEND l_t_range. (Populating filter list) ENDLOOP. ELSE. g_msg = 'No US Cons Unit'. (Error raised for no US Cons Units-See Notes below) MESSAGE g_msg TYPE 'E'. ENDIF. l_idx = sy-tabix. *.... *modify l_t_range index l_idx. p_subrc = 0.

5. Save the code & get back to the Infopackage screen. Test the outcome of the code via Test Routine button as shown below in Red circle

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 14

Implementing Dynamic Filters in InfoPackage: Two Scenarios

6. The outcome

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 15

Implementing Dynamic Filters in InfoPackage: Two Scenarios

7. Go-to Extras Restrict No of Selection Values, uncheck the following screen & save.

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 16

Implementing Dynamic Filters in InfoPackage: Two Scenarios

8. Run the infopackage & re-validate the filter & incoming records

Note: Always raise an Error message in the Infopackage code to terminate processing for undesired condition. Else, filter logic will be ignored e.g. in the example above, if no US consolidation unit is found, system will load data for all Consolidation Units. Advantage of this code is this can be edited even in Productive system if Infopackages are set as Everything Changeable in Object Changeability. One can even introduce file upload/download function modules inside the code to load filter values from Application server/local workstation.

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 17

Implementing Dynamic Filters in InfoPackage: Two Scenarios

Related Content
http://forums.sdn.sap.com/message.jspa?messageID=6710556 http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a05ac9fa-f44c-2c10-dbb8ef54c102707c?QuickLink=index&overridelayout=true www.bi-expertonline.com/downloads/InfoPackage%20Selection%20Condition.doc

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 18

Implementing Dynamic Filters in InfoPackage: Two Scenarios

Disclaimer and Liability Notice


This document may discuss sample coding or other information that does not include SAP official interfaces and therefore is not supported by SAP. Changes made based on this information are not supported and can be overwritten during an upgrade. SAP will not be held liable for any damages caused by using or misusing the information, code or methods suggested in this document, and anyone using these methods does so at his/her own risk. SAP offers no guarantees and assumes no responsibility or liability of any type with respect to the content of this technical article or code sample, including any liability resulting from incompatibility between the content within this document and the materials and services offered by SAP. You agree that you will not hold, or seek to hold, SAP responsible or liable with respect to the content of this document.

SAP COMMUNITY NETWORK 2010 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com 19

You might also like