Andreas Unkelbach
Werbung


Samstag, 25. Oktober 2014
16:54 Uhr

Mehrjahresvergleich im ReportWriter/Painter mit variabler Spaltenanzahl je Jahr dank Variablen

Wie im Artikel "ReportWriter: Arbeiten mit Variablen (Kostenartengruppen erst beim Berichtsaufruf für Spalten selektieren)" beschrieben besteht die Möglichkeit durch Nutzung der Variablen 1GJAHLJ, 1GAHVJ, 1GAHVV  einen Dreijahresvergleich oder durch die Variablen 6PYEAR , 6PYR-1, 6PYR-2 , 6PYR-3 und 6PYR-4  einen Fünfjahresvergleich auf relativ einfache Weise zu ermöglichen.   

Dieses funktioniert auch relativ gut, weist aber Probleme auf, wenn man einen Berichtszeitraum größer als fünf Jahre betrachten möchte und möglicherweise manchmal auch weniger Jahre betrachten möchte. Sofern ein Zeitraum von 10 Jahren betrachtet wird ist es immer möglich, dass (zum Beispiel bei der Auswertung von Kostenarten) manche Zeilen nur in einen Jahr dargestellt werden und somit bei einer mehrmaligen Auswertung eines Fünfjahresbericht dieser nicht exakt übereinstimmt, da bestimmte Zeilen in einen Zeitraum nicht ausgegeben werden.

Grundüberlegung:
Es soll ein Zeitrum "von Geschäftsjahr" "bis Geschäftsjahr" ausgegeben werden und dabei für jedes Jahr dazwischen eine Spalte mit den einzelnen Jahreswerten ausgegeben werden. Hierbei sollen auch tatsächlich nur so viele Spalten ausgegeben werden, wie auch Jahre zwischen dem übergegeben "von Geschäftsjahr" und "bis Geschäftsjahr" liegen.
 

Variablen für Report Writer anlegen

Über die Transaktion GS11 (im SAP Menü unter Infosystem-> Ad-Hoc-Berichte-> Report Painter ->  Report Writer -> Variable -> Anlegen (Transaktion GS11)) können eigene Variablen angelegt werden.

Bei der Anlage einer Variable bekommen wir die Frage gestellt auf welches Bezugfeld sich die Variable beziehen soll. Hierbei kann es hilfreich sein, sich vorab schon vorhandene Variablen anzusehen. Je nach verwendeter Berichtsbibliothek können wir dabei auf unterschiedliche Tabellen Bezug nehmen. Für die Bibliothek 1VK wäre dieses zum Beispiel die Tabelle CCSS "Berichtstabelle Gemeinkostencontrolling" und das Feld GJAHR "Geschäftsjahr".

Innerhalb der Bibliothel 8A2 wird auf die Tabelle GLPCT "EC-PCA: Summentabelle" und das Feld RYEAR "Geschäftsjahr" Bezug genommen.

Im folgenden Beispiel möchten wir einen Mehrjahresvergleich innerhalb der Profit-Center-Rechnung durchführen. Daher werden alle folgenden Variablen mit Bezugsfeld  auf die Tabelle GLPCT und Feldname RYEAR angelegt. Bei allen folgenden Variablen handelt es sich um Formelvariablen. Neben einer Formelvariable kann hier auch eine Wertvariable (für einen festen Wert) oder eine Setvariable angelegt werden (hierdurch können Gruppen hinterlegt werden). Ein Beispiel für eine Setvariable wäre die Variable 6-AUFGR die innerhalb der Tabelle CCSS über das Feld AUFNR eine Auswertung von Innenauftragsnummern ermöglicht.

Variable für aktuellstes Geschäftsjahr über Benutzer-Exit (Userexit)

Die erste Variable die wir anlegen erhält die Bezeichnung ZPJAHR und soll das aktuellste Geschäftsjahr (entspricht "Bis Geschäftsjahr") darstellen. Hierzu haben wir im Einstiegsbild der Transaktion die Variablen ZPJAHR angegeben mit den Bezugsfeld GLPCT (Tabelle) und RYEAR (Feldname) sowie als Variablentyp FORMEL gewählt.

Im Folgenden Screen können wir dann die Beschreibung und eine Formel angegeben.

Als Beschreibung nehmen wir "aktuellstes Geschäftsjahr" und als Formel '#S001'.

Durch die Anweisung '#S001' wird das aktuelle Geschäftsjahr über den Benutzer-Exit S001 als Vorschlagswert ausgegeben.

Wertvariable für ältestes Geschäftsjahr

Als nächste Variable legen wir eine Wertvariable (ebenfalls über Tabelle GLPCT und RYEAR) mit der Bezeichnung ZPJAHRE an. Bei einer Wertvariable kann ein Vorschlagswert angegeben werden. Dieser könnte zum Beispiel auf 2007 gesetzt werden. Bei der späteren Verwendung im Bericht wird dann das aktuelle Jahr für die Variable ZPJAHR  vorgeschlagen (heute also 2014) und für die Variable ZPJAHRE das Jahr 2007. Dieses kann je nach Einrichtung natürlich auch auf ein anderes sinnvolles Datum gesetzt werden und später auch bei der Ausführung eines Berichtes überschrieben werden.

Hiermit haben wir unseren Auswertungszeitraum passend eingeschränkt. Da es aber auch sein kann, dass wir nur ein Jahr auswertn wollen, sei hier schon vorab darauf hingewiesen, dass es sich bei der Variable ZPJAHRE um eine Hilfsvariable handelt, die später im Bericht nur zur Selektion, aber nicht zur Ausgabe genutzt wird.

Formelvariablen für Einzelne Jahre abhängig von der Selektion

Die Überlegung hinter den folgenden Variablen ist, dass im Jahr 1999 keine Buchungen in SAP erfasst sind. Sollten Sie auch in 1999 schon in SAP gebucht haben, wäre hier ggf. das Jahr 1899 eine gute Idee.

Alle folgenden Variablen beziehen sich auf die Tabelle GLPCT und den Feldnamen RYEAR, In der folgenden Tabelle sind die Variable, Beschreibung und die dahinterliegende Formel aufgeführt. Die Formel zieht immer 1 von der vorherigen Variable ab, sofern der Abstand zwischen dem auszuwertenden Jahren noch der Bedingung der Variable entspricht. Ich denke, dass die Formeln selbst erklärend sein dürften. Die Variablen sind für 12 Jahre ausgelegt und können durch weitere Variablen natürlich erweitert werden.
 
Variable Beschreibung Formel
Formelvariablen für variablen Mehrjahresvergleich
Diese sind auch als "interne Variable" definiert
(Eingabefelder auf Selektionsbildern)
ZPJAHR aktuellstes Geschäftsjahr '#S001'
ZPJAHRE ältestes Geschäftsjahr Wertvariable (Vorschlagswert 2007)
ZPJR-01 Aktuellstes Geschäftsjahr - 1 IF (1+'ZPJAHR'-'ZPJAHRE')> 1
THEN 'ZPJAHR' -1
ELSE 1999
ZPJR-02 Aktuellstes Geschäftsjahr - 2 IF (1+'ZPJAHR'-'ZPJAHRE')> 2
THEN 'ZPJAHR' - 2
ELSE 1999
ZPJR-03 Aktuellstes Geschäftsjahr - 3 IF (1+'ZPJAHR'-'ZPJAHRE')> 3
THEN 'ZPJAHR' -3
ELSE 1999
ZPJR-04 Aktuellstes Geschäftsjahr - 4 IF (1+'ZPJAHR'-'ZPJAHRE')> 4
THEN 'ZPJAHR' -4
ELSE 1999
ZPJR-05 Aktuellstes Geschäftsjahr - 5 IF (1+'ZPJAHR'-'ZPJAHRE')> 5
THEN 'ZPJAHR' -5
ELSE 1999
ZPJR-06 Aktuellstes Geschäftsjahr - 6 IF (1+'ZPJAHR'-'ZPJAHRE')> 6
THEN 'ZPJAHR' -6
ELSE 1999
ZPJR-07 Aktuellstes Geschäftsjahr - 7 IF (1+'ZPJAHR'-'ZPJAHRE')> 7
THEN 'ZPJAHR' -7
ELSE 1999
ZPJR-08 Aktuellstes Geschäftsjahr - 8 IF (1+'ZPJAHR'-'ZPJAHRE')> 8
THEN 'ZPJAHR' -8
ELSE 1999
ZPJR-09 Aktuellstes Geschäftsjahr - 9 IF (1+'ZPJAHR'-'ZPJAHRE')> 9
THEN 'ZPJAHR' -9
ELSE 1999
ZPJR-10 Aktuellstes Geschäftsjahr - 10 IF (1+'ZPJAHR'-'ZPJAHRE')> 10
THEN 'ZPJAHR' -10
ELSE 1999
ZPJR-11 Aktuellstes Geschäftsjahr - 11 IF (1+'ZPJAHR'-'ZPJAHRE')> 11
THEN 'ZPJAHR' -11
ELSE 1999
ZPJR-12 Aktuellstes Geschäftsjahr - 12 IF (1+'ZPJAHR'-'ZPJAHRE')> 12
THEN 'ZPJAHR' -12
ELSE 1999

Die dahinterliegende Logik besagt, dass bei jeder Variable geprüft werden soll, ob eine Ausgabe noch erforderlich ist (der Berichtszeitraum sich also noch über die entsprechende Jahre zwischen ZPJAHR und ZPJAHRE erstreckt, oder ob alternativ das Jahr 1999 als Dummy verwendet werden soll.

Verwendung der Variablen im Report Painter


Nachdem diese Variablen definiert worden sind, können diese auch als Spalten im Reportpainter genutzt werden.

Hierfür werden folgende Berichtsspalten in der Bibliothek 8A2 über die Basiskennzahl "Betrag in PCTR-Hauswährung" für das Merkmal Geschäftsjahr angelegt.

Geschäftsjahr (Variable) ZPJAHR und als Beschreibung &ZPJAHR  so dass der Variablenwert als Spaltenbezeichnung ausgegeben wird.

In der nächsten Spalte wird das Merkmal Geschäftsjahr ebenfalls mit Variable markiert und die Variable ZPJAHRE zugewiesen. Hier wird als Beschreibung "&ZPJAHRE ausblenden" festgelegt.
Nachdem die Spalte angelegt wurde kann diese direkt markiert werden (auf die Spaltenüberschrift klicken) und über BEARBEITEN -> SPALTE -> AUSBLENDEN diese Spalte ausgeblendet werden.
Hierdurch wird diese Variable zwar im Selektionsbild erscheinen (um den Berichtszeitraum einzugrenzen) wird aber später in der Berichtsausgabe nicht erscheinen.

Die oben beschriebene Einbindung der Spalte ZPJAHRE für das Endjahr ist obsolet, da durch Bezug der einzelnen Variablen automatisch ZPJAHRE ebenfalls im Bericht mit eingebunden wird und damit im Selektionsbild aufgezeigt wird.

Als weitere Spalten legen wir dann für das Merkmal die Variablen ZPJR-01 bis ZPJR-12 mit entsprechender Bezeichnung (Kurz-, Mittel- und Langtext) von &ZPJR-01 bis &ZPJR-12 als einzelne Spalten an.



Insgesamt dürften nun im Report Painter 13 Spalten vorhanden sein, womit wir insgesamt auch 13 Jahre auswerten könnten. Sofern der Berichtszeitraum kürzer ist würde für die hinteren Tabellen kein Wert ausgegeben werden, da im Jahr 1999 (wir erinnern uns, dieses Jahr wurde in der Variable zugewiesen, wenn der Berichtszeitraum kürzer ist) keine Buchungen erfolgt sind.

Damit sind wir dem Berichtswunsch schon sehr nahe, allerdings sind leere Spalten eigentlich nicht sehr informativ. Daher können wir über:

FORMATIEREN-> BERICHTSLAYOUT

im Register Spalten festlegen über den Punkt Nullspaltenbehandlung bestimmen Nullspalten zu unterdrücken.

Fazit

Damit werden die leeren Spalten des Jahres 1999 nicht mehr angezeigt. Somit werden tatsächlich nur so viele Spalten ausgegeben, wie zwischen dem ältestens und den aktuellsten Geschäftsjahr liegen. Eine Ausnahme wäre nur der Fall, wenn mehr als 13 Jahre ausgewertet würden. Allerdings stellt sich auch die Frage, ob eine Jahresangebe von 99 Jahren außer bei bestimmten Gesellschaftsspielen als Altersangabe auch noch ein überschaubarer Zeitraum sein können. Insgesamt handelt es sich hierbei um einen sehr flexiblen Bericht, der sowohl für größere als auch kleinere Zeiträume geeignet ist.

Ein weiteres Beispiel kann eine Variable für das Quartal sein. Hier wird nur mit Formelvariablen gearbeitet. Hierbei wird die Variable QUARTAL als Wertvariable definiert und die einzelnen Perioden des Quartals mit folgenden Formeln versehen:
 
Variable Formel
Perioden des Quartals anzeigen
QPER1 ‘QUARTAL’ * 3 - 2
QPER2 ‘QUARTAL’ * 3 - 1
QPER3 ‘QUARTAL’ * 3

Gerade bei Zeiträumen zeigen solche Variablen einige neue und sicherlich spannende Möglichkeiten auf. Innerhalb des Berichtes müssen dann nur noch die Spalten mit den Variablen QPER1 bis QPER3 versehen werden und beim Berichtsaufruf wird dann im Selektionsbild die Variable QUARTAL abgefragt. In dieser Logik könnte die Variable ZPJAHRE, die wir im Report Painter Bericht ausgeblendet hatten, auch einfach nicht verwendet werden, da die anderen Variablen direkten Bezug zu ihr nehmen und damit diese über eine indirekte Definition ebenfalls abgefragt wird. Als Bonus könnte im Report dann auch noch die Summe von QPER1 bis QPER3 ermittelt werden und das Ergebnis des selektierten Quartals im Bericht mit ausgegeben werden.
 

Erweiterung für Gemeinkostencontrolling

Sollen statt Profit-Center lieber Innenaufträge oder Kostenstellen (bspw. über die Bibliothek 6o1 "Innenaufträge" oder 1VK "Kostenstellen - Vollkostenrechnung" ausgewertet werden bieten sich vergleichbare Variable mit Bezug auf die Tabelle CCSS "Berichtstabelle Gemeinkostencontrolling" und den Feld GJAHR "Geschäftsjahr" an. Entsprechend bietet es sich an die Variablen dann statt mit ZP für Profit-Center-Rechnung mit ZK oder ZI (gemeinsamer Nenner wäre wohl ZG für Gemeinkosten) beginnen zu lassen. Zwar beziehen sich die Variablen auf eine Tabelle, da diese aber zur reinen Wertermittlung herangezogen werden und dann in einen Merkmal der passenden Berichtstabelle verwendet werden könnten aber auch die ZP* Variablen in den anderen Bibliotheken verwendet werden.

Hinweis:

Eine kurze Einführung in das Thema Report Painter und Report Writer habe ich im Artikel "Grundlagen Kurzeinführung und Handbuch Report Painter Report Writer" 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.
Espresso Tutorial - die digitale SAP Bibliothek

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 (siehe auch XII. Fremde Nutzung / Kommentarfunktion 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)

Name (sofern kein Name angegeben wird erscheint Anonym):


Normaler Kommentar

Name:

E-Mail (wird nicht veröffentlicht):

Homepage:

Kommentar:


Hinauf




Werbung



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

Stichwortverzeichnis
(Tagcloud)


Aktuelle Infos (Abo)

Facebook Twitter Google+

»Schnelleinstieg ins SAP Controlling (CO)« und »Berichtswesen im SAP ® ERP Controlling«
Privates

Kaffeekasse 📖 Wunschliste