SAP-Querys – Datenanalyse einfach.

Vor einiger Zeit hatte ich die Möglichkeit vorgestellt, wie man mit dem SAP Quickviewer schnell und effektiv Auswertung erstellt – SAP SQVI – diese Tipps solltest du dir nicht entgehen lassen. Doch neben dem Quickviewer bietet SAP ein viel mächtigeres Werkzeug an, mit dem du umfangreiche Auswertung erstellen kannst: SAP bzw. ABAP Query. Im folgenden will ich einen ersten Einstieg in dieses Thema vorstellen.

 

A. Wichtige Elemente einer SAP Query

Bevor wir mit der Erstellung der Query anfangen, sollten dir folgende Elemente der SAP Querys bekannt sein:

 

A.1 Das Info-Set – die Datenquelle

Info-Sets bilden die Grundlage von Querys. Mittels der Info-Sets wird definiert, aus welchen Quellen die Daten für die Auswertung ermittelt werden: Im einfachsten Fall ist dies eine Tabelle – weitere Datenquellen können Tabellen-Joins, logische Datenbanken oder Programme sein. Info-Sets werden einem oder mehreren Benutzergruppen zugeordnet – damit kommen wir zum nächsten Punkt

 

A.2 Die Benutzergruppe – wer darf eigentlich was

Mit Benutzergruppen organisiert du die User. D.h. mit der Zuordnung von Usern zu Benutzergruppen und der anschließenden Zuordnung von Info-Set und Querys zu Benutzergruppen, legst du fest, welche User welche Info-Sets und Query benutzen oder ändern können.

 

A.3 Die Query – die konkrete Auswertung

Nachdem du deine Info-Set erstellt hast und diese einer Benutzergruppe zugeordnet wurde, kannst du basierend auf dem Info-Set die Query bauen. Hier legst du fest, mit welchen Feldern du selektieren willst, und welche Felder als Ergebnis dargestellt werden sollen.

 

A.4 Der Arbeitsbereich – Transport oder nicht Transport, das ist hier die Frage.

Zum Schluss sollte dir auch das Thema Arbeitsbereich bekannt sein. Alle drei bisher erwähnten Elemente von Query können in zwei 2 Arbeitsbereichen anlegt werden: Standardbereich / Globaler Bereich.

# Wenn mit im globalen Bereich arbeitest, dann musst du dies zunächst im Entwicklungssystem machen. Deine Info-Sets, Querys und Benutzergruppen werden hierbei per Transport in die weiteren Systeme verteilt.

# Hingegen kannst du im Standardbereich deine Einstellung direkt im jeweiligen System (auch produktiv) durchführen, ohne dass du sie per Transportauftrag ins nächste System überführen musst.

 

B. Schritt für Schritt den ersten Query anlegen

Im folgende erstellen wir Schritt für Schritt unseren ersten Query. Als Anwendungsfall wollen wir einfach Lieferköpfe mit den Lieferpositionsdaten zusammen auswerten und eine Liste mit Materialien pro Versandstellen im einem bestimmten Zeitraum darstellen.

 

B.1 Bestimmung des Arbeitsbereiches

Da wir unseren Query nicht in weitere Systeme transportieren und nur im aktuellen System nutzen wollen, legen wir für uns fest, dass wir alle folgenden Arbeitsschritte im Standardbereich durchführen.

 

B.2 Anlegen der Benutzergruppe – Transaktion: SQ03

In diesem Schritt legen wir zunächst eine Benutzergruppe an. Natürlich kannst du auch eine vorhandene Benutzergruppe nutzen, und in den meisten Fällen wird dies auch der Fall sein:

# Ruf die Transaktion SQ03 – „Benutzergruppen: Einstieg“ auf

# Wie oben erwähnt wollen wir im Standardbereich arbeiten, daher musst du zunächst den Arbeitsbereich prüfen und ggf. ändern:

## Im oberen Bereich des Einstiegsbilds der SQ03 ist der Arbeitsbereich dargestellt; wenn hier Standardbereich steht, ist alles OK. Wenn bei dir globaler Bereich steht, solltest du dies wie folgt ändern:

## Oben in der Menüleiste: Umfeld -> Arbeitsbereiche -> Standardbereich anklicken und Enter.

# So … nachdem wir den Arbeitsbereich geändert haben können unsere Benutzergruppe anlegen: Einfach in das Feld Benutzergruppe einen Bezeichnung für die Bentzergruppe eingeben und auf den Button Anlegen klicken.

# Im nächsten Pop-Up-Fenster noch einen Text zur Benutzergruppe angeben und auf Sichern klicken – fertig.

 

 

# Im letzten Schritte zu Benutzergruppen kannst du verschiedene Benutzer der Benutzergruppe zuordnen; so stellst du sicher, dass nur diese User die Querys und Info-Sets nutzen können.

## Nach du die Benutzergruppe angelegt hast, klicke auf den Button „Benutzer und InfoSets zuordnen“

## Hier kannst du die einzelnen User eingeben, die der Benutzergruppe zugeordnet sein sollen; weiterhin kannst du auch bestimmen, ob die einzelnen Benutzer Änderungsberechtigung für die Querys dieser Benutzergruppe bekommen sollen.

 

* Abschließend eine kurze Anmerkung zu Benutzergruppen und Berechtigung: Meine Erfahrung ist, dass vielfach die Zuordnung von Usern Benutzergruppen und die Vergabe der Änderungsberechtigung – wie oben im Screenshot dargestellt – gar nicht nötig. Da die User, mit denen ich arbeite, schon sehr umfangreiche Berechtigungen besitzen, und auch ohne die Zuordnung jedes Infoset und jede Query ändern können. Wenn die Benutzung der Querys für alles User freigegeben werden soll, müsste man sich im ersten Schritt ein sinnvolles Berechtigungskonzept  implementieren und dies umfangreich testen.

 

B.3 Anlegen des Info-Sets – SQ02

In diesem Schritt legen wir das Info-Sets an und ordnen es einer Benutzergruppe zu. In unserem Beispiel wollen wir als Datenquelle einen Join zwischen den Tabellen LIKP und LIPS mit allen Felder der Tabelle nutzen:

 

# Ruf die Transaktion SQ02 auf und prüfe, ob du dich Standardbereich befindest; falls nicht, ändere ihn: Menüleiste: Umfeld -> Arbeitsbereiche -> Standardbereich

# Gebe jetzt im Feld InfoSet einen sinnvollen Name ein (ich werde LIKP_LIPS verwenden) und klicke auf „Anlegen“

# Im nächsten Pop-Fenster musst du eine Bezeichnung für das InfoSet angeben, die erste Tabelle für den Join benennen und mit Enter bestätigen

 

# Da wir als Datenquelle einen Tabellen-Join nutzen wollen, wirst du im nächsten Bild aufgefordert, die Join-Beziehung aufzubauen:

## Klicke hier auf das dritte Icon von links „Tabelle einfügen“ und gib die Tabelle LIPS ein und bestätige mit Enter

## Jetzt wird die Tabelle LIPS in das Join-Bild aufgenommen und die Join-Verbindung (über VBELN) vorgeschlagen – dein Screen sollte wie folgt aussehen:

 

# Hier kannst du nun das Join-Bild verlassen, in dem du auf den Button „InfoSet“ klickst.

# Im nächsten Bild wirst du nach der Feldbelegung gefragt, d.h. welche Felder der beiden Tabellen sollen im Info-Set verfügbar sein. Klicke hier auf „alle Tabellenfelder aufnehmen“ und bestätige deine Eingabe mit Enter.

# Im folgenden Bild musst noch das InfoSet generieren und kannst anschl. einfach zurück gehen zum Ursprungsbild der SQ02.

# Im letzten Schritt musst du das InfoSet einer Benutzergruppe zuordnen: Einfach auf den Button „Zuordnung zu Rollen/Benutzergruppen“ klicken und die Benutzergruppen anklicken, denen das InfoSet zugeordnet werden soll -> Sichern und Fertig.

 

B.4 Anlegen des Querys.

Im letzten Schritt erstellen wir nun die konkrete Query, d.h. wir legen fest welcher Felder für Selektion bereitstehen und wie die Ergebnisse dargestellt werden sollen:

# Ruf die Transaktion SQ01 auf und prüfe den Arbeitsbereich – ggf. über Menüleiste -> Arbeitsbereich ändern.

# Anschließend musst du die Benutzergruppe auswählen, in der du die Query anlegen willst: Das erste Icon (links) in der Icon-Leiste anklicken und die eine Benutzergruppe auswählen. Ich hatte hier vorher die Benutzergruppe „tdf_all“ angelegt.

# Jetzt kannst du in das Feld Query deinen Querynamen eingeben und auf das „Anlegen“ Button klicken

# Im folgenden Pop-Up-Fenster werden dir alle InfoSets dargestellt, die der aktuellen Benutzergruppe zugeordnet sind – hier wählt du das InfoSet auswählen, auf dessen Basis du deine Query erstellen willst.

 

# Anschließend gibst du im Folgebild eine Bezeichnung für deinen Query ein und klickst auf den Button „Grundliste“

# Die Grundliste des Querys ist aus 3 Teilfenstern aufgebaut:

## Das linke obere Fenster enthält die Datenfelder der Datenquellen; in unserem Beispiel die Felder die beiden Tabellen LIKP und LIPS.

## Im linken unteren Fenster werden Kommentare und Hinweise dargestellt.

## Im rechten Fenster kannst du das Layout der Ergebnisliste anpassen.

# Uns interessiert zunächst nur das linke obere Fenster mit den Datenfeldern. Hier legen wir fest, mit welchen Feldern wir selektieren und welche Felder als Ergebnis dargestellt werden sollen:

## Ziehe zunächst das linke obere Fenster etwas größer

## Anschließend klappst du die einzelnen Tabellen auf, um die Felder dargestellt zu bekommen – ab hier ist es ganz einfach:

## Bei den Feldern, die in der Ergebnisliste dargestellt werden sollen, hakst du die Spalte „Listenfeld“ an – in meinem Beispiel sind dies: LIKP-VBELN, LIKP-VSTEL und LIPS-MATNR

## Bei den Feldern, mit denen du selektieren willst, hakst du die Spalte „Selektionsfelder“ an – im Beispiel: LIKP-ERDAT, LIKP-VSTEL und LIKP-LFART

 

 

# Ab hier sind wir auch fertig: Du kannst hier dein Query sichern, zurück zum Einstiegsbild der Transaktion SQ01 gehen und deine Query ausführen (einfach per F8) – mein Selektions- und Ergebnisbild sieht wie folgt aus:

 

 

C. Zum Schluss noch …

Wie ich zu Beginn erwähnt habe, sind SAP Querys ein mächtiges Tool, mit denen man umfangreiche Auswertung erstellen. Hier habe ich aber bewusst nur einen ersten Einstieg in das Thema vorgestellt. Ich habe die Erfahrung gemacht, dass man sich anfangs mit dem Thema schwer tut, wenn man die Zusammenhänge zwischen Arbeitsbereich, Benutzergruppe, InfoSet und Query nicht genau durchdrungen hat. In zukünftigen Beiträgen werde ich noch weitere Detail von SAP Querys eingehen. Für ungeduldige Leser, die nicht warten wollen, empfehle ich Andreas Beiträge zu SAP Queries, die sehr gut und sehr umfangreich sind: Grundlagen Kurzeinführung und Handbuch SAP Query

 

cu, Isa.

1 Kommentar

  1. Hallo Isa,

    vielen Dank für deinen gelungenen Einstieg in das Thema SAP Query. Schon der Beitrag zum Thema QuickView hatte mir gut gefallen und das Beispiel zur Lieferantenanlyse könnte ich mir auch als Thema für unsere Beschaffung/Einkauf gut vorstellen.

    Ich habe mich auch sehr über deine Empfehlung meines Handbuch zu SAP Query gefreut und verlinke dort auch gerne auf deine beiden Artikel :-).

    Als kleine Anmerkung zum Arbeitsbereich hatte ich gerade noch einen wichtigen Punkt bei mir ergänzt:

    Der globale Arbeitsbereich ist nicht nur an das Transportsystem angeschlossen sondern hat noch einen weiteren (positiven) Effekt. Sämtliche Query Objekte sind hier mandantenunabhängig und gelten damit systemweit. Gerade bei einen Mehrmandantensystem sollte dieses immer ebenfalls im Blick gehalten werden.

    Was das Berechtigungskonzept (Query pflegen, Query ausführen) anbelangt stimme ich mit dir darin überein, dass dieses ein wichtiger Punkt ist, der vorab zu klären ist.

    Aber Berechtigungen und Berichtswesen sind ohnehin ein Thema, dass tatsächlich individuell sehr unterschiedlich ausgeprägt ist. In Zusammenarbeit mit der SAP Basis hatten wir hier auch eine Weile gebraucht um ein entsprechendes abgestimmtes Vorgehen bzgl. der Entwicklung und der Ausführung von SAP Query umzusetzen. Aber gerade bei einen solchen Thema zeigt es sich auch, dass es gut ist, wenn man über die eigenen Modulgrenzen hinweg mit den Fachabteilungen redet.

    Gerade deswegen bin ich auch schon neugierig auf künftige Beiträge von dir und freue mich darauf hier ebenfalls neues lernen zu können.

    Ich wünsche dir noch einen schönen Sonntag.

    Viele Grüße
    Andreas

Bitte hinterlasse ein kurzes Feedback, Isa.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.