Ich liebe die SQVI. Gerade wenn man schnell eine kleine Auswertung braucht oder ein Muster bei fehlerhaften Belegen oder Stammdaten ermitteln will, ist die SQVI für mich die erste Wahl. Natürlich kann man SAP Querys(SQ01/SQ02) bzw. einen kleinen ABAP Report nutzen, aber beide Ansätze bieten nicht den Vorteil der SQVI: Einfach, schnell und unkompliziert.
Wofür braucht man die SQVI?
Mit der SQVI können basierend auf SAP-Tabellen schnell und effektiv Reports generiert werden. Im Folgenden ein kleines Beispiel:
# Du brauchst eine Liste von Positionstypengruppe der Materialien aller Retouren-Aufträge in einem bestimmten Zeitraum. Also im Einzelnen:
## Auftragsdatum – VBAK-AUDAT mit Selektionsdatum
## Retourenauftrag – VBAK-VBELN mit AUART=RE
## Material zum Auftrag – VABP-MATNR
## Positionstypengruppe – MARA-MTPOS_MARA
# Etwas technischer dargestellt sieht das dann so aus:
## VBAK-AUDAT: Ausgabe und Selektion
## VBAK-AUART: Ausgabe und Selektion
## VBAK-VBELN: Ausgabe
## VBAP-MATNR: Ausgabe
## MARA-MARA_MTPOS: Ausgabe
Basierend auf diesen Überlegungen kannst du jetzt den Quickview erstellen:
#1 Transaktion SQVI aufrufen, QuickView Name eingeben (bspw. RET_POS_GR) und auf den Button Anlegen klicken.
#2 Im nächsten Screen Titel („Retourenaufträge mit Positionstypengruppe“) und Datenquelle (Tabellen-Join) eingeben und mit Enter bestätigen:
#3 Jetzt die Datenquellen für den Quickview auswählen; in unserem Fall die Tabelle VBAK, VBAP und MARA und diese per Join verbinden. Hierzu auf das Icon „Tabelle einfügen klicken“ (2. Von links in der Icon-Leiste) und die Tabellennamen eingeben – diesen Schritt für die 3 Tabellen wiederholen
## Die Join-Verbindung werden normalerweise vom System automatische generiert. Wenn nötig, kann diese gelöscht (rechte Maustaste auf Verbindungslinie und löschen) und manuell per Drag&Drop neuangelegt werden.
## Anschließend mit dem Zurück-Pfeil (F3) in der Navigationsleiste zum Feldauswahl-Screen springen.
#4 In diesem Schritt zunächst das linke Fenster Datenfelder groß ziehen, damit man bequem arbeiten kann. Hier die Selektions- und Anzeigefelder gemäß den Vorüberlegungen (s.o.) zusammenstellen. Hierzu das Feld, das ausgegeben werden soll, in der Spalte Listenfelder markieren. Und Felder, die selektiert werden, in der Spalte Selektionsfelder markieren.
#5 Jetzt den Quickview speichern und ausführen
## Selektion:
## Ergebnis:
3 Tipps zur Arbeit mit Quickviews
Wie oben dargestellt kann man SAP-Quickviews einfach aufbauen und schnell Ergebnisse erzielen. Im Folgenden ein paar hilfreiche Tipps zu Quickviews:
#1 Left-Outer-Join – auch leere Daten anzeigen
Ein Join wird immer aus mind. 2 Tabellen aufgebaut (na klar!) – die erste Tabelle ist Basis-Tabelle und die 2. Tabelle die Folge-Tabelle. Egal wie groß dein Join ist, d.h. über wie viele Tabellen er sich erstreckt, steht jede einzelne Verknüpfungsstelle (Join) aus einer Basis-Tabelle (links) und einer Folge-Tabelle (rechts). Jetzt kann es passieren, dass gemäß Selektion die Basis-Tabelle ein Ergebnis liefert, aber der Quickview trotzdem nichts anzeigt. Das ist immer dann der Fall, wenn die Folge-Tabelle gemäß Joinbedingung kein Ergebnis bietet.
Ein einfaches Beispiel: Du hast ein Join zwischen MARA und MARD aufgebaut. Jetzt selektierst du per MARA-MATNR 10 Materialien, aber es werden nur 7 Materialien angezeigt. D.h. für die fehlenden 3 Materialien gibt es keinen MARD-Eintrag.
Dieses Verhalten kann man einfach umgehen, indem man in der Join-Definition auf die Verknüpfung mit der rechten Maus klickt und die Option „Left-Outer-Join“ wählt. Jetzt werden bezogen auf unser MARA / MARD Beispiel auch die MARA-Sätze angezeigt zu denen es kein MARD-Eintrag gibt. Diese Option ist auch gut geeignet um fehlende Datensätze zu ermitteln.
#2 Alias Tabellen – Tabellen doppelt nutzen
Beim Aufbau von Join-Bedingungen kann man eine Tabelle nur einmal nutzen. Wenn man bspw. den Join MARA-MATNR*-*MVKE-PMATN*-*MARA-MATNR aufbauen will, um MARA-Daten zwischen Material und seinem Preismaterial zu vergleichen (bspw. Pflegestatus) funktioniert dies zunächst nicht.
Diese Beschränkung kann man umgehen, indem man zunächst eine Alias-Tabelle definiert (Icon-Leiste in der Join-Definition: Viertes Icon von links) und die Alias-Tabelle, wie eine „normale“ Tabelle einfügt.
#3 Per SE38 und SE93 – Quickview für Kollegen nutzbar machen
Ein Nachteil von Quickview gegenüber SAP Querys (SQ01) ist, dass Quickviews anderen Nutzer nicht zur Verfügung stehen. Mit folgenden 2 Tricks können auch Kollegen deine Quickviews benutzen:
#A. Aufruf per SE38:
## Ruf Tx. SQVI auf und markiere den Quickview, den du teilen willst.
## Jetzt über die Menüleiste: Quickview -> Weitere Funktionen -> Reportname anzeigen.
## Hier wird dir ein relativ kryptischer Reportname angezeigt; diesen kopieren und an die Kollegen geben.
## Diese können mit den Reportname per SE38 / SA38 den Quickview auch ausführen.
#B. Eine Transaktion anlegen:
Wenn du die Berechtigung hast, kannst du basierend auf den Report des Quickviews direkt einen Transaktion anlegen.
## Hierzu SE93 aufrufen, eine Transaktion vorgeben (bspw. ZZZ_MARA) und auf anlegen klicken.
## Jetzt einen Kurztext für die Transaktion vorgeben und die Option „Programm und Selektionsbild“ auswählen und Enter.
## Im nächsten Bild ins Feld Programm den Report des Quickviews eingeben und Selektionsbild 1000 auswählen und sichern.
Hallo Isa,
beim Erstellen einer Transaktion aus einem Query würde ich von der Verwendung des Reportnamen abraten. Das kann zu Problemen nach Systemkopien oder Upgrades führen, weil die Programme jeweils im System generiert werden müssen.
Eine elegantere Methode ist die Verwendung des Programms SAP_QUERY_CALL gemäß Hinweis 393160 in einer Reporttransaktion, die für Generierung und Aufruf von SAP Query sorgt. Benutzergruppe, Query und ggf. Variante kann man dann als Parameter in der Transaktion hinterlegen.
Viele Grüße
Rico
Hallo Isa,
SQVI benutze ich auch sehr gerne, weil man sich auch auf einfache Weise ein Stück des Datenmodells herausziehen kann. Einfach die Tabellen so anordnen, wie man sie braucht, dann ein Screenshot und ausdrucken oder in einer Datei ablegen. Beim nächsten Suchen hat man das dann schnell zur Hand. Diese „Bildchen“ sind dann auch sehr gut in Dokumentationen nutzbar.
Gruß Edith
Hi Isa, danke für die Tollen Beiträge!
Vielleicht kannst du mir bei einem Problem helfen: Ich möchte gerade eine Alias-Tabelle im Quickviewer wie von dir beschrieben erstellen. Ich erhalte jedoch den Fehler „Tabelle XY nicht in Data Dictionary vorhanden“. Soll also zuerst eine Tabelle über se Se11 angelegt werden?
Vielen Dank vorab!
Viele Grüße
Ari
Hallo Ari,
zumindest in SAP Query (SQ02) ist eine eigene Definition der Aliastabelle in der SE11 nicht erforderlcih ( https://www.andreas-unkelbach.de/blog/?go=show&id=919 ). In der SQVI kann ebenfalls der Tabellenname der Originaltabelle einen Alias-Namen zugewiesen werden
Dieser Aliasname kann dann als Tabelle einfügten auch in der SAP Query verwendet werden.
Intern scheint hier für den symbolischen ALIAS Namen (Tabelle) ein SELECT * FROM Originaltabelle verwendet zu werden, so dass im Ergebnis die Tabelle doppelt verwendet wird.
Jedoch muss der definierte ALIAS-NAME dann als Tabelle eingefügt werden.
Viele Grüße
Andreas Unkelbach
Hallo Andreas,
vielen Dank für die Rückmeldung! Hat mir definitiv weitergeholfen!
VG
Ari
Hi Isa,
es gibt doch noch die dritte Möglichkeit.
Wenn der Quickview erst einmal fertig ist kannst du ihn in der sq00 importieren und das zugehörige Infoset wird automatisch erzeugt.
Hat den Vorteil dass du deinen Quickview jetzt bei Bedarf und je nach Berechtigung noch um Coding ergänzen kannst. Aber auch den Nachteil, dass Änderungen an dem Quickview dann ggf. Neu importiert werden müssen.
Viele Grüße
Marcel
stimmt … super Tip … Danke
Hallo Isa,
eigentlich verfahre ich ja bei Kommentaren eher nach der Richtlinie „wenn du nichts zu sagen hast, dann schweige“ (bzw. bemühe mich darum Kommentare mit Mehrwert zu hinterlassen) aber hier mag ich mich einfach nur für zwei Punkte bedanken, die ich gerne in meinen eigenen Blog aufgreifen würde.
Persönlich bin ich ein absoluter Fan von SAP Query und habe mir als Nachteil von Quickview stets festgehalten, dass diese nur für den anlegenden Benutzer nutzbar, immer mandantenabhängig und es hier keine Möglichkeit der Erweiterung durch Zusatzfelder (Berechnungen etc.) im Infoset gibt.
Durch den Aufruf des Report (direkt oder über einen eigenen Transaktionscode) bist du zumindest ersteres Problem elegant umgangen.
Auf die Problematik der Alias-Tabellen bin ich im Bereich FI/CO noch nicht gelandet könnte mir aber vorstellen, dass dieses ebenfalls ein hilfreicher Punkt wäre.
Sofern es dir recht ist würde ich gerne diese beiden Beispiele (mit Verweis auf deinen Artikel) als Artikel auf meiner Seite aufgreifen und mein Handbuch/Kurzeinführung zu SAP Query (eigener Blogartikel) um diese Punkte mit ergänzen.
Viele Grüße
Andreas Unkelbach
Hi Andreas,
Danke für deinen Kommentar und die Hinweise …
Natürlich keine Thema: Kannst auf meine Inhalte jederzeit zugreifen und verwenden. Wenn du dabei einen Verweise auf meinen Beitrag legst umso besser 😉
cu, Isa.