1
SAP-Fachtagung 2012
Workshop
„SAPQuery an die Kette legen“
Berlin,September 2012
Thomas MichlerTBS gGmbH Rheinland-Pfalz
2
Definitionen
• Wenn man eine TA ausführt, wird ein Programm aufgerufen. Dieses Programm wurde vorher von einem Programmierer in der SAP-Programmiersprache ABAP erstellt.
• Wenn man dagegen mit SAP-Query arbeitet, so wird das Programm automatisch von SAP erstellt. Das Programm wird allein dadurch erstellt, dass die Ausführungen des Nutzers automatisch in der ABAP-Programmiersprache „mitprotokolliert“werden.
• Das Ergebnis – also das Programm – könnte ein Programmierer auch ohne Anwendung von SAP-Query direkt in der ABAP erstellen. SAP-Query wird deshalb auch als Programmgenerator bezeichnet.
• Jedesmal, wenn man dann das so oder so erstellte Programm aufruft (z.B. mittels einer TA), dann erhält man als Ergebnis eine Liste (Auswertung), die genau die Daten enthalten sollte, die man auch haben wollte.
3
Definitionen
• „SAP Query, eine SAP-Programmbibliothek zur Erzeugung von Berichten (Programmen? Auswertungen?), die in der Standardfunktionalität nicht (?) enthalten sind“ (wikipedia)
4
Unter „Query-Reportingtools“ versteht man
• Quick-Viewer
(Infoset-Query)
• SAP-Query
5
Anwendung:
Quick-Viewer
• Der Quick-Viewer Ist ein Werkzeug, mit dem man ohne Programmierkenntnisse ein Auswertungsprogramm („Report“) erstellen kann.
• Wenn man die einzelnen Arbeitsschritte mit dem Quick-Viewerdurchgeführt hat, erhält man als Ergebnis einen Quick-View-Report.
• Dieser Report wird mit einem beliebigen / nachvollziehbaren Namen versehen (Z_TBS_VIEW1). Ein Aufruf des Reports erzeugt dann jedesmal einen „Quick-View“ – genauso / mit den Grenzen und Möglichkeiten, wie er vorher mit Hilfe des Quick-Viewersdefiniert worden ist.
• Für Administratoren, denen es nicht ausreicht mittels SE16 eineTabelle aufzurufen, sondern die sich schnell einen Überblick über mehrere Tabellen verschaffen wollen.
6
Anwendung:
Quick-Viewer
Vorgehen:
• Namen für Quick-View-Report eingeben
• Datenquelle auswählen (eine oder mehrere Tabellen, Infoset…)
• Auswählen der Felder (einer Tabelle), die angezeigt werden sollen
• fertig
7
Anwendung:
SAP-Query
• für Endanwender, der aus einem vordefinierten Katalog von SAP-Queries den benötigten ausführt
• Admin muss diesen Katalog vorher erstellt haben bzw. aus dem SAP-Standard-Repertoire
• Infoset nutzt als Datenbasis Tabellen etc. (wie Quick-Viewer plus zusätzliche Datennquellen)
• In der SAP-Query können nur die Datenfelder verwendet werden, die vorher im Infoset definiert wurden
8
Anwendung:
SAP-Query; Vorgehen:
• Anlegen einer Benutzergruppe (Name vergeben); Festlegen, ob ein Nutzer die (ihr später zugeordneten) SAP-Queries ändern darf oder nicht.
• Infoset anlegen (Name vergeben) mit Feldern aus einer oder aus mehreren Tabellen. Infoset einer Benutzergruppe zuordnen; einer Benutzergruppe können mehrere Infosets zugeordnet werden;
• SAP-Query anlegen (Name vergeben) und die Benutzergruppe festlegen, die berechtigt sein soll, den SAP-Query-Report aufzurufen.
• SAP-Query mit einem Infoset verknüpfen. Es können nur die Infosets verknüpft (d.h. ausgewählt) werden, für die die Benutzergruppe, die eben im SAP-Query angelegt wurde, eine Berechtigung hat.
• Auswahl der Felder, die im Report erscheinen sollen.
• Fertig ist das Query / der Report
9
Anwendung:
SAP-Query
Aufrufen den fertigen SAP-Queries durch Endanwender
• mittels SQ01 (mit Minimalberechtigungen) oder
• mittels Definition einer Rolle für das Query und anschließendes Zuordnen dieser Rolle zu dem Endanwender
10
Technisches
Quick-Viewer
• Berechtigungsobjekt für Quick-Viewer: S_TABU_DIS
• Qick-Viewer-Reports können mit einer TA (SQVI) erstellt werden
• Quick-Viewer-Report ist immer lokal, d.h. nur für den Nutzer, der ihn erstellt hat. Allerdings kann der Report in eine SAP-Query umgewandelt werden.
11
Technisches
SAP-Query
• Ist global; d.h. auch für andere Nutzer sichtbar; deshalb Namenskonventionen sind einzuhalten
• Um eine SAP-Query zu erstellen, braucht man drei TAs
– Mit TA SQ02 Infoset festlegen; Suchen nach vorhandenen Queries über die Infosets
– Mit TA SQ03 Benutzergruppe zwecks Zuordnung von Infosets und SAP-Queries
– SQ01 SAP-Query erstellen,
• Es gibt keine Modulgrenzen, modulübergreifende Auswertungen sind möglich
12
Technisches
SAP-Query
• Berechtigungsobjekt zum Starten und Ändern von SAP-Queries: S_QUERY
• Berechtigungsobjekt S_DEVELOP zum Einbauen von ABAP-Codein eine SAP-Query.
• Berechtigungsobjekt S_TABU_DIS für Tabellenzugriffe
• Mittels „lokalen Feldern“ können Berechnungen durchgeführt werden (über das reine Anschauen von Feldinhalten hinaus)
• Drill-Down-Funktionalität (in Verbindung mit logischen Datenbanken)
13
Gefährdungen
Quick-Viewer
• Werden direkt im Produktivsystem angewendet (kein Transportvorgang aus dem Entwicklungssystem)
• Wer für Quick-Viewer Berechtigung hat, kann immer auch die Daten nach z.B. Excel exportieren
• Es wird nicht protokolliert, wer wann wie oft welche Quick-Viewsaufgerufen hat.
• Tabellenzugriff kann nicht eingeschränkt werden
14
Gefährdungen
SAP-Query :
• Für jede TA findet eine Überprüfung der Berechtigungen statt (TA-Berechtigung). Diese entfällt beim direkten Tabellenzugriff. SAP-Query entspricht somit dem Data Browser (SE16). Ein Nutzer, der die Berechtigung hat, SAP-Queries zu erstellen und auszuführen, kann auf alle Daten des SAP-Systems zugreifen – zumindest hindert ihn keine TA-Berechtigung daran.
• Evtl. jedoch die TabellenzugriffsberechtigungAusnahme: in „logischen Tabellen“ (wie sie z.B. in HR genutzt werden) kann eine Berechtigungsprüfung stattfinden (?)
• Tabellenzugriffe werden nicht protokolliert
• Komplexes Zusammenspiel der unterschiedlichen Berechtigungen:
– Benutzergruppen
– Berechtigungsobjekt S_QUERY, S_DEVELOP, S_TABU_DIS
15
Forderungen
Quick-Viewer
• Im Normalfall sind die SAP-Standardreports zu verwenden. Nur in begründeten und dokumentierten Ausnahmefällen Quick-Viewer
• Keine Personaltabellen als Datenquelle
16
Forderungen
SAP-Query:
• Einstellbar, ob User Query ändern kann -> machen!
• SAP-Queries/Infosets entwickeln im Entwicklungssystem und per Transport ins Produktivsystem übertragen
• Infosets ohne personenbezogene Daten
• Zuordnung von Infosets und SAP-Queries nur den Benutzergruppen, die dies wirklich zur Erledigung ihrer Arbeit benötigen (Minimalisierungsprinzip)
• Dto. für die Zugriffsmöglichkeiten auf die Tabellen im HR
• Nutzer sollen die SAP-Queries nicht ändern können.
• Die systeminternen Infoset- und Query-Beschreibungen werden dem BR auf Wunsch aktuell zur Verfügung gestellt (z.B. HTML)
• Kein Datenexport an ein anderes IT-System (Excel)
17
Forderungen
SAP-Query:
• Berechtigungen möglichst einschränken:
– Wer darf Queries, Infotypen, Benutzergruppen anlegen/ändern
– Wer darf Queries ausführen
– Empfangsberechtigte von Ergebnislisten (auch z.B. als pdf-Dateien und ausgedruckte Listen)
18
Forderungen
SAP-Query:
• Funktionstrennung/Gewaltenteilung/“4“-Augen-Prinzip. Orientierung an den „Lebensabschnitten“ einer SAP-Query:
– Definition der Datenquelle (auf wenige Personen beschränken); Vorteile: Datenschutz und rationeller Einsatz, da sich diese Mitarbeiter auf die Aufgaben „Finden von Tabellen“und „ABAP-Coding“ spezialisieren und Erfahrungen sammeln können.
– Benutzerverwaltung (Benutzerpflege und Aktivieren)
– Query-Erstellung
– Anwendung
• Problem: bürokratischer Aufwand
19
Kontrollansätze
SAP-Query
• Wie erkennt man HR-Infosets?
– am Kennzeichen „HR“ in der Infoset-Bezeichnung
– an den verwendeten (logischen) Datenbanken PNPCE, PCH, PAP, PTRVP
• Anzeigen lassen (RSAQxxxx z.B. RSAQSUMM),
– welche Tabellen werden als Datenquelle für das Query verwendet?
– welche Queries gibt es zu den einzelnen Infosets?
– Wer hat wann das Query angelegt und wer wann zuletzt geändert?
– Wer ist in welchen Benutzergruppen? Wer hat die Berechtigung eine Query zu ändern?
– Wer hat wann eine Benutzergruppe angelegt?
– Welche Benutzergruppen sind welchen Queries zugeordnet
– Wer hat wann einen Infoset erstellt und wer wann zuletzt geändert?