You are on page 1of 8

[ BEST PRACTICE BI ]

mayato How-To Papers im Umfeld Business Intelligence und


Customer Relationship Management
Titel: Dynamische Filter im SAP BW Analyseprozessdesigner [APD]
Autor(en): Andr Bukowski
Themengebiet: SAP BW
Verffentlicht: Mrz 2008
Management Summary
Im vorliegenden How-To Paper wird anhand eines konkreten Beispielszenarios gezeigt, wie dynamische Filter im SAP
Analyseprozessdesigner (APD) angewandt werden knnen. Der APD, der lange Zeit ein Schattendasein innerhalb von
SAP BW fhrte und nur wenigen Experten bekannt war, erfreut sich in den letzten Jahren zunehmender Beliebtheit, da
er auf einfache Weise Entwicklern wie Datenanalysten flexiblen, explorativen Zugriff auf Daten innerhalb des SAP BW
erlaubt. Als eine funktionale Lcke innerhalb von SAP BW erwies sich dabei fr viele Zwecke das Fehlen einer Mglichkeit
der Parametrisierung von Analyseprozessen.
Insbesondere fr Filter schmerzte lange Zeit die fehlende Mglichkeit, diese dynamisch analog den Variablen im BEx
Analyzer zu belegen. Anwender waren so gezwungen, Analyseprozesse immer wieder manuell mit Filterwerten zu
belegen. Mit Support Package Stack 11 lieferte SAP in 2007 ein neues Feature aus, das es erlaubt, eben diese OLAP-
Variablen im Rahmen von APD-Filtern zu verwenden und so Analyseprozesse dynamisch zu nutzen. Das vorliegende
Paper soll zeigen, wo eine typische Einsatzmglichkeit solcher dynamischer Filter ist und wie die Umsetzung erfolgen
kann.
| HOW-TO PAPER
2
Voraussetzungen
Vorausgesetzt wird eine SAP NetWeaver 2004s BI-Installation (BW 7.0). Da die Mglichkeit zum Einsatz von
dynamischen Filtern von SAP im Rahmen eines Support Package ausgeliefert wurde, setzt das Szenario weiterhin voraus,
dass sich Ihr BW-System auf NetWeaver Support Package Stack 11 oder hher befindet.
Beispielszenario
In einer Bank werden Daten zu Kundenkonten und Kreditvertrgen aus verschiedenen Quellsystemen in SAP BW geladen
und dort in DataStore Objekten (DSOs) gespeichert. Die Vertragsdaten enthalten unter anderem fr jeden Vertrag
Information ber die Produktgruppe, zu der dieser Vertrag zu rechnen ist. Die Kennung dieser Produktgruppe und eine
Reihe zugehriger - als BW Stammdaten modellierter - Attribute sind im spteren Reporting wesentliche
Selektionskriterien und Aufrissmerkmale fr die Vertragsinformationen. Werden fachlich neue Produktgruppen
festgelegt, so sorgt ein organisatorischer Prozess dafr, dass die Produktgruppenattribute im SAP BW manuell gepflegt
werden.
Zur Sicherstellung der Datenqualitt mchte die Bank zustzlich periodisch Prfungen ber den zuletzt gelieferten
Datenbestand laufen lassen, die ermitteln, falls unbemerkt aus einem der Quellsysteme neue Produktgruppen
angeliefert wurden. Diese Prfung soll periodisch durch einen Analyseprozess erfolgen, der jeweils die Daten der letzten
30 Tage auf das Vorkommen von neuen Produktgruppen analysiert. Die Einschrnkung des Analysezeitraums erfolgt
ber einen Filter im Analyseprozess auf das Feld Stichtag. Damit der Filter nicht monatlich wieder manuell gesetzt
werden muss, soll ein dynamischer Filter ber eine OLAP-Variable zum Einsatz kommen.
Umsetzung
Schritt 1: Anlegen der Filtervariablen
Zunchst muss die spter im Analyseprozess verwendete Filtervariable im Query Designer angelegt werden. Dazu
startet man den BEx Query Designer und ffnet eine Query auf einem beliebigen InfoProvider, der das fragliche Merkmal
- im Beispiel das Merkmal Stichtag - enthlt. Das ffnen der Query ist lediglich notwendig, da der Wizard zum
Anlegen der Variable im Query Designer integriert ist. Ein tatschliches ndern der Query ist nicht erforderlich.
In der linken Baumstruktur whlt man nun das zu filternde Merkmal Stichtag. Durch das Klicken mit der rechten
Maustaste auf den Unterpunkt Merkmalswertvariablen und die Auswahl Neue Variable (vgl. Abbildung 1) ffnet sich
der Dialog zum Anlegen einer neuen Variablen im konkreten Fall Tagesdatum minus 30 Tage.
Abbildung 1: Anlegen der Variablen fr den dynamischen Filter im BEx Query Designer
Hier sind nun Name, Beschreibung und Verarbeitungsart der neuen Variablen festzulegen (vgl. Abbildung 2). Die
Belegung der Variablen erfolgt durch den noch anzulegenden bzw. zu erweiternden Customer-Exit (siehe Schritt 2).
3
Abbildung 2: SAP BW Variablen Wizard (Schritt 1)
[!] Weiterhin muss der Variablen ein Darstellungsbereich zugewiesen werden. Im vorliegenden Beispiel reprsentiert die
Variable einen Einzelwert (vgl. Abbildung 3). Wichtig ist in diesem Schritt, dass die Variable nicht als Eingabebereit
deklariert wird, da sie sonst nicht im dynamischen Filter des APD verwendet werden kann.
Abbildung 3: SAP BW Variablen Wizard (Schritt 2)
4
Beenden Sie das Anlegen der Variable durch Drcken von Exit im Wizard. Die Variable ist anschlieend unter dem
gewhlten Merkmal Stichtag, zu finden:
Abbildung 4: Neue Variable des Merkmals Key Date
Schritt2: Customer-Exit erstellen
Nachdem im ersten Schritt die Variable fr den dynamischen Filter angelegt wurde, muss nun das bentigte ABAP-
Coding hinterlegt werden, damit die Variable mit einem Wert gefllt wird. Dazu wechselt man in die
Projektverwaltung von SAP-Erweiterungen (Transaktion CMOD), whlt das Projekt ZBW_REP und lsst sich die
zugeordneten Komponenten anzeigen (Auswahl Komponenten ! Anzeigen - vgl. auch Abbildung 5).
Abbildung 5: Projektverwaltung von SAP-Erweiterungen
5
Abbildung 6: Customer-Exit in der Projektverwaltung
Passen Sie im Exit-Include ZXRSRU01 das ABAP-Coding fr die Variable wie folgt an:
DATA: L_S_RANGE TYPE RSR_S_RANGESID.
DATA: l_last30 LIKE sy-datum.
CASE I_VNAM.
* THIS IS THE CODING FOR OUR EXIT
WHEN 'ZLAST30'.
CLEAR L_S_RANGE.
L_LAST30 = sy-datum 30.
L_S_RANGE-LOW = L_LAST30.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND L_S_RANGE TO E_T_RANGE.
* OTHER VARIABLES MAY BE SPECIFIED IN THE SAME EXIT
* WHEN
ENDCASE.
Dieses fllt die Variable jeweils mit dem bentigten Wert im Beispiel wre es das Tagesdatum abzglich 30 Tage.
Schritt 3: Analyseprozess erstellen
Die Variable ist jetzt angelegt und wird zur Laufzeit korrekt mit dem gewnschten Tagesdatum gefllt. Nun kann der
eigentliche Analyseprozess erstellt werden (Transaktion RSANWB): Im Beispielszenario sollen zunchst Daten aus einem
DSO mit Vertragsdaten geladen werden jedoch nur Vertrge deren Stichtag innerhalb der letzten 30 Tage liegt. Hier
findet jetzt ein dynamischer Filter mit der erstellten Variable ZLAST30 fr die Vertragsdaten Anwendung. Durch diesen
Filter steht nur noch die zum Abgleich bentigte Teilmenge an Vertrgen zur Verfgung. Parallel werden alle in der
Stammdatentabelle gespeicherten Produktgruppen eingelesen und mittels eines Left Outer Join gegen die
angelieferten (und variabel nach Datum gefilterten) Produktgruppen in den Vertragsdaten gestellt. Mittels eines
weiteren - diesmal statischen - Filters werden nun diejenigen Produktgruppen aus dem Join selektiert, fr die in der
Stammdatentabelle noch keine Attribute gepflegt sind und bei denen es sich demnach um neue Produktgruppen
handelt. Die Liste dieser Produktgruppen kann nun auf verschiedene Weisen zur weiteren Verwendung bereit gestellt
werden, z.B. durch Schreiben einer Datei oder eines DSO oder durch Erstellen eines Fehlerprotokolls.
Der Analyseprozess wrde sich fr das Beispielszenario nun wie folgt darstellen:
6
Abbildung 7: Analyseprozess Filterung und Join
Schritt 4: Dynamischen Filter konfigurieren
Im Eigenschaften-Men des Filters, welches man per Doppelklick auf das betreffende Filter-Icon im APD erreicht, ist
zunchst die Feldauswahl zu treffen (vgl. Abbildung 8). Bei den verfgbaren Feldern (rechts) muss hier die
Produktgruppe (Verwendung im Join) und der Stichtag (Filterkriterium) auswhlbar sein.
Sollte dies nicht der Fall sein, ist die Feldauswahl des DSO im APD anzupassen. In der Konfiguration des DSO im APD
mssen alle spter verwendeten Felder ausgewhlt werden. Da der dynamische Filter auf das Merkmal Stichtag
wirken soll, ist er auerdem von den verfgbaren Feldern (rechts) auf die linke Seite (Zu filternde Felder) zu
bernehmen.
Abbildung 8: Eigenschaften des Filters Feldauswahl
7
Nachdem die Feldauswahl abgeschlossen ist, muss nun die Filterbedingung fr den Stichtag angepasst werden. Dazu
wechselt man auf den Reiter Filterbedingungen (vgl. Abbildung 9).
Abbildung 9: Filterbedingungen
Da im Beispiel nur Vertrge selektiert werden sollen, die ein festgelegtes Stichtagsdatum berschreiten, ist in den
Filterbedingungen nur das Feld Selektion von relevant. Mit der vor dem Feld liegenden Schaltflche (roter Pfeil) kann
nun die zuvor definierte Variable ausgewhlt werden. Dazu wird in der sich ffnenden Maske (vgl. Abbildung 10) die
Variable ZLAST30 ausgewhlt und besttigt.
1
Abbildung 10: Auswahl der Variablen fr den Filter
Nun knnen auch die Filterbedingungen besttigt werden und der dynamische Filter ist somit vollstndig konfiguriert.
Fhrt man den Analyseprozess aus, so wird automatisch ber die Variable der Filter mit dem Zeitraum der letzten 30

1
Falls Ihre Variable nicht in der Auswahl erscheint, so beachten Sie bitte OSS Hinweis 1077019.
8
Tage belegt. Dies kann verifiziert werden anhand des Laufprotokolls im Monitor des Analyseprozesses (vgl. Abbildung
11).
Abbildung 11: Zugriff auf den Monitor des Analyseprozesses
Die durch die Kombination von dynamischen und statischen Filtern des Analyseprozesses identifizierten neuen
Produktgruppen der letzten 30 Tage knnen nun als Ergebnis beispielsweise ber die Integration in Prozessketten per
Mail versendet werden.
Ergnzende Hinweise
Fr das obige Beispielszenario ist als Spezialfall alternativ ein vereinfachter Ansatz mglich durch Verwendung einer
existierenden Variable fr das Tagesdatum und Setzen des Offset (siehe Abbildung 10) auf -30. Die in diesem
Dokument vorgestellte Lsung ist grundstzlich flexibler und deckt auch weitergehende Anforderungen ab. So knnte
innerhalb des Customer Exit beispielsweise auch das Datum der letzten Prfung aus einer Tabelle ausgelesen oder auch
ein Zeitraum bezogen auf Anzahl Arbeitstage ermittelt werden. Denkbar ist auch die benutzerspezifische Befllung von
Variablen auf der Basis von Customizing- oder Benutzerdaten.
Checkliste
" Nicht eingabebereite Variable fr dynamischen Filter im BEx Query Designer anlegen
" ABAP-Coding erstellen, welches Variable befllt (Transaktion CMOD)
" Analyseprozess definieren (Transaktion RSANWB)
" Dynamischen Filter im Analyseprozess mit Variablen konfigurieren
" Filter im Analyseprozess anhand von Zwischenergebnissen und Protokolleintrgen prfen
" Analyseprozess periodisch einplanen und Prozess zur Behandlung von neuen Produktgruppen etablieren.
Weiterfhrende Literatur
SAP Onlinehilfe zur Verwendung von Variablen im APD
Weitere Verffentlichungen von mayato