Oftmals will man „mal eben“ nur eine Abfrage erstellen, weil man die Informationen nicht mittels eines SAP Standardreports bekommt. Dies kann man dann relativ einfach mit dem QuickViewer (SQVI) oder dem Query Designer (SQ01) erstellt werden.
Im konkreten Fall möchte ich eine Abfrage über Benutzer erstellen und mir deren E-Mail-Adresse und SNC-Konfiguration anzeigen zu lassen. Die E-Mail-Adressen können dann z. B. für einen E-Mail an einen dedizierten Personenkreis verwendet werden. Die SNC-Konfiguration wird benötigt um zu prüfen welche Benutzer noch keine SNC-Konfiguration haben.
Zur Erstellung von Abfragen bietet SAP den QuickViewer für benutzerspezifische Abfragen und dem Query Designer für bestimmte Personengruppen.
Wichtig für die Abfragen ist zu wissen welche Tabellen wir ansprechen müssen. In diesem Fall sind die benötigten Informationen gleich auf vier Tabellen verteilt. Neben der E-Mail-Adresse und der SNC-Konfiguration sollen auch der SAP-Benutzername, der Vorname und der Nachname angezeigt werden.
Daher benötigen wir die Tabellen: USR21, ADRP, ADR6 und USRACL. Wir starten mit der Transaktion SQVI und legen eine neue Abfrage an.
Bei der Abfrage wählen wir dann einen Table-Join aus, da wir mehrere Tabellen miteinander verknüpfen möchten.
Die Tabellen werden dann einzeln eingefügt. Wir fangen mit der USR21 an, da diese die Tabelle ist, mit der sich die weiteren Tabellen verknüpfen werden. Beim Hinzufügen der einzelnen Tabellen verknüpft das System die Tabellen eigenständig. Dies wird angepasst, wenn alle Tabellen eingefügt wurden.
Wie man sehen kann, werden die Tabellen im Wesentlichen über BNAME (SAP Benutzername) und PERSNUMBER (eindeutige ID) miteinander verknüpft. Die USRACL bildet hier erst einmal eine Ausnahme, die wir korrigieren werden.
Die Verknüpfungen sollten alle direkt mit der Tabelle USR21 erstellt werden. Daher müssen die Verknüpfungen zwischen ADRP –> ADR6 und ADR6 –> USRACL erst einmal aufgelöst werden. Um diese Verknüpfungen zu löschen, mit der rechten Maustaste auf einen Link klicken und über das Kontextmenü den Link löschen.
Die Tabellenverknüpfung muss dann neu erstellt werden. Einmal für USR21 –> ADR6 und dann für USR21 –> USRACL.
Die Verknüpfungen werden wieder automatisch gesetzt. Bei diesem Anwendungsfall werden diese auch richtig mit BNAME und PERSNUMBER verknüpft. Mann könnte die Verknüpfung aber auch manuell mit dem „Anfasser“ korrigiert werden.
Die Tabellen werden anschließend wie folgt angezeigt:
Nun ist man fast fertig. Wir haben aber mit der jetzigen Konfiguration noch ein Problem. Wir würden lediglich nur die Datensätze zurückbekommen, die die Selektionsbedingung auf beiden Seiten erfüllen, da im Standard ein INNER Join verwendet wird.
Oder praktisch ausgedrückt, wenn wir nach Benutzern ohne E-Mail-Adresse suchen, funktioniert die Abfrage nicht.
Daher müssen wir die Join-Bedingungen für USR21 –> ADR6 und USR21 –> USRACL auf Left-Outer Join umstellen. Damit bekommen wir aus der Tabelle ADR6 auch Benutzer ohne E-Mail-Adresse und aus der USRACL Benutzer ohne SNC-Konfiguration.
Der Join zur ADRP muss in diesem Beispiel nicht angepasst werden, da hier später der Vorname und der Nachname selektiert werden und ich davon ausgehe, dass diese gegeben sind.
Der Join zur ADR6 muss nur über einen Link angepasst werden. Das Ergebnis sieht dann abschließend so aus:
Damit ist die Tabellenkonfiguration abgeschlossen. Speichern kann man das an diesem Punkt noch nicht. Hier mit F3 zurückgehen und wir kommen im QuickViewer in das Einstiegsbild und dem Basismodus.
Hier definieren wir, welche Daten wir uns nach Ausführung des Reports anzeigen lassen wollen (Anzeigefelder) und welche Daten als Selektionsfelder zur Verfügung stehen. Das muss ja nicht 1:1 übereinstimmen.
Wichtig zu wissen, die Reihenfolge der Auswahl bestimmt auch die Reihenfolge wie es im Report angezeigt wird. Das bedeutet, wenn Sie den Benutzernamen als erstes angezeigt haben möchten, dann sollten Sie ihn auch als erstes auswählen.
Die Reihenfolge der einzelnen Felder die aus einer einzelnen Tabelle kommen, können über die Anzeigenfelder neu arrangiert werden. Es kann aber nicht die komplette Reihenfolge geändert werden.
An diesem Punkt kann man den Report speichern und Ausführen.
Der Test sollte jetzt alle Benutzer ausgeben. Hier sollte man mit einem bekannten Benutzerkreis testen, um die Join-Bedingungen zu überprüfen.
In diesem Fall ist die Ausgabe der Benutzer wie erwartet.
Um sich jetzt Benutzer anzeigen zu lassen, die keine SNC-Konfiguration im Benutzerstamm haben, die Auswahl des SNC Namen auf = stellen.
Falls etwas noch nicht passt und die Tabellenkonfiguration anpassen möchte, kann man dies im Basismodus unter dem Reiter Datenquelle tun. Damit kann man auch später den Report erweitern oder anpassen.
Ein kleiner Nachteil der Transaktion SQVI ist, dass dieser Report nur dem Benutzer zur Verfügung steht, der diesen Bericht erstellt hat.
Dies kann man wie folgt machen.
Für jeden Report kann man sich im QuickViewer ein Programm generieren lassen. Diesen Programmnamen kann man sich im gleichen Menüpunkt anzeigen lassen.
Diesen Programmnamen kann man dann z. B. in der TA SA38 ausführen oder auch eine Transaktion daraus erstellen.
Eine andere Variante ist, diesen Report mittels des Query Designers einer Benutzergruppe zur Verfügung zu stellen. Oft unterschätzt und doch ist es sehr hilfreich.
Erst einmal muss vorgegeben werden aus welchem Umfeld die Queries angezeigt werden soll.
Da die vorher erstellte Benutzer-Query mandantenabhängig ist, muss auch die Arbeitsumgebung mandantenspezifisch eingestellt sein.
Im nächsten Schritt muss eine Benutzergruppe angegeben werden. Falls diese noch nicht existiert, muss diese erstellt werden.
Wenn die Benutzergruppe erstellt wurde, muss dieser Benutzergruppe noch die entsprechenden Benutzer zugewiesen werden.
Nachdem die Benutzer gespeichert wurden, aus diesem Menü sowie dem Menü der Benutzergruppen mit F3 herausgehen und über den Menüpunkt „Bearbeiten“, die entsprechende Benutzergruppe auswählen.
Nachdem die Grundkonfiguration vorgenommen wurde, kann der eigentliche QuickView konvertiert werden und der Benutzergruppe zur Verfügung gestellt werden.
Im folgenden Dialog kann dann der Query-Name festgelegt werden, unter dem dieser den Benutzern der Gruppe SAP_BASIS angezeigt wird.
Mit diesem letzten Schritt ist alles getan. Die Benutzer müssen zur Verwendung dieses Queries, die Transaktion SQ01 aufrufen, die Query Area auf mandanten-spezifisch einstellen und die richtige Benutzergruppe wählen.
Mit F8 wird der Query ausgeführt und die Abfragemaske erscheint wieder
Ich hoffe, dass ich mit diesem Beispiel zeigen konnte, wie relativ einfach man mit dem Query Designer Reports erstellen kann und diesen anderen Benutzern zur Verfügung stellt.
Weitere Infos: help.sap.com: SAP Query
Jens
15.05.2024
Hey Andy,
beste Erklärung zu Queries. Wie komme ich denn von einer aus einem derartigen Programm erstellten Transaktion in die Settings der Query. Es geht um Einkaufsdaten, ich finde aber teilweise die Feldbezeichnungen in SE116 nicht aus dem Selektionsscreen.der Query-Trc. Ich weiß nicht welche Tabellen die genommen haben, ich müsste ein zwei Sachen hinzufügen. Danke