Konvertierung Querys in ALV-Reporte

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Querys können häufig sehr einfach erstellt werden und können optional auch mit Coding erweitert werden. Es gibt jedoch gewichtige Argumente für die Realisierung von Reporting über kundeneigene SAP-Reporte statt Querys.

Hier wird mancher Kunde zur Entscheidung kommen bestehende Querys in eigene SAP-Z-Reporte zu überführen.

Es ist insgesamt kritisch zu überlegen, ob man die Vorteile eines SAP-Reports den Aufwand der Überführung eines Querys in einen SAP-Report rechtfertigen.

Warum Reporte statt Querys

  • oftmals erfüllt ein einfacher Query nicht die komplexen Anforderungen vom Fachbereich und der Query müsste mit Coding ergänzt werden. Hier ist dann das Verständnis eines solchen Querys häufig schwierig für den SAP-Entwickler
  • Hat ein User die Berechtigung für die Transaktion SQVI, so kann sich dieser Anwender alle SAP-Tabelle selektieren und häufig mehr Daten sehen als der Anwender sollte. Das ließe sich zwar auch mit Berechtigungen auf Tabellenebene regeln, aber das ist aufwendig und wird sehr selten gemacht.
  • Bei Querys mit den Transaktionen SQ01 (ABAP Query) und SQ02 (InfoSet), könnte die Auswahl der relevanten Tabellen von entsprechend autorisierten Keyusern oder dem IT-Bereich in der Transaktion SQ02 realisiert werden. Die User können dann über SQ01 nicht weitere Tabellen selektieren. Aber diese Trennung zwischen SQ01 und SQ02 ist schwer zu überblicken. Ein Report ist hier für die SAP-Entwickler deutlich übersichtlicher, wenn der Code entsprechend gut strukturiert und kommentiert ist.
  • Bei Reporten hat der SAP-Entwickler eine bessere Transparenz über die Datenbankselektionen und kann auch besser Performancebremsen lokalisieren und durch Codeumstellungen oder Definition von Indizes beheben.
  • Reporte lassen sich über gut gewählte Fehlermeldungen wesentlich transparenter im Gebrauch für den Anwender gestalten.
  • Verwendungsnachweise von Variablen funktionieren im eigenen SAP-Report wesentlich besser als bei Querys, da bei Querys häufig Variablen in genierten Funktoinsbausteinen angesprochen werden, wo die Variablen im Funktionsbaustein vom genierten Report nicht angezeigt werden können.
  • Berechtigungsabfragen können in SAP-Reporte wesentlich einfacher und flexibel eingebaut werden als in Querys.

Probleme Konvertierung eines ABAP-Querys in einen SAP-Report

  • Querys bieten die Möglichkeit, dass (sprachabhängige) Textfelder zu Feldern wie Material, LIeferant oder Materialklasse automatisch ermittlet werden. Die Datenherkunft dieser Felder ist wenig transparent und muss mühsam durch Analyse/Debugging des generierten SAP-Reports vom Query ermittelt werden und diese Felder müssen dann im eigenen SAP-Report dazugelesen werden.
  • Die Kurzbezeichnung/Spaltenüberschrift der Felder kann in der Transaktion SQ01 umbenannt werden. Es ist dann bei Ansicht der ALV-Liste vom Query manchmal schwer ersichtlich welches Feld dahinter sich verbirgt. Die basierenden Tabellenfelder lassen sich in der ALV-Liste über F1 nicht direkt ermitteln.
  • Im ABAP-Query kann auch eine ALV-Layoutvariante mitgegeben werden. In der Layoutvariante können Felder umsortiert und ausgeblendet werden. Das erschwert zusätzlich die Zuordnung der Felder. In der Layoutvariante kann auch eine Variante als Standard definiert werden. Diese Variante würde dann gezogen werden, wenn keine andere Layoutvariante bei der Ausführung des Querys selektiert werden.
  • In der Transaktion SQ01/ lassen sich lokale Felder definieren, die über Coding in der Transaktion SQ01 gefüllt werfden, was direkt an den lokalen Feldern gebunden ist. Dies ist sehr intransparent, schwer zu finden und kann mühsam dies dies im eigenen SAP-Report nachzubilden.

Der Aufwand einer Konvertierung eines Querys in einen SAP-Report ist jedoch für den SAP-Entwickler nicht zu unterschätzen. Speziell komplexe Querys mit Zusatzfeldern und lokalen Feldern sind aufwendig zu analysieren und können speziell den SAP-Entwickler, der nicht mit der Realisierung des Querys beauftragt war, vor eine Herausforderung stellen und einen erheblichen Zeitaufwand erforderlich machen..

Vorlage ALV mit Klasse CL_GUI_ALV_GRID

Checkliste Umstellung

Identifizierung Query

  • Benutzergruppe
  • Arbeitsbereich Standard (mandantenabhängig) oder Global (nicht mandantenabhängig)
  • Query
  • InfoSet
  • Name generierten Reports vom Query (Query ausführen und F1, technische Info)
  • Layoutvariante
  • Selektionsvarianten

Code aus generiertem Programm vom Query kopieren

  • Führt man den Query aus, kann über F1-Technische Info der Name des generierten SAP-Programms ermittelt werden.
  • Selektionsscreen kopieren
  • Haupt-Datenselektion kopieren (Suche nach "Select" im Rahmenprogramm oder Verwendungsnachweis auf Selektionsparameter)
  • Identifizierung Textfelder (z. B. Materialbezeichnung) und Datenselektion
  • Identifikation lokale Felder und Coding