Der Kunde hat die Anforderung in einer auszuwertenden Zeitreihe den aktuellen Monat zu unterteilen in „bis heute“ (Vergangenheitsbetrachtung) und „ab heute“ (Betrachtung in die Zukunft).
Dabei werden unter anderem Bestände und Bedarfsprognosen ausgewertet. Der Anwender hat dabei zusätzlich die Möglichkeit die jeweiligen Zeiträume in Vergangenheit und Zukunft frei zu wählen.
Die Umsetzung mithilfe einer BW Query soll über eine feste Struktur erfolgen, aus der ersichtlich wird, welches Strukturelement der Vergangenheit und welches der Zukunft angehört.
Inhaltsverzeichnis
Schritt 1: Anlegen von Variablen
1.1 Customer Exit-Variable zum Ein- und Ausblenden der Strukturobjekte
1.2 Anlegen der eingabebereiten Textvariablen
Schritt 2: Anlegen einer Zeitstruktur
2.1 Als Strukturelement wird 0Calmonth verwendet und einschränkt
2.2 Eigenschaften der Struktur
Schritt 3: Ausprägung des CustomerExits
In einer Query sollen abhängig von einer Datumsselektion Elemente einer Struktur ein und ausgeblendet werden. In dem beschriebenen Anwendungsbeispiel ist eine Merkmalsstruktur angelegt, die vom aktuellen Monat aus 12 Monate sowohl in die Zukunft als auch in die Vergangenheit auswertet. Es musste eine feste zeitliche Struktur angelegt werden, da zur Laufzeit in Zellreferenzen (Link SAP) Berechnungen vorgenommen werden müssen, die abhängig davon sind, ob der Betrachtungsmonat in der Vergangenheit oder in der Zukunft liegt. Der Berichtsanwender entscheidet dabei im Selektionsbild welche Monate im Bericht ausgewertet werden sollen. In der Definition der Struktur ist es vorgesehen, dass über eine Variable die Anzeige bzw. das Ausblenden von Strukturelementen gesteuert werden kann.
Generell lassen es Strukturen zu, dass variablengesteuert Strukturelemente sichtbar oder ausgeblendet sind.
Eine Recherche hat ergeben, dass es für diese Fragestellung wenig Informationen/Best Practices im Netz zu finden sind. In diesem Blogartikel wird die Umsetzung dieser Fragestellung als Schritt für Schritt beschrieben.
Schritt 1: Anlegen von Variablen
1.1 Customer Exit-Variable zum Ein- und Ausblenden der Strukturobjekte
Variablen werden im SAPDie SAP SE mit Sitz im baden-württembergischen Walldorf ist ein... BW immer auf Basis eines Infoobjektes erstellt. Durch Ausprobieren und Debuggen wurde ermittelt, dass eine Variable, die die Sichtbarkeit von Strukturelementen steuert, auf dem Objekt 1MEMBER erstellt werden muss.
Es wird eine neue Variable vom Typ Merkmalswert und Verarbeitung über Customer Exit angelegt. Das Bezugsmerkmal ist dabei 1MEMEBER
Beim Anlegen der Variablen ist zu beachten, dass das Objekt 1MEMBER nicht über die Suche eingefügt werden kann, sondern nur durch direkte Eingabe:
1.2 Anlegen der eingabebereiten Textvariablen
Die unter 1.1 beschriebene CustomerExit Variable muss auf Basis von Benutzereingaben Werte ermitteln. Die Benutzereingaben erfolgen deshalb in Textvariablen, die die Anzahl der Monate in die Vergangenheit und in die Zukunft aufnehmen.
Es müssen hierfür 2 Textvariablen erstellt werden, die eingabebereit sind.
Die Textvariablen werden dann in Anzeigeunterdrückten Strukturelementen aufgenommen, damit sie in der Query als Filter genutzt werden können.
Beim Berichtsaufruf können dann folgende Eingaben erfolgen:
Die Textvariablen werden dann in Anzeigeunterdrückten Strukturelementen aufgenommen, damit sie in der Query als Filter genutzt werden können.
Beim Berichtsaufruf können dann folgende Eingaben erfolgen:
Schritt 2: Anlegen einer Zeitstruktur
Achtung die beschriebene Vorgehensweise lässt sich nur über lokale Strukturen realisieren, auf globalen Strukturen besteht nicht die Möglichkeit, eine Variable für die Sichtbarkeit von Strukturelementen zu setzen.
Es müssen für den Gesamtzeitraum Strukturelemente angelegt werden, die von heute aus 12 Monate in die Vergangenheit und 12 Monate in die Zukunft schauen. Zu berücksichtigen ist, dass der aktuelle Monat zusätzlich aufgeteilt wird in „bis heute“ und „ab heute“.
2.1 Als Strukturelement wird 0Calmonth verwendet und eingeschränkt
2.1.1 Die einzelnen Strukturelemente folgen einer festen Namenskonvention, mit Hilfe derer später das korrekte Element zur Anzeige ermittelt werden kann
Damit im Customer Exit die Strukturelemente eindeutig identifiziert werden können, müssen die einzelnen Elemente einen technischen Namen erhalten, der eindeutig festlegt, um welches zeitliche Element es sich handelt. In unserem Beispiel soll maximal 12 Monate in die Vergangenheit und 12 Monate in die Zukunft berichtet werden. Die Datumsvariable selbst ist dabei über eine Offsetvariable eingeschränkt. Das Strukturelement „012“ ist somit auf den Vorjahresmonat eingeschränkt, das Strukturelement „112“ auf den Folgejahresmonat, „001“ ist der Vormonat, „101“ ist der Folgemonat und so weiter.
2.1.2 Das Strukturelement „bis heute“ wird eingeschränkt auf den aktuellen Kalenderjahr/monat (über die SAP-Exitvariable 0CMONTH), zusätzlich wird der Kalendertag auf <= aktueller Kalendertag (über die Sap-Exitvariable 0DAT) begrenzt
2.1.3 Das Element „ab heute“ wird eingeschränkt auf das aktuellen Kalenderjahr/monat (über die Sap-Exitvariable 0CMONTH) zusätzlich wird der Kalendertag auf > aktueller Kalendertag (über die Sap-Exitvariable 0DAT) begrenzt.
2.1.4 Die Vor- und Folgemonate werden dann per Variablenoffset erzeugt: Im dargestellten Bild ein Beispiel für den Vormonat
2.1.5 In die Beschreibung des Strukturelements wird die Textersetzungsvariable eingefügt, damit beim Berichtsaufruf der das jeweilige Kalenderjahr/-monat angezeigt wird.
2.2 Eigenschaften der Struktur
In den allgemeinen Eigenschaften der Struktur muss die Sichtbarkeit von Struktur Elementen auf „Kann über Variable geändert werden“ eingestellt sein. In die Variable wird die Customer Exitvariable aufgenommen, die unter 1.1 angelegt worden ist. Sie sorgt dafür, dass nur die Elemente im Berichtsergebnis angezeigt werden, die der Anwender gewählt hat.
Schritt 3: Ausprägung des CustomerExits
Der Customer Exit für die 1Member Variable ermittelt dann jeweils aus den eingegebenen Zeitfenster (der eingabebereiten Textvariablen), die Objekte der Struktur, die eingeblendet werden. Wählt der Anwender z.B. aus, dass er 5 Monate in die Vergangenheit und 7 Monate in die Zukunft auswerten will, werden die Strukturelemente von 001 bis 005 (für die Vergangenheit und die Elemente 101 bis 107 für die Zukunft ausgewählt und somit im Berichtsergebnis angezeigt.
Schritt 4: Definition der Query und Berichtsaufruf
Die Query wurde dann so definiert, dass in den Spalten die Zeitstruktur und in den Zeilen die Kennzahlen abgetragen werden. Über Zellreferenzen kann dann in einer Zeile sowohl eine Vergangenheitsbezogene Bestandskennzahl sowie eine zukunftsbezogene Prognose auf Basis von Bestellmengen ausgegeben werden. Die Definition der Query ist sehr individuell und liegt nicht im Fokus dieser Schritt für Schritt Anleitung.
Im Berichtsergebnis werden dann die Strukturelemente angezeigt, die der Anwender über seine Eingaben gewählt hat.
Über den Berichtsfilter der Struktur können im Berichtsergebnis weitere Elemente der Zeitstruktur aus- oder abgewählt werden.
Zusammenfassung
Über die Einstellung der Sichtbarkeit in der Struktur lassen sich nicht nur durch direkte Benutzereingaben Elemente ein und ausblenden, sondern auch durch die Steuerung einer Variablen erfolgen. Die Variable muss dabei als Customer-Exit Variable und auf dem Objekt 1MEMBER definiert sein. Im Customer Exit kann im Coding Bezug auf andere Eingaben/Einschränkungen die Sichtbarkeit gesteuert werden.
Wird keine Variable gewählt in den Einstellungen der Struktur gewählt, werden dem Anwender alle Strukturelemente im Selektionsbild angeboten, die dann gewählt werden müssen.
Die dargestellte Lösung über die 1Member Variable lässt sich jedoch nur in lokalen Strukturen realisieren. Bei einer globalen Struktur besteht nicht die Möglichkeit der Eingabe einer Variablen.
Bei unterschiedlichen Queries, die dieselbe Struktur nutzen, müssen die Referenzen zur globalen Struktur aufgehoben werden. Bei Strukturänderung kann dies zu einem erheblichen Mehraufwand führen.
Der umgesetzte Lösung hat sich in der beschriebenen Kundenanforderung beim Auswerten etabliert und ist für den Anwender eine einfache Möglichkeit, unterschiedliche Zeiträume zu analysieren. Durch die feste Struktur ist definiert, ob es sich um vergangenheitsbezogene Werte oder zukünftige Werte handelt.
Autorin: Wiebke Schulz
Ihr Ansprechpartner
Kay Rohweder
Senior Manager
SAP Information Management
kay.rohweder@isr.de
+49 (0) 151 422 05 242