Andreas Unkelbach
Logo Andreas Unkelbach Blog

Andreas Unkelbach Blog

ISSN 2701-6242

Artikel über Controlling und Berichtswesen mit SAP, insbesondere im Bereich des Hochschulcontrolling, aber auch zu anderen oft it-nahen Themen.


Werbung


Samstag, 19. August 2023
14:17 Uhr

Umstellung Reporttranskationen auf Parametertransaktionen zum Aufruf SAP Query

Im Artikel "LOAD_PROGRAMM_NOT_FOUND Programm AQCS oder AQZZ bei Aufruf Query per Reporttransaktion - SAP Query nachgenerieren lassen" hatte ich beschrieben, wie bei einer Reporttransaktion zu einer SAP Query das entsprechend aus der SAP Query generierte ABAP Programm erneut generiert werden kann.

Zur Erinnerung, der Programmname zu einer SAP Query ist abhängig davon, ob es sich um eine globale oder eine Query im Standardbereich handelt, folgt aufgebaut:
 
Aufbau Programm für Query
1 2 3 4 5 6
Globaler Bereich AQ ZZ RM_CO ==== Z_QUERY01=====
Standardbereich AQ CS AG_CO ==== Z_QUERY02=====

Aus der Tabelle sind der Aufbau des Programmnamen zu erkennen (insgesamt sind dieses 29 Zeichen bestehend aus den Spalten 2 bis 6. Wobei hier === als Füllzeichen zu sehen sind.

Ausgangslage: Rückfrage zur Massenpflege erneute Generierung der Query für Reporttransaktion

Der Artikel ist schon etwas älter und letztens erreichte mich dazu die Frage, ob es hier nicht die Möglichkeit gibt einer "Massenpflege" eben dieser Query, da mit Umstieg auf EHP8 eine Menge an solcher Transaktionen zu SAP Query nicht mehr funktionieren.

Im Artikel "Änderungen und Nacharbeiten nach Einspielung SAP ERP 6.0 Enhancement Package 8 (EHP 8) insbesondere im CO" bin ich ebenfalls auf dieses Problem eingegangen.

Die Lösung dazu war, dass die Query durch die Transaktion REISSQMAIN bzw. über den Report SAP_QUERY_CALL erneut mit Angabe der Benutzergruppe und Query aufgerufen worden ist.

Workaround: zu bestehenden Reporttransaktionen die Query erneut generieren lassen

Dieses ist relativ umständlich und so liegt der Gedanke nahe, dass es doch eine einfachere Variante geben sollte.

Queryverzeichnis und Vormerken der Generierung
Der erste Gedanke wäre hier im Verzeichnis der SAP Query über die Transaktion SQ02 - Infoset pflegen über das Anwendungsmenü
  • (Mehr)
  • Springen
  • Queryverzeichnis
entweder anhand einer selektierten Benutzergruppe oder direkt über Ausführen in der Liste aller Query die Query auswählen und über die Schaltfläche "Mark. Query" (Programmgeneierung UMSCH+F8) die einzelnen Query erneut generieren zu lassen.

Problematisch dabei ist jedoch, dass dadurch die Query nur zur Generierung vorgemerkt werden und das Coding zum ABAP Programm erst beim nächsten Start der Query durchgeführt werden.

Dieser Aufruf müsste also erneut über SQ00 / SQ01 (Query ausführen) oder über REISSQMAIN erfolgen.

Technischer Hintergrund:
SAP Hinweis: 735939 - SAP Query: Query-Reports nicht nachgeneriert

1. Alternative: Transaktionsaufzeichnung von REISSQMAIN

Denkbar wäre auch, ohne es selbst getestet zu haben, eine Transaktionsaufzeichnung der Transaktion REISSQMAIN per LSMW oder eCAT (siehe "Massenstammdatenpflege mit LSMW oder SECATT dank Transaktionsaufzeichnung - Handbuch erweiterte computergestützte Test-Tool (eCATT) und LSMW"). Basis kann hier ebenfalls das Queryverzeichnis als CSV bestehend aus Benutzergruppe und Query sein.  Das entsprechende Verzeichnis kann, wie im Artikel "Reportmatrix über bestehende kundeneigene SAP Berichte (Report Writer, Recherche oder SAP Query)" beschrieben, über die Transaktion SQ02 per Queryverzeichnis erstellt werden.

Achtung: Ich befürchte jedoch, dass die Aufzeichnung problematisch sein kann, da ja kein Ende der Aufzeichnung mit aufgezeichnet wird sondern nur die Query gestartet aber nicht abgebrochen wird. Dennoch ist es natürlich enen Versuch wert.
 

Dauerhafte Lösung: Umstellung Transaktionen von Reporttransaktion auf Parametertransaktion zum Aufruf von SAP Query

Um künftig solche Probleme zu vermeiden ist es eine gute Idee statt einer Reporttransaktion, wie in den beiden Artikeln "SAP Query als kundeneigene Transaktion mit Berechtigungen für Tabellenberechtigungsgruppe, Tabellen und Reporttransaktion vergeben" und "Transaktion anlegen (Report, Parameter) bspw. für SAP Query / Unterschied Parameter- oder Reporttransaktion" eine Parametertransaktion zum Aufruf einer Query anzulegen oder vorhandene Transaktionen umzustellen und künftig hier weniger Probleme zu haben.

Unterschied Reporttransaktion und Parametertransaktion

Als Reporttransaktion wird die Query, der Report direkt gestartet. Hier könnte nun auch ein Berechtigungsobjekt mit Werten hinterlegt werden, auf die die Berechtigungen der Benutzer geprüft werden. Über das Selektionsbild 1000 gelangt man auch direkt in das Auswahlfenster der Transaktion. Über die Option "Einstiegsbild überspringen" kann der Bericht auch ohne weitere Angaben von Selektionswerten direkt übersprungen werden. Dieses kann zum Beispiel sinnvoll sein, wenn im Bericht schon alle Variablen gefüllt sind und der Bericht nur direkt ausgeführt werden soll. Hier hatten wir den generierten Reportnamen zur SAP Query als ABAP Programm genommen und obiges Problem ist entstanden.

Eine Parametertransaktion ermöglicht es Varianten zu einer Transaktion anzulegen. Hier bietet sich bspw. die Transaktion START_REPORT an.  Hier geben wir in der Parametertransaktion bestimmte Vorschlagswerte zur Transaktion START_REPORT vor und überspringen das Einstiegsbild.  Hierbei werden die Dynprofelder der Transaktion festgelegt. So lautet die Bezeichnung des Feldes Report der Transaktion START_REPORT bspw. "D_SREPOVARI-REPORT". So dass hier der Reportname entsprechend eingegeben werden kann. Interessanter ist hier jedoch noch das Feld Variante (Dynprofeld "D_SREPOVARI-VARIANT"), da hier entsprechend gepflegte Selektionsvariante je Report hinterlegt werden können.  Auf diese Weise kann direkt über die kundeneigene Transaktion eine entsprechende Selektionsvariante zu einen Report (inkl. etwaiger gesperrter Felder) gestartet und ausgewertet werden.  Somit eignet sich diese Transaktionsvariante insbesondere dann, wenn man auch gleich eine Selektionsvariante mit übergeben bzw. entsprechend ausgewählt haben mag.

Parametertransaktion für SAP Query

Als Parameter für die Transaktion START_REPORT wären hier folgende Dynprofelder mit entsprechenden Werten zu füllen.
  • D_SREPOVARI-REPORTTYPE
    AQ
  • D_SREPOVARI-REPORT
    Benutzergruppe (für Querys im globalen Bereich (mandantenunabhängig) muss die 13. Stelle der Benutzergruppe ein ‚G‘ stehen (Leerzeichen!))
  • D_SREPOVARI-EXTDREPOR
    Name der Query.
Gerade der Parameter für die Benutzergruppe ist dabei umständlich, daher erscheint folgende Parametertransaktion sinnvoll.

Hier nutzen wir die Möglichkeit einer Parametertransaktion entweder für die Transaktion REISSQMAIN oder wir legen eine Reporttransaktion zum Report SAP_QUERY_CALL mit Selektionsbild 1000 an.

Bei der anzulegenden Parametertransaktion ist es wichtig, die Markierung bei "Einstiegsbild überspringen" zu setzen und im Abschnitt Vorschlagswerte folgende Werte einzutragen:

 
Parameter zu SAP_QUERY_CALL oder REISSQMAIN
Name des Dynprofeldes Wert
P_WSID Arbeitsbereich
leer lassen oder G für Globaler Bereich
P_UGROUP Benutzergruppe
Die Benutzergruppe in der die Query ist
P_QUERY Query
Name der Query
P_VARI Selektionsvariante
ggf. angelegte Variante zur Query

Nachdem diese Transaktion gesichert ist, kann die Query künfitg auch problemlos über diese Transaktion gestartet werden.

Diese Variante ist auch im SAP Hinweis 2185998 - Anlegen eines Transaktionscodes für eine Query in 2021 beschrieben worden. Bis dahin wurde, bspw. durch die Anlage eines Transaktionscodes über die Rollenpflege (Einfügen einer SAP Query im Rollenmenü) eine Reporttransaktion angelegt.

Ableitung der Parameter aus der Parametertransaktion

Andrea Olivieri hat jedoch in einem Beitrag innerhalb der SAP Community ein ABAP veröffentlicht, durch das die gewünschte Massengenerierung ermöglicht wird. Persönlich habe ich dieses noch nicht ausprobiert, aber ggf. kann damit ihre SAP Basisabteilungen Ihnen eine passende Möglichkeit zur Verfügung stellen.

Der Beitrag "Upgrade – Easy migration of AQ* Report transactions" ist zusammen mit dem Coding auf der Seite https://blogs.sap.com/2015/02/24/upgrade-easy-migration-of-aq-report-transactions/ veröffentlicht worden.

Durch den Funktionsbaustein RSAQ_DECODE_REPORT_NAME werden die notwendigen Parameter aus den Report ermittelt.
  • WORKSPACE/ Arbeitsbereich
  • USERGROUP / Benutzergruppe
  • QUERY / Query
  • und CLIENT
Die einzelnen Programme können durch Selektion nach Programm AQ* in der Tabelle TSTC "SAP Transaktions-Codes" ermittelt werden.

Das oben erwähnte Programm liest scheinbar die entsprechenden Transaktionen aus und passt diese dann von einer Reporttransaktion auf eine Parametertransaktion für REISSQMAIN an.

Gerade bei einer Vielzahl von kundeneigener Transaktionen zu SAP Query ist dies sicher eine elegante Methoide.

Anmerkung: Ich habe selbst das Programm nicht getestet würde mich aber über eine positive Rückmeldung ob es weiterhin funktioniert freuen.

Manuelles Umstellen der Reporttransaktion auf Parametertransaktion

Sofern die Umstellung manuell erfolgen soll kann auch die Tabelle TSTC über das Feld Programm nach AQ* durchsucht werden. Damit sind alle kundeneigene Transaktionen die entsprechend der ersten Tabelle im Artikel Query starten identifiziert (AQZZ für globalen Arbeitsbereich und AQCS für Standardbereich).

Danach können die Transaktionen in der SE93 bearbeitet werden.

Im Artikel "Transaktionsart in SE93 ändern" bin ich auch darauf eingegangen, wie die Art der Transaktion geändert werden kann und so nicht erst ein Löschen und danach eine Neuanlage der Transaktion mit entsprechenden Workbenchaufträgen erfolgen müssen.

Keine Anpassung der Berechtigungsrollen erforderlich

Die Berechtigungsprüfungen, siehe Artikel "SAP Query als kundeneigene Transaktion mit Berechtigungen für Tabellenberechtigungsgruppe, Tabellen und Reporttransaktion vergeben"  für die Tabellen sind dabei weiterhin zu beachten. Ebenso ist hier die Berechtigungsprüfung beim Lesen von Tabellen, sofern es sich nicht um logische Datenbanken handelt, zu beachten, dass bspw. Berechtigungen auf CO_Objekte wie Kostenstellen oder Innenaufträge nicht beachtet werden. Dennoch sind Query auch weiterhin eine gute Möglichkeit der Auswertung im Berichtswesen, zumindest, wenn ohnehin zentral Auswertungen erfolgen.

Bei der Anlage eines Transaktionscodes wird ein Workbench-Transportauftrag angelegt, sodass die Einträge der Tablle TSTC entsprechend in die weiteren Systeme transportiert werden. Über die SE10 kann dieser Transportauftrag frei gegeben bzw. transportiert werden. Sofern beim Speichern oder Anlage einer Transaktion keine Abfrage eines Transportauftrages kommt, kann es sein, dass hier noch ein Transportauftrag offen ist.

Ist ein entsprechender Eintrag vorhanden, sollte dieser dann freigegeben und transportiert werden. Andernfalls werden Änderungen oder neue Transaktionen im bestehenden offenen Transportauftrag des Users gespeichert.

Für die Änderung bestehender Transaktionscodes sind diese mit der SE93 zu löschen und danach statt als Reporttransaktion als Parametertransaktion anzulegen. Immerhin bestehende Berechtigungen, insbesondere im Berechtigunsobjekt S_TCODE zum Aufruf der Transaktion bleiben bestehen :-).

Ich freue mich immer über Anfragen über das Blog und auch darüber, dass manche Artikel hier auch anderen weiter helfen können.


Hinweis:

Eine kurze Einführung in das Thema SAP Query habe ich im Artikel
"Grundlagen Kurzeinführung und Handbuch SAP Query" beschrieben und hoffe Ihnen hier eine Einführung ins Thema bieten zu können.




Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionen und Bestellmöglichkeit zu finden.
SAP Weiterbildung
ein Angebot von Espresso Tutorials
SAP Weiterbildung - so wirksam wie eine gute Tasse Espresso

unkelbach.link/et.books/

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/





Diesen Artikel zitieren:
Unkelbach, Andreas: »Umstellung Reporttranskationen auf Parametertransaktionen zum Aufruf SAP Query« in Andreas Unkelbach Blog (ISSN: 2701-6242) vom 19.8.2023, Online-Publikation: https://www.andreas-unkelbach.de/blog/?go=show&id=1336 (Abgerufen am 12.5.2024)

Diesen und weitere Texte von finden Sie auf http://www.andreas-unkelbach.de


Keine Kommentare

Kommentieren?


Beim Versenden eines Kommentars wird mir ihre IP mitgeteilt. Diese wird jedoch nicht dauerhaft gespeichert; die angegebene E-Mail wird nicht veröffentlicht: beim Versenden als "Normaler Kommentar" ist die Angabe eines Namen erforderlich, gerne kann hier auch ein Pseudonyme oder anonyme Angaben gemacht werden (siehe auch Kommentare und Beiträge in der Datenschutzerklärung).

Eine Rückmeldung ist entweder per Schnellkommentar oder (weiter unten) als normalen Kommentar möglich. Eine persönliche Rückmeldung (gerne auch Fragen zum Thema) würde mich sehr freuen.

Schnellkommentar (Kurzes Feedback, ausführliche Kommentare bitte unten als normaler Kommentar)





Ich nutze zum Schutz vor Spam-Kommentaren (reine Werbeeinträge) eine Wortliste, so dass diese Kommentare nicht veröffentlicht werden. Sollte ihr Kommentar nicht direkt veröffentlicht werden, kann dieses an einen entsprechenden Filter liegen.

Im Zweifel besteht auch immer die Möglichkeit eine Mail zu schreiben oder die sozialen Medien zu nutzen. Meine Kontaktdaten finden Sie auf »Über mich« oder unter »Kontakt«. Ansonsten antworte ich tatsächlich sehr gerne auf Kommentare und freue mich auf einen spannenden Austausch.












* Amazon Partnerlink/Affiliatelinks/Werbelinks
Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.
Weitere Partnerschaften sind unter Onlineshop und unter Finanzierung und Transparenz aufgeführt. Hinauf






Logo Andreas-Unkelbach.de
Andreas Unkelbach Blog
ISSN 2701-6242

© 2004 - 2024 Andreas Unkelbach
Gießener Straße 75,35396 Gießen,Germany
andreas.unkelbach@posteo.de

UStID-Nr: DE348450326 - Kleinunternehmer im Sinne von § 19 Abs. 1 UStG

Andreas Unkelbach

Stichwortverzeichnis
(Tagcloud)


Aktuelle Infos (Abo)

Facebook Twitter XING

Linkedin Mastodon Bluesky

Amazon Autorenwelt Librarything

Buchempfehlung
Abschlussarbeiten im Gemeinkosten-Controlling in SAP S/4HANA


29,95 € Amazon* Autorenwelt

Espresso Tutorials

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/

Privates

Kaffeekasse 📖 Wunschliste