Beruflich Dokumente
Kultur Dokumente
SAP Planungskonzepte DE PDF
SAP Planungskonzepte DE PDF
2017-07-31
PUBLIC (ÖFFENTLICH)
Planungskonzepte
1 Planungskonzepte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1 Konzepte zum Schutz von Daten gegen Änderungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Datenbasis InfoProvider. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Merkmalsbeziehungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Merkmalsbeziehungen für Zeitmerkmale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Datenscheiben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
Merkmalsbeziehungen und Datenscheiben auf der SAP HANA-Datenbank implementieren
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Aggregationsebene. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
Einfache Aggregationsebene. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Komplexe Aggregationsebene. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.4 Filter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.5 Variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.6 Planungsfunktionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Ablauf einer Planungsfunktion: Verteilung nach Schlüsseln. . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Standard-Planungsfunktionstypen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
Standardstichtag in Planungsfunktionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
1.7 Planungssequenz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Planungssequenz in Prozesskette einplanen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Planungssequenz für Bottom-Up-Planung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
1.8 Planungsfunktionstyp implementieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Business-Logik für Planungsfunktionstyp in ABAP-Klasse implementieren. . . . . . . . . . . . . . . . . 111
Business-Logik für Planungsfunktionstyp auf der SAP HANA-Datenbank implementieren. . . . . . 115
1.9 Eingabebereite Query. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
Eingabebereite Queries zur Ausführungszeit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Alle gültigen Merkmalskombinationen anzeigen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Disaggregation (Top-Down-Verteilung). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Inverse Formel definieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Inverse Formel zur Laufzeit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Stammdatenplanung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
1.10 Sichern geänderter Werte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
1.11 Audit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Audit-Merkmale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Audit-Query. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
1.12 Sperrkonzept und Sperrverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Verwalten der Sperreinstellungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Planungskonzepte
2 PUBLIC (ÖFFENTLICH) Inhalt
Ablegen der Sperrtabelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Auswahl der Sperrmerkmale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Anzeige der aktiven Sperren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Anzeige der Privilegsperren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Analyse eines Sperrkonfliktes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Sizing der Sperrtabelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Planungskonzepte
Inhalt PUBLIC (ÖFFENTLICH) 3
1 Planungskonzepte
Die Planung in SAP Business Planning and Consolidation, version for SAP BW/4HANA, (Embedded-
Konfiguration) stellt dem Business Experten eine Infrastruktur für die Realisierung und den Betrieb von
Planungsszenarien oder anderen Applikationen zur Verfügung. Planung umfasst in diesem Sinne ein weites
Spektrum von der einfachen Dateneingabe bis hin zu komplexen Planungsszenarien.
Voraussetzungen
Für die Planung benötigt der Benutzer grundsätzlich dieselben Berechtigungen wie für die Analyse von Daten in
einer Query. Zusätzlich wird in den Analyseberechtigungen neben der Berechtigung für das Anzeigen von
Daten auch die Berechtigung für das Ändern von Daten benötigt.
Kontext
Vorgehensweise
Zur Ablage der Daten werden für die Planung geeignete InfoProvider verwendet.
Damit stets nur ein Benutzer Daten ändern kann, werden "dessen" Daten gegen fremde Änderungen
gesperrt. Je nach zu erwartender Last (determiniert durch die Anzahl paralleler Benutzer und durch die
Komplexität der Selektion) kann ein bestimmtes von mehreren angebotenen Sperrverfahren voreingestellt
werden.
2. Objekte des Planungsmodells definieren
○ Aggregationsebenen
Um die Ebene festzulegen, auf der Daten (manuell durch Benutzereingabe oder automatisch per
Planungsfunktion) erfasst bzw. geändert werden können, wird ein InfoProvider vom Typ einer
Planungskonzepte
4 PUBLIC (ÖFFENTLICH) Planungskonzepte
Aggregationsebene definiert. Eine Aggregationsebene besteht aus einer Untermenge von Merkmalen
und Kennzahlen eines für die Planung geeigneten InfoProviders.
○ Merkmalsbeziehungen
Über Merkmalsbeziehungen können semantische Beziehungen zwischen Merkmalen (wie Produkt -
Produktgruppe) modelliert werden. Hierüber wird z.B. gesteuert, ob eine bestimmte
Merkmalskombination erzeugt werden kann (also erlaubt ist), oder ob eine Zelle eingabebereit ist.
Merkmalsbeziehungen werden zu einem für die Planung geeigneten InfoProvider angelegt.
○ Datenscheiben
Über eine Datenscheibe können bestimmte Bereiche der Daten global gegen Änderungen geschützt
werden (z.B. Ist-Werte oder historische Werte).
○ Planungsfunktionen
Planungsfunktionen dienen zur systemgestützten Bearbeitung bzw. Erzeugung von Daten. Funktionen
können unmittelbar (über Drucktaste) oder im Hintergrund als Planungssequenz ausgeführt werden.
SAP liefert zahlreiche Standard-Planungsfunktionstypen aus. Zusätzlich können Sie auch eigene
Funktionstypen definieren.
○ Planungssequenzen
Eine Planungssequenz ist eine Abfolge von Planungsfunktionen und manuellen Eingabemasken, die
nacheinander ausgeführt werden. Planungssequenzen können auch zur Verarbeitung im Hintergrund
als Schritt einer Prozesskette eingeplant werden.
○ Filter
Ein Filter beschreibt einen Ausschnitt des Datenbestandes, der z.B. in einer Query oder in einer
Planungsfunktion bearbeitet wird (z.B.: Kalenderjahr 2016 - 2017; Kundengruppe XY).
○ Variablen
Sie können Variablen an verschiedenen Stellen einsetzen: im Filter zur parametrisierbaren Selektion
von Merkmalswerten, zur Parametrisierung von Planungsfunktionen oder Planungssequenzen.
Hinweis
Informationen über den Transport der Objekte des Planungsmodells finden Sie unter .
In den BW-Modellierungswerkzeugen können Sie eine Query definieren, die auf einem für die Planung
geeigneten InfoProvider beruht und eingabebereit ist. Eine solche Query kann zur manuellen Planung
verwendet werden. Ob eine bestimmte Zelle eingabebereit ist, hängt vom Aufriss ab und davon, ob sie
entsprechend den Merkmalsbeziehungen und Datenscheiben erlaubt ist.
Weitere Informationen
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 5
Sichern geänderter Werte [Seite 157]
Audit [Seite 159]
Sperrkonzept und Sperrverwaltung [Seite 166]
Als Teil des Planungsmodells gibt es auf verschiedene Anwendungsfälle zugeschnittene Konzepte zum Schutz
vor Datenänderungen.
In der Regel verwendet man für die Planung verschiedene Versionen, die nach Abschluss der Planung nicht
mehr geändert werden dürfen. Ein anderer Anwendungsfall ist die rollierende Planung, in der ein gewisses
Zeitfenster für die Planung geöffnet wird. So sind z.B. die nächsten 12 Monate nach dem aktuellen Monat für
die Planung geöffnet, alle Monate bis zum aktuellen Monat sind geschlossen. Diesen Anwendungsfällen
gemeinsam ist, dass i.a. der Schutz der Plandaten von Änderungen für alle Anwender (ggf. außer
Administratoren) gilt. Diese Anwendungsfälle können Sie durch Datenscheiben abbilden. Datenscheiben
wirken i.a. unabhängig vom Anwender für die manuelle Planung und für Planungsfunktionen. Durch die
Verwendung von Variablen oder Exit-Datenscheiben kann man auch erreichen, dass Datenscheiben abhängig
vom Anwender gesetzt werden.
Mit Datenscheiben ist ansatzweise eine Statusverwaltung der Planung möglich. Diese wird jedoch nicht
explizit vom System unterstützt, da eine Statusverwaltung der Plandaten i.a. die gesamte Planung in
Verantwortungsbereiche aufteilt und die Personen zuordnet, welche die Planung steuern, überwachen und den
Status der Planung verwalten. Dazu werden in der Regel Merkmale ermittelt, über die sich die
Verantwortungsbereiche abgrenzen lassen. Für eine Kostenstellenplanung kann das die Kostenstelle sein, für
eine Vertriebsplanung die Merkmale Land, Region. Dieser Anwendungsfall wird vom System durch die Nutzung
des Arbeitsstatus im SAP Business Planning and Consolidation, version for SAP BW/4HANA, (Embedded-
Konfiguration) unterstützt. Der Arbeitsstatus ermöglicht es, die Verantwortungsbereiche zu definieren und
verantwortlichen Personen zuzuordnen. Für die verschiedenen Bereiche und Teilbereiche kann ein frei
definierbarer Planstatus gesetzt werden; darüber lassen sich insbesondere auch Plandaten gegen Änderungen
schützen. Diese Funktionalität wird im Rahmen der Arbeitsstatusverwaltung zur Verfügung gestellt. Für die
Umsetzung des Schutzes vor Datenänderungen – je nach Status der Plandaten - werden vom System zur
Laufzeit erzeugte Datenscheiben verwendet.
Neben den Konzepten der Datenscheiben und der Arbeitsstatusverwaltung des SAP Business Planning and
Consolidation, version for SAP BW/4HANA, (Embedded-Konfiguration), die in der Datenbank abgelegt werden,
gibt es das Konzept der Fixierung von Zellwerten in der manuellen Planung. Diese Fixierung von Zellwerten ist
eine Eingabehilfe, um interaktiv z.B. in der Disaggregation einige Werte von der Verteilung auszunehmen oder
die Reihenfolge der Berechnungen von inversen Formeln zu steuern. Fixierungen sind nur in der Benutzer-
Session gültig und werden nicht in der Datenbank abgelegt.
Völlig unabhängig von den oben genannten drei Konzepten ist das Sperrkonzept der Planung in SAP Business
Planning and Consolidation, version for SAP BW/4HANA, (Embedded-Konfiguration), welches alle im
Änderungsmodus gelesenen Bewegungsdaten exklusiv für die Bearbeitung in einer Benutzer-Session sperrt.
Dieses Sperrkonzept stellt sicher, dass nur derjenige Benutzer die gesperrten Daten verändern kann, der die
exklusive Sperre hält.
Planungskonzepte
6 PUBLIC (ÖFFENTLICH) Planungskonzepte
Weitere Informationen
Als Datenbasis dienen InfoProvider, die für die Planung geeignet sind oder die solche InfoProvider enthalten.
In den für die Planung geeignete Basis-InfoProvider werden die Daten persistiert. Dafür stehen Ihnen
folgende InfoProvider zur Verfügung:
● DataStore-Objekte:
○ Standard DataStore-Objekt mit der Eigenschaft Write Change Log
○ DataMart DataStore-Objekt
○ Direct Update DataStore-Objekt
Hinweis
Weitere Informationen über Planung auf einem DataStore-Objekt finden Sie im SAP-Hinweis 2189829
.
● InfoObject (Merkmal):
○ mit der Modellierungseigenschaft Usable as InfoProvider
○ mit der Modellierungseigenschaft Planning Mode
○ als InfoProvider befindet es sich im Planning Mode (Standardmäßig befindet sich ein beplanbares
InfoObject zunächst im Load Mode und muss umgeschaltet werden.)
Hinweis
Weitere Informationen über die allgemeinen Einstellungen am InfoObject finden Sie unter sowie über
die Möglichkeit, zwischen Load und Planning Mode umzuschalten, unter .
Beachten Sie weiterhin folgende Bedingungen, die erfüllt sein müssen, damit ein Merkmal als Basis-
InfoProvider für die Stammdatenplanung benutzt werden kann:
○ Das Merkmal hat eine Stammdatentabelle und ist mit Mitteln des SAP BW∕4HANA angelegt worden,
d.h. es wurde nicht mittels einer speziellen Stammdatenleseklasse implementiert wie z.B. SAP-HANA-
Views.
○ Es besitzt nicht die Eigenschaft Erweiterte Stammfortschreibung (Enhanced Master Data Update).
○ Es ist kein XXL-InfoObject.
○ Das Merkmal ist keine Referenz auf ein anderes Merkmal.
Falls das InfoObject einen Text mit der Eigenschaft Long Text is Extra Long oder die Eigenschaft Attribute
Only hat, so kann dieser Text nicht beplant werden.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 7
● Lokaler Provider im BW Workspace
Es gilt damit allgemein die Regel, dass Datensätze über die Planung nur dann verändert werden können,
wenn auf dem Weg von ‚oben‘ nach ‚unten‘ zum planbaren Basis-InfoProvider genau eine
Aggregationsebene beteiligt ist.
Die Planung erfolgt nicht direkt auf den oben genannten Basis-InfoProvidern, sondern über einen InfoProvider
vom Typ Aggregationsebene, der definiert, welche Merkmale und Kennzahlen in Datensätzen gefüllt werden
können.
Aggregationsebenen können auf planbaren Basis-InfoProvidern definiert werden oder auf zusammengesetzten
InfoProvidern, sofern diese nicht schon Aggregationsebenen enthalten.
● CompositeProvider, die mindestens einen für die Planung geeigneten Basis-InfoProvider enthalten. Die
beteiligten InfoProvider (incl. von SAP-HANA-Modellen) dürfen dabei nur über eine UNION verknüpft sein.
Hinweis
Weitere Informationen über Planung auf einem CompositeProvider finden Sie im SAP-Hinweis 2091885
.
● Beachten Sie, dass 1KYF_* Kennzahlen eines Basis-InfoObjects nur dann im CompositeProvider gemappt
werden dürfen, wenn sie zu einem Navigationsattribut des InfoObjects gehören. Insbesondere können die
Datumsfelder 1KYF_DATE*, 1KYF_TXTDATE* sowie die 1KYF-Kennzahlen zu Einheiten und Währungen
nicht im CompositeProvider exponiert werden.
Ein CompositeProvider kann direkt für die Planung verwendet werden, wenn dieser mindestens eine
Aggregationsebene enthält.
Im Rahmen der Planung können Sie zu einem für die Planung geeigneten Basis-InfoProvider zulässige
Kombinationen von Merkmalswerten in Form von Merkmalsbeziehungen definieren und zum Schutz
ausgewählter Daten Datenscheiben anlegen.
Achtung
Beachten Sie, dass Änderungen für Zentrale Einstellungen, Merkmalsbeziehungen und Datenscheiben in der
aktiven Benutzer-Sessions i.a. nicht sofort wirksam werden, wenn diese Einstellungen in eben dieser
Benutzer-Session schon gelesen wurden: Diese Einstellungen sind aus Konsistenz- und Performance-
Gründen gepuffert.
Für den Fall, dass die generischen Typen der Merkmalsbeziehungen (Attribut, Hierarchie) und der
Datenscheiben (Selektion) für die individuellen Kundenanforderungen nicht ausreichen, können Sie
Merkmalsbeziehungen und Datenscheiben vom Typ Exit implementieren.
Planungskonzepte
8 PUBLIC (ÖFFENTLICH) Planungskonzepte
Standardstichtag für die Planung
Weiterhin können Sie zu einem für die Planung geeigneten InfoProvider einen Stichtag als Standardstichtag für
die Planung festlegen. Wenn zeitabhängige Objekte, etwa Attribute oder Hierarchien, in Objekten des
Planungsmodells verwendet werden, kann man sich dort stets auch auf den Standardstichtag für die Planung
beziehen. So können Sie sicherstellen, dass im Planungsmodell ein einheitlicher Stichtag verwendet wird. Die
hierfür relevanten Objekte des Planungsmodells sind Merkmalsbeziehungen, Datenscheiben und Parameter
von Planungsfunktionen.
Werkzeuge
InfoProvider als Datenbasis für die Planung legen Sie in den BW-Modellierungswerkzeugen oder als Local Query
extended Model an.
Weitere Informationen
Diese Links führen in die Dokumentation der für die Planung geeigneten Basis-InfoProvider.
Aggregationsebene anlegen [Seite 178]
Diese Links führen in die Dokumentation der für die Planung geeigneten CompositeProvider sowie der
Aggregationsebene.
Merkmalsbeziehungen [Seite 9]
Merkmalsbeziehungen und Datenscheiben auf der SAP HANA-Datenbank implementieren [Seite 16]
Datenscheiben [Seite 15]
Standardstichtag in Planungsfunktionen [Seite 98]
Stammdatenplanung [Seite 156]
Diese Links führen in die Dokumentation planungsspezifischer Metadatenobjekte und zentraler Einstellungen.
1.2.1 Merkmalsbeziehungen
Verwendung
Mit Hilfe von Merkmalsbeziehungen können Sie Regeln definieren, um zulässige Kombinationen von
Merkmalswerten für jeden für die Planung geeigneten Basis-InfoProvider zu überprüfen. Außerdem können Sie
Regeln definieren, nach denen das System aus Merkmalen Werte für weitere Merkmale ableiten kann. Dies ist
dann sinnvoll, wenn z.B. die ableitbaren Merkmale für weitere Auswertungen zur Verfügung stehen sollen.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 9
Sie können Merkmalsbeziehungen zu den Stammdaten eines Merkmals (Typ Attribut), einer Hierarchie (Typ
Hierarchie), einem DataStore-Objekt (Typ DataStore) oder einer Exit-Klasse (Typ Exit) definieren.
Ein InfoProvider kann entweder als Ablage für Transaktionsdaten für die Planung oder zur Modellierung der
zulässigen Merkmalskombination verwendet werden.
Tipp
Wenn Sie zur Ablage der zulässigen Merkmalskombinationen ein Direct Update DataStore-Objekt
verwenden, hat das den Vorteil, dass man dieses DataStore-Objekt direkt mit einer eingabebereiten Query
pflegen kann.
Wir empfehlen, die Rollen der InfoProvider für die Ablage der Plandaten und für die Ablage der Regeln für die
Plandaten nicht zu vermischen. Falls dies in einer Benutzersitzung dennoch geschieht, gelten die folgenden
Regeln:
● Wenn ein InfoProvider namens A zuerst als InfoProvider für die Planung genutzt wird, sind andere
InfoProvider, die A in einer Merkmalsbeziehung verwenden, nicht eingabebereit.
● Wenn der InfoProvider A zuerst in einer Merkmalsbeziehung und anschließend als InfoProvider für die
Planung verwendet wird, dann ist der Planungsprovider nicht eingabebereit.
● Wenn der InfoProvider A in einem CompositeProvider gleichzeitig als PartProvider sowie in einer
Merkmalsbeziehung eines anderen PartProviders verwendet wird, dann ist der PartProvider A nicht
eingabebereit.
Integration
Wenn Merkmalsbeziehungen in bezug auf Attribute und Hierarchien zu Merkmalen definiert werden, stellt das
System diejenigen Attribute und Hierarchien zur Auswahl, die im jeweiligen System zu einem Merkmal angelegt
wurden.
Merkmalsbeziehungen werden zu einem für die Planung geeigneten Basis-InfoProvider angelegt. Sie wirken
sich dann in allen für die Planung relevanten InfoProvidern aus, die diesen Basis-InfoProvider referenzieren.
Jede eingabebereite Query und jede Planungsfunktion berücksichtigt damit automatisch die
Merkmalsbeziehungen:
● In einer eingabebereiten Query sind Zellen zu ungültigen Merkmalskombinationen nicht eingabebereit, und
neue Datensätze mit ungültigen Merkmalskombinationen können nicht erzeugt werden.
● Planungsfunktionen überprüfen stets, ob neue Merkmalskombinationen entsprechend den
Merkmalsbeziehungen gültig sind. Im Fall von ungültigen Kombinationen teilt das System dies durch eine
Fehlermeldung mit.
Die möglichen Merkmalsableitungen finden bei der Ermittlung der Delta-Sätze im Delta-Buffer (für den lokalen
Provider im BW Workspace) oder im After-Image-Buffer (für das DataStore-Objekt) statt.
Die möglichen Quellmerkmale sind hier die Merkmale des planungsrelevanten InfoProviders, die von
Merkmalen aus den beteiligten Aggregationsebenen gefüllt werden. Wenn Merkmalsbeziehungen geändert
werden, müssen ggf. Datensätze im planungsrelevanten InfoProvider auf die neue Struktur angepasst werden.
Hierzu dient die Planungsfunktion Umbuchen Merkmalsbeziehungen.
Planungskonzepte
10 PUBLIC (ÖFFENTLICH) Planungskonzepte
Voraussetzungen
● Der InfoProvider muss ein für die Planung geeigneter Basis-InfoProvider sein. Die definierten
Merkmalsbeziehungen sind auch in CompositeProvidern wirksam, in denen die planungsrelevanten Basis-
InfoProvider verwendet werden.
● Bei Merkmalsbeziehungen vom Typ Attribut muss das Zielmerkmal als Attribut des Basismerkmals
definiert und selbst im planungsrelevanten Basis-InfoProvider enthalten sein.
● Bei Merkmalsbeziehungen vom Typ Hierarchie muss das Zielmerkmal in der ausgewählten Hierarchie und
im planungsrelevanten Basis-InfoProvider enthalten sein. Die Hierarchie ist hauptsächlich zur Modellierung
einer Ableitungsbeziehung gedacht; daher darf die Hierarchie kein Blatt und keinen inneren Knoten
mehrfach enthalten. Link-Knoten sind ebenfalls nicht zulässig.
● Bei Merkmalsbeziehungen vom Typ DataStore sind nur die folgenden DataStore-Objekte zulässig:
○ DataStore-Objekt: Alle Typen sind unterstützt, sofern das DataStore-Objekt einen eindeutigen
Schlüssel besitzt und kein DataMart DataStore-Objekt ist.
Hinweis
Neben den oben genannten Merkmalsbeziehungen, die Sie bearbeiten können, sind im System stets
weitere Merkmalsbeziehungen für die Zeitmerkmale aktiv.
Funktionsumfang
Merkmalsbeziehungen können Sie zu einem für die Planung geeigneten Basis-InfoProvider anlegen. Eine
Merkmalsbeziehung besteht aus einer Menge von Relationen (Schritten), die einfach fortlaufend nummeriert
werden. Jede dieser Relationen setzt eine Menge von Merkmalen in Beziehung. Diese Relationen stellen die
kleinsten Einheiten einer Merkmalsbeziehung dar.
Relationen können ausschließlich zur Prüfung von Merkmalskombinationen oder zusätzlich auch zu einer
Merkmalsableitung dienen. Sie legen dieses Verhalten bei der Definition einer Relation fest. Insbesondere bei
Relationen vom Typ Ableitung können Beziehungen unter Relationen dadurch hergestellt werden, dass
Zielmerkmale einer Relation Quellmerkmale einer anderen Relation sind. Dabei sollten Redundanzen
vermieden werden, damit die Relationen wirklich die kleinsten Einheiten der Merkmalsbeziehungen darstellen.
Das System ermittelt zur Laufzeit, welche Relationen der Merkmalsbeziehungen in den InfoProvidern, die für
die Planung relevant sind, zur Anwendung gelangen.
● Kombinationsprüfung: Eine Relation kommt dann in einer Aggregationsebene zur Anwendung, wenn
jedes Merkmal der Relation in der Aggregationsebene vorkommt. Bei Ableitungen sind dies die Quell- und
Zielmerkmale; in diesem Fall wird nichts abgeleitet, die Relation wirkt nur als Kombinationsprüfung.
● Merkmalsableitung: Innerhalb einer Aggregationsebene findet keine Ableitung statt. Eine Ausnahme von
dieser Regel sind neue Zeilen in eingabebereiten Queries: Dort versucht das System, aus bekannten
Merkmalswerten weitere Merkmalswerte für andere Merkmale über Ableitungen aufzufüllen. Ableitungen
erfolgen nur für Sätze des planungsrelevanten Basis-InfoProviders. Zunächst ermittelt das System die
Menge S der Merkmale, die von der beteiligten Aggregationsebene versorgt werden. Das System wendet
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 11
dann diejenigen Ableitungsrelationen an, deren sämtliche Quellmerkmale in der Menge S enthalten sind.
Die Zielmerkmale dieser Ableitungen können dann wiederum in folgenden Schritten als Quellen dienen.
Insofern führt das System auf der Ebene des planungsrelevanten Basis-InfoProviders die maximal
mögliche Ableitung durch. Wenn bereits abgeleitete Merkmalswerte in nachfolgenden Schritten erneut
verändert werden, ist die Ableitung fehlerhaft. Das System gibt eine entsprechende Fehlermeldung aus.
Innerhalb einer Relation ist zu beachten, dass der initiale Merkmalswert (# nicht zugeordnet) eine besondere
Rolle spielt. Das hängt damit zusammen, dass Merkmale, die nicht in einer Aggregationsebene vorkommen
(und nicht ableitbar sind) mit dem Initialwert fortgeschrieben werden.
Beispiel
Die in dem obigen Beispiel aufgeführten speziellen Kombinationen mit dem Initialwert werden automatisch
gültige Kombinationen genannt. Im Fall einer Relation vom Typ Exit werden für automatisch gültige
Kombinationen die Methoden CHECK und DERIVE nicht aufgerufen. Weiterhin erzeugt das System die
automatisch gültigen Kombinationen auch dann, wenn diese in der Methode CREATE nicht zurück gegeben
werden. Wenn dieses Verhalten in einer Merkmalsbeziehung nicht gewünscht ist, kann man dies über das
Kennzeichen Also apply to automatically valid combinations = X einstellen. In diesem Fall
werden die Methoden CHECK, DERIVE auch für automatisch gültige Kombinationen aufgerufen; weiterhin
werden die in CREATE erzeugten Kombinationen vom System nicht um die automatisch gültigen
Kombinationen ergänzt.
Hinweis
Beachten Sie, dass Merkmalsbeziehungen nicht als ein weiterer impliziter Filter für die zu lesenden
Bewegungsdaten wirken. Das System liest die durch den Filter der Query oder Planungsfunktion
spezifizierten Bewegungsdaten (egal ob laut Merkmalsbeziehung gültig oder nicht gültig) und erzeugt dann
ggf. zusätzlich nach den oben erläuterten Regeln weitere Kombinationen.
Weitere Informationen
Planungskonzepte
12 PUBLIC (ÖFFENTLICH) Planungskonzepte
Merkmalsbeziehung anlegen [Seite 182]
Registerkarte General Settings [Seite 184]
Registerkarte Characteristic Relations [Seite 184]
Diese Links führen in die Dokumentation der Aufgabe, wie man eine Merkmalsbeziehung bearbeitet.
Verwendung
In der Regel soll die Verwendung von redundanten Zeitmerkmalen in einem planungsrelevanten InfoProvider
vermieden werden. Das folgende Beispiel zeigt jedoch, dass dies in bestimmten Anwendungsfällen sinnvoll sein
kann.
Beispiel
Abhängig von der jeweiligen Planungsanwendung, etwa für die Rollierende Planung, kann z.B. das Merkmal
Geschäftsjahresperiode 0FISCPER (12.2005 + 1 = 1.2006) verwendet werden.
Wenn Sie aber z.B. Query Views bauen möchten, die die Perioden in den Zeilen und das Geschäftsjahr in
den Datenspalten enthalten, ist es sinnvoller, die Zeitmerkmale Periode und Geschäftsjahr zu verwenden.
Wenn ein planungsrelevanten InfoProvider redundante Zeitmerkmale enthält, verwendet das System zur
Laufzeit die von eingabebereiten Queries oder Planungsfunktionen benötigten Merkmalsbeziehungen für die
entsprechenden Zeitmerkmale. Diese Merkmalsbeziehungen sind vom Typ "Ableitung" mit Ausnahme der
Merkmalsbeziehung für die Merkmale 0FISCVARNT, 0FISCYEAR, 0FISCPER3.
Achtung
Beachten Sie, dass das System nur eindeutige Beziehungen zulässt. So kann aus dem Zeitmerkmal Quartal
(0CALQUARTER) das Kalenderjahr (0CALYEAR) abgeleitet werden, jedoch nicht die Kalenderwoche
(0CALWEEK).
Wenn Sie eine solche Beziehung modellieren möchten, benötigen Sie eine eigene Merkmalsbeziehung vom
Typ Exit, die eigene Merkmale verwendet, welche die geeigneten Standardzeitmerkmale referenzieren.
Das System wendet die abgeleiteten Merkmalsbeziehungen für die Zeitmerkmale (so wie bei den anderen
Relationen auch) zur Kombinationsprüfung bzw. zur Ableitung an.
Achtung
Beachten Sie, dass es für jedes Zeitmerkmal ein im System einstellbares, maximal gültige Zeitintervall gibt.
Wenn Sie ein Zeitmerkmal verwenden, muss das maximal gültige Zeitintervall den gesamten
Planungszeitraum umfassen.
In Ihrem Backendsystem können Sie das Zeitintervall auf dem Bild F4-Hilfe und Hierarchien für
Zeitmerkmale (Transaktionscode RSRHIERARCHYVIRT) auf der Registerkarte Allgemeine Einstellungen
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 13
festlegen. Da diese Einstellung performancerelevant ist, empfehlen wir, das Intervall so klein wie möglich zu
halten.
Es ist nicht möglich, Ableitungen anzulegen, die eine im System automatisch verwendete Zeitableitung
enthalten.
Die folgende Tabelle gibt eine Übersicht darüber, welche Ableitungen vom System automatisch unterstützt
werden:
0CALDAY 0CALWEEK
0CALDAY 0CALMONTH
0CALDAY 0CALQUARTER
0CALDAY 0CALYEAR
0CALDAY 0WEEKDAY1
0CALDAY 0CALMONTH2
0CALDAY 0CALQUART1
0CALDAY 0HALFYEAR1
0CALMONTH 0CALQUARTER
0CALMONTH 0CALYEAR
0CALMONTH 0CALMONTH2
0CALMONTH 0CALQUART1
0CALMONTH 0HALFYEAR1
0CALQUARTER 0CALYEAR
0CALQUARTER 0CALQUART1
0CALQUARTER 0HALFYEAR1
0CALMONTH2 0CALQUART1
Planungskonzepte
14 PUBLIC (ÖFFENTLICH) Planungskonzepte
Quellmerkmale Zielmerkmale Kommentar
0CALMONTH2 0HALFYEAR1
0CALQUART1 0HALFYEAR1
Weitere Informationen
Merkmalsbeziehungen [Seite 9]
1.2.3 Datenscheiben
Datenscheiben sind ein Konzept, um zentral Daten eines planungsrelevanten Basis-InfoProviders gegen
Änderungen zu schützen. Dieser Schutz wirkt sich auf alle eingabebereiten Queries und Planungsfunktionen
aus, die diesen planungsrelevanten InfoProvider verwenden.
Funktionsumfang
● Die Datenscheibe basiert auf einer Selektion. Hier legen Sie die Einschränkungen für die Merkmale fest,
die Sie gegen Änderungen schützen möchten.
● Die Datenscheibe basiert auf einer Exit-Klasse. In der Exit-Klasse können Sie eine kundenspezifische Logik
zum Schutz von Datensätzen implementieren. Beachten Sie dort auch die Dokumentation zu den
Attributen und Methoden der Klasse in der Transkation SE24. Wenn Sie Zugriffe auf die bereits gelesenen
Datensätze in der Methode IS_PROTECTED puffern möchten, können Sie diese Aufgabe dem System
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 15
übertragen und müssen dies nicht im Exit implementieren. Dazu setzen Sie im CONSTRUCTOR der Exit-
Klasse das Attribut N_USE_EXTERNAL_BUFFER im Interface IF_RSPLS_DATASLICE.
● Wenn für einen planungsrelevanten Basis-InfoProvider keine Datenscheibe definiert ist, können in diesen
InfoProvider beliebige gültige Merkmalswertkombinationen gebucht werden.
● Jeder Datensatz, der in die Selektion einer Datenscheibe fällt, ist gegen Änderungen geschützt.
Entsprechende Zellen in eingabebereiten Queries sind nicht änderbar; über Planungsfunktionen können
solche Sätze nicht verändert und gesichert werden. Die Datenscheiben addieren sich in ihrer Wirkung.
● Wenn ein planungsrelevanter Basis-InfoProvider eine Datenscheibe enthält, die keine
Merkmalswerteinschränkungen enthält, wirkt die Datenscheibe als Sperre für Buchungen aller Art im
gesamten InfoProvider.
● Wenn Sie eine neue Datenscheibe sichern, so hat diese Datenscheibe den Status Aktiv.
● Sie können eine vorhandene Datenscheibe deaktivieren, z.B. in dem Fall, dass zur Administration von
Daten auch Daten geändert werden müssen, die in einer vorhandenen Datenscheibe liegen. Setzen Sie in
diesem Fall das Kennzeichen Aktiv zurück.
Weitere Informationen
Anforderungen, die mit einer Implementierung von Merkmalsbeziehungen oder Datenscheiben vom Typ Exit
erfüllt werden können, sollen durch die beiden folgenden Beispiele veranschaulicht werden:
● Beispiel 1: Wir nehmen an, dass zwei bisher getrennte Vertriebsorganisationen zusammengeschlossen
werden. Beide haben ein sich überschneidendes Produktangebot mit ursprünglich unabhängigen
Produktnummern. Um eine einheitliche Berichterstattung über das gesamte Produktangebot zu
ermöglichen, werden die beiden unabhängigen Produktkataloge über eine Mappingtabelle einem
übergreifenden Produktkatalog zugeordnet. Die Mappingtabelle hat folgende Struktur:
Mappingtabelle Z_MAP_PRODUCT
Region Regional_Prod_ID Produkt_ID
... ...
Planungskonzepte
16 PUBLIC (ÖFFENTLICH) Planungskonzepte
gibt, müssen diese RP-Nummern in eindeutige UP-Nummern umgewandelt werden. In unserem Beispiel
erhält das Produkt RP_123 aus der Region R_02 die Produkt-ID UP_321.
● Beispiel 2: Wir nehmen an, dass ein unternehmensweiter Planungsprozess für Vertriebskennzahlen pro
Kalenderquartal auf der Ebene der Produktgruppen aufgesetzt werden soll. Hierbei ist zu berücksichtigen,
dass einige regionale Vertriebsorganisationen ihre Plandaten (zumindest für bestimmte Planversionen) ab
einem definierten Zeitpunkt festschreiben, während andere ihre Plandaten anpassen können, wenn
bestimmte Ereignisse solche späten Anpassungen erfordern.
Unter diesen Umständen können z.B. die Plandaten einer Region A für das erste Quartal des folgenden
Jahres nach dem 15. Dezember des laufenden Jahres festgeschrieben werden, während einer Region B
erlaubt wird, ihren Plan einer sich unerwartet ergebenden Gelegenheit eines zusätzlichen Umsatzes sogar
bis zum Ende des Monats Januar des folgenden Jahres anzupassen. Um dies nachvollziehbar zu machen,
kann man eine Planversion V2 einführen, diese neue Planversion mit den ursprünglichen Plandaten aus
Planversion V1 füllen und dann diese Planversion für Anpassungen allein der Region B öffnen.
Um die Anforderung aus Beispiel 1 zu implementieren, kann man eine Merkmalsbeziehung vom Typ Exit
definieren, die zwei Relationen (Schritte) mit Ableitung enthält: Die erste Relation hat die eindeutige ID als
Quell- und die ursprüngliche ID (in Verbindung mit der ursprünglichen Vertriebsorganisation) als Zielmerkmal;
die zweite genau umgekehrt. Somit wird die ursprüngliche ID abgeleitet, wenn auf der eindeutigen ID geplant
wird. Die eindeutige ID wird abgeleitet, wenn die Felder umgedreht werden. Konsistenz der beiden IDs wird
sichergestellt, wenn beide Merkmale für Planung offen sind.
Die Anforderung aus Beispiel 2 ist ein typischer Fall für eine Datenscheibe vom Typ Exit, definiert auf den
Merkmalen Region, Planversion und Quartal, mit Zugriff auf Daten, die außerhalb des SAP BW∕4HANA-Systems
in einem Werkzeug für den Planungsprozess bearbeitet werden, das seine Daten in der Datenbank speichert.
Um diese Anforderung noch individueller zu machen, soll es einige Administratoren geben, die die
Berechtigung haben, jederzeit Plandaten anzupassen, um falsche Eingaben zu korrigieren.
ABAP-Exit-Implementierung
Die typische ABAP-Exit-Implementierung dieser Beispiele ist direkt, indem die externen Daten mittels SQL-
Befehlen der ABAP-Laufzeit aus der Datenbank gelesen und unter Berücksichtigung weiterer Informationen
wie Benutzername (sy-uname) Sätze in der korrespondierenden Struktur geprüft, abgeleitet oder erzeugt
werden.
Sie können die Planung durch die Verwendung datenbankinterner Routinen in der SAP HANA-Datenbank SAP
HANA-optimiert ausführen. In diesem Fall empfehlen wir, die kundenspezifische Exit-Funktionalität für
Merkmalsbeziehungen und Datenscheiben ebenfalls direkt in der SAP HANA-Datenbank mittels SQLScript zu
implementieren. Andernfalls schöpfen Sie die Möglichkeiten der Performanceoptimierung nicht immer aus:
Plandaten müssten dann an die ABAP-Laufzeit übergeben und satzweise verarbeitet werden. Während das für
die Darstellung der Daten analytischer Queries keinen Nachteil darstellt, da die Daten in der ABAP-Laufzeit
ohnehin verfügbar sind, kann es sich auf die Performance nachteilig auswirken, wenn Disaggregation (Top-
Down-Verteilung) oder Planungsfunktionen auf Massendaten ausgeführt werden. In solchen Fällen findet
nämlich die ganze Datenverarbeitung in der SAP HANA-Datenbank statt; eine ABAP-Implementierung der Exit-
Funktionalität würde demnach verhindern, dass die Performance optimiert wird.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 17
Hinweis
Beachten Sie folgendes: Auch wenn Sie für alle Methoden, die in Merkmalsbeziehungen und Datenscheiben
verwendet werden, SQLScript-Procedures implementieren, müssen dennoch auch die korrespondierenden
ABAP-Implementierungen vorhanden sein, weil das System in bestimmten Situationen die ABAP-
Äquivalente anstößt, um eine zusätzliche Datenübertragung zwischen dem SAP BW∕4HANA-System und
der SAP HANA-Datenbank zu vermeiden. Ziel ist es immer, die Algorithmen zu den Daten zu bringen. Die
Aufbereitung der Ergebnisliste für die Clients erfolgt in ABA; dafür sind auch Prüfungen auf der Grundlage
von Merkmalsbeziehungen und Datenscheiben relevant.
Hinweis
Hinweis
Die drei Methoden CREATE, CHECK und ggf. DERIVE im ABAP-Fall und den SQL-Prozeduren, die in der SAP
HANA von IF_RSPLS_CR_EXIT_HDB~ GET_SQLSCRIPT_INFO in den Parametern
E_PROCEDURE_NAME_CREATE, E_PROCEDURE_NAME_CHECK und E_PROCEDURE_NAME_DERIVE
ermittelt werden, müssen immer konsistente Ergebnisse liefern. Das bedeutet: Es müssen genau
diejenigen Sätze von CREATE erzeugt werden, die von CHECK als gültig erkannt werden, und DERIVE muss
genau diejenigen Werte ergänzen, die von CHECK als gültig erkannt werden bzw. die von CREATE so
erzeugt würden.
Sofern Ihre Implementierungen (ABAP und SAP HANA) diese Voraussetzung nicht erfüllen, können die
Ergebnisse in ABAP und in der SAP HANA unterschiedliche Resultate liefern, auch wenn die Paare (CREATE
in ABAP und in der SAP HANA; CHECK in ABAP und in der SAP HANA und DERIVE in ABAP und in der SAP
HANA) identische Resultate berechnen.
Zusätzlich zu diesen Schnittstellen müssen für die Verarbeitung der Daten in der SAP HANA-Datenbank
weiterhin folgende Schnittstellen implementiert werden:
1. Sie dienen als Markierungsschnittstellen, die anzeigen, dass die Verarbeitung der Daten - ohne Rücksicht
auf vorhandene Merkmalsbeziehungen und Datenscheiben vom Typ Exit - in der SAP HANA-Datenbank
ausgeführt werden soll.
2. Sofern sie die erforderlichen Informationen über die korrespondierenden SQLScript-Implementierungen
liefern, sollen diese Implementierungen aufgerufen werden, wenn die Datenverarbeitung in der SAP HANA-
Datenbank erfolgt und eine Datenübertragung an die ABAP-Laufzeitumgebung vermieden werden kann.
Planungskonzepte
18 PUBLIC (ÖFFENTLICH) Planungskonzepte
Weitere Informationen
Im folgenden wird ein Überblick über die Implementierung der SAP HANA-spezifischen Schnittstellen
IF_RSPLS_CR_EXIT_HDB (für Merkmalsbeziehungen) und IF_RSPLS_DS_EXIT_HDB (für Datenscheiben)
gegeben. Sie enthalten zwei Methoden, GET_SQLSCRIPT_INFO und GET_SQLSCRIPT_ PARAMETERS.
Methode GET_SQLSCRIPT_INFO
Die Methode GET_SQLSCRIPT_INFO liefert die Namen der SQLScript-Procedures, die für die Exit-Verarbeitung
in der SAP HANA-Datenbank benötigt werden.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 19
Die Methode GET_SQLSCRIPT_INFO der Schnittstelle IF_RSPLS_DS_EXIT_HDB hat folgende
Exportparameter:
Hinweis
Wenn die Methode GET_SQLSCRIPT_INFO einen der Parameter mit Procedure-Namen nicht setzt, wird als
Fallback-Lösung die korrespondierende ABAP-Implementierung zur Laufzeit gerufen.
Wenn der Exportparameter E_PARAMETER_NAME der Methode GET_SQLSCRIPT_INFO den Namen der DDIC-
Struktur zurückgegeben hat, wird die Methode GET_SQLSCRIPT_ PARAMETERS aufgerufen. Diese Methode
hat sowohl bei Merkmalsbeziehungen als auch bei Datenscheiben den folgenden Exportparameter:
Planungskonzepte
20 PUBLIC (ÖFFENTLICH) Planungskonzepte
Methoden für Merkmalsbeziehungen
● CHECK
○ IN: Alle Datensätze, die von der Procedure verarbeitet werden sollen.
○ OUT: Diejenige Teilmenge der Datensätze der IN-Parameter-Tabelle, die in Hinsicht auf die
Merkmalsbeziehung als gültig betrachtet wird.
● DERIVE
○ IN: Alle Datensätze, die von der Procedure verarbeitet werden sollen.
○ OUT: Diejenige Teilmenge der Datensätze der IN-Parameter-Tabelle, die in Hinsicht auf die
Merkmalsbeziehung mit Ableitung der Zielmerkmalswerte aus den Quellmerkmalen als gültig
betrachtet wird.
● CREATE
○ OUT: Für die CREATE-Procedure gibt es nur einen OUT-Tabellen-Parameter mit der Struktur der
modellierten Merkmalsbeziehung. Wir empfehlen, wichtige Teile der Selektion über die Parameter-
Struktur zu übergeben.
● PROTECTED
○ IN: Alle Datensätze, die von der Procedure verarbeitet werden sollen.
○ OUT: Diejenige Teilmenge der Datensätze der IN-Parameter-Tabelle, die in Hinsicht auf die
Datenscheibe als gegen Änderungen geschützt betrachtet wird.
Empfehlung
Wir empfehlen, das Programm RSPLS_SQL_SCRIPT_TOOL zu verwenden: Sie gelangen auf das Bild SAP
BW∕4HANA-Planung: Tool für SQLScript-Exits. Auf der dritten Registerkarte Beispiel-Merkmalsbeziehung/
Datenscheibe können Sie sich auf der Grundlage Ihrer eigenen Objekte Beispiel-Coding für
Merkmalskombinationen und Datenscheiben erzeugen. Der Merkmalskombinationsschritt bzw. die
Datenscheibe muss dafür schon vom Type Exit angelegt sein. Beachten Sie, dass das System
Merkmalskombinationen und Datenscheiben aus Performancegründen manchmal auch dann im ABAP
ausführt, wenn eine SQLScript-Implementierung vorliegt. Deswegen müssen Sie vom Ergebnis identische
Implementierungen für SAP HANA und ABAP erstellen.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 21
Fallback bei SAP HANA-optimierter Prozessierung
Wenn Sie die SAP HANA-optimierte Prozessierung benötigten, können in Verbindung mit ABAP-Exit-
Implementierungen in Merkmalsbeziehungen und Datenscheiben Probleme auftreten.
Um dies zu vermeiden, können Sie auch in SAP HANA Implementierungen für die benötigten Funktionen
bereitstellen und SQLScript für die Implementierung verwenden. Dies setzt jedoch die Arbeit mit einer
zusätzlichen Entwicklungsumgebung und Programmiersprache voraus.
Eine einfacherere, allerdings in Hinsicht auf die Performance nicht mit dieser aufwändigen Lösung zu
vergleichende Möglichkeit wird in dem folgenden Hinweis beschrieben: 1956085 .
Die ABAP-Klassen, die die SQLScript-Metadaten-Regeln implementieren, können mit dem CTS (Change and
Transport System) des ABAP Application Servers transportiert werden. Welche Möglichkeiten es für die
korrespondierenden SQLScript-Procedures in Hinsicht auf die Softwarelogistik gibt, wird im folgenden
erläutert.
Sie können die Procedures für jedes System Ihrer Systemlandschaft über die SQL-Konsole des SAP HANA-
Studios oder über die Transaktion DBACOCKPIT des SAP BW∕4HANA-Systems als SAP HANA-Katalog-Objekte
erzeugen. Dieser Weg wird seitens der Software nur durch das Syntaxhighlighting im SAP HANA-Studio
begleitet, ist aber auch sehr einfach und direkt. Zu beachten ist allerdings, dass jede Änderung an der
Implementierung einer Procedure in allen Systemen Ihrer Systemlandschaft manuell nachgezogen werden
muss.
Sie können die Procedure als ein SAP HANA-Repository-Objekt im Entwicklungssystem anlegen und aktivieren.
(Das aktivierte Objekt liegt dann im DB-Schema _SYS_BIC.) Auf diese Weise können Sie die Funktionen der
SAP HANA-Softwarelogistik einsetzen, um nachgelagerte Systeme zu versorgen. Dieser Weg erfordert einigen
Konfigurationsaufwand, um eine arbeitsfähige Entwicklungsumgebung im SAP HANA-Studio aufzusetzen, wird
sich aber in vielen Fällen lohnen, da Sie eine besseren Systemunterstützung erhalten und das Lifecycle
Management für SQLScript-Procedure-Implementierungen in SAP HANA nutzen können.
Planungskonzepte
22 PUBLIC (ÖFFENTLICH) Planungskonzepte
Erzeugen der SQLScript-Procedures als AMDPs
Wir empfehlen, die SQLScript-Procedures als AMDPs (ABAP Managed Database Procedures) zu
implementieren, um diese Implementierung in das Transportwesen des AS ABAP zu integrieren. Damit steht
Ihnen für die SQLScript-Procedures dasselbe Transport- und Lifecycle-Management zur Verfügung, wie Sie es
von ABAP-Entwicklungsobjekten kennen.
Hinweis
Weitere Informationen über AMDP finden Sie in der ABAP - Schlüsselwortdokumentation im Internet unter
● http://help.sap.com/abapdocu_740/en/index.htm?file=abenamdp.htm
● http://help.sap.com/abapdocu_740/de/index.htm?file=abenamdp.htm
1.3 Aggregationsebene
Verwendung
Aggregationsebenen werden als InfoProvider für die Planung verwendet: Mit einer Aggregationsebene
modellieren Sie die Ebene, auf der Daten manuell über eingabebereite Queries oder automatisch über
Planungsfunktionen verändert werden dürfen.
Eine Aggregationsebene wird durch eine Menge von Merkmalen und Kennzahlen des zugrunde liegenden
InfoProviders festgelegt. Die in der Aggregationsebene enthaltenen Kennzahlen werden über die nicht in der
Aggregationsebene enthaltenen Merkmale verdichtet.
Im einfachsten Fall liegt eine Aggregationsebene auf einem für die Planung geeignete Basis-InfoProvider.
Aggregationsebenen können zusätzlich auch auf InfoProvidern angelegt werden, die für die Planung geeignet
sind, weil sie einen für die Planung geeigneten Basis-InfoProvider enthalten. Sie können mehrere
Aggregationsebenen zu einem InfoProvider anlegen.
Einfache Aggregationsebene
Komplexe Aggregationsebene
Einer komplexen Aggregationsebene liegt ein InfoProvider zugrunde, der mindestens einen für die Planung
geeignete Basis-InfoProvider, aber keine einfache Aggregationsebene enthält.
Beispiel
Sie möchten mit einer Planungsfunktion vom Typ Kopieren aktuelle Daten von einem Ist-Basis-InfoProvider
in einen Plan-Basis-InfoProvider kopieren. Dafür verwenden Sie eine Aggregationsebene auf der Grundlage
eines InfoProviders, der den Plan- und den Ist-InfoProvider enthält.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 23
Bei einer komplexen Aggregationsebene ist zu beachten, wie Datensätze aus dem Basis-InfoProvider in den
diesen enthaltenden InfoProvider (und damit auch in die Aggregationsebene) eingebettet werden und wie das
System Änderungen an Datensätzen der Aggregationsebene in den Basis-InfoProvider zurückschreibt.
Hinweis
Unter Umständen kann das System diese Bedingung in der Modellierung der Aggregationsebene nicht
vollständig prüfen, da es die Ableitungsschritte erst zur Laufzeit ermittelt. Daher kann es vorkommen,
dass das System eine in diesem Sinne unvollständige Modellierung erst zur Laufzeit prüft und Daten
aufgrund dieser unvollständigen Modellierung über Planungsfunktionen nicht verändern kann bzw. die
Eingabebereitschaft von Zellen in Queries zurücknimmt.
● In den folgenden Fällen kann ein CompositeProvider nicht als Basis für eine Aggregationsebene verwendet
werden (siehe 2091885 ):
○ Der CompositeProvider enthält einen JOIN mit einem planbaren Basis-InfoProvider.
○ Der CompositeProvider enthält ein Merkmal A, das aus einem anderen enthaltenen InfoProvider einem
weiteren Merkmal B zugeordnet ist; dabei referenziert weder A das Merkmal B not B das Merkmal A.
○ Der CompositeProvider enthält ein Navigationsattribut, das aus einem planbaren Basis-InfoProvider
nicht versorgt wird.
○ Der CompositeProvider enthält einen planbaren Basis-InfoProvider mit dem Filter Criteria.
Bedingungen, die für eine Aggregationsebene gelten, die Merkmale als Kennzahlen verwendet
Planungskonzepte
24 PUBLIC (ÖFFENTLICH) Planungskonzepte
Wenn Sie ein Merkmal A aus dem Datenteil eines Direct Update DataStore-Objekt oder eines beplanbaren
InfoObjects als Kennzahl 1KYF_A und als Merkmal A in die Aggregationsebene aufnehmen, so können Sie das
Merkmal A in einer Query nicht als freies Merkmal in Queries aufnehmen; Sie können es nur im Filter oder in
eingeschränkten Kennzahlen verwenden. Planungsfunktionen können solche Aggregationsebenen nicht
verwenden.
Beispiel
Beachten Sie, dass sich Einheitenmerkmale immer im Schlüssel des planbaren DataStore-Objektes
befinden sollten. Einheitenmerkmale können somit auch nicht als Kennzahlen exponiert werden.
Für geklammerte Merkmale im Datenteil eines DataStore-Objektes gelten die folgenden Regeln, wenn
diese als Kennzahlen in einer Aggregationsebenen aufgenommen werden sollen.
○ Wenn Merkmal C an Merkmal A geklammert ist und 1KYF_C in die Aggregationsebene aufgenommen
werden soll, muss A entweder im Schlüssel des DataStore-Objekts liegen und A muss in die
Aggregationsebene aufgenommen werden, oder A muss im Datenteil des DataStore-Objekts liegen
und dann als 1KYF_A in die Aggregationsebene aufgenommen werden.
○ Wenn Merkmal C an Merkmal B geklammert ist und 1KYF_B in die Aggregationsebene aufgenommen
werden soll, muss auch 1KYF_C in die Aggregationsebene aufgenommen werden.
● InfoObject (Merkmal) als Basis-InfoProvider
In einer Aggregationsebene, die für die Stammdatenplanung verwendet werden soll, können nur solche
Merkmale über eine eingabebereite Query geändert werden, die Attribute und bzw. oder Texte besitzen.
Wenn ein solches InfoObject mit den Modellierungseigenschaften Usable as InfoProvider und Planning
Mode ausgezeichnet ist und im Planungsmodus läuft, werden dessen Attribute und bzw. oder Texte als
Kennzahlen exponiert.
Beispiel
Ist B ein Attribut des InfoObjects, so bezeichnet 1KYF_B die zugehörige Kennzahl. Wenn ein Objekt
zeitabhängige Attribute und bzw. oder Texte hat, wird ein zusätzliches Paar von Kennzahlen für das
Zeitfälligkeitsintervall von Attributen und bzw. oder Texten generiert (z.B. 1KYF_1TXTDATEFROM und
1KYF_1TXTDATETO).
Beachten Sie, dass man auf Stammdaten nicht mit Planungsfunktionen planen kann.
Weitere Informationen
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 25
Dieser Link führt in die Dokumentation einer Analysefunktion, die eine Aggregationsebene als InfoProvider und
eine eingabebereite Query zur Bearbeitung von Kurztexten in einer Query benötigt.
Verwendung
Das folgende Beispiel zeigt, wie das System arbeitet, wenn ein Kennzahlwert (manuell oder automatisch)
verändert wird.
Gegeben sei ein für die Planung geeigneter Basis-InfoProvider mit den Merkmalen Produkt, Produktgruppe,
Version und Jahr sowie der Kennzahl Umsatz. Die Aggregationsebene ALVL enthält dieselben Objekte mit
Ausnahme des Merkmals Produkt.
P1 PG1 V1 2017 10
P2 PG1 V1 2017 20
P3 PG2 V1 2017 42
Die Kennzahl Umsatz enthält die Datenbankaggregation SUM. Dementsprechend erhalten wir, wenn die
Bewegungsdaten zur Aggregationsebene ALVL ohne jede Einschränkung von der Datenbank gelesen werden,
das folgende Ergebnis:
PG1 V1 2017 30
PG2 V1 2017 42
Wenn der Kennzahlwert Umsatz von 30 auf 40 geändert und als neuer Wert gesichert wird, schreibt das
System einen neuen Satz mit der Differenz des Kennzahlwertes in den Basis-InfoProvider:
# PG1 V1 2017 10
In solchen Delta-Sätzen erhalten alle Merkmale des Basis-InfoProviders, die in der Aggregationsebene nicht
enthalten sind, den initialen Wert (nicht zugeordnet: #). (Hierbei gehen wir davon aus, dass keine Ableitungen
verwendet wurden; weitere Informationen über dieses Konzept finden Sie unter Merkmalsbeziehungen [Seite
9]).
Planungskonzepte
26 PUBLIC (ÖFFENTLICH) Planungskonzepte
1.3.2 Komplexe Aggregationsebene
Verwendung
● wie das System Datensätze aus den Basis-InfoProvidern in den diese enthaltenden InfoProvider einbettet
● wie das System neue oder veränderte Datensätze des InfoProviders in die in diesem enthaltenen Basis-
InfoProvidern zurückschreibt
Gegeben sei ein InfoProvider IP, der den Ist-Basis-InfoProvider BIP_I und den Plan-Basis-InfoProvider BIP_P
enthält. Der Ist-Basis-InfoProvider BIP_I enthält die Merkmale Produkt, Produktgruppe, Version und Jahr sowie
der Kennzahl Gewinn. Der Plan-Basis-InfoProvider BIP_P enthält dieselben Objekte mit Ausnahme des
Merkmals Produkt. Auf dem InfoProvider IP wird eine Aggregationsebene ALVL_IP definiert, die alle Merkmale
des InfoProviders enthält.
Die folgenden zwei Datensätze der Basis-InfoProvider ergeben die folgenden Datensätze im InfoProvider IP:
P1 PG1 V1 2017 10
PG1 V1 2017 30
Die Datensätze im InfoProvider IP werden - technisch gesprochen - über eine UNION-Operation aus den Sätzen
der zugrunde liegenden InfoProvider erzeugt. Der InfoProvider ist stets enthalten, so dass auf der Ebene eines
Datensatzes die "Herkunft" des jeweiligen Datensatzes bekannt ist.
Wenn in der manuellen Planung oder über Planungsfunktionen neue Datensätze erzeugt werden, stellt das
System sicher, dass jeder Satz des InfoProviders eindeutig ohne Informationsverlust den im InfoProvider
enthaltenen InfoProvidern wieder zugeordnet werden kann.
Die folgende Tabelle zeigt ein Beispiel für einen Datensatz, dessen Zuordnung nicht möglich wäre.
Beispiel eines Satzes im InfoProvider IP, dessen Zuordnung nicht möglich wäre
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 27
InfoProvider Produkt Produktgruppe Version Jahr Gewinn
Der Datensatz gehört zum InfoProvider BIP_P. Allerdings liefert dieser InfoProvider im CompositeProvider kein
Produkt. Daher ist hier P1 nicht zulässig.
In der manuellen Planung sind Datenzellen, die zu solchen Sätzen führen würden, nicht eingabebereit. In
Planungsfunktionen prüft das System, dass solche Datensätze nicht gesichert werden können.
Hinweis
Eine analoge Situation kann für Kennzahlen in komplexen Aggregationsebenen auftreten. Wenn K eine
Kennzahl im InfoProvider IP ist, die aus dem Ist-Basis-InfoProvider BIP_I, jedoch nicht aus dem Plan-Basis-
InfoProvider BIP_P versorgt wird, so ist diese Kennzahl in einem Datensatz im InfoProvider IP mit dem Plan-
Basis-InfoProvider BIP_P immer initial. Dieser Wert kann auch nicht verändert werden.
1.4 Filter
Ein Filter ist ein Objekt, das den mehrdimensionalen Ausschnitt von Daten aus einem Datenbestand
beschreibt.
Verwendung
Filter werden in Reporting, Analyse und Planung beispielsweise dafür verwendet, Daten auf einen bestimmten
Geschäftsbereich, bestimmte Produktgruppen oder bestimmte Zeiträume einzuschränken. Durch diese
Segmentierung des Datenbestandes kann erreicht werden, dass Anwender oder Anwendergruppen nur Zugriff
auf die für sie relevanten Daten erhalten, oder dass innerhalb eines Anwendungsszenarios nur bestimmte
Datenbereiche sichtbar sind.
Innerhalb der Planung in SAP Business Planning and Consolidation, version for SAP BW/4HANA, (Embedded-
Konfiguration) legen Filter die Selektion für die Daten fest, auf der eine Planungsfunktion operiert. Eine
Planungssequenz besteht aus einer Menge von Planungsfunktionen mit jeweils einem den Funktionen
zugeordneten Filter.
Beispiel
Sie möchten Ihre Bewegungsdaten in Ihrem InfoProvider um den Faktor 10% umwerten. Sie möchten
allerdings, dass sich die Umwertung nur auf bestimmte Kundengruppen bezieht. Hierzu legen Sie einen
Filter an, der die gewünschten Kundengruppen enthält, die Sie tatsächlich umwerten möchten.
Planungskonzepte
28 PUBLIC (ÖFFENTLICH) Planungskonzepte
Integration
Voraussetzungen
Um einen Filter für die Verwendung in der Planung anzulegen, benötigen Sie eine Aggregationsebene.
Funktionsumfang
Die Filterdefinition enthält diejenigen Merkmale einer Aggregationsebene, die Sie einschränken möchten. Ein
Filter hat die folgenden Bestandteile:
Bestandteil Beschreibung
Für die Bestimmung von zeitabhängigen Selektionen, z.B. für die Ermittlung einer zeitabhängigen Hierarchie zu
zeitabhängigen Hierarchieknotenselektionen, kann ein Filter-Stichtag angegeben werden.
Hinweis
Für die Synchronisierung von Stichtagen in Queries, Filtern, Merkmalsbeziehungen, Datenscheiben und
Planungsfunktionen kann die ausgelieferte Variable 0PLANDAT auf dem Merkmal 0CALDAY verwendet
werden. Damit können Sie sicherstellen, dass in diesen Objekten derselbe Stichtag verwendet wird.
Der Funktionsumfang eines Filters richtet sich nach seinem jeweiligen Einsatz entweder in einer
Planungsfunktion oder in einer Query:
Filter in Planungsfunktionen
Selektionen in den Vorschlagswerten werden nicht für die Ausführung der Planungsfunktion herangezogen.
Zusätzlich kann ein Stichtag des Filters zur Ermittlung von zeitabhängigen Selektionen verwendet werden.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 29
Die in den Merkmalseinschränkungen einer Query definierten Werte schränken die Datenmenge ein, die für das
weitere Filtern zur Laufzeit einer Query zur Verfügung steht. Ein Filtern auf einem Merkmalswert außerhalb
dieser Wertemenge ist dann nicht mehr möglich.
Die Einstellungen Änderbar bei Ausführung und Nur Einzelwert beziehen sich grundsätzlich stets auf die
Verwendung von Filtern im Zusammenhang einer Query:
Änderbar bei Ausführun g legt fest, ob die in den Merkmalseinschränkungen getroffene Werteauswahl bei der
Ausführung der Query geändert werden kann. Diese Einstellung ist Vorraussetzung für die Definition von
Vorschlagswerten zu einem Merkmal.
Wenn die Option Änderbar bei Ausführung gewählt wurde, kann mit der Option Nur Einzelwert festgelegt
werden, ob nur ein Einzelwert für das Filtern der Query verwendet werden darf.
1.5 Variable
Verwendung
Variablen dienen der Parametrisierung einer Query, eines Filters, einer Merkmalsbeziehung oder Datenscheibe
oder einer Planungsfunktion. Beim Ausführen einer Query oder Planungsfunktion werden sie mit Werten
gefüllt.
Abhängig davon, für welche Objekte Sie Variablen definieren möchten, gibt es verschiedene Variablentypen:
Variablen stellen Platzhalter für Merkmalswerte, Hierarchien, Hierarchieknoten, Texte und Formelelemente dar.
Die Verarbeitungsart bestimmt, wie eine Variable zur Laufzeit einer Query oder Planungsfunktion mit einem
Wert gefüllt wird.
Beispiel
Durch die Verwendung von Variablen kann z.B. eine Planungsfunktionsdefinition als Grundlage für viele
unterschiedliche Planungsfunktionen dienen: Sie möchten eine Planungsfunktion vom Typ Kopieren
anlegen, die Ihre aktuellen Daten von der aktuellen Version in eine beliebige Version kopiert. Sie setzen für
das Merkmal Version in den Nach-Parametern der Planungsfunktion eine Variable ein. Vor dem Ausführen
der Planungsfunktion entscheiden Sie, in welche Version die aktuellen Daten kopiert werden.
Hinweis
Für Formelvariablen, die in Planungsfunktionen z.B. für die Umwertungsfunktion verwendet werden, steht
die Verarbeitungsart Ersetzungspfad nicht zur Verfügung. Zudem wird hierbei nur die Dimension Zahl
unterstützt.
Planungskonzepte
30 PUBLIC (ÖFFENTLICH) Planungskonzepte
Gültigkeitsbereich von Variablen
Variablen sind wiederverwendbare Objekte, d.h. sie sind nicht abhängig von einem InfoProvider, sondern nur
vom jeweiligen InfoObject. Eine Variable, die für ein InfoObject definiert wurde, steht in allen InfoProvidern zur
Verfügung, die dieses InfoObject verwenden.
Die gleiche Variable kann an unterschiedlichen Orten unterschiedliche Werte haben. Wann immer eine Variable
mit einem Wert gefüllt wird, wird eine eigene Instanz der Variable erzeugt. In gewissen Fällen werden
verschiedene Instanzen (und damit die Werte) von Variablen zu einer einzigen verschmolzen, das heißt die
Variable hat in allen beteiligten Objekten den gleichen Wert. Dies geschieht z.B. bei Verwendung von einer
Variable in zwei verschiedenen Queries. Dies stellt allerdings die Ausnahme dar.
Funktionsumfang
Variablen dienen zur flexibleren Einstellung bzw. Parametrisierung von Objekten. Folgende Objekte
unterstützen die Verwendung von Variablen:
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 31
Die Einsatzmöglichkeiten von Variablen führen zu jeweils unterschiedlichen Zeitpunkten, an denen Variablen
neu durchlaufen werden und dadurch gegebenenfalls neue Werte annehmen.
Hinweis
In Datenscheiben verwendete Variablen müssen immer
automatisch ersetzbar sein.
Wenn sich zwei gleichnamige Variablen in zwei verschiedenen Objekten befinden, dann erzeugt das System
Instanzen dieser Variablen, d.h. fortan existieren physisch zwei Variablen. In gewissen Konstellationen führt das
Planungskonzepte
32 PUBLIC (ÖFFENTLICH) Planungskonzepte
System eine automatische Verschmelzung dieser Instanzen durch, so dass alle Variableninstanzen denselben
Wert erhalten.
Konstellation Verschmelzung
1.6 Planungsfunktionen
Verwendung
Eine Planungsfunktion beschreibt, auf welche Weise die Bewegungsdaten einer bestimmten
Aggregationsebene verändert werden. Hierfür werden festgelegt:
Der Planungsfunktionstyp gibt das Verfahren vor, nach dem die Daten von einer Planungsfunktion verändert
werden. SAP bietet Ihnen folgende Standard-Planungsfunktionstypen [Seite 41]:
● Einheitenumrechnung
● Erzeugen Kombinationen
● Formel
● Kennzahlwerte setzen
● Kopieren
● Löschen
● Löschen ungültige Kombinationen
● Prognose
● Umbuchen
● Umbuchen nach Merkmalsbeziehungen
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 33
● Umwertung
● Verteilen nach Referenzdaten
● Verteilen nach Schlüsseln
● Währungsumrechnung
Voraussetzungen
Hinweis
Wenn eine Funktion, die sich auf Daten eines DataStoreObjekts bezieht, auf einer Aggregationsebene
läuft, die InfoProvider enthält, die mit Deltas fortgeschrieben werden (wie ein DataMart DataStore-
Objekt), werden die Kennzahlen nur auf Null gesetzt. Dies betrifft die folgenden
Planungsfunktionstypen:
○ DSO-Sätze löschen
○ Physisches Löschen ungültiger Daten im DSO
○ DSO-Daten umbuchen und Quelldaten physisch löschen
○ DSO-Daten auf der Basis von Merkmalsbeziehungen umbuchen
Beachten Sie, dass Sie auf Aggregationsebenen, die als Kennzahlen verwendete Merkmale enthalten,
nicht alle Typen von Planungsfunktionen anlegen können. Unterstützt sind folgende
Planungsfunktionstypen:
○ DSO-Sätze löschen
○ Erzeugen Kombinationen
○ Kopieren
○ Kopieren (ohne Berücksichtigung von Nullsätzen)
○ Löschen
○ Umbuchen
○ DSO-Daten umbuchen und Quelldaten physisch löschen
● Filter, die zum Zeitpunkt der Ausführung den Planungsfunktionen mitgegeben werden. Ein Filter bestimmt,
auf welchen Daten die Planungsfunktion ausgeführt wird. Die Planungsfunktion sperrt die über den Filter
definierten Daten in denjenigen planungsrelevanten InfoProvidern, die an der Aggregationsebene
teilhaben. Der Filter muss auf derselben Aggregationsebene definiert sein wie die Planungsfunktion.
Funktionsumfang
Für eine Planungsfunktion muss der Typ der Planungsfunktion und die Aggregationsebene definiert sein, auf
der die Planungsfunktion arbeiten soll. Weiterhin können die Merkmalsverwendung, die Bedingungen und die
Planungskonzepte
34 PUBLIC (ÖFFENTLICH) Planungskonzepte
zugehörigen Parametersätze verändert werden. Es kann festgelegt werden, wie die veränderten Daten
verarbeitet werden.
Der Funktionsumfang soll im folgenden am Beispiel des Anlegens einer Planungsfunktion vom Typ Umbuchen
erläutert werden.
Die folgende Tabelle zeigt die Daten des InfoProviders vor dem Ausführen der Planungsfunktion:
P1 PG1 V1 2017 10
P2 PG1 V1 2017 20
Alle Sätze der Version V1 sollen auf V2 umgebucht werden. Dies können Sie erreichen, indem Sie sämtliche
Kennzahlen umbuchen. Die folgende Tabelle zeigt die Situation nach dem Ausführen der Planungsfunktion:
P1 PG1 V1 2017 0
P2 PG1 V1 2017 0
P1 PG1 V2 2017 10
P2 PG1 V2 2017 20
Nach dem Umbuchen bleiben unter V1 Nullsätze zurück; unter V2 entstehen die gewünschten Sätze.
Merkmalsverwendung
Der Planungsfunktionstyp definiert, welche Optionen bei den Merkmalsverwendungen zur Verfügung stehen
und welche Parameter die Planungsfunktion hat. Die Menge der Parameter eines Planungsfunktionstyps stellt
einen Parametersatz dar.
Über die Merkmalsverwendung werden die Merkmale der Aggregationsebene in zu verändernde Merkmale
und Blockmerkmale (d.h. Merkmale, die nicht verwendet werden) eingeteilt. Damit wird festgelegt, welche
Merkmalswerte die Planungsfunktion bei der Verarbeitung eines Datensatzes verändert. Blockmerkmale
bleiben konstant.
Beispiel
Wenn Sie eine Planungsfunktion vom Typ Umbuchen für den oben beschriebenen Fall anlegen, prüfen Sie
zunächst, von welchen Merkmalswerten Sie auf welche umbuchen möchten, und kennzeichnen dann das
entsprechende Merkmal für wird verändert. Da Sie die Daten von der Version V1 auf die Version V2
umbuchen möchten, setzen Sie das Kennzeichen für das Merkmal Version als wird verändert (in diesem
Falle gleichbedeutend mit wird umgebucht).
Außerdem können Sie über die Merkmalsverwendung Blockmerkmale als Bedingungsmerkmale auswählen.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 35
Sie können nun die Parametersätze verändern. Bei den meisten Planungsfunktionen werden sämtliche
Bewegungsdaten mit dem gleichen Parametersatz verarbeitet. In diesem Fall wurde kein Blockmerkmal als
Bedingungsmerkmal ausgewählt, und es muss lediglich ein Parametersatz eingegeben werden.
Beispiel
Der Parametersatz des Planungsfunktionstyps Umbuchen enthält eine Tabelle zur Auswahl der
Kennzahlen, die umgebucht werden sollen, und eine Tabelle, in der Sie Von-Nach-Wertepaare auf den
umzubuchenden Merkmalen eintragen können. In der Kennzahlauswahl setzen Sie das Kennzeichen für
Alle Kennzahlen auswählen. In der Tabelle Von- und Nach-Werte für den Umbuchungsvorgang legen Sie über
Zeile anlegen einen Eintrag an, der unter Von den Wert V1 und unter Nach den Wert V2 enthält. Hiermit ist
die Planungsfunktion zum Umbuchen fertig.
Wenn Sie unterschiedliche Sätze aus den Bewegungsdaten mit unterschiedlichen Parametersätzen ausführen
möchten, müssen Sie mit Bedingungen arbeiten. Hierfür müssen Sie über die Merkmalsverwendung
mindestens ein Blockmerkmal als Bedingungsmerkmal auswählen.
Beispiel
Wenn es möglich sein soll, z.B. die geplante Produktion für Produkte der Produktgruppe PG1 um 5% zu
erhöhen, die Produkte der Produktgruppe PG2 jedoch um 10%, wählen Sie hierfür die Produktgruppe als
Bedingungsmerkmal.
Bei den Parametern können Sie dann mehrere Bedingungs-Parametersatz-Paare anlegen. Als Bedingung
geben Sie für jedes Paar eine Merkmalseinschränkung Filter auf die Bedingungsmerkmale an. Zu jedem Paar
können Sie dann den zugehörigen Parametersatz verändern.
Hinweis
Technisch gesehen wird die Methode, die die Planungsfunktion tatsächlich ausführt, mehr als einmal
aufgerufen. Dazu werden die zu verarbeitenden Daten, die durch den Filter ausgewählt wurden, in Blöcke
aufgeteilt. Jede in den Daten vorkommende Kombination von Merkmalswerten bezüglich der
Blockmerkmale bildet einen eigenen Block (daher auch der Name Blockmerkmale). Bei
Planungsfunktionstypen, die mit Referenzdaten arbeiten, können weitere Blöcke hinzukommen (z.B. Typ
Kopieren). Die eigentliche Methode wird dann für jeden Block einmal mit einer Tabelle von Sätzen
aufgerufen. Dabei enthält die Tabelle diejenigen Sätze der Daten, die genau der Merkmalskombination des
Blockes auf den Blockmerkmalen entsprechen.
Für jeden Block prüft das System, ob es ein Bedingungs-Parametersatz-Paar gibt, so dass der Block der
Bedingung entspricht. Dabei wird der Block gegen die Bedingungen entlang der Reihenfolge der
Bedingungs-Parametersatz-Paare getestet. Das erste Paar, bei dem der Block der Bedingung entspricht,
wird verwendet, d.h. die Methode des Planungsfunktionstyps wird mit dem Block und dem zur Bedingung
passenden Parametersatz ausgeführt. Die weiteren Paare werden dann nicht berücksichtigt. Die Methode
wird also für jeden Block höchstens einmal ausgeführt.
Variablen in Planungsfunktionen
Fast alle Planungsfunktionstypen lesen keine Nullsätze und schreiben auch keine Null-Deltasätze in den Puffer.
Ausnahmen sind Kopieren und Erzeugen Kombinationen: Beide lesen Nullsätze und schreiben Null-Deltasätze.
Planungskonzepte
36 PUBLIC (ÖFFENTLICH) Planungskonzepte
Der Funktionstyp Formel mit Verarbeitung von Nullsätzen (0RSPL_FORMULA_ZERO) verarbeitet auch Sätze, bei
denen alle Kennzahlen gleich Null sind (Nullsätze).
Beim Typ der Planungsfunktion können Sie einstellen, ob die Planungsfunktion die Daten in Blöcken oder
immer alle Daten auf einmal verarbeitet. Eine Planungsfunktion, die Datenblöcke verarbeitet, kann so
parametrisiert werden, dass sie nur diejenigen Blöcke (oder eine geringe Obermenge) verarbeitet, in denen
Daten liegen, die der Benutzer in der gleichen Sitzung vorher geändert hat. Solche Planungsfunktionen
verarbeiten nur ganz wenige Daten. Damit wird die Laufzeit stark verkürzt.
Dabei kann der Benutzer Daten geändert haben, die im Filter liegen, oder Daten, die als Referenzdaten dienen.
Beispiel
Ein Beispiel ist die Kopierfunktion, die Daten aus der Version V1 nach V2 kopiert. Die Datenblöcke werden in
diesem Beispiel so gebildet, dass alle Daten zu Blöcken zusammengefasst werden, die in allen Merkmalen
außer dem Versionsmerkmal den gleichen Merkmalswert haben. Die Referenzdaten kommen aus der
Version V1. Die zu ändernden Daten liegen in der Version V2. Die Funktion verarbeitet nur die Blöcke, in
denen Daten aus Version V1 oder Version V2 geändert wurden.
Bei einer Planungsfunktion bestimmt der Filter, welche Daten geändert werden dürfen. Aus den Parametern
geht hervor, welche Referenzdaten dazu benötigt werden. Jetzt werden zusätzlich die geänderten Daten
gelesen. Für jeden geänderten Datensatz innerhalb des Filters und innerhalb der Referenzdaten werden die
Merkmalswerte der Blockmerkmale aufgesammelt und ersetzen die ursprüngliche Selektion. Durch dieses
Verfahren kann es dazu kommen, dass mehr Datenblöcke als nötig verarbeitet werden. Dies sollte aber das
Ergebnis der Planungsfunktion nicht verändern.
Welche Daten geändert wurden, wird im Regelfall auf der Aggregationsebene der Planungsfunktion bestimmt.
Es ist auch möglich, eine andere Aggregationsebene anzugeben, z.B. die Aggregationsebene der Query, mit der
die Daten geändert wurden.
Hinweis
Empfehlung
Wir empfehlen die Festlegung, nur die Blöcke mit veränderten Daten zu verarbeiten, in folgendem Szenario
anzuwenden:
Zu Beginn der Sitzung findet der Benutzer seine Daten in einem konsistenten Zustand vor. (Dies wurde vom
Administrator sichergestellt.) Im Laufe der Sitzung ändert der Benutzer einige Daten. Der Benutzer führt
jetzt Planungsfunktionen aus, die prüfen, ob die Daten konsistent sind, oder es werden Berechnungen
durchgeführt, die die Daten in einen konsistenten Zustand überführen. Geeignet sind Planungsfunktionen,
bei denen sich ab der zweiten Ausführung die Daten nicht mehr ändern. Der Filter sollte so eingeschränkt
werden, dass er die Daten umfasst, die der Benutzer während der Sitzung bearbeiten darf. Prinzipiell soll
die Planungsfunktion alle Daten verarbeiten können. Durch die Art, wie die Selektion gebildet wird,
verarbeitet das System stets eine möglichst kleine Menge an Blöcken. Es kann allerdings sein, dass bei sich
ergebenden Schnittmengen eine etwas größere als die minimale Menge verarbeitet wird.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 37
Der Filter der Planungsfunktion sollte keine Variablen enthalten, die im Laufe der Sitzung geändert werden.
Ansonsten verarbeitet das System ggf. nur die geänderten Daten mit der letzten Variablenbelegung im
Filter und es besteht die Gefahr, dass nicht alle geänderten Daten erfasst werden.
Es bietet sich an, eine solche Planungsfunktion auf die Drucktaste Sichern zu legen, da die Änderungen nur
bis zum letzten Sichern gemerkt werden.
Weitere Informationen
Daten eines InfoProviders werden beispielhaft mit Hilfe einer Planungsfunktion vom Typ Verteilung nach
Schlüsseln verändert. Schritt für Schritt wird gezeigt, wie das System beim Ablauf der Planungsfunktion
arbeitet.
Verwendung
Für das Jahr "2017" und die Version "V1" sollen die geplanten Mengen pro Produkt neu auf die zur Verfügung
stehenden Werke "W1" und "W2" verteilt werden. Dabei bleibt die Gesamtmenge pro Produkt erhalten. Sie soll
jedoch gleichmäßig auf die Werke verteilt werden.
Die folgende Tabelle zeigt die Daten des InfoProviders vor dem Ausführen der Planungsfunktion:
2017 V1 P1 W1 10
2017 V1 P1 W2 20
2017 V1 P2 W1 60
2017 V1 P2 W2 40
Planungskonzepte
38 PUBLIC (ÖFFENTLICH) Planungskonzepte
Die folgende Tabelle zeigt das Ergebnis der Ausführung der Planungsfunktion:
2017 V1 P1 W1 15
2017 V1 P1 W2 15
2017 V1 P2 W1 50
2017 V1 P2 W2 50
Tatsächlich schreibt die Planungsfunktion allerdings nur Deltasätze in den InfoProvider. Die folgende Tabelle
zeigt die tatsächlich geschriebenen Deltasätze:
2017 V1 P1 W1 5
2017 V1 P1 W2 -5
2017 V1 P2 W1 -10
2017 V1 P2 W2 10
Wenn die Planungsfunktion angelegt wird, muss zunächst festgelegt werden, innerhalb welcher Merkmale sich
die Werte verändern. Bezüglich der Merkmale Jahr, Version und Produkt soll die Summe der Werte nicht
verändert werden; daher bleiben diese Merkmale konstant und werden Blockmerkmale. Die Verteilung der
Kennzahlwerte soll bezüglich der Merkmalswerte erfolgen; daher muss das Merkmal Werk in der
Merkmalsverwendung als zu verändernd ausgewählt werden.
Die Parameter der Verteilungsfunktion (siehe Verteilung nach Schlüsseln [Seite 95]) werden wie folgt
eingestellt.
● Über die Tabelle zur Kennzahlauswahl wird festlegt, dass als einzige Kennzahl die Kennzahl Menge verteilt
werden soll.
● Da innerhalb eines Blockes (Merkmalskombination {Jahr, Version, Produkt}) immer die Gesamtsumme neu
verteilt werden soll, wird die Verteilungsart Top-Down-Verteilung mit der Einstellung Alles verteilen
angewendet.
● Als Nach-Werte werden die Werke "W1" und "W2" eintragen und erhalten jeweils einen identischen
Schlüssel (z.B. 1).
Die Planungsfunktion soll mit einem Filter, der das Jahr auf "2017" und die Version auf "V1" einschränkt,
ausgeführt werden. Die Planungsfunktion führt die folgenden Schritte aus.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 39
4. Über den Filter fordert das System die ausgewählten Daten an und lädt sie in den Puffer. In diesem Beispiel
wird angenommen, dass durch den Filter die oben in der Tabelle "Vor dem Ausführen der
Planungsfunktion" dargestellten Sätze ausgewählt und der Planungsfunktion übergeben werden. Ob das
System dabei die vorhandenen Nullsätze liest oder nicht berücksichtigt, hängt vom jeweiligen Typ der
Planungsfunktion ab. Bei den Verteilungsfunktionen liest das System keine Nullsätze.
5. Das System teilt an Hand der Merkmalsverwendung die Bewegungsdaten in Blöcke ein. Dies
veranschaulichen die Tabellen im Anschluss an die Darstellung des Ablaufs. Es entstehen zwei Blöcke, die
durch die hier abgebildeten Merkmalskombinationen definiert sind.
1 2017 V1 P1
2 2017 V1 P2
6. Pro Block sucht das System über die Merkmalskombination des Blockes den richtigen Parametersatz aus
den Bedingungs-Parametersatz-Paaren. Da in diesem Beispiel keine Bedingungen angelegt worden sind,
werden beide Blöcke mit dem einzigen vorhandenen Parametersatz ausgeführt.
7. Pro Block führt das System das eigentliche Verfahren aus, in diesem Falle also die Verteilung. Die Tabellen
im Anschluss an die Darstellung des Ablaufs zeigen die pro Block entstehenden Vorher-Nachher-Werte
sowie die entstehenden Deltasätze.
8. Abhängig vom jeweiligen Typ der Planungsfunktion verarbeitet das System die ggf. entstehenden Nullsätze
oder berücksichtigt sie nicht. In diesem Beispiel gibt es keine Nullsätze.
9. Das System prüft,
○ ob die entstandenen Sätze bezüglich der Stammdaten und Merkmalsbedingungen konsistent sind,
○ ob sie nicht durch Datenscheiben geschützt sind,
○ ob sie innerhalb des übergebenen Filters liegen.
Mit Rücksicht auf die Performance prüft das System nicht alle Merkmalsbeziehungen, sondern nur
diejenigen, die zu verändernde Merkmale betreffen. Dies ist möglich, da angenommen werden kann, dass
Sätze, die von der Datenbank gelesen werden, den Merkmalsbeziehungen genügen, und Fehler somit nur in
Verbindung mit zu verändernden Feldern entstehen können. Fehlerhafte Sätze sollten gelöscht oder auf
gültige Kombinationen umgebucht werden. Dazu können Sie die Planungsfunktionstypen Löschen
ungültige Kombinationen oder Umbuchen nach Merkmalsbeziehungen verwenden.
Hinweis
Wenn eine Planungsfunktion mit Nullsätzen arbeitet (z.B. beim Planungsfunktionstyp Kopieren), prüft
das System alle möglichen Merkmalsbeziehungen, da es sich um einen stornierten Satz handeln kann.
10. Wenn das System alle Blöcke erfolgreich verarbeitet hat, schreibt es die gesammelten Deltasätze in den
Puffer zurück. Gegebenenfalls findet im Puffer eine Ableitung statt (siehe Merkmalsbeziehungen [Seite 9]
und Aggregationsebene [Seite 23]).
Hinweis
Wenn auch nur bei einem einzigen erzeugten Satz eine Konsistenzprüfung fehl schlägt, schreibt die
gesamte Planungsfunktion nichts in den Puffer zurück.
Übersicht Block 1
Planungskonzepte
40 PUBLIC (ÖFFENTLICH) Planungskonzepte
Jahr Version Produkt Werk Menge
2017 V1 P1 W1 10
2017 V1 P1 W2 20
2017 V1 P1 W1 15
2017 V1 P1 W2 15
2017 V1 P1 W1 5
2017 V1 P1 W2 -5
Übersicht Block 2
2017 V1 P2 W1 60
2017 V1 P2 W2 40
2017 V1 P2 W1 50
2017 V1 P2 W2 50
2017 V1 P2 W1 -10
2017 V1 P2 W2 10
1.6.2 Standard-Planungsfunktionstypen
Die Standard-Planungsfunktionstypen sind Bestandteil des Systems. Indem Sie einen Standard-
Planungsfunktionstyp auf einer bestimmten Aggregationsebene anwenden, definieren Sie eine
Planungsfunktion diesen Typs.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 41
Verwendung
Mit Planungsfunktionen vom Typ Hochladen von Dateien aus AO (File Upload from AO,
0RSPL_FILE_UPLOAD_AO) können Sie lokale CSV-Dateien von Ihrem lokalen Gerät in Ihre SAP Analysis for
Office-Anwendung ab Version 2.7 hochladen. Sobald eine Planungsfunkion dieses Typs ausgeführt wird,
erscheint ein Dialogfenster, auf dem Sie eine Datei auswählen können. Diese wird dann an das Backend
transferiert und weiter verarbeitet.
Wenn Sie die Planungsfunktion bearbeiten, müssen Sie zuerst Dateieinstellungen festlegen, die das Format
der Daten in der CSV-Datei beschreiben. Im Einzelnen sind dies: Trennzeichen (CSV), Feldbegrenzerzeichen,
Datumsformat und Dezimalnotation.
Weitere Einstellungen betreffen den Überschreibemodus und das Vorhandensein von doppelten Sätzen in der
Datei:
Planungskonzepte
42 PUBLIC (ÖFFENTLICH) Planungskonzepte
● Beim Prüfen auf doppelte Sätze können Sie festlegen, dass deren Vorhandensein eine Fehlermeldung
erzeugt (X) oder dass die Kennzahlen der Sätze addiert werden (# oder Leerzeichen).
Desweiteren ist es erforderlich anzugeben, in welcher Zeile die Daten in der CSV-Datei beginnen.
Vor der ersten Zeile mit Daten können Mapping-Informationen stehen. Als Mapping-Information steht in einer
Spalte der Name eines InfoObjects. Im Bildbereich InfoObjects Dateispalten zuordnen (Map InfoObjects to File
Columns)) können Sie angeben, in welcher Zeile die Mapping-Information steht. Hier kann eine Tabelle mit der
Zuordnung von Spaltennummer in der Datei und Name des InfoObjects bearbeitet werden.
Im Bildbereich Filterwerte aus Datei (Filter values from file)) können Sie die Daten so synchronisieren, dass man
genau diejenigen Werte im Filter hat, die auch in der Datei sind. Damit sperrt und überschreibt man nur solche
Daten, die in der Datei sind. Für Merkmale, die hier ausgewählt sind, werden die Einzelwerte aus der Datei
gelesen und in den Filter aufgenommen. Die Menge aller Einzelwerte ist systemseitig auf 100 begrenzt, damit
nicht zu viele Sperren gesetzt werden.
Es gibt ein BADI BADI_RSPLFA_FILE_UPLOAD, in dem Sie die CSV-Datei programmatisch anpassen können.
Sie können eine Planungsfunktion vom Typ Hochladen von Dateien aus AO auch in eine Planungssequenz
einbinden.
Weitere Informationen
1.6.2.2 Einheitenumrechnung
Verwendung
Mit dem Funktionstyp Einheitenumrechnung können Sie Einheiten aus Kennzahlen in andere Kennzahlen über
Einheitenrelationen umrechnen.
In der Tabelle Quell-/Zielkennzahl-Umrechnungsart können Sie mehrere Umrechnungen angeben. Für jede
Umrechnung müssen Sie eine Einheiten- bzw. Mengenumrechnungsart auswählen. Der Wert in der
Zielkennzahl wird überschrieben. Dies gilt auch dann, wenn die Quellkennzahl leer ist. Der Wert der
Quellkennzahl bleibt bei der Einheitenumrechnung erhalten. Dadurch kann die Funktion mehrmals
hintereinander ausgeführt werden, ohne dass sich die Ergebnisse verändern. Damit dies auch gewährleistet ist,
wenn die Quellkennzahl und die Zielkennzahl identisch sind und die Quelleinheit aus dem Datensatz verwendet
wird, gibt es hierfür eine spezielle Logik: Falls es bereits einen Wert in der Zieleinheit gibt, wird dieser dann
vernachlässigt, wenn Werte in der Quelleinheit vorhanden sind, die nicht die Zieleinheit besitzen. Andernfalls
wird der Wert in der Zieleinheit übernommen.
Zu verändernde Merkmale können bei dieser Funktion nur die Einheitenfelder sein.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 43
1.6.2.3 Erzeugen Kombinationen
Verwendung
Mit dem Funktionstyp Erzeugen Kombinationen können Sie zu einer Aggregationsebene Nullsätze zu allen
erlaubten Kombinationen gemäß den Stammdaten und Merkmalskombinationen erzeugen lassen. Dies sind
genau diejenigen Kombinationen, die auch bei der Prüfung auf dieser Aggregationsebene gültig sind.
Dieser Funktionstyp erlaubt keine weitere Einstellungen: Da stets für die gesamte Aggregationsebene neue
Datensätze erzeugt werden, müssen sämtliche Merkmale zu verändernd sein. Der Funktionstyp arbeitet also
ohne Blockmerkmale.
Weitere Informationen
Merkmalsbeziehungen [Seite 9]
Kopieren [Seite 73]
1.6.2.4 Formel
Der Planungsfunktionstyp Formel bietet Ihnen eine einfache Programmiersprache zur Manipulation von
Bewegungsdaten.
Hinweis
Wenn Sie die SAP HANA-optimierte Prozessierung des SAP Business Planning and Consolidation, version
for SAP BW/4HANA, (Embedded-Konfiguration) einsetzen, erreichen Sie insbesondere bei
Planungskonzepte
44 PUBLIC (ÖFFENTLICH) Planungskonzepte
Planungsfunktionen vom Typ Formel eine deutliche Performancesteigerung, siehe SAP-Hinweis 1637199
.
Weitere Informationen
Eine Formel wird in der Regel nicht nur einmal sondern mehrmals ausgeführt, nämlich exakt je einmal für jedes
interne Datenobjekt.
Wenn Sie eine Planungsfunktion ausführen, wählen Sie zunächst einen Filter aus. Der Filter beschreibt eine
Menge von Bewegungsdaten. Diese Menge von Bewegungsdaten wird in kleinere Datenobjekte aufgeteilt. Wenn
eine Formel Referenzdaten benötigt, werden diese Datenobjekte zusätzlich aus diesen Referenzdaten gebildet.
Achtung
Wenn keine Datenobjekte gebildet werden können, wird eine Formel nicht ausgeführt.
Die Datenobjekte unterscheiden sich nur in den Merkmalswerten der zu verändernden Merkmale. Die Werte
der anderen Merkmale sind gleich. Falls keine zu verändernden Merkmale ausgewählt sind, wird die Formel für
jeden Bewegungsdatensatz einmal ausgeführt. Jeder Kennzahlwert im Datenobjekt kann dann eindeutig über
die Angabe der Merkmalswerte der zu verändernden Merkmale und die Angabe des Kennzahlnamens
adressiert und durch Funktionen verändert werden.
Hinweis
Für ein besseres Verständnis der Arbeitsweise einer Formel können Sie eine Query definieren, in der alle zu
verändernden Merkmale in die Schlüsselspalten, die restlichen Merkmale in den Kopf gestellt werden. Die
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 45
Formel wird dann für alle Kombinationen abgearbeitet. Sie müssen die Query eventuell um Spalten mit
Referenzdaten erweitern.
Empfehlung
Wir empfehlen, die Werte im Filter bezüglich der in der Formel nicht zu verändernden Merkmale möglichst
stark einzuschränken, damit wenige Datenobjekte gebildet werden.
Hinweis
Weitere Informationen
1.6.2.4.2 Referenzdaten
1. Sie nehmen das Feld, aufgrund dessen sich die Referenzdaten von den Daten des aktiven Planungsfilters
unterscheiden, als zu veränderndes Feld auf, z.B. Version ( 0VERSION). Die Operanden schreiben sie dann
wie folgt:
{ ERLOES, 002 } = { ERLOES, 001 }.
Wenn in Version 002 noch keine Daten vorhanden sind, dann werden die internen Datenobjekte aus den
Daten aus Version 002 und zusätzlich aus Version 001 gebildet. Beim Ausführen der Formel werden Daten
in Version 002 erzeugt.
Diese Schreibweise eignet sich für Formeln, die aus Referenzdaten neue Daten erzeugen sollen.
2. Sie adressieren explizit Referenzdaten. Dazu geben Sie den Namen des Merkmals und den Wert im
Operanden an:
{ ERLOES } = { ERLOES | 0VERSION = 001 }.
Die Formel wird nur für Sätze in Version 002 durchlaufen, denn aus der Formel kann nicht ermittelt werden,
wie die Sätze aus Version 001 in Sätze aus Version 002 zu transformieren sind. Wenn keine Sätze
vorhanden sind, wird die Formel nicht durchlaufen. Es werden keine Sätze erzeugt.
Die Schreibweise eignet sich für Formeln, die Referenzdaten zur Bewertung von vorhandenen Daten
benötigen.
Planungskonzepte
46 PUBLIC (ÖFFENTLICH) Planungskonzepte
Beispiel
Im folgenden Beispiel sind die Daten der Version 002 im aktiven Planungsfilter. Die Formel wird für
jeden Datensatz des aktiven Filters durchlaufen. Da es keine zu verändernden Felder gibt, bestehen die
Datenobjekte aus einem Satz.
001 4711 3
001 0815 2
002 4711 9
Die folgende Tabelle zeigt das Ergebnis von: { ERLOES, 002 } = { ERLOES, 001 }.
001 4711 3
001 0815 2
002 4711 3
001 0815 2
Die folgende Tabelle zeigt die zwei Datenobjekte, die durch die Anwendung der Formel gebildet werden:
0COSTCENTER
4711
0815
Die folgende Tabelle zeigt das Ergebnis von: { ERLOES } = { ERLOES | 0VERSION = 001 }.
001 4711 3
001 0815 2
002 4711 3
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 47
Die folgende Tabelle zeigt das Datenobjekt, das durch die Anwendung der Formel gebildet wird:
0VERSION 0COSTCENTER
002 4711
Vor der Ausführung der Parametergruppe wird aufgrund der Formel entschieden, welche
Referenzdaten benötigt werden. Für die Referenzdatenselektion wird die ursprüngliche Selektion
erweitert. Wenn z.B. im Planungsfilter nur Daten der Version 002 enthalten sind, wird aufgrund der
Formelzeile { ERLOES, 002 } = { ERLOES, 001 }. die Selektion um den Wert Version 001
erweitert.
Das System kann nicht immer vor dem Start einer Planungsfunktion vom Typ Formel entscheiden, welche
Referenzdaten benötigt werden. Wenn dies der Fall ist, löscht das System die Selektion. In den folgenden Fällen
kann dies eintreten:
● Benutzen der Funktion TMVL zur Veränderung des Wertes eines Zeitmerkmals
● Benutzen der Funktion ATRV oder ATRVT zum Lesen von Attributwerten
● Aufruf von Funktionsbausteinen.
Die Selektion wird nur dann gelöscht, wenn die Ergebnisse der Funktion zur Adressierung von Referenzdaten
verwendet werden. Hierzu folgt ein Beispiel:
Beispielcode
Im Beispiel wird zuerst die Formelvariable ACTPER aus der globalen Variablen AKTPERIO gefüllt. In einem
zweiten Schritt wird dieser Wert der Variablen FISCPER zugewiesen. In einem dritten Schritt wird mittels der
Funktion TMVL der Wert von ACTPER um 12 vermindert. Abschließend wird der Wert der Kennzahl ERLOES in
der Periode FISCPER dem Wert der Kennzahl ERLOES in der Periode ACTPER zugewiesen.
Es gibt Fälle, in denen Sie die Selektion erhalten möchten, auch wenn aktuell die Referenzdaten nicht gelesen
werden können, z.B. weil man Daten lesen würde, für die man keine Berechtigung hat. Mit dem KEEP- und dem
ENHANCE-Statement können Sie die Selektion der Referenzdaten beeinflussen.
● Indem Sie das KEEP-Statement verwenden, können Sie vermeiden, dass das System die Selektion der
Referenzdaten löscht:
KEEP REFDATA SELECTION FOR 0FISCPER.
● Um explizit zusätzliche Referenzdaten anzufordern, können Sie das ENHANCE-Statement benutzen:
ENHANCE REFDATA SELECTION FOR 0FISCPER: 2015001, 2016001, #.
Sie können auch globale Variablen in einer solchen Liste verwenden:
ENHANCE REFDATA SELECTION FOR 0FISCPER: 2015001, VARIABLE FISCPERVAR.
Planungskonzepte
48 PUBLIC (ÖFFENTLICH) Planungskonzepte
Um alle Daten, die es gibt, anzufordern, was dem Löschen des Filters entspricht, schreiben Sie:
ENHANCE REFDATA SELECTION FOR 0FISCPER: *.
Weitere Informationen
Neben der Verwendung des Funktionstyps Formel haben Sie die Möglichkeit, eigene Planungsfunktionstypen
anzulegen, um Bewegungsdaten mit Hilfe einer Programmiersprache zu manipulieren. Wägen Sie die
folgenden Punkte gegeneinander ab, um eine Entscheidung für den einen oder anderen Funktionstyp zu
treffen.
● Planungsfunktionen vom Typ Formel erfordern nur geringen Einarbeitungsaufwand z.B. für einen
Endanwender im Controlling, der bereits eine algorithmische Programmiersprache oder eine
Makrosprache beherrscht und die meisten Problemstellungen mit der Formelsprache lösen kann.
● Eigene Planungsfunktionen müssen immer dann geschrieben werden, wenn Sie Funktionen benötigen, die
auf andere Weise nicht zur Verfügung stehen.
Beispiel
Zur Kalkulation von Kosten muss auf kundeneigene Tabellen zugegriffen werden. Sie benötigen eine
spezielle Funktion, um in Formeln auf beliebige Tabellen zugreifen zu können.
● Es ist möglich, in Formeln Funktionsbausteine aufzurufen. Damit kann ein Teil der Logik in
Funktionsbausteinen und ein Teil der Logik in Formeln liegen.
● Generell kann jeder eigene Planungsfunktionstyp performanter implementiert werden als die
Formelrechnung. Grund dafür ist hauptsächlich, dass jeder Operand und jedes Ergebnis von etwas
komplexeren Formeln separat aus einer internen Tabelle gelesen wird. In einem selbst geschriebenen
Programm wird man diese Zugriffe natürlich optimieren. Dieser Performance-Gesichtspunkt ist bei
größeren Datenmengen ein wichtiges Entscheidungskriterium.
Weitere Informationen
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 49
1.6.2.4.4 Datendeklaration
Eine Deklaration ist definiert als Festlegung von Aspekten einer Variable. Datendeklarationen werden mit dem
Wort DATA eingeleitet, gefolgt vom Namen der Hilfsvariablen.
Verwendung
Bei einer Datendeklaration muss der Name mit einem Buchstaben anfangen und kann dann Ziffern und
Buchstaben enthalten, jedoch keine Sonderzeichen.
Variablennamen müssen sich von Schlüsselworten wie DATA, ELSEIF oder SIN unterscheiden.
Beispiel
Achtung
Falls die Formelsyntax später um neue Schlüsselworte erweitert wird, werden eventuell vorhandene
gleichnamige Variablen ungültig.
Empfehlung
Um Irrtümer zu vermeiden, empfehlen wir, dass Sie Variablen nicht wie Merkmalswerte benennen bzw.
Merkmalswerte in Hochkommata einschließen.
Außerdem können Sie Datentypen für Attribute anlegen. Falls die Attribute vom Typ Kennzahl sind, müssen
Sie dafür Hilfsvariablen vom Typ F oder I anlegen. Wenn Sie Attributwerte mit der Funktion ATRV lesen wollen,
benötigen Sie den technischen Namen des Attributs.
Des Weiteren können Sie beliebige InfoObjekte zur Datendefinition verwenden, selbst wenn dieses InfoObject
nicht zu der Aggregationsebene gehört.
Planungskonzepte
50 PUBLIC (ÖFFENTLICH) Planungskonzepte
Beispiel
Dies ist möglich, obwohl 0COSTCENTER in diesem Beispiel keinen Bezug zur Aggregationsebene hat.
1.6.2.4.5 Ausdrücke
Im folgenden erhalten Sie einen Überblick darüber, welche Bestandteile Sie in Ausdrücken verwenden dürfen.
Beispielcode
● Operatoren
● Funktionen mit keinem, einem oder mehreren Operanden
Weitere Informationen
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 51
1.6.2.4.6 Operatoren und Funktionen
Verwendung
Zur Berechnung von Kennzahlen stehen Ihnen eine Reihe Operatoren und mathematischer Funktionen zur
Verfügung.
Funktionen können mit keinem, einen oder mehreren Operanden arbeiten. Wenn keine speziellen Operanden
angegeben sind, können Sie neben den gültigen Operanden auch eine Konstante angeben.
Die Operanden Zinssatz und Prozentsatz werden in Prozent angegeben, also 10% als 10 und nicht als 0.1.
Hinweis
Alle Funktionen liefern einen einfachen Ergebniswert zurück, keine Zeitreihe. Im Falle einer Abschreibung
wäre es allerdings wünschenswert, eine Zeitreihe mit den Abschreibungen zu erhalten. Um dies zu
erreichen, müssen Sie eine Formel für jeden Zeitpunkt füllen.
Weitere Informationen
+ Addition
- Subtraktion
* Multiplikation
Planungskonzepte
52 PUBLIC (ÖFFENTLICH) Planungskonzepte
Mathematischer Operator Bedeutung
/ Division
MOD Modulo-Operation
** Potenzierung
1.6.2.4.6.2 Vergleichsoperatoren
Vergleichsoperator Bedeutung
> Größer
< Kleiner
= Gleich
<> Ungleich
Weitere Informationen
AND Und
OR Oder
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 53
Logischer Operator Bedeutung
NOT Nicht
Funktion Bedeutung
COSH Hyperbelcosinus
SINH Hyperbelsinus
TANH Hyperbeltangens
Planungskonzepte
54 PUBLIC (ÖFFENTLICH) Planungskonzepte
Funktion Bedeutung
Hinweis
Die Funktion CONVERT wandelt diejenigen Buchstaben ihres Argumentes in Kleinbuchstaben um, denen
ein ! - Zeichen vorgestellt ist. Enthält das Argument ein ! - Zeichen, muss ein weiteres !- Zeichen vorgestellt
werden. Die Funktion ist deshalb notwendig, weil Formeln beim Editieren automatisch in Großbuchstaben
gewandelt werden.
MAX Maximum
MIN Minimum
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 55
Hinweis
● Die Funktion PERP berechnet die ewige Rente aus einem Grundkapital nach der folgenden Formel:
Ergebnis = Kennzahlwert * (Zinssatz / 100)
● Bei der Funktion C2DATE muss für den Endwert E und für den Startwert einer Periode S angegeben
werden.
Hinweis
● Die Funktion DISC zinst einen Betrag nach der folgenden Formel ab:
Ergebnis = Kennzahlwert / ( ( 1 + Zinssatz / 100 ) ** Jahre )
● Die Funktion DECD berechnet eine degressive Abschreibung nach dem folgenden Algorithmus:
1. Führe Jahre mal aus.
Zwischenwert = Zwischenwert + ( Startwert - Zwischenwert ) * Prozentsatz / 100.
2. Ergebnis = Startwert - Zwischenwert
Planungskonzepte
56 PUBLIC (ÖFFENTLICH) Planungskonzepte
1.6.2.4.6.7 Funktionen mit vier Operanden
Hinweis
Die Funktion DECL berechnet eine lineare Abschreibung nach der folgenden Formel:
Hinweis
Die Funktion CURC rechnet einen Betrag in eine andere Zielwährung um. Beachten Sie, dass es bei
Kennzahlen vom Typ Gleitkomma zu kleinen Rundungsdifferenzen kommen kann, da intern mit neun
Nachkommastellen gerechnet wird.
Funktion Bedeutung
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 57
1.6.2.4.7 Bedingte Anweisungen
Verwendung
Sie realisieren bedingte Anweisungen mit Hilfe der IF-Anweisung. Auf eine IF-Anweisung können weitere
bedingte Anweisungen mit ELSEIF folgen. Zur Behandlung der restlichen Fälle innerhalb einer Kette von
bedingten Anweisungen gibt es die ELSE-Anweisung. Das Schema sieht also in etwa wie im folgenden Beispiel
aus.
Beispiel
IF <Ausdruck1>.
<Anweisung1>.
ELSEIF <Ausdruck2>.
<Anweisung2>.
ELSE.
<Anweisung3>.
ENDIF.
Ausdrücke innerhalb der IF-Anweisung bestehen aus Operanden zzgl. Variablen und Konstanten,
Vergleichsoperatoren und logischen Operatoren (siehe Operatoren und Funktionen [Seite 52]).
Hinweis
Beachten Sie, dass Konstanten nur auf der rechten Seite eines Vergleichsoperators stehen dürfen.
Beispiel
Um den Spezialfall zu überprüfen, ob ein Operand <oper1> den Initialwert hat, können Sie schreiben:
Beispiel
Exemplarische Konstruktion mit logischen Operatoren: IF NOT <oper1> < <oper2> AND <oper3> =
<oper4> OR <oper5> > <oper2>.
Für das Arbeiten mit zeichenartigen Operanden stehen Ihnen noch folgende Operatoren zur Verfügung.
Planungskonzepte
58 PUBLIC (ÖFFENTLICH) Planungskonzepte
Operator Bedeutung in Ausdruck
Wenn c1 oder c2 vom internenTyp C ist, dann geht das Feld in seiner
vollen Länge in den Vergleich ein, d.h. Leerzeichen am Ende werden
berücksichtigt.
Wenn c1 vom Typ STRING und leer ist, dann ist der Ausgang des Ver
gleichs stets positiv.
Wenn c2 vom Typ STRING und leer ist, dann ist der Ausgang des Ver
gleichs stets negativ, außer c1 ist ebenfalls ein leerer String.
CA ( C ontains A ny) c1 enthält mindestens ein Zeichen aus der Zeichenmenge c2.
Wenn c1 oder c2 vom Typ C ist, dann geht das Feld in seiner vollen
Länge in den Vergleich ein, d.h. Leerzeichen am Ende werden berück
sichtigt.
Wenn c1 oder c2 vom Typ STRING und leer ist, dann ist der Ausgang
des Vergleichs stets negativ.
CS ( C ontains S tring) c1 enthält die Zeichenfolge c2. Wenn das jeweilige Feld vom Typ C ist,
dann werden abschließende Leerzeichen in c1 und c2 ignoriert.
1.6.2.4.8 Schleifenkonstrukte
Verwendung
DO-Schleife
● Anweisungen, die zwischen DO und ENDDO stehen, werden beliebig oft wiederholt.
● Die Schleife wird durch die Anweisung EXIT unterbrochen.
● Die Zahl der Schleifendurchläufe kann durch eine Konstante oder eine Variable vom Typ I gesteuert
werden: DO <n>TIMES.
FOREACH-Schleife
● Mit der Anweisung FOREACH <Variable>. wird über alle Werte einer Variablen iteriert. Es handelt sich
um die Merkmalswerte, die in den Bewegungsdaten des aktuellen Datenobjektes vorhanden sind (also
nicht unbedingt um alle Stammdatenwerte, die für das Merkmal definiert sind). Dieses Schleifenkonstrukt
wird durch die Anweisung ENDFOR abgeschlossen.
● Die Merkmalswerte werden aufsteigend sortiert abgearbeitet. Wenn Sie Kombinationen von
Merkmalswerten benötigen, können Sie die Anweisung in der Form FOREACH <Variable1,Variable2>.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 59
einsetzen. Dieses Konstrukt liefert die vorhandenen Kombinationen von Merkmalswerten des aktuellen
Datenobjektes.
Hinweis
Anmerkungen zum Laufzeitverhalten: Vor dem Eintritt in die FOREACH-Schleife werden alle im
Datenobjekt vorhandenen Merkmalswerte gesammelt und sortiert, danach werden diese
Merkmalswerte in der FOREACH-Schleife nacheinander geliefert. Wenn in der Schleife ein neuer Wert
erzeugt und in die Bewegungsdaten geschrieben wird, wird dieser erst bei der nächsten FOREACH-
Schleife berücksichtigt.
Das FOREACH-Konstrukt kostet viel Rechenzeit und sollte möglichst sparsam eingesetzt werden.
Überlegen Sie auch immer sorgsam, ob Sie anstelle von zwei geschachtelten Schleifen nur ein
Konstrukt der Art FOREACH <Variable1, Variable2>. benutzen können, da das Laufzeitverhalten
hierdurch verbessert wird.
Beispiel
Beispielcode
Das folgende Beispiel zeigt ein besseres Programm: Hier wird darauf geachtet, dass neue Werte nur dann
erzeugt werden, wenn sie von Null verschieden sind. Da die Menge der Werte, die in den Variablen PRODUCT
und FISCPER auftauchen können, nicht aktualisiert werden muss, spart dies sehr viel Rechenzeit. Eine solche
Aktualisierung tritt jedes mal dann ein, wenn die beiden Schleifen FOREACH PRODUCT. und FOREACH
FISCPER. neu durchlaufen werden. Wenn durch eine Formel Nullwerte erzeugt werden, schreibt das System
diese nicht in den internen Puffer zurück. Diese Nullwerte sind also für nachfolgende Planungsfunktionen oder
die manuelle Planung nicht sichtbar. Andererseits wird auch nicht vorhandenen Daten der Wert 0 zugewiesen.
Nullwerte müssen also nicht explizit erzeugt werden.
Planungskonzepte
60 PUBLIC (ÖFFENTLICH) Planungskonzepte
Beispielcode
Beispielcode
1.6.2.4.9 Meldungsausgabe
Verwendung
Sie können Meldungen ausgeben lassen mittels der Anweisung MESSAGE Tnnn(<Klasse>). oder MESSAGE
Tnnn(<Klasse>) WITH <Operand1> ... <Operand4>.
● T ist der Typ der Meldung ('E' = Fehler, 'I' = Information). Wenn Fehler vom Typ 'E' ausgelöst werden,
werden die Ergebnisse der Planungsfunktion nicht in den internen Bewegungsdatenpuffer übernommen.
● nnn ist eine dreistellige Nummer.
● Klasse ist die Nachrichtenklasse.
● Optional können maximal 4 Operanden zusätzlich mitgegeben werden. Operanden können entweder
Variablen oder in Hochkommata eingeschlossene Strings sein.
Die Meldungen werden gesammelt und nach der Ausführung der Funktion angezeigt.
Empfehlung
Wir empfehlen, für Fehlermeldungen eine eigene Nachrichtenklasse anzulegen statt von SAP ausgelieferte
Meldungen zu verwenden. Beachten Sie, dass Sie die eigene Nachrichtenklasse vom Testsystem in das
Produktivsystem transportieren müssen.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 61
1.6.2.4.10 Aufruf von Funktionsbausteinen
Verwendung
Mit der Anweisung CALL FUNCTION können Sie Funktionsbausteine aufrufen. Tragen Sie hierzu die Namen der
Funktionsbausteine in Transaktion SM30 in die Tabelle RSPLF_FDIR ein.
Den Funktionsbausteinen können EXPORTING-, IMPORTING- und CHANGING-Parameter übergeben werden. Bei
den Parametern muss es sich um einfache Typen handeln ( F, I, D, STRING und Typen von Merkmalen und
Attributen). Klassenreferenzen, Strukturen und Tabellenparameter sind nicht zugelassen.
Falls der Funktionsbaustein eine Ausnahme auslöst, müssen Sie mit dem Konstrukt MESSAGE ... RAISING
arbeiten. Auch klassenbasierte Ausnahmen sind zugelassen. Die Meldungen des Funktionsbausteins werden
ins Protokoll übernommen.
Beispiel
Quellcode
Das folgende Beispiel zeigt den Einsatz der Anweisung MESSAGE ... RAISING im Falle einer ausgelösten
Ausnahme.
Beispielcode
FUNCTION UPF_DISTR_RATE_GET.
*"----------------------------------------*"
*"Lokale Schnittstelle:
*"IMPORTING
*" REFERENCE(I_FISCPER) TYPE /BI0/OIFISCPER
*" REFERENCE(I_VERSION) TYPE STRING DEFAULT 'OPTIMISTIC'
*"EXPORTING*" REFERENCE(E_RATE) TYPE F
*" REFERENCE(E_FISCYEAR) TYPE /BI0/OIFISCYEAR
*"EXCEPTIONS
*" ERROR*"----------------------------------------*"
Planungskonzepte
62 PUBLIC (ÖFFENTLICH) Planungskonzepte
DATA: L_FISCPER_3 TYPE N LENGTH 3.
L_FISCPER_3 = I_FISCPER+4(3).
IF I_VERSION = 'OPTIMISTIC'.
E_RATE = l_FISCPER_3 / 5.
ELSE.
E_RATE = l_FISCPER_3 / 7.
ENDIF.
E_FISCYEAR = I_FISCPER(4).
IF L_FISCPER_3 IS INITIAL OR E_FISCYEAR IS INITIAL.
MESSAGE E001(UPF) WITH 'Initiale Werte'(TIV) RAISING ERROR.
ENDIF.
ENDFUNCTION.
TABLE INTTAB { YEAR TYPE 0CALYEAR KEY, ZAHL TYPE F, COSTCENTER TYPE 0COSTCENTER }.
Interne Tabellen bestehen aus Feldern. Für diese Felder können Datentypen verwendet werden, die für
Variablen erlaubt sind. Ein Feld gefolgt von KEY ist ein Schlüsselfeld. Es muss mindestens ein Schlüsselfeld
vorhanden sein sowie ein Feld, das kein Schlüsselfeld ist. Pro Schlüssel gibt es in der Tabelle nur einen Eintrag.
INTTAB.{ZAHL,2011} = 25.
INTTAB.{ COSTCENTER, 2013 } = 00004711.
1.6.2.4.12 Unterroutinen
Komplexe Formeln können Sie mit Unterroutinen modularisieren, d.h. besser strukturieren.
Unterroutinen beginnen mit FORM und enden mit ENDFORM. Nach FORM folgt ein eindeutiger Name. Sie
können IMPORTING- und CHANGING-Parameter übergeben. Die IMPORTING-Parameter werden als Wert
übergeben, ändern sich also nicht ausserhalb, wenn ihnen in der Routine ein anderer Wert zugewiesen wird. Bei
den Parametern müssen Sie einen Typ angeben. Bei internen Tabellen nehmen Sie eine Tabelle, die bereits mit
TABLE definiert wurde.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 63
Das folgende Beispiel zeigt eine Unterroutine COLLECT_REFDATA und die vorausgehenden DATA- und TABLE-
Deklarationen einer Planungsfunktion vom Typ Formel.
Beispielcode
...
DATA SUM_REF TYPE F.
DATA REF_CNT TYPE I.
DATA PLUS_CNT TYPE I.
DATA MINUS_CNT TYPE I.
...
TABLE REFDATA_TAB {
PRO TYPE 0PRODUCT KEY,
REF TYPE F
}.
FORM COLLECT_REFDATA IMPORTING REF_RATIO TYPE KEYFIGURE_NAME
CHANGING REF_TAB TYPE REFDATA_TAB
SUM_REF TYPE F
PLUS_CNT TYPE I
MINUS_CNT TYPE I.
DATA M_PRODUCT TYPE 0PRODUCT.
DATA REF_DATA TYPE F.
SUM_REF = 0.
PLUS_CNT = 0.
MINUS_CNT = 0.
CLEAR REF_TAB.
FOREACH M_PRODUCT IN REFDATA.
IF M_PRODUCT <> '#'.
REF_DATA = { REF_RATIO, M_PRODUCT | 0VERSION = V00 }.
IF REF_DATA <> 0.
REF_TAB.{ REF, M_PRODUCT } = REF_DATA.
SUM_REF = SUM_REF + REF_DATA.
IF REF_DATA > 0.
PLUS_CNT = 1.
ELSEIF REF_DATA < 0.
MINUS_CNT = 1.
ENDIF.
ENDIF.
ENDIF.
ENDFOR.
ENDFORM.
Die Unterroutine COLLECT_REFDATA hat IMPORTING- und CHANGING-Parameter. Der Parameter REF_TAB
ist eine interne Tabelle. Der zugehörige Typ REFDATA_TAB wird zuvor in der Formel als Tabelle deklariert. In
Unterroutinen kann nicht auf Variablen aus der Formel zugegriffen werden. Alle notwendigen Informationen
müssen als Parameter übergeben werden.
Beispielcode
Über die INCLUDE-Anweisung können Sie Formeln aus verschiedenen Aggregationsebenen einschließen.
Planungskonzepte
64 PUBLIC (ÖFFENTLICH) Planungskonzepte
Beispielcode
INCLUDE FOX1.
Beispielcode
Nur die Definition von TABLE KURSTAB und die FORM INIT_KTYPE können von eingeschlossenen
Planungsfunktionen referenziert werden. Globale DATA-Anweisungen und die Formel selbst werden nicht
berücksichtigt.
In der BW-integrierten Planung können zusätzlich Daten aus beliebigen Aggregationsebenen und nicht
planbaren DataStore-Objekten gelesen werden. Diese werden mit dem Info Provider-Statement deklariert.
Beispiel
INFOPROVIDER DSO_REF.
Beim Zugriff wird vor die geschweiften Klammern der Name des InfoProviders und ein `.` geschrieben. Im
Beispiel ist 0CALYEAR das zu verändernde Merkmal. Bei InfoProvidern müssen in den geschweiften Klammern
alle zu verändernden Merkmale sowie diejenigen Merkmale angegeben werden, die nicht in der
Aggregationsebene vorhanden sind. Auf Blockmerkmale kann mit der bekannten Notation zugegriffen werden.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 65
Sie können keine Werte setzen. Das System kann aber über die Werte, die einem Block zugeordnet werden,
iterieren:
Welche Daten das System liest, bestimmt es wie bei den Referenzdaten aus der Formel. So erweitert das
System z.B. die Selektion für das Merkmal 0PLANT um den Wert PLANT01, wenn in der Formel folgendes
steht:
Mit dem KEEP- und dem ENHANCE-Statement können Sie die Selektion der Referenzdaten beeinflussen.
● Indem Sie das KEEP-Statement verwenden, können Sie vermeiden, dass das System die Selektion der
Referenzdaten löscht:
KEEP REFDATA SELECTION FOR INFOPROVIDER DSO_REF FOR 0CALYEAR.
● Um explizit zusätzliche Referenzdaten anzufordern, können Sie das ENHANCE-Statement benutzen:
Weitere Informationen
Verwendung
Zur Veranschaulichung der Anwendung von Formeln werden folgende Beispiele erläutert:
1. Preisplanung
2. Preisplanung mit Preisen in den Stammdaten
3. Quotenplanung
4. Kopieren mit Bedingung auf dem Wert einer Kennzahl
5. Kopieren mit Bedingung und Iteration über Kennzahlname
6. Plausibilitätsprüfung von Daten
7. Rollierende Planung
8. Abschreibung
9. Rechnen mit Datentyp 'D'
Planungskonzepte
66 PUBLIC (ÖFFENTLICH) Planungskonzepte
10. Arbeiten mit Zeichenketten
1. Preisplanung
In Version 1 wird geplant, in Version 2 sind die Preise in den Bewegungsdaten abgelegt. Die zu verändernden
Merkmale sind:
● Version ( 0VERSION)
● Geschäftsjahr ( 0GJAHR)
● Kunde ( 0CUSTOMER)
Die Sätze haben die Besonderheit, dass die Merkmale Kunde und Geschäftsjahr den Wert nicht zugeordnet
haben und deshalb in die Menge der zu verändernden Merkmale aufgenommen werden müssen. Weiterhin
muss es für jedes zu planende Objekt in Version 1 ein Objekt in Version 2 geben, über das der Preis ermittelt
werden kann. Wenn zu einem Artikel kein Preis geplant ist, wird eine Meldung ausgegeben. Die Berechnung
wird nur ausgeführt, wenn die Kombination {MENGE,1, GJAHR,CUSTOMER} geplant, also > 0 ist.
Beispielcode
Das Fehlen des Merkmals Artikel ( 0ARTICLE) in der Liste der zu verändernden Merkmale scheint
überraschend, da sich die Preise, mit denen gerechnet wird, sich auf 0ARTICLE beziehen. Unter ausdrücklicher
Einbeziehung des Merkmals 0ARTICLE würde das Beispiel wie folgt aussehen:
Beispielcode
Tatsächlich ist das Merkmal 0ARTICLE für die Formel überflüssig, da die Werte des Merkmals nicht geändert
werden. Bei der Berechnung des geplanten Erlöses zeigt sich, dass auf beiden Seiten des Zuweisungsoperators
jeweils auf denselben Artikel verwiesen wird.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 67
Empfehlung
Wir empfehlen, in einem solchen Fall das Merkmal nicht in die Menge der zu verändernden Merkmale
aufzunehmen, da es für die Berechnung nicht benötigt wird, aber beim Zugriff auf die Werte Performance
kostet. Ein weiteres Mittel, um die Formel zu beschleunigen, besteht darin, den Wert des Elementes
{PREIS,2,#,#} in einer Hilfsvariablen zu speichern und dann mit dieser zu arbeiten. Falls der Wert eines
Merkmals benötigt wird, um Fehlermeldungen auszugeben oder um Attributwerte zu ermitteln, kann mit
der Funktion OBJV() der Wert gelesen werden.
Die Formel kann noch kürzer aufgeschrieben werden, wenn auf die Referenzdaten explizit zugegriffen wird. Es
gibt dann außer Kennzahlname keine zu verändernden Merkmale. Die Formel wird je Datensatz durchlaufen.
Eine FOREACH-Schleife über zu verändernde Merkmale ist damit überflüssig.
Beispielcode
Wie sieht die Preisplanung aus, wenn der Preis in den Stammdaten abgelegt ist? Mit Hilfe der Funktion OBJV
holen wir uns den Wert des Artikels. Mit Hilfe der Funktion ATRV wird der Wert des Attributes 0PRICE gelesen.
Die Funktion ATRV hat im einfachen Fall zwei Argumente. Das erste Argument muss der Name eines
Stammdatenattributes sein, das zweite Argument eine Variable. Mit Hilfe des Variablenwertes wird in der
Stammdatentabelle der Wert des Attributs gelesen. Bei geklammerten Merkmalen sind folgende Fälle zu
unterscheiden:
● Wenn die übergeordneten Merkmale zu verändernde Felder sind, müssen die Werte dieser Merkmale der
Funktion in Form von Variablen mitgegeben werden. Die Zahl der Argumente der Funktion richtet sich in
diesem Fall danach, wie viele Felder mitgegeben werden müssen.
● Wenn die übergeordneten Merkmale nicht in der Menge der zu verändernden Felder enthalten sind, werden
die Werte automatisch aus den Werten des aktuellen Päckchens versorgt. Im folgenden Beispiel ist nur der
Kennzahlname ein zu veränderndes Merkmal.
Beispielcode
3. Quotenplanung
Beispielcode
Planungskonzepte
68 PUBLIC (ÖFFENTLICH) Planungskonzepte
GESERLOS = GESERL0S + {ERLOS,2,CUSTOMER}.
GESMENGE = GESMENGE + {MENGE,2,CUSTOMER}.
ENDFOR.
FOREACH CUSTOMER.
{ERLOS,1,CUSTOMER} = {MENGE,1,CUSTOMER} * GESERLOS / GESMENGE.
ENDFOR.
Zu veränderndes Merkmal ist Version. Als Merkmal für Bedingungen ist der Kennzahlname ausgewählt worden.
Als Wert für den Kennzahlnamen wurde ERLOS ausgewählt. Die folgende Formel kopiert den Erlös von Version 1
nach Version 2, falls der Erlös in Version 1 größer als 500 ist. In diesem Beispiel können wir nicht die
Planungsfunktion vom Typ Kopieren [Seite 73] einsetzen, da hier keine Bedingungen auf Kennzahlwerten
formuliert werden können. In der Regel ist es vorteilhafter, anstelle von Formeln die speziellen
Planungsfunktionen zu verwenden, da diese effizienter implementiert sind.
Beispielcode
Zu verändernde Merkmale sind Kennzahlname und Version. Im Gegensatz zum obigen Beispiel werden jetzt
alle Kennzahlen nach Version 2 kopiert, falls der Erlös größer als 500 ist. Um die Zuweisung nicht für alle
Kennzahlen schreiben zu müssen, definieren wir eine Variable RATIO vom Typ KEYFIGURE_NAME und iterieren
mit Hilfe des FOREACH-Konstruktes über alle Kennzahlen der Planungsebene.
Beispielcode
Zu verändernde Merkmale sind Kennzahlname, Version und Artikel. Wir überprüfen, ob der geplante Erlös
mindestens 90 Prozent des Erlöses der Version 1 erreicht. Wenn die Grenze unterschritten wird, gibt das
System eine Warnmeldung aus.
Beispielcode
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 69
7. Rollierende Planung
Zu verändernde Merkmale sind Version und Geschäftsjahr/Periode. Die Ist-Daten der aktuellen Periode werden
in die Planversion kopiert. Die Differenz wird auf die restlichen Perioden verteilt. Die aktuelle Periode wird aus
einer Variablen ermittelt.
Beispielcode
8. Abschreibung
Zu verändernde Merkmale sind Kennzahlname und Geschäftsjahr. Es wird der Wert der Kennzahl 0AMOUNT für
fünf Jahre ermittelt. Anschaffungspreis ist 1000. Restwert ist 100. Abschreibungsprozentsatz ist 20 Prozent. Es
wird linear abgeschrieben. Bei diesem Beispiel steht nicht die Funktion DECL (lineare Abschreibung) im
Mittelpunkt des Interesses, sondern die Funktion TMVL. Diese Funktion hat als erstes Argument den Wert eines
Zeitmerkmales und als zweites Argument einen Offset. Der Offset gibt an, den wievielten nächstgrößeren Wert
die Funktion liefern soll. Es ist auch möglich, negative Offsets zu übergeben. Dann werden die entsprechenden
kleineren Werte geliefert. Es wäre nicht möglich, mit einer FOREACH-Schleife den gleichen Effekt zu erzielen, da
in den Bewegungsdaten nicht alle Jahre vorhanden sein müssen.
Beispielcode
Es ist auch möglich, mit dem Datentyp 'D' Berechnungen durchzuführen. Im folgenden ist ein kleines Beispiel
aufgeführt. In der FOREACH-Schleife werden in D1 das Datum des ersten Tages in FISPCER und in D2 der letzte
Planungskonzepte
70 PUBLIC (ÖFFENTLICH) Planungskonzepte
Tag in FISPCER ermittelt. Daraufhin wird in I1 die Differenz zwischen D2 und D1 gebildet und zwei Tage
subtrahiert. I1 ist vom Typ I. Wenn die Datumsangaben in D1 und D2 ungültig sind, kommt als Resultat 0
heraus. Wenn mit Feldern vom Typ D gerechnet wird, werden die konstanten Operanden daraufhin überprüft,
ob es sich um gültige Datumsangaben handelt. Deshalb konnten wir nicht I1 = D2 - D1 - 2. schreiben,
sondern mussten eine Hilfsvariable I2 verwenden.
Beispielcode
DATA D1 TYPE D.
DATA D2 TYPE D.
DATA I1 TYPE I.
DATA I2 TYPE I.
DATA FISCPER TYPE 0FISCPER.
FOREACH FISCPER.
* Calculate 1st day of FISCPER
D1 = C2DATE( FISCPER, S ).
* Calculate last day of FISCPER
D2 = C2DATE( FISCPER, E ).
* Calculate the difference between last and 1st day minus two days
I2 = 2.
I1 = D2 - D1 - I2.
MESSAGE I001(UPF) WITH 'DIFFERENCE' I1.
ENDFOR.
Beispielcode
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 71
1.6.2.5 Formel mit Verarbeitung von Nullsätzen
Der Funktionstyp Formel mit Verarbeitung von Nullsätzen (0RSPL_FORMULA_ZERO) unterscheidet sich vom
Planungsfunktionstyp Formel (0RSPL_FORMULA) darin, dass auch Sätze, bei denen alle Kennzahlen gleich Null
sind (Nullsätze), verarbeitet werden.
Verwendung
Mit diesem Planungsfunktionstyp können auch Nullsätze erzeugt werden. Weil es sich bei Nullsätzen um
fehlerhafte Sätze handeln kann, die storniert wurden, prüft das System beim Lesen der Daten von der
Datenbank alle Sätze gegen die Merkmalsbeziehungen und verarbeitet nur die gültigen Sätze.
Dies gilt für Filterdaten, Referenzdaten und Daten, die aus anderen InfoProvidern hinzugelesen werden. Falls
der Parameter RS_DEBUGLEVEL auf einen Wert > 1 gesetzt wird, wird auch in der Datenbank-Prozessierung
ermittelt, wieviele Sätze übersprungen werden. Sonst werden entsprechende Meldungen nur ausgegeben,
wenn die Planungsfunktion auf dem Anwendungsserver ausgeführt wird.
Verwendung
Mit dem Funktionstyp Kennzahlwerte setzen können Sie Werte für Kennzahlen setzen und nach Referenzdaten
verteilen lassen.
Kennzahlwerte setzen
Um Kennzahlwerte zu setzen, können Sie eine Selektionsbedingung auf Blockmerkmalen, den Namen der
Kennzahl und den zu setzenden Wert eingeben.
Die Verteilung wird nicht ausgeführt, wenn kein Merkmal als zu verändernd ausgewählt ist.
Für die Verteilung der Kennzahlwerte stellt das System verschiedene Parameter zur Verfügung. Diese
Parameter entsprechen den Parametern zur Auswahl der Referenzdaten des Funktionstypes Verteilung nach
Referenzdaten.
Der Funktionstyp Kennzahlwerte setzen arbeitet mit Nullsätzen. Nullsätze sind Sätze, deren Kennzahlwerte aus
Sicht der Aggregationsebene Null sind. Das unterscheidet diesen Funktionstyp vom Funktionstyp Verteilung
nach Referenzdaten, der keine Nullsätze verarbeitet. Wenn keine Referenzdaten vorhanden sind, also auf
vorhandene Objekte gleichverteilen eingestellt wird, können Planungsfunktionen des Typs Kennzahlwerte
setzen auf eine größere Zahl von Objekten gleichverteilen als Planungsfunktionen vom Typ Verteilen nach
Referenzdaten.
Planungskonzepte
72 PUBLIC (ÖFFENTLICH) Planungskonzepte
Weitere Informationen
1.6.2.7 Kopieren
Verwendung
Mit dem Funktionstyp Kopieren können Sie die Kennzahlwerte von bestehenden Merkmalskombinationen auf
andere Merkmalskombinationen kopieren.
Beispiel
Wenn Sie z.B. die Werte aus dem Jahr 2015 nach 2017 kopieren möchten, ohne ein anderes Merkmal zu
verändern, setzen Sie das Kennzeichen wird verändert einzig für das Merkmal Jahr.
Über die Tabelle zur Kennzahlauswahl können Sie festlegen, welche Kennzahlen kopiert werden sollen.
Über die Tabelle Von- und Nachwerte für den Kopiervorgang können Sie entweder einen einfachen
Kopiervorgang oder mehrere Kopiervorgänge innerhalb einer Planungsfunktion anlegen.
Der Funktionstyp erlaubt auch komplizierte Kopiervorgänge: Sowohl die Von- als auch die Nach-Werte können
beliebige Merkmalseinschränkungen auf den zu verändernden Merkmalen sein. Das System summiert dabei
die Werte der Kennzahlen auf der Von-Seite stets über alle Sätze des Blockes, die der Merkmalseinschränkung
entsprechen; auf der Nach-Seite schreibt es stets die Summe auf jede einzelne Merkmalskombination.
Sie können auch Werte von einem Von-Wert in mehrere Nach-Werte kopieren.
Beispiel
Sie kopieren von Jahr "2015" und Version "IST" auf die Kombination {"2016", "PLAN01"} und auf die
Kombination {2017, "PLAN02"}.
● Die Von-Werte werden als Referenzdaten gelesen und müssen demnach nicht im Filter enthalten sein, der
der Planungsfunktion übergeben wird.
● Die Nach-Werte werden verändert; daher müssen sie im übergebenen Filter enthalten sein.
● Die Kennzahlwerte der Nach-Werte werden beim Kopieren immer überschrieben. Dies gilt auch, wenn die
Von-Werte leer sind.
● Wenn es zu einer Merkmalseinschränkung auf der Von-Seite keine Werte für einen Block gibt, wird der
Teilvorgang nicht ausgeführt.
● Auf der Nach-Seite werden für die angegebenen Merkmalseinschränkungen Kombinationen erzeugt. Dies
geschieht in Konsistenz mit den Stammdaten und den auf den InfoProvidern definierten
Merkmalsbeziehungen. Wenn das System dabei für einen Block und einen Teilvorgang kein Ziel findet,
werden keine Daten erzeugt.
● Wenn ein Ziel in mehreren Teilvorgängen genannt wird, enthält es nach dem Ausführen der Funktion die
entsprechende Summe.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 73
Die Kopierfunktion bildet auch Blöcke aus den Referenzdaten.
Weitere Informationen
Verwendung
Mit dem Funktionstyp Kopieren (ohne Berücksichtigung von Nullsätzen) können Sie die Kennzahlwerte von
bestehenden Merkmalskombinationen auf andere Merkmalskombinationen kopieren. Im Unterschied zum
Funktionstyp Kopieren werden allerdings keine Nullsätze gelesen oder geschrieben.
Hinweis
Eine Planungsfunktion vom Typ Kopieren (ohne Berücksichtigung von Nullsätzen) kann hinsichtlich der
Performance besser sein als eine vom Typ Kopieren, da in der Regel weniger Merkmalsbeziehungen geprüft
werden müssen.
Weitere Informationen
1.6.2.8 Löschen
Verwendung
Mit dem Funktionstyp Löschen können Sie die Kennzahlwerte der ausgewählten Datensätze löschen.
Dabei werden keine Merkmalswerte verändert. In der Merkmalsverwendung können Sie daher Merkmale nur
als Bedingungsmerkmale auswählen.
Planungskonzepte
74 PUBLIC (ÖFFENTLICH) Planungskonzepte
Weitere Informationen
Verwendung
Mit dem Funktionstyp DSO-Sätze löschen werden Sätze aus einem Direct Update DataStore-Objekt physisch
gelöscht. Im Falle eines DataMart DataStore-Objektes werden sie auf Null gesetzt.
Achtung
Beachten Sie, dass entweder die Aggregationsebene, auf der Sie die Planungsfunktion anlegen, alle Felder
des DataStore-Objektes enthält, oder dass die nicht enthaltenen Felder durch die Ableitung aufgefüllt
werden.
Merkmale, die Datenfelder sind, müssen als Kennzahl verwendet werden können. Dies können Sie in der
Pflege des DataStore-Objektes einstellen. Die Kennzahlen (und nicht die Datenfelder) müssen dann in die
Aggregationsebene aufgenommen werden, die als Basis für die Planungsfunktion dient.
Weitere Informationen
Verwendung
Mit dem Funktionstyp Löschen ungültige Kombinationen können Sie alle Kennzahlwerte sämtlicher Sätze
löschen, deren Kombination von Merkmalswerten nicht den Merkmalskombinationen entsprechen, die auf
dem zugrunde liegenden planungsrelevanten InfoProvider definiert sind.
Hinweis
Beachten Sie folgende Bedingung: Eine Planungsfunktion diesen Typs kann nur auf einer
Aggregationsebene angelegt werden, die direkt auf einem planungsrelevanten InfoProvider als Datenbasis
angelegt ist (sog. einfache Aggregationsebene, siehe Aggregationsebene [Seite 23]). Die
Aggregationsebene muss alle in Aggregationsebenen gültigen InfoObjects des InfoProviders enthalten.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 75
Hinweis
Verwendung
Mit dem Funktionstyp Physisches Löschen ungültiger Daten im DSO können Sie die Kennzahlwerte sämtlicher
Sätze physisch löschen, deren Kombination von Merkmalswerten nicht den Merkmalskombinationen
entsprechen, die auf dem zugrunde liegenden planungsrelevanten Direct Update DataStore-Objekt definiert
sind. Im Falle eines DataMart DataStore-Objektes werden sie auf Null gesetzt.
Achtung
Beachten Sie, dass entweder die Aggregationsebene, auf der Sie die Planungsfunktion anlegen, alle Felder
des DataStore-Objektes enthält, oder dass die nicht enthaltenen Felder durch die Ableitung aufgefüllt
werden.
Merkmale, die Datenfelder sind, müssen als Kennzahl verwendet werden können. Dies können Sie in der
Pflege des DataStore-Objektes einstellen. Die Kennzahlen (und nicht die Datenfelder) müssen dann in die
Aggregationsebene aufgenommen werden, die als Basis für die Planungsfunktion dient.
Weitere Informationen
1.6.2.10 Prognose
Verwendung
Um die zukünftige Entwicklung von Kennzahlen vorherzusagen, verwenden Sie Prognoseverfahren. Der
Standard-Planungsfunktionstyp Prognose stellt verschiedene Strategien und statistische Verfahren zur
Verfügung, um aus historischen Daten Prognosewerte für die Zukunft zu berechnen.
Planungskonzepte
76 PUBLIC (ÖFFENTLICH) Planungskonzepte
Integration
Die Strategien und Verfahren dieses Planungsfunktionstyps basieren auf denselben statistischen Verfahren,
wie sie in der Bedarfsplanung zum Einsatz kommen.
Hinweis
Weitere Informationen über die Prognose im Rahmen der Bedarfsplanung finden Sie im Internet unter
http://help.sap.com SAP Business Suite SAP Supply Chain Management SAP APO 3.1 Application
Help Absatzplanung (Demand Planning) Prozess der Absatzplanung Definition/Neudefinition von
Prognosemodellen Gesamtprognoseprofil anlegen Univariate Prognose .
Voraussetzungen
● Es müssen Vergangenheitsdaten verfügbar sein, die bei der Prognoserechnung als historische Daten
eingehen.
● Die Aggegrationsebene, in deren Kontext Sie eine Prognose-Planungsfunktion anlegen, muss mindestens
ein Zeitmerkmal enthalten (z.B. Geschäftsjahr/Periode). Die Prognose arbeitet mit nur einem Zeitmerkmal.
Nur Werte dieses Merkmales werden verändert. Die anderen Merkmale und insbesondere redundante
Zeitmerkmale werden durch die Prognosefunktion nicht angepasst. Zeitmerkmale müssen allerdings
immer zueinander konsistente Werte annehmen. So passt der Wert 2017 vom Merkmal Kalenderjahr
(0CALYEAR) zu den Werten 01.2017 bis 12.2017 vom Merkmal Kalenderjahr/Monat (0CALMONTH). Falls
jetzt aber Werte über eine Jahresgrenze hinweg prognostiziert werden sollen, muss das Kalenderjahr in
den prognostizierten Sätzen unterschiedliche Werte annehmen. Diese leistet die Planungsfunktion nicht,
wohl aber die Ableitung, die automatisch redundante Zeitmerkmale richtig auffüllt.
Hinweis
Beachten Sie, dass Sie in der Aggregationsebene keine redundanten Zeitmerkmale aufnehmen wie z.B.
Kalenderjahr/Monat (InfoObject 0CALMONTH) und Kalenderjahr (InfoObject 0CALYEAR) oder
Geschäftsjahr/Periode (InfoObject 0FISCPER) und Geschäftsjahr (InfoObject 0FISCYEAR). Nehmen
Sie nur dasjenige Zeitmerkmal in der Aggregationsebene auf, das die feinste Granularität aufweist.
In den genannten Beispielen verwenden Sie also 0CALMONTH bzw. 0FISCPER; die Werte des
übergeordneten Zeitmerkmals 0CALYEAR bzw. 0FISCYEAR werden dann automatisch abgeleitet.
Funktionsumfang
Zeitreihenverläufe
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 77
Sie können Prognosen für die folgenden Typen von Zeitreihen erstellen:
Konstanter Verlauf
Die Vergangenheitsdaten sind im Wesentlichen konstant und weichen nur geringfügig von einem stabilen
Mittelwert ab. Diesen Grundwert stellt in der folgenden Grafik eine rote Linie dar:
Trendförmiger Verlauf
Die Zeitreihe steigt bzw. fällt kontinuierlich. Diesen Trend veranschaulicht in der folgenden Grafik eine rote
Linie:
Saisonaler Verlauf
Planungskonzepte
78 PUBLIC (ÖFFENTLICH) Planungskonzepte
Die Werte zeigen ein periodisch (z.B. im Jahresrhythmus) sich wiederholendes Muster. Es gibt einen stabilen
Mittelwert. Diesen Grundwert stellt in der folgenden Grafik eine rote Linie dar:
Trendsaisonaler Verlauf
Die Zeitreihe ist eine Kombination von trendförmigem und saisonalem Verlauf. Die saisonalen Schwankungen
verstärken sich dabei bei steigendem Trend.
Sporadischer Verlauf
Die Zeitreihe hat zu den meisten Zeitpunkten den Wert Null. Die Werte ungleich Null schwanken um einen
Mittelwert.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 79
Prognosestrategien
Die Prognosestrategie bestimmt, welche Prognoseverfahren zum Einsatz kommen. Bei der Wahl einer
geeigneten Prognosestrategie sollten Sie sich am Verlauf der Zeitreihe orientieren. Den verschiedenen
Prognoseverfahren liegen unterschiedliche Prognosemodelle (Zeitreihenmodelle) zugrunde. Sie erzeugen
daher unterschiedliche Ergebnisse.
● Durchschnitt
● Gleitender Durchschnitt
● Gewichteter gleitender Durchschnitt
● Lineare Regression
● Saisonale lineare Regression
● Einfache exponentielle Glättung (Konstantmodell)
● Einfache exponentielle Glättung mit Alpha-Optimierung (Konstantmodell)
● Lineare exponentielle Glättung (Trendmodell)
● Saisonale exponentielle Glättung (Saisonmodell)
● Trendsaisonale exponentielle Glättung (Trend-Saisonmodell)
● Verfahren nach Croston
● Automatische Modellauswahl
Mit der Prognosestrategie Automatische Modellauswahl können Sie durch das System dasjenige
Prognoseverfahren auswählen lassen, dessen zugrunde liegendes Prognosemodell am besten zu der Zeitreihe
der Vergangenheitswerte passt.
Wenn Sie bereits wissen, dass ein bestimmtes Prognosemodell gut zum Zeitreihenverlauf passt, oder wenn Sie
ein Prognoseverfahren aus anderen Gründen explizit vorgeben möchten, können Sie alternativ ein bestimmtes
Prognoseverfahren auswählen.
● Ausreißerkorrektur
● Statistische Kennzahlen protokollieren
● Anfängliche Nullwerte ignorieren
● Trenddämpfung
Sowohl im Prognose- als auch Vergangenheitszeitraum können Lücken entstehen. Diese Lücken werden
beachtet, d.h. die selektierten Zeitpunkte werden nicht lückenlos aneinander gereiht. Lücken im
Prognosezeitraum werden so behandelt, dass die Werte dieser Zeitpunkte nicht verändert werden. Lücken im
Vergangenheitszeitraum gehen mit dem Wert 0 in die Prognoseberechnung ein.
Hinweis
Beachten Sie, dass die Zeitpunkte vor dem ersten Prognosezeitpunkt zur Vergangenheit gehören.
Planungskonzepte
80 PUBLIC (ÖFFENTLICH) Planungskonzepte
Beispiel
Sie möchten Prognosedaten erzeugen für die Monate 1-3 und 5-7 (Monat 4 wird separat behandelt). Das
System berechnet Prognosewerte für alle Monate 1-7, lässt aber den Monat 4 unverändert. Bei einem
linearen Trend im Prognoseergebnis mit Werten 1010, 1020 ergibt sich folgendes Ergebnis:
Monat Planung
1 1010
2 1020
3 1030
5 1050
6 1060
7 1070
Weitere Informationen
1.6.2.10.1 Prognosestrategien
Verwendung
Allen Prognosestrategien liegen statistische Prognoseverfahren und Prognosemodelle zugrunde, welche die
Zeitreihe mathematisch beschreiben. Die Methoden der exponentiellen Glättung sind die derzeit am weitesten
verbreiteten Zeitreihenverfahren. Wenn Sie erwarten, dass sich die Entwicklung der Vergangenheitswerte auch
in Zukunft fortsetzt, wählen Sie ein Prognosemodell, welches gut zu dem bisherigen Zeitreihenverlauf passt.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 81
Hinweis
Mit der Strategie Automatische Modellauswahl können Sie durch das System dasjenige Prognosemodell
der exponentiellen Glättung auswählen lassen, welches am besten zu dem Verlauf der Vergangenheitswerte
passt.
Funktionsumfang
Durchschnitt: Der Prognosewert ergibt sich aus dem arithmetischen Mittel der Vergangenheitswerte.
Optionale Prognoseparameter:
● Ausreißerkorrektur
● Statistische Kennzahlen protokollieren
● Anfängliche Nullwerte ignorieren
Obligatorischer Prognoseparameter:
Optionale Prognoseparameter:
● Ausreißerkorrektur
● Statistische Kennzahlen protokollieren
● Anfängliche Nullwerte ignorieren
Gewichteter gleitender Durchschnitt: Bei der Berechnung des gleitenden Durchschnittes erhält jeder
Vergangenheitswert ein bestimmtes Gewicht.
Obligatorische Prognoseparameter:
Beispiel
Sie möchten eine Prognose auf der Grundlage monatlicher Werte erstellen und wählen den
gewichteten gleitenden Durchschnitt der Ordnung 6. Hierbei möchten Sie die letzten (jüngsten)
Planungskonzepte
82 PUBLIC (ÖFFENTLICH) Planungskonzepte
Monatswerte stärker gewichten als die älteren. Die Vergangenheitsdaten kommen aus den Monaten 5
bis 10. Die sechs Gewichtungsfaktoren und der jeweils relevante Monat lauten wie folgt:
1 3,00 10
2 2,00 9
3 2,00 8
4 1,00 7
5 1,00 6
6 1,00 5
Optionale Prognoseparameter:
● Ausreißerkorrektur
● Statistische Kennzahlen protokollieren
● Anfängliche Nullwerte ignorieren
Optionale Prognoseparameter:
● Trenddämpfung
● Ausreißerkorrektur
● Statistische Kennzahlen protokollieren
● Anfängliche Nullwerte ignorieren
Saisonale lineare Regression: Der saisonalen linearen Regression liegt dasselbe statistische Verfahre
zugrunde, wie es in der Bedarfsplanung zum Einsatz kommt.
Hinweis
Weitere Informationen finden Sie im Internet unter http://help.sap.com/ SAP Business Suite SAP
Supply Chain Management SAP APO 3.1 Application Help Absatzplanung (Demand Planning)
Prozess der Absatzplanung Definition/Neudefinition von Prognosemodellen Gesamtprognoseprofil
anlegen Univariate Prognose Prognosestrategien Saisonale lineare Regression
Optionale Prognoseparameter:
● Trenddämpfung
● Ausreißerkorrektur
● Statistische Kennzahlen protokollieren
● Anfängliche Nullwerte ignorieren
Einfache exponentielle Glättung (Konstantmodell): Die einfache exponentielle Glättung ist geeignet, falls die
Vergangenheitsdaten einen konstantförmigen Verlauf aufweisen.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 83
Einstellungen Glättungsfaktoren: Alpha (Grundwert)
Optionale Prognoseparameter:
● Ausreißerkorrektur
● Statistische Kennzahlen protokollieren
● Anfängliche Nullwerte ignorieren
Einfache exponentielle Glättung mit Alpha-Optimierung (Konstantmodell): Das Verfahren entspricht der
oben genannten "einfachen exponentiellen Glättung"; zusätzlich berechnet das System jedoch noch den
Glättungsfaktor Alpha. Hierbei wird Alpha in dem Intervall mit der eingestellten Schrittweite variiert und jeweils
eine Prognoserechnung (für den Vergangenheitszeitraum) durchgeführt. Das Optimum für Alpha ist derjenige
Wert, für den das Prognose-Ergebnis den kleinsten Fehler aufweist.
Lineare exponentielle Glättung (Trendmodell): Die Prognose erfolgt nach dem Verfahren von Holt und ist
geeignet, falls sich die Vergangenheitswerte durch einen steigenden bzw. fallenden Trend beschreiben lassen.
Optionale Prognoseparameter:
● Trenddämpfung
● Ausreißerkorrektur
● Statistische Kennzahlen protokollieren
● Anfängliche Nullwerte ignorieren
Saisonale exponentielle Glättung (Saisonmodell): Diese Strategie ist geeignet, falls Ihre Vergangenheitswerte
saisonale Schwankungen (z.B. jährlich) um einen konstanten Grundwert aufweisen.
Optionale Prognoseparameter:
● Ausreißerkorrektur
● Statistische Kennzahlen protokollieren
● Anfängliche Nullwerte ignorieren
Trendsaisonale exponentielle Glättung: Die Prognose erfolgt nach dem multiplikativen Verfahren von Winter/
Holt und ist geeignet, falls die Vergangenheitswerte saisonal um einen steigenden bzw. fallenden Trend
schwanken. Dabei verstärkt sich die Schwankung mit steigendem Trend.
Beispiel
Eisverkauf im Sommer: Angenommen, der Eisverkauf steigt jährlich im Trend um 10%, dann führt ein
saisonaler Anstieg in jedem Sommer um 30% zu immer stärkeren absoluten Schwankungen.
Optionale Prognoseparameter:
● Trenddämpfung
● Ausreißerkorrektur
Planungskonzepte
84 PUBLIC (ÖFFENTLICH) Planungskonzepte
● Statistische Kennzahlen protokollieren
● Anfängliche Nullwerte ignorieren
Croston-Methode
Die Croston-Methode wurde speziell für sporadische Verläufe entwickelt. Dieses Verfahren wendet die
exponentielle Glättung an, um einen mittleren zeitlichen Abstand zwischen den Werten ungleich Null der
Zeitreihe zu berechnen.
Hinweis
Weitere Informationen finden Sie im Internet unter http://help.sap.com/ SAP Business Suite SAP
Supply Chain Management SAP APO 3.1 Application Help Absatzplanung (Demand Planning)
Prozess der Absatzplanung Definition/Neudefinition von Prognosemodellen Gesamtprognoseprofil
anlegen Univariate Prognose Prognosestrategien Croston-Methode .
Prüfen Sie, ob sich eventuell durch Aggregation der Daten die Lücken in der Zeitreihe beseitigen lassen, so dass
Verfahren eingesetzt werden können, die trendförmige oder saisonale Verläufe berücksichtigen. Eine solche
Aggregation lässt sich z.B. erreichen, indem ein gröberes Zeitmerkmal gewählt wird (monats- statt
tagesgenaue Betrachtung) oder indem die Prognosen für Produktgruppen anstatt für Einzelprodukte
berechnet werden.
Weitere Informationen
Verwendung
Über die automatische Modellauswahl können Sie das System bestimmen lassen, welches Prognosemodell am
besten zu Ihren Vergangenheitsdaten passt.
Empfehlung
Wir empfehlen die automatische Modellauswahl, wenn Sie den Verlauf Ihrer Vergangenheitsdaten nicht
kennen, die Entwicklung Ihrer Daten nicht einschätzen können oder wenn Sie kein Modell vorgeben
möchten.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 85
Funktionsumfang
Das System führt eine Reihe von Tests durch, anhand derer es das zu verwendende Modell ermittelt (siehe
Prognosestrategien [Seite 81]). Falls die Wahl auf ein Modell der exponentiellen Glättung fällt, optimiert das
System die relevanten Glättungsfaktoren ( Alpha, Beta, Gamma).
Hinweis
Beachten Sie, dass die automatische Modellauswahl einen höheren Rechenaufwand bedingt. Dies gilt
insbesondere für die trendsaisonalen Modelle. Der Rechenaufwand hängt ferner von der Größe des
Suchraumes und der Feinheit der eingestellten Schrittweiten ab.
Aktivitäten
1. Das System testet zunächst auf sporadische Vergangenheitsdaten, indem es die Anzahl der Perioden
bestimmt, die in der Vergangenheitskennzahl keine Daten enthalten. Wenn diese Anzahl mehr als 66% der
Gesamtanzahl der Perioden beträgt, verwendet das System automatisch die Croston-Methode.
2. Das System testet dann auf weißes Rauschen. Wenn es weißes Rauschen gibt, verwendet es automatisch
die Konstantmethode.
3. Wenn beide Tests negativ sind, testet das System auf Saison- und Trendeffekte.
1. Zunächst entfernt das System vorhandene Trends. Um auf Saisoneffekte zu testen, bestimmt das
System den Autokorrelationskoeffizienten. Wenn der Autokorrelationskoeffizient größer als 0,3 ist,
dann ist der Test positiv.
2. Um auf Trendeffekte zu testen, bestimmt das System einen Trendsignifikanzparameter. Wenn der
Saisontest positiv ist, entfernt es zunächst mögliche Saisoneffekte. Wenn keine Saisoneffekte
festgestellt werden, führt es diesen Test über die Anzahl der Vergangenheitsperioden, minus 2, aus
Wenn Saisoneffekte festgestellt werden, führt es den Test über die Anzahl der Perioden in einer Saison,
plus 1, aus.
Hinweis
Da die Ergebnisse dieser beiden Tests vorgeben, welche Modelle das System im nächsten Schritt
prüft, hat der Parameter Perioden pro Saison große Bedeutung. Wenn Ihre Vergangenheitsdaten
z.B. eine Saison mit sieben Perioden enthält und Sie den Wert "3" für Perioden pro Saison
eingeben, wird der Saisontest wahrscheinlich negativ sein. Saisonmodelle werden dann nicht
geprüft, sondern nur Trend- und Konstantmodelle.
4. Das System führt anschließend Prognosen mit den ausgewählten Modellen durch (siehe die nachfolgende
Tabelle) und berechnet dabei sämtliche Fehlermaße. Bei Modellen, die Prognoseparameter ( Alpha, Beta,
Gamma) nutzen, werden diese Parameter in den Bereichen und Schrittgrößen variiert, wie diese im
Prognoseprofil angegeben sind.
Croston-Modell X
Planungskonzepte
86 PUBLIC (ÖFFENTLICH) Planungskonzepte
Trendmodell X
Saisonmodell X
Trend-Saison A A
Lineare Regression o X
1.6.2.10.3 Ausreißerkorrektur
Verwendung
"Ausreißer" sind ungewöhnliche Werte, die sich durch das gewählte Prognosemodell nicht erklären lassen. Das
Prognoseergebnis kann stark von ihnen beeinflusst werden.
Das System kann Ausreißerwerte in den Vergangenheitsdaten identifizieren und ersetzen. Dabei berechnet das
Prognoseverfahren Prognosewerte im Vergangenheitszeitraum und vergleicht diese mit den
Vergangenheitswerten. Wenn die Differenz, das sog. Residuum, einen bestimmten Grenzwert überschreitet,
wird der Vergangenheitswert durch den Ex-post-Prognosewert des zugehörigen Zeitpunkt ersetzt. Nach dieser
Korrektur wird die Prognoseberechnung mit den berichtigten Vergangenheitsdaten erneut durchgeführt.
Für die Bestimmung des Grenzwertes können Sie den Sigma-Faktor festlegen.
Integration
Die Ausreißerermittlung hängt von dem Prognosemodell ab, weil der erwähnte Prognosewert nach einem
Modell und dem zu diesem gehörenden Algorithmus berechnet wird.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 87
Funktionsumfang
Im Rahmen der Prognosefunktion werden Ausreißer in den Vergangenheitswerten durch den Sigma-Faktor
definiert. Je größer der Sigma-Faktor ist, desto toleranter ist das System gegenüber ungewöhnlichen Werten,
d.h. desto weniger Ausreißer werden ermittelt.
Der Sigma-Faktor fac bestimmt die Ausreißerermittlung in der folgenden Weise: Ein Beobachtungswert y ist ein
Ausreißer, falls die Differenz e zu dem Prognosewert größer als fac *s ist. Hierbei bezeichnet s die
Standardabweichung der Residuen.
Aktivitäten
Aktivieren Sie die Ausreißerkorrektur, wenn Sie der Meinung sind, dass Ausreißer gemäß der Definition der
Prognosefunktion ungünstige Auswirkungen auf das Prognoseergebnis haben.
Vermeiden Sie die Ausreißerkorrektur, wenn ungewöhnliche Werte bei der Prognose stets berücksichtigt
werden sollen.
1.6.2.10.4 Trenddämpfung
Verwendung
Für Prognosemodelle mit einer Trendkomponente ( Lineare Regression, Trendmodelle der exponentiellen
Glättung mit bzw. ohne Saisonalität, ggf. Automatische Modellauswahl) können Sie den Trend für die in der
Zukunft liegenden Prognosewerte dämpfen, indem Sie einen Trenddämpfungsfaktor festlegen.
Nutzen Sie den Trenddämpfungsfaktor, wenn Sie bei Ihren Prognosen annehmen möchten, dass sich die
Steigerungsraten aus der Vergangenheit in der Zukunft abschwächen oder verstärken werden.
Funktionsumfang
Der Trenddämpfungsfaktor ist eine Zahl, die bei der Berechnung jedes Prognosewertes mit dem Trendwert
(Steigerungsrate) zum jeweiligen Zeitpunkt multipliziert wird. Dadurch wird eine Steigung des langfristigen
Trends immer weiter abgeschwächt bzw. verstärkt:
● Mit einem Trenddämpfungsfaktor kleiner als 1 lässt sich eine Art Sättigungseffekt modellieren. Der
Trendwert nähert sich exponentiell dem Wert 0 an.
Beispiel
Ein Trenddämpfungsfaktor von 0.9 verringert die Wachstumsrate für jede Periode rekursiv um 10%.
Wenn z.B. die Stückzahl verkaufter Fahrzeuge derzeit um 1000 Stück in jeder Periode wächst, beträgt
das Wachstum der Verkaufszahl nach der nächsten Periode noch 0.9 * 1000 = 900 Stück, nach der
übernächsten Periode noch 0,9 * 900 = 810 Stück usw.
Planungskonzepte
88 PUBLIC (ÖFFENTLICH) Planungskonzepte
● Für den umgekehrten Effekt können Sie einen Trenddämpfungsfaktor größer als 1 eingeben.
Aktivitäten
Um eine Trenddämpfung durchzuführen, wählen Sie diese Option; legen Sie einen Trenddämpfungsfaktor
entsprechend Ihren Erwartungen fest.
Verwendung
Nach dem Ausführen der Prognosefunktion zeigt das System die entsprechenden statistischen Informationen
ebenso wie die Fehlermeldungen zur Prognoseberechnung als Meldungen (im Protokoll) an.
Funktionsumfang
● Fehlersumme
● Mittlerer absoluter Fehler (MAD)
● Mittlerer absoluter prozentualer Fehler (MAPE)
● Mittlerer prozentualer Fehler (MPE)
● Mittlerer quadratischer Fehler (MSE)
● Wurzel des mittleren quadratischen Fehlers (RMSE)
● Anzahl der Ausreißer (bei aktiver Ausreißerkorrektur)
● Gewähltes Prognosemodell (bei der automatischen Modellauswahl)
● Glättungsfaktoren (bei Optimierung von Glättungsfaktoren)
Aktivitäten
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 89
1.6.2.10.6 Anfängliche Nullwerte ignorieren
Verwendung
Mit dieser Funktion können Sie festlegen, ob aufeinander folgende Nullwerte zu Beginn des ausgewählten
Vergangenheitszeitraums bei der Prognose berücksichtigt werden sollen.
Beispiel
Sie möchten Prognosewerte für Ihre Produkte berechnen. Als Vergangenheitszeitraum dienen die letzten
24 Monate. Die Zeitreihe von Produkten, die es erst seit einigen Monaten gibt, beginnt deshalb mit einer
längeren Folge von Nullwerten. Sie möchten nicht, dass dadurch die Prognosewerte beeinflusst werden,
und wählen die Option Anfängliche Nullwerte ignorieren.
Aktivitäten
Wählen Sie diese Option, wenn anfängliche Nullwerte von der Prognoseberechnung ausgeschlossen werden
sollen.
Mit dem Funktionstyp Protokoll einer Prozesskette ausgeben(0RSPL_GET_PC_LOG) können Sie das Protokoll
der letzten gestarteten Prozesskette auslesen.
Das System gibt Übersichtsinformationen und nicht die Details aus. Auch bei Planungsfunktionen diesen Typs
werden die Daten im Filter weder gelesen noch gesperrt.
Weitere Informationen
Mit dem Funktionstyp Prozesskette starten (0RSPL_START_PROCESS) können Sie aus der Planung heraus eine
Prozesskette starten.
Die Prozesskette können Sie im Customizing hinterlegen. Die Planungsfunktion muss wie üblich zusammen mit
einem Filter gestartet werden, aber es wird keine Sperre gesetzt und es werden auch keine Daten gelesen.
Planungskonzepte
90 PUBLIC (ÖFFENTLICH) Planungskonzepte
Die Prozesskette läuft asynchron ab.
Um das Ergebnis der Prozesskette zu erhalten, verwenden Sie den Funktionstyp Protokoll einer Prozesskette
ausgeben (0RSPL_GET_PC_LOG).
Weitere Informationen
1.6.2.13 Umbuchen
Verwendung
Mit dem Funktionstyp Umbuchen können Sie (ähnlich wie beim Kopieren [Seite 73]) die Kennzahlwerte
bestehender Merkmalskombinationen auf andere Kombinationen buchen. Im Unterschied zum Kopieren
werden die Kennzahlwerte der Von-Werte jedoch gelöscht. Ein einführendes Beispiel finden Sie unter
Planungsfunktionen [Seite 33].
Über die Tabelle zur Kennzahlauswahl können Sie festlegen, welche Kennzahlen umgebucht werden sollen.
Über die Tabelle Von- und Nach-Werte für den Umbuchungsvorgang können Sie entweder einen einfachen
Umbuchvorgang oder mehrere Umbuchvorgänge innerhalb einer Planungsfunktion anlegen.
● Sowohl die Von- als auch die Nach-Werte der Umbuchungsvorgänge müssen Einzelwerte sein.
● Sowohl die Von- als auch die Nach-Werte werden verändert und müssen daher im Filter enthalten sein, der
der Planungsfunktion übergeben wird.
● Beim Umbuchen werden die Kennzahlwerte immer auf die Nach-Werte addiert.
Verwendung
Mit dem Funktionstyp DSO-Daten umbuchen und Quelldaten physisch löschen können Sie die Kennzahlwerte
bestehender Merkmalskombinationen auf andere Kombinationen buchen. Sämtliche Quelldaten aus einem
Direct Update DataStore-Objekt werden gelöscht. Im Falle eines DataMart DataStore-Objektes werden die
Quelldaten storniert.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 91
Achtung
Beachten Sie, dass entweder die Aggregationsebene, auf der Sie die Planungsfunktion anlegen, alle Felder
des DataStore-Objektes enthält oder dass die nicht enthaltenen Felder durch die Ableitung aufgefüllt
werden.
Merkmale, die Datenfelder sind, müssen als Kennzahl verwendet werden können. Dies können Sie in der
Pflege des DataStore-Objektes einstellen. Die Kennzahlen (und nicht die Datenfelder) müssen dann in die
Aggregationsebene aufgenommen werden, die als Basis für die Planungsfunktion dient.
Weitere Informationen
Verwendung
Mit dem Funktionstyp Umbuchen nach Merkmalsbeziehungen können Sie Bewegungsdaten so umbuchen,
dass sie wieder zu den Merkmalsbeziehungen konsistent sind. Dabei werden die Ursprungssätze gelöscht und
auf die korrekten Merkmalskombinationen umgebucht.
In der Merkmalsverwendung können Sie festlegen, für welche Merkmale die Werte berichtigt werden sollen.
Sinnvoll ist dies nur für solche Merkmale, die entsprechend den Merkmalsbeziehungen abgeleitet werden
können.
Hinweis
Beachten Sie folgende Bedingung: Eine Planungsfunktion diesen Typs kann nur auf einer
Aggregationsebene angelegt werden, die direkt auf einem planungsrelevanten InfoProvider als Datenbasis
angelegt ist (sog. einfache Aggregationsebene, siehe Aggregationsebene [Seite 23]). Die
Aggregationsebene muss sämtliche in Aggregationsebenen gültigen InfoObjekte des InfoProviders
enthalten.
Hinweis
Planungskonzepte
92 PUBLIC (ÖFFENTLICH) Planungskonzepte
1.6.2.14.1 DSO-Daten auf der Basis von
Merkmalsbeziehungen umbuchen
Verwendung
Mit dem Funktionstyp DSO-Daten auf der Basis von Merkmalsbeziehungen umbuchen können Sie
Bewegungsdaten so umbuchen, dass sie wieder zu den Merkmalsbeziehungen konsistent sind. Im Unterschied
zum Funktionstyp Umbuchen nach Merkmalsbeziehungen werden dabei allerdings sämtliche Quelldaten aus
einem Direct Update DataStore-Objekt gelöscht und auf die korrekten Merkmalskombinationen umgebucht.
Im Falle eines DataMart DataStore-Objektes werden die Quelldaten storniert.
Weitere Informationen
1.6.2.15 Umwertung
Verwendung
Mit dem Funktionstyp Umwertung können Sie Kennzahlen um einen Prozentsatz erhöhen oder verringern.
Dabei werden keine Merkmalswerte verändert. In der Merkmalsverwendung können Sie daher Merkmale nur
als Bedingungsmerkmale auswählen.
Sie können wählen, ob Sie einen gemeinsamen Prozentsatz für alle Kennzahlen eingeben oder beliebige
Kennzahlen mit individuellen Prozentsätzen umwerten möchten.
In beiden Fällen können Sie entweder direkt den Prozentsatz eingeben oder Variablen verwenden. Der
Prozentsatz wird als Delta interpretiert; das System erwartet nicht die Eingabe eines Prozentzeichens.
Beispiel
Wenn Sie 15,4 eingeben, führt das System die folgende Berechnung aus:
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 93
1.6.2.16 Verteilung nach Referenzdaten
Verwendung
Mit dem Funktionstyp Verteilung nach Referenzdaten können Sie Merkmalskombinationen, auf die verteilt wird,
entsprechend den Referenzdaten erzeugen. Dabei werden die Kennzahlwerte auch prozentual entsprechend
den Referenzdaten verteilt.
Über die Tabelle zur Kennzahlauswahl können Sie festlegen, welche Kennzahlen verteilt werden sollen.
Zur Auswahl der Referenzdaten stellt das System zwei Parameter zur Verfügung:
Parameter Beschreibung
Referenzkennzahl (optional) Sie legen die Kennzahl fest, die in den Referenzdaten ver
wendet werden soll, um die Verteilungsschlüssel zu berech
nen.
Referenzwerte auf beliebigen Blockmerkmalen Sie legen für ein oder mehrere Blockmerkmale einen Refe
renzwert fest. Das System überschreibt dann beim Lesen
der Referenzdaten für jeden Block den Merkmalswert des
Blockes in diesem Merkmal durch diesen Referenzwert.
Beispiel
Ein InfoProvider stellt Daten zu den Jahren 2005 und
2006 zur Verfügung. Sie möchten Bewegungsdaten zu
dem Jahr 2006 verändern. Daher werden die Daten des
Jahres 2006 in dem der Planungsfunktion übergebenen
Filter ausgewählt. Alle Blöcke haben als Jahr daher
2006. Durch die Angabe des Referenzwertes 2005 kön
nen Sie bewirken, dass die Schlüssel jedoch entspre
chend den Daten von 2005 berechnet werden.
Planungskonzepte
94 PUBLIC (ÖFFENTLICH) Planungskonzepte
Sie können einen oder mehrere Verteilungsvorgänge anlegen, indem Sie manuell die
Merkmalseinschränkungen auf den zu verändernden Merkmalen eintragen.
Das System summiert dabei die Werte der Kennzahlen auf der Von-Seite stets über alle Sätze des Blockes,
die der Merkmalseinschränkung entsprechen, und verteilt diese Summe dann auf die Nach-Werte.
Das System verteilt genau auf diejenigen Merkmalskombinationen, die in den Referenzdaten vorhanden sind
und den Merkmalseinschränkungen bei den Nach-Werten entsprechen.
Bei der Top-Down-Verteilung wird hier auf alle Merkmalskombinationen verteilt, die in den Referenzdaten
vorhanden sind. Dabei wird derjenige Datensatz ausgenommen, der auf Merkmalswerten der zu verändernden
Felder nicht zugeordnet [#] hat.
Wenn es für einen Teilvorgang keine Referenzdaten gibt, werden die Kennzahlwerte dieses Teilvorgangs nicht
verteilt; das System gibt eine Warnung aus.
Hinweis
Die Schrittfolge, mit der das System die Verteilungsfunktion ausführt, entspricht der beim Ausführen der
Funktion Verteilung nach Schlüsseln. Es gelten dieselbnen Regeln. Weitere Informationen finden Sie unter
Verteilung nach Schlüsseln [Seite 95].
Verwendung
Mit dem Funktionstyp Verteilung nach Schlüsseln können Sie die Merkmalskombinationen, auf die verteilt wird,
entsprechend den Stammdaten und Merkmalsbeziehungen erzeugen. Dabei werden die Kennzahlwerte
entsprechend den ausdrücklich anzugebenden Verteilungsschlüsseln verteilt. Hierbei handelt es sich um
Verteilungsfaktoren, die die Gewichtung der Anteile beim Verteilen bestimmen.
Hinweis
Eine Einführung in die Funktionsweise einer Planungsfunktion vom Typ Verteilen nach Schlüsseln erhalten
Sie unter Ablauf einer Planungsfunktion: Verteilung nach Schlüsseln [Seite 38].
Über die Tabelle zur Kennzahlauswahl können Sie festlegen, welche Kennzahlen verteilt werden sollen.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 95
Über die Tabelle Von- und Nach-Werte für den Verteilungsvorgang können Sie zu den Nach-Werten entweder in
der Spalte Faktor einen bestimmten Wert eingeben oder über die Wertehilfe eine Formelvariable auswählen.
Das System zeigt diese in der Spalte Faktor Variable Text an.
Wenn die Merkmalseinschränkung eines Nach-Wertes kein Einzelwert ist, gilt dieser Schlüssel für jede
Merkmalskombination, die der Merkmalseinschränkung entspricht.
Die Schlüssel werden bei der Verarbeitung normalisiert, das heißt entsprechend ihrer Größenverteilung in
Prozentsätze umgerechnet: Das System addiert die Verteilungsfaktoren, die den einzelnen Merkmalswerten
zugeordnet sind, zunächst zu einer Summe und setzt diese dann relativ zueinander ins Verhältnis. Hierbei
ergeben sich Prozentwerte, die sich immer zu 100 % summieren.
Für alle zu verteilenden Kennzahlen gelten pro Planungsfunktion die gleichen Schlüssel.
Auf der Nach-Seite werden für die angegebenen Merkmalseinschränkungen Kombinationen erzeugt. Dies
geschieht in Konsistenz mit den Stammdaten und den auf den InfoProvidern definierten
Merkmalsbeziehungen. Wenn das System dabei für einen Block und einen Teilvorgang kein Ziel findet, bricht
die Funktion mit einer Fehlermeldung ab.
Hinweis
Das System führt zur Ausführung einer Planungsfunktion vom Typ Verteilung folgende Schritte durch:
● Sowohl die Von- als auch die Nach-Werte werden verändert und müssen daher im Filter enthalten sein, der
der Planungsfunktion übergeben wird.
Wenn der Von-Wert so angelegt ist, dass er Datensätze auswählen könnte, die nicht im Filter liegen, gibt
das System keine Fehlermeldung aus. Die Datensätze gehen nicht in die Verteilung ein.
Wenn der Nach-Wert so angelegt ist, dass er Datensätze auswählen könnte, die nicht im Filter liegen, bricht
das System die gesamte Planungsfunktion mit einer Fehlermeldung ab.
Wenn ein Ziel in mehreren Teilvorgängen genannt wird, enthält es nach dem Ausführen der Funktion die
entsprechende Summe.
● Rundungsdifferenzen werden gleichmäßig auf diejenigen Zieldatensätze verteilt, die bereits ungleich Null
sind.
1.6.2.18 Währungsumrechnung
Verwendung
Mit dem Funktionstyp Währungsumrechnung können Sie Währungen aus Kennzahlen in andere Kennzahlen
umrechnen.
In der Tabelle Kennzahlen und Währungsumrechnungsarten können Sie mehrere Umrechnungen angeben. Für
jede Umrechnung müssen Sie eine Währungsumrechnungsart sowie Quell- und Zielkennzahl auswählen. Der
Wert in der Zielkennzahl wird überschrieben. Dies gilt auch dann, wenn die Quellkennzahl leer ist. Der Wert der
Planungskonzepte
96 PUBLIC (ÖFFENTLICH) Planungskonzepte
Quellkennzahl bleibt bei der Währungsumrechnung erhalten. Dadurch kann die Funktion mehrmals
hintereinander ausgeführt werden, ohne dass sich die Ergebnisse verändern. Damit dies auch gewährleistet ist,
wenn die Quellkennzahl und die Zielkennzahl identisch sind und die Quelleinheit aus dem Datensatz verwendet
wird, gibt es hierfür eine spezielle Logik: Falls es bereits einen Wert in der Zieleinheit gibt, wird dieser dann
vernachlässigt, wenn Werte in der Quelleinheit vorhanden sind, die nicht die Zieleinheit besitzen. Andernfalls
wird der Wert in der Zieleinheit übernommen.
Beispiel
Die Währungsumrechnung rechnet die Kennzahl Betrag mit der Quellwährung im Datensatz in die fixe
Zielwährung EURO um. Als Zeitbezug wurde der Stichtag 01.01.2001 gewählt. Es sind zwei Datensätze zu
unterschiedlichen Gesellschaften vorhanden. Die Gesellschaft 4711 ist in CHF geplant. Die Gesellschaft
0815 ist bereits in EUR geplant.
10 CHF 4711
4 EUR 0815
10 CHF 4711
4 EUR 0815
10 CHF 4711
6 EUR 4711
9 EUR 0815
10 CHF 4711
9 EUR 0815
Der Wert zur Gesellschaft 4711 wird durch die Währungsumrechnung überschrieben.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 97
können Sie Variablen verwenden. Für den Querystichtag können Sie die Variable 0PLANDAT benutzen. Wenn
Sie das Datum bei der Ausführung der Planungsfunktion eingeben möchten, verwenden Sie eine
eingabebereite Variable.
Zu verändernde Merkmale können diejenigen Merkmale sein, in denen die Währungsschlüssel stehen.
Standardmäßig sind alle Merkmale markiert, die Währungsschlüssel enthalten. Sie können diese Einstellung im
Regelfall übernehmen.
Hinweis
Falls Sie Plandaten in unterschiedlichen Währungen erfassen möchten, bietet es sich an, für jeden
Verwendungszweck Kennzahlen mit eigenen Feldern für Währungsschlüssel zu verwenden. Beispiele für
solche Verwendungszwecke sind Erfassung der Originalbeträge in Gesellschaftswährung und Konsolidierung
der Beträge in Konzernwährung. Über Merkmalsbeziehungen können Sie sicherstellen, dass zu einer
Gesellschaft nur ein passender Währungsschlüssel eingetragen werden kann. Die Aggregationsebenen
können auf einfache Weise so modelliert werden, dass für jeden Verwendungszweck mit unterschiedlichen
Datentöpfen gearbeitet wird.
Es werden immer nur diejenigen Kennzahlen in die Aggregationsebene aufgenommen, die verwendet
werden. Falls Sie eine Kennzahl für unterschiedliche Verwendungszwecke verwenden, müssen Sie die
Daten über Selektionen in Filtern abgrenzen.
Der Standardstichtag ist ein Stichtag, der im gesamten Planungsmodell verwendet wird; er kann für jeden
Basis-InfoProvider festgelegt werden.
Verwendung
● Unspezifiziert (Standardwert ist das Systemdatum, falls alle beteiligten InfoProvider den Stichtag =
unspezifiziert haben)
● Festes Datum
● Aus Variable
Alle Objekte, die vom Stichtag abhängig sind, wie z.B. der Filter oder Hierarchien, die im Filter verwendet
werden oder in den Von- und Nach-Werten der Kopier- oder Verteilungsfunktionen, können auf den
Standardstichtag gesetzt werden.
Wenn eine Planungsfunktion ausgeführt wird, berechnet das System den Standardstichtag wie folgt.
● Wenn die Aggregationsebene direkt auf einem planungsrelevanten InfoProvider angelegt worden ist, ist der
Standardstichtag gleich demjenigen Stichtag, der für diesen InfoProvider gesetzt ist.
Planungskonzepte
98 PUBLIC (ÖFFENTLICH) Planungskonzepte
● Wenn die Aggregationsebene auf einem CompositeProvider angelegt worden ist, werden alle beteiligten
planungsrelevanten InfoProvider unterhalb des CompositeProviders geprüft. Falls diese alle die Einstellung
unspezifiziert haben, ist der Standardstichtag das aktuelle Systemdatum. Wenn einer der
planungsrelevanten InfoProvider eine andere Einstellung bei seinem Stichtag hat, gewinnt der erste, der
einen bestimmten Wert zurückgibt. Variablen werden bei der Rückgabe ausgewertet.
Alle zeitabhängigen Objekte bieten aber weiterhin auch die Möglichkeit, in ihrer konkreten Anwendung einen
eigenen Stichtag zu verwenden.
Beispiel
Dies kann z.B. in folgendem Fall sinnvoll sein: Sie möchten eine bestimmte Hierarchie verwenden, die mit
einem anderen Stichtag gelesen werden soll, als die Stammdatenattribute.
Weitere Informationen
1.7 Planungssequenz
Planungssequenzen dienen zur Gruppierung von Planungsfunktionen. Sie ermöglichen das Abspeichern von
Gruppen von Planungsfunktionen in einer sortierten Reihenfolge sowie das sortierte Ausführen der gesamten
Gruppe.
Funktionsumfang
Eine Planungssequenz kann aus einem oder mehreren Schritten bestehen. Es gibt folgende Typen von
Schritten:
Typ Beschreibung
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 99
Typ Beschreibung
Aktivitäten
Aktivität
Ausführen innerhalb einer Prozesskette Sie können eine Planungssequenz als Prozesstyp
Planungssequenz ausführen in eine Prozesskette einbetten.
Dabei kann die Planungssequenz mit einer abgespeicherten
Variante für Variablenwerte in Verbindung gebracht werden.
Weitere Informationen
Verwendung
Sie können eine Planungssequenz in eine Prozesskette aufnehmen, indem Sie in eine bestehende Prozesskette
einen Prozess des Prozesstyps Planungssequenz ausführen aufnehmen. In der Detailpflege des Prozesses
wählen Sie die gewünschte Planungssequenz aus sowie ggf. eine passende Variablenvariante.
Bei der Ausführung im Hintergrund können Sie einstellen, ob und wie die Planungssequenz in kleinere Pakete
aufgeteilt werden soll. Diese Pakete können auch parallel in einzelnen Teiljobs auf mehreren Arbeitsprozessen
ausgeführt werden.
Planungskonzepte
100 PUBLIC (ÖFFENTLICH) Planungskonzepte
Die parallele Ausführung kann über die Hintergrundverwaltung (Transaktionscode RSBATCH) überwacht und
analysiert werden.
Voraussetzungen
● Um eine Planungssequenz innerhalb einer Prozesskette einplanen zu können, müssen Sie die
Planungssequenz zunächst in den BW-Modellierungswerkzeugen anlegen.
● Sie haben in der Prozesskettenpflege (Transaktionscode RSPC) die gewünschte Prozesskette angelegt und
ggf. das Verhalten der Prozesskette bei der Ausführung festgelegt. Weitere Informationen finden Sie unter
sowie
.
● Wenn Ihre Planungssequenz Variablen enthält, die nur über Benutzervorgaben gefüllt werden können, oder
wenn Sie Variablen über Benutzervorgaben überschreiben möchten, können Sie in den BW-
Modellierungswerkzeugen eine Variablenvariante hinterlegen. In der Pflege des Prozesses, mit dem Sie die
Planungssequenz einplanen, können Sie auf diese Variablenvariante verweisen.
Hinweis
Sie können Variablenvarianten entweder lokal für einen Benutzer oder als globale Variablenvarianten
abspeichern. Wenn Sie eine lokale Variablenvariante verwenden möchten, müssen Sie den Benutzer,
für den die Variablenvariante erstellt wurde, auch bei der Definition des Prozesses und als Benutzer für
die Hintergrundausführung verwenden. Weitere Informationen finden Sie unter Variable [Seite 30] und
(Ausführungsbenutzer).
Hinweis
Beachten Sie, dass Änderungen, die kurz vor der Ausführung auf einem Applikationsserver gemacht
werden, nicht unbedingt sofort auf allen Applikationsservern aktiv sind. Dies ist abhängig von den
Einstellungen zur Datenbankpufferung in Ihrem System und gilt sowohl für viele SAP BW∕4HANA-
Objekte, als auch für Änderungen in verwendeten Kunden-Exits. Im Produktivsystem ist also dringend
zu beachten, dass zwischen der letzten Änderung irgendwelcher Objekte und dem Einplanen der
Prozesskette mindestens die Zeit vergangen ist, die Sie für die Aktualisierung der Datenbankpufferung
gewählt haben.
Vorgehensweise
1. Legen Sie in der Prozesskettenpflege einen Anwendungsprozess vom Typ Planungssequenz ausführen an.
Hinweis
Beachten Sie, dass manche SAP BW∕4HANA-Objekte bei Lesezugriffen den Tabellenpuffer verwenden.
Wenn Sie also Planungssequenzen auf mehreren Servern verteilt einplanen wollen, sollten Sie darauf
achten, dass die Standardzeit, die Sie für den Tabellenpuffer eingestellt haben, zwischen dem
eingeplanten Start und ihrer letzten Änderung verstrichen ist (Auslieferungsstandardzeit ist 120s).
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 101
2. Wählen Sie die gewünschte Planungssequenz und ggf. eine Variablenvariante aus.
3. Wählen Sie Übernehmen.
4. Legen Sie im Bildbereich Paketierung an oder ausschalten fest, ob die Planungssequenz als Ganzes
ausgeführt oder ob sie in Paketen verarbeitet werden soll.
Auswahlmöglichkeit Beschreibung
Ohne Paketierung verarbeiten Die gesamte Planungssequenz wird als Ganzes ausge
führt. Nur wenn alle enthaltenen Funktionen ohne Fehler
ausgeführt werden, sichert das System abschließend alle
Daten auf der Datenbank.
Wenn Sie die Planungssequenz in Paketen verarbeiten möchten, liest das System die Schritte der
Planungssequenz von der Datenbank und füllt eine Tabelle. Dabei werden nur diejenigen Schritte der
Planungssequenz angezeigt, die eine Planungsfunktion ausführen.
Hinweis
Die Schrittnummern werden dabei von der Datenbank übernommen. Da die Schritte für
Eingabemasken fehlen ist die Nummerierung nicht durchgängig.
5. Wenn Sie die Option In Paketen verarbeiten gewählt haben, können Sie für jeden Schritt wählen, welche der
folgenden Paketierungsarten angewendet werden soll.
Auswahlmöglichkeit Beschreibung
Keine Paketierung Für einen solchen Schritt wird genau ein Teiljob über die
Hintergrundverwaltung eingeplant. Dieser führt die Pla
nungsfunktion für den gesamten Filter des Schrittes aus.
Planungskonzepte
102 PUBLIC (ÖFFENTLICH) Planungskonzepte
Auswahlmöglichkeit Beschreibung
Automatische Paketierung Das Merkmal, über das der Schritt paketiert wird, wird
zum Ausführungszeitpunkt automatisch bestimmt. Sie
können in der letzten Spalte der Tabelle einstellen, in wie
viele Pakete das System den Filter zerlegen soll.
Konfigurierte Paketierung Das Merkmal, über das der Schritt paketiert wird, muss
ausgewählt werden. Es stehen Ihnen zwei Hilfen zur Aus
wahl des Merkmals zur Verfügung.
Zur Ermittlung der Werte, die für ein Merkmal relevant sind, gibt es zwei Ansätze. In beiden Fällen wird die
Merkmalseinschränkung aus dem Filter bezüglich des zu untersuchenden Merkmals verwendet.
Mit dieser Merkmalseinschränkung wird dann entweder die Stammdatentabelle oder die Dimensionstabelle
gelesen. Die Stammdatentabelle enthält alle Werte, die es für dieses Merkmal gibt. Die Dimensionstabelle
enthält alle Werte, die in den beteiligten InfoProvidern bereits gespeichert sind.
Hinweis
In beiden Fällen können sich die Werte in den Tabellen durch den Lauf einer Planungsfunktion ändern:
Bei allen Merkmalen, die bisher nicht im InfoProvider enthalten waren, können Werte in Dimensionstabellen
geschrieben werden.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 103
Bei Merkmalen, die keine Stammdatentabelle haben, greift das System bei der Leseart Stammdaten auf
die SID-Tabelle zurück. In diesem Fall können durch den Lauf einer Planungsfunktion ebenfalls neue Werte
entstehen.
Um zu vermeiden, dass Teile einer Planungssequenz nicht ausgeführt werden können, weil andere Benutzer
Daten sperren, sperrt das System die Daten aller Schritte vorab.Wenn die Planungssequenz in Paketen
verarbeitet wird, werden Privilegsperren benutzt. Hier gibt der Master-Prozess eine Privilegsperren-ID an die
Teiljobs mit.
Zu Beginn der Ausführung sperrt der Master-Prozess die Vereinigung aller Filter beim Sperrserver. Dieser setzt
eine Privilegsperre, gibt die normalen Sperren wieder frei und gibt eine ID für die Privilegsperre zurück. Ab jetzt
dürfen nur noch solche Arbeitsprozesse die Daten innerhalb der Filter verändern, die sich über diese
Privilegsperren-ID ausweisen können. Die Teiljobs weisen sich mit der Privilegsperren-ID aus, sichern die Daten
dann auch durch eine normale Sperre. Wenn die Planungssequenz vollständig abgearbeitet ist, gibt der Master-
Prozess die Privilegsperre wieder frei.
Sie können die Privilegsperren in der Sperrverwaltung (Transaktion RSPLSE) überwachen. (Weitere
Informationen finden Sie unter Sperrkonzept und Sperrverwaltung [Seite 166].)
Hinweis
In seltenen Fällen (z.B. wenn der Administrator den Master-Prozess absichtlich abbricht) kann es
vorkommen, dass die Privilegsperre nicht vom System freigegeben wird. Sie können die Privilegsperre dann
manuell in der Sperrverwaltung löschen. Dies setzt allerdings voraus, dass Sie die Berechtigung zum
Ausführen der Planungssequenz haben. Wenn Teiljobs noch offen sind, kann das System diese dann nicht
mehr erfolgreich ausführen.
Nicht alle Merkmale einer Aggregationsebene, auf der eine Planungsfunktion angelegt ist, kommen für die
Paketierung in Frage.
● Im Hinblick auf die Funktion kommen nur diejenigen Merkmale in Frage, die nicht zu verändernde
Merkmale sind.
Wie oben im Abschnitt über die Funktionsweise der Privilegsperre beschrieben, erfragen die Teiljobs für
ihre Filterpakete echte Sperren bei der Sperrverwaltung. Für jeden planungsrelevanten InfoProvider
können Sie in der Sperrverwaltung konfigurieren, welche seiner Merkmale für Sperren relevant sein sollen.
Um zu vermeiden, dass sich die Teiljobs gegenseitig sperren, weil ihre Filterpakete aus Sicht der
Sperrverwaltung nicht zu separieren sind, können nur ausgesuchte Merkmale zur Paketierung verwendet
werden.
● Im Hinblick auf die Sperrverwaltung kommen ebenfalls nur bestimmte Merkmale zur Paketierung in Frage.
Wie diese bestimmt werden, sehen Sie in der folgenden Tabelle:
Einfache Aggregationsebene [Seite 26] (ist direkt auf ei Erlaubt sind genau die für Sperren relevanten Merkmale
nem planungsrelevanten InfoProvider angelegt) des planungsrelevanten InfoProviders.
Planungskonzepte
104 PUBLIC (ÖFFENTLICH) Planungskonzepte
Bestimmung der zur Paketierung erlaubten Merkmale
Typ der Aggregationsebene auf dieser Aggregationsebene
Komplexe Aggregationsebene [Seite 27] (ist auf einem Ein Merkmal ist genau dann erlaubt, wenn die folgende
CompositeProvider angelegt) Regel für alle beteiligten planungsrelevanten InfoProvider
erfüllt ist: Wenn das Merkmal von einem planungsrelevan
ten InfoProvider versorgt wird, muss es in diesem relevant
für Sperren sein.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 105
○ B wird nur aus D1 versorgt und ist dort für Sperren relevant. B ist daher erlaubt.
○ C wird nur aus D1 versorgt und ist dort nicht für Sperren relevant. C ist daher nicht erlaubt.
○ D wird aus D1 und D2 versorgt, ist aber in D2 nicht für Sperren relevant. D ist daher nicht erlaubt.
○ E wird nur aus D2 versorgt und ist dort für Sperren relevant. E ist daher erlaubt.
Da die Aggregationsebene F nicht enthält, bleiben die Merkmale A, B und E übrig.
In der Planungsfunktion wird E als zu veränderndes Merkmal verwendet. Also kommen nur A und B zur
Paketierung in Frage.
Wenn die automatische Auswahl eines Merkmals angefordert wird, müssen auch die gewünschte Anzahl der
Pakete und die gewünschte Art der Ermittlung der Werte definiert sein.
Das System bestimmt dann die zur Paketierung erlaubten Merkmale. Für diese wird der Reihe nach ermittelt,
wie viele Merkmalswerte in der jeweiligen Merkmalseinschränkung enthalten sind. Sobald ein Merkmal
gefunden wird, für das das System mehr Merkmalswerte gefunden hat als Pakete angefordert sind, wird dies
zur Paketierung vorgeschlagen bzw. verwendet.
Wenn für einen Schritt ein Filter in Pakete zerlegt werden soll, wird zuvor definiert, welches Merkmal zur
Paketierung verwendet wird, welche Art der Ermittlung der Werte verwendet wird, und es wird entweder die
Paketanzahl oder die Werteanzahl pro Paket festgelegt.
Die Werte werden nun zufällig (aber reproduzierbar) auf die Menge der Pakete verteilt, so dass jedes Paket
mindestens einen Wert enthält aber nicht mehr als die Werteanzahl pro Paket.
Über Parallelverarbeitung in der Pflege des Prozesses vom Typ Planungssequenz ausführen haben Sie die
Möglichkeit, für diesen Prozess die Standardwerte für den Prozesstyp PLSEQ zu überschreiben.
Die Standardwerte für einen Prozesstyp können Sie in der Hintergrundverwaltung hinterlegen.
Wenn Sie die Option In Paketen verarbeiten gewählt haben, wird die Planungssequenz Schritt für Schritt
abgearbeitet.
Jeder Schritt wird in die gewünschte Anzahl von Teiljobs zerlegt; dann werden alle Teiljobs des Schrittes über
die Hintergrundverwaltung eingeplant. Der Master-Prozess überprüft, ob alle Teiljobs des letzten Schrittes
ausgeführt wurden. Sobald dies geschehen ist, wird, falls alle Teiljobs erfolgreich waren, mit dem nächsten
Schritt fortgefahren. Wenn einer der Teiljobs mit einem Fehler abgebrochen ist, wird die Planungssequenz nicht
weiter ausgeführt. In diesem Fall plant der Master-Prozess noch einen Abschluss-Teiljob ein, der dazu dient, der
Hintergrundverwaltung mitzuteilen, dass die reservierten physischen Arbeitsprozesse freigegeben werden
können. Der Master-Prozess gibt abschließend auch die Privilegsperre frei.
Planungskonzepte
106 PUBLIC (ÖFFENTLICH) Planungskonzepte
Weitere Informationen
Verwendung
Als Beispiel betrachten wir eine Planungssequenz, die einen Bottom-Up-Planungsprozess vorbereiten soll.
Diese besteht aus drei Schritten.
1. Für alle vorhandenen Produkte und Regionen wird auf der Grundlage der Ist-Daten für Verkaufsstückzahlen
eine lineare Regression durchgeführt; daraus ergibt sich die Prognose der Daten für die Monate des
nächsten Jahres. Diese Version der Daten wird unter der Version PLAN_LIN aufbewahrt.
2. Für zwei neue Produkte werden die Verkaufszahlen von ähnlichen Produkten abgeleitet. Dies geschieht
durch eine Kopierfunktion.
3. In einer Bottom-Up-Planung sollen die für die einzelnen Regionen zuständigen Planer die prognostizierten
Zahlen nach ihren Einschätzungen anpassen. Da man aber zum Vergleich die prognostizierten Daten
erhalten möchte, wird für diese Planungsrunde eine weitere Version der Daten zur Verfügung gestellt. Auch
dies geschieht über eine Kopierfunktion.
Alle drei Funktionen arbeiten in diesem Beispiel auf der gleichen Aggregationsebene:
Alle Merkmale sind in allen beteiligten Basis-InfoProvidern relevant für Sperren und kommen daher als
Paketierungsmerkmal in Frage.
Schritt 1. 2. 3.
Kommentar Schreibt die Daten für Prog Kopiert die Daten in Version Kopiert die prognostizierten
nosezeitraum auf Version PLAN_LIN auf zwei neue Pro Daten aus Version PLAN_LIN
PLAN_LIN. Die Referenzda dukte an Hand von ähnlichen, auf eine weitere Arbeitsver
ten werden aus Version AC bereits verkauften Produk sion PLAN_BOTTOM für die
TUALS gelesen. ten. BOTTOM-UP-Planung.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 107
Schritt 1. 2. 3.
In der Detailpflege des Prozesses wird die Planungssequenz ausgewählt, jedoch keine Variablenvariante, da alle
enthaltenen Variablen ohne Benutzerinteraktion ersetzt werden können.
Da es sich um mittlere Datenvolumen handelt, wird die Einstellung In Paketen verarbeiten ausgewählt. Aus
Gründen der Übersichtlichkeit und Anschaulichkeit werden die Schritte in diesem Beispiel allerdings nur in
wenige Pakete aufgeteilt, für diese aber möglichst unterschiedliche Paketierungsarten gewählt.
Schritt 1. 2. 3.
InfoObject Region
Paketgröße 4
Anzahl Pakete 3 1 3
Die folgende Grafik gibt einen Überblick über den Master-Prozess, der die Planungssequenz in die Prozesskette
einbindet. Er verwaltet die Ausführung der Planungssequenz, plant die Teiljobs ein, und sammelt die
Ergebnisse der Teiljobs. Dabei werden die Filter der Schritte gemäß den Einstellungen in Pakete aufgeteilt und
über die Hintergrundverwaltung in parallelen Hintergrundprozessen ausgeführt.
Planungskonzepte
108 PUBLIC (ÖFFENTLICH) Planungskonzepte
Master-Prozess Schritt 1:
● Der Master sammelt alle Filter auf und setzt eine Schreibsperre beim SAP BW∕4HANA-Sperrserver. Dabei
bekommt er vom SAP BW∕4HANA-Sperrserver eine Privilegsperre. Danach wird die echte Sperre wieder
freigegeben.
● Der erste Filter wird über das vorgegebene Merkmal Region in drei Pakete mit höchstens vier Werten
aufgeteilt.
● Über die Hintergrundverwaltung werden drei Teiljobs eingeplant.
Master-Prozess Schritt 2:
● Der Master wartet bis die Hintergrundverwaltung alle drei Teiljobs ausgeführt hat. Nur wenn alle Teiljobs
erfolgreich ausgeführt wurden, führt das System den nächsten Schritt aus.
● Für Schritt 2 der Planungssequenz ist keine Paketierung konfiguriert. Daher wird nur ein Teiljob mit dem
gesamten Filter eingeplant.
Master-Prozess Schritt 3:
● Der Master wartet bis die Hintergrundverwaltung den Teiljob ausgeführt hat. Nur wenn dieser erfolgreich
ausgeführt wurde, führt das System den nächsten Schritt aus.
● Für Schritt 3 ist automatische Paketierung mit drei Paketen angefragt. Der Master sucht ein Merkmal, dass
mindestens drei Merkmalswerte besitzt und teilt den Filter dann entsprechend in drei Pakete auf.
● Über die Hintergrundverwaltung werden drei Teiljobs eingeplant.
Master-Prozess Ende:
● Der Gesamtstatus der Planungssequenz wird vermerkt; die Logs werden zum letzten Mal geschrieben.
● Das System hebt die Privilegsperre wieder auf.
Ein Planungsfunktionstyp ist ein parametrisierbares Verfahren, um Bewegungsdaten zu verändern. Das System
bietet Ihnen eine Reihe Standard-Planungsfunktionstypen. Um spezielle Verfahren zu realisieren und
anschließend auf Bewegungsdaten anzuwenden, können Sie kundeneigene Planungsfunktionstypen
implementieren.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 109
Aufbau eines Planungsfunktionstyps
Nicht vergessen
Wenn Sie die kundeneigenen Planungsfunktionstypen für die SAP HANA-Datenbank implementiert haben,
empfehlen wir, sicherzustellen, dass die Business-Logik auch für die ABAP-Laufzeit implementiert ist. Dies
hat interne Gründe, ist darüber hinaus aber z.B. auch dann sinnvoll, wenn Sie zwar in Ihrem
Produktivsystem die SAP HANA-Datenbank im Einsatz haben, aber nicht in Ihrem Testsystem und dennoch
dieselben Planungsfuntkionstypen verwenden möchten.
Integration
Planungsfunktionstypen verhalten sich in bezug auf Transport, Business Content und Aktivierung wie andere
Metadaten-Objekte des SAP BW∕4HANA-Systems. Bei Planungsfunktionstypen auf der SAP HANA-Datenbank
müssen Sie die SAP HANA-Objekte allerdings selbst transportieren.
Die aktiven Planungsfunktionstypen sind in den BW-Modellierungswerkzeugen sichtbar und können zur
Erstellung und Ausführung von Planungsfunktionen eingesetzt werden.
Vorgehensweise
3. Wählen Sie Anlegen. Sie gelangen auf das Bild zum Anlegen des Planungsfunktionstyps.
4. Geben Sie eine Beschreibung für den Planungsfunktionstyp an, und nehmen Sie die erforderlichen
Einstellungen auf den Registerkarten Eigenschaften und Parameter vor.
Die weitere Vorgehensweise unterscheidet sich, je nachdem, ob Sie ohne oder mit der SAP HANA-
Datenbank arbeiten möchten oder ob der Funktionstyp sowohl im ABAP-Fall als auch auf der SAP HANA-
Datenbank lauffähig sein soll.
5. Falls Sie einen kundeneigenen Planungsfunktionstyp wiederverwenden und ggf. nur geringfügig abwandeln
möchten, wählen Sie Kopieren.
Planungskonzepte
110 PUBLIC (ÖFFENTLICH) Planungskonzepte
Hinweis
Falls Sie z.B. einen kundenspezifischen Planungsfunktionstyp angelegt haben, um über eine
Planungsfunktion Daten aus einem Flatfile in die SAP BW∕4HANA-integrierte Planung zu laden, kann
ein solcher Upload-Planungsfunktionstyp viele Parameter enthalten, je nachdem, wie die Struktur des
Flatfiles aussieht. Wenn nun ein neues Flatfile mit leicht geänderter Struktur zum Upload verwendet
werden soll, wird ein neuer Planungsfunktionstyp benötigt, dessen Parameterliste der Struktur des
Flatfiles angepasst sein muss. Über Kopieren können Sie einen neuen Planungsfunktionstyp anlegen,
der die Parameter aus einem existierenden Planungsfunktionstyp übernimmt. Über Ändern können Sie
diesen dann entsprechend den Vorgaben modifizieren. Dieses Vorgehen ist oft schneller, als sämtliche
Parameter neu anzulegen.
Weitere Informationen
Indem Sie eine ABAP-Klasse implementiern und parametrisieren, können Sie einen kundeneigenen
Planungsfunktionstyp implementieren.
Voraussetzungen
Kontext
Sie möchten für den neuen Planungsfunktionstyp eine ABAP-Klasse implementieren und Parameter festlegen.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 111
Vorgehensweise
1. Sie befinden sich auf der Registerkarte Eigenschaften. Legen Sie eine ABAP-Klasse an, und implementieren
Sie das relevante Interface.
Bildbereich Beschreibung
Implementierung Geben Sie den Namen der ABAP-Klasse an, welche das
Verfahren realisiert. Die ABAP-Klasse muss hierfür eines
der beiden Interfaces implementieren:
○ IF_RSPLFA_SRVTYPE_IMP_EXEC
○ IF_RSPLFA_SRVTYPE_IMP_EXEC_REF
Das letztgenannte Interface ist relevant, wenn Sie bei
Ihrem Verfahren Referenzdaten benötigen. Die Imple
mentierung der Methoden der genannten Interfaces
ist optional, mit Ausnahme der Methode EXECUTE.
Zusätzlich kann die Klasse spezifische Prüfmethoden
implementieren, welche zur Laufzeit ausgeführt wer
den. Diesem Zweck dient das Interface
IF_RSPLFA_SRVTYPE_IMP_CHECK.
Sie können folgende Kennzeichen setzen:
○ Referenzdaten: Wenn das Kennzeichen gesetzt ist,
dann werden bei der Ausführung der Planungsfunk
tion Referenzdaten benötigt.
○ Ohne Blockbildung: Wenn das Kennzeichen gesetzt
ist, dann erfolgt die Verarbeitung der Bewegungsda
ten ohne Blockbildung, d.h. alle Merkmalsausprägun
gen in den Bewegungsdaten können geändert wer
den.
Hinweis
In diesem Fall können keine Bedingungen ange
legt werden, da die Selektionstabelle jeder Bedin
gung nur Merkmale enthalten darf, die auch bei
der Blockbildung herangezogen werden können.
Planungskonzepte
112 PUBLIC (ÖFFENTLICH) Planungskonzepte
Bildbereich Beschreibung
Legen Sie die gewünschten Parameter über Parameter anlegen bzw. Komponente anlegen im Kontextmenü
eines Objektes in der Parameter-Hierarchie an. Die Details bereits vorhandener Parameter können Sie über
Eigenschaften im Kontextmenü ändern. Über und können Sie die Reihenfolge der Parameter
verändern. Die Reihenfolge der Parameter wird berücksichtigt, wenn Sie eine Planungsfunktion zu diesem
Planungsfunktionstyp anlegen.
Über das Kennzeichen Parameter ist tabellarisch können Sie einen Parameter als Tabelle kennzeichnen; er
verhält sich fortan wie eine interne Tabelle. In dieser besitzt jede Zeile des tabellarischen Parameters die
Eigenschaften, die dem ausgewählten Parametertyp entsprechen. Das Kennzeichen ist für alle
Parametertypen zugelassen (im Kontextmenü über Eigenschaften) mit Ausnahme der Kennzahlauswahl
oder wenn Parameter als Komponenten eines Strukturparameters dienen.
Parametertyp Beschreibung
InfoObject des InfoProviders Der Parameter kann den Namen eines InfoObjects aus
dem aktuellen InfoProvider (Aggregationsebene) aufneh
men. Die dabei zulässigen InfoObjects bestimmen Sie
über die Auswahl Einschr. InfoObjekt:
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 113
Parametertyp Beschreibung
○ Alle Merkmale
Jedes Merkmal des InfoProviders ist zulässig.
○ Nur Blockmerkmale
Blockmerkmale dienen der Gruppierung der Bewe
gungsdaten (siehe oben Ohne Blockbildung).
○ Nur zu verändernde Merkmale
Nur durch eine Planungsfunktion zu verändernde
Merkmale des InfoProviders sind zulässig, Block
merkmale sind also nicht zulässig.
○ Nur Bedingungsmerkmale
Nur in der Planungsfunktion für die Definition der Be
dingungen verwendete Merkmale sind zulässig.
Beispiel
Die von SAP ausgelieferten Planungsfunktionstypen basieren auf demselben technischen Konzept wie
kundeneigene Planungsfunktionstypen und können daher in der Pflege der Planungsfunktionstypen
angeschaut werden.
Planungskonzepte
114 PUBLIC (ÖFFENTLICH) Planungskonzepte
Beispiel
Der Funktionstyp Löschen (0RSPL_DELETE) ist ein einfaches Beispiel. Es gibt nur einen Parameter
(KYFSEL) zur Auswahl der zu löschenden Kennzahlen. In der zugehörigen ABAP-Klasse sind die beiden
Interfaces IF_RSPLFA_SRVTYPE_IMP_CHECK und IF_RSPLFA_SRVTYPE_IMP_EXEC implementiert.
Indem Sie zusätzlich eine SQLScript-Procedure implementieren, können Sie einen kundeneigenen
Planungsfunktionstyp optimiert auf der SAP HANA-Datenbank ausführen lassen.
Voraussetzungen
Kontext
Sie möchten für den neuen Planungsfunktionstyp im SAP BW∕4HANA-System eine ABAP-Klasse anlegen, das
relevante Interface implementieren und parametrisieren sowie vom SAP BW∕4HANA-System aus die
notwendigen Objekte auf der SAP HANA-Datenbank anlegen. Anschließend können Sie im SAP HANA-Studio
die SQLScript-Procedure implementieren.
Vorgehensweise
1. Legen Sie im Class Builder (Transaktionscode SE24) eine ABAP-Klasse an und implementieren Sie eines
der folgenden Interfaces:
Zusätzlich kann die Klasse - wie im ABAP-Fall - spezifische Prüfmethoden implementieren, welche zur
Laufzeit ausgeführt werden. Diesem Zweck dient das Interface IF_RSPLFA_SRVTYPE_IMP_CHECK. Sie
können das Kennzeichen für Referenzdaten setzen: Wenn dieses Kennzeichen gesetzt ist, werden bei der
Ausführung der Planungsfunktion Referenzdaten benötigt.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 115
Die Implementierung der Methoden der genannten Interfaces ist optional, mit Ausnahme der Methode
trex_execute.
Achtung
Im Gegensatz zur ABAP-Implementierung muss man die Blockbildung der Bewegungsdaten in der
SQLScript-Procedure selbst implementieren, d.h. ohne weitere Implementierung können alle
Merkmalsausprägungen in den Bewegungsdaten geändert werden.
Achtung
Hinweis
Beachten Sie, dass die SQLScript-Procedure eine IN- und eine OUT-Tabelle benötigt, die beide die
Struktur der Aggregationsebene haben müssen. Falls Sie das Interface
IF_RSPLFA_SRVTYPE_TREX_EXEC_R implementiert haben, benötigt die SQLScript-Procedure für die
Referenzdaten eine weitere Tabelle mit derselben Struktur. Außerdem kann die SQLScript-Procedure
elementare IN-Parameter enthalten.
○ Wir empfehlen, die SQLScript-Procedure als AMDP (ABAP Managed Database Procedures) zu
implementieren, um diese Implementierung in das Transportwesen des AS ABAP zu integrieren. Damit
steht Ihnen für die SQLScript-Procedure dasselbe Transport- und Lifecycle-Management zur
Verfügung, wie Sie es von ABAP-Entwicklungsobjekten kennen. Außerdem vereinfacht dies die
Entwicklung insofern, als Sie keinen Zugang zum SAP HANA-Studio benötigen.
Hinweis
Planungskonzepte
116 PUBLIC (ÖFFENTLICH) Planungskonzepte
Skripts. SQLScript erfordert eine typisierte Schnittstelle. Das SQLScript muss die Aggregationsebene
kennen, auf der das SQLScript operiert. Bei SQLScripten können eigene Parameter verwendet werden.
Dafür können Sie einen Strukturtyp angeben. Die Komponenten der Struktur werden als Parameter an das
SQLScript übergeben und können dort verwendet werden.
○ Auf der Registerkarte SQLScript-Implementierungen zeigen erhalten Sie einen Überblick über die
bereits vorhandenen Planungsfunktionen, bei denen ein SQLScript ausgeführt wird.
○ Auf der Registerkarte Beispiel-Planungsfunktionstyp können Sie sich Beispiel-Coding für AMDP-
Implementierungen für Planungsfunktionstypen erzeugen lassen. Dieses Coding können Sie in die
implementierende Klasse kopieren.
Für die Implementierung wird ein iterativer Prozess verwendet, um die implementierende Klasse und
den Planungsfunktionstyp anzulegen. Der Planungsfunktionstyp benötigt die Klasse. Die
Implementierung der Klasse muss die Einstellungen im Planungsfunktionstyp (die Parameter des
Planungsfunktionstyps) berücksichtigen.
Je nachdem wo sie in diesem iterativen Prozess stehen, können Sie den Coding-Vorschlag für eine
ABAP-Klasse oder für einen Planungsfunktionstyp erzeugen.
Zusätzlich zu der Parameterübergabe über eine Struktur können sie bei Planungsfunktionstypen auch
Parameter in einer Liste (Name, InfoObjekt, Wert) übergeben. In dem Beispiel-Coding wird diese
Möglichkeit vorgeschlagen (Aufruf von l_r_sql_script->get_parameter_values), um die Werte der
elementaren Parameter des Planungsfunktionstyps mit den Werten der Planungsfunktion in der
Tabelle l_t_iobj_param zu sammeln.
Hinweis
Wenn Sie den Benutzer-Parameter (Transaktion SU3) SEO_SOURCEBASED_AMDP auf den Wert “X“
setzen, können Sie auch AMPD-Methoden im quelltextbasierten Klasseneditor (SE24 oder SE80)
bearbeiten.
○ Wir empfehlen, die SQLScript-Procedure als AMDP (ABAP Managed Database Procedures) zu
implementieren, um diese Implementierung in das Transportwesen des AS ABAP zu integrieren. Damit
steht Ihnen für die SQLScript-Procedure dasselbe Transport- und Lifecycle-Management zur
Verfügung, wie Sie es von ABAP-Entwicklungsobjekten kennen. Außerdem vereinfacht dies die
Entwicklung insofern, als Sie keinen Zugang zum SAP HANA-Studio benötigen.
Für AMDPs werden nur Quelltextabschnitte als Listenausgabe erstellt, die in die zu implementierende
Klasse eingefügt werden müssen.
○ Wenn Sie nicht AMDP verwenden, müssen Sie folgende Objekte im SAP HANA
○ -Studio eine Tabelle, deren Struktur mit der der Aggregationsebene übereinstimmt. Diese Tabelle
kann genutzt werden, um den Typ der Tabellenparameter in Ihrer SQLScript-Procedure
festzulegen.
○ den Körper der SQLScript-Procedure. Dieser Prozedurenkörper enthält die Tabellenparameter für
die Daten, die die Prozedur verändern soll, und die Rückgabetabelle mit dem Ergebnis der
Prozedur. Zusätzlich werden die elementaren Parameter der Funktion mit den entsprechenden
Typen in die Parameterliste aufgenommen.
Hinweis
Für Tabellentypen und Procedures werden Objekte in SAP HANA angelegt, wenn der Test-
Parameter ausgeschaltet ist. Auf der Registerkarte SAP-HANA_Objekte können Sie auf SAP HANA
definierte Struktur-Typen und SQL-Prozeduren anzeigen, z.B. auch die AMDP-Methoden und die
dort im Interface verwendeten Strukturtypen. Sofern Sie SQL-Scripte für Planungsfunktionstypen
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 117
direkt auf SAP HANA schreiben möchten, können Sie für diese einen leeren Prozedurkörper und
die notwendigen Typen hier erzeugen und auch wieder löschen.
Weitere Informationen
Planungskonzepte
118 PUBLIC (ÖFFENTLICH) Planungskonzepte
Parameter Typ Parameterart Beschreibung
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 119
Parameter Typ Parameterart Beschreibung
Weitere Informationen
Business-Logik für Planungsfunktionstyp auf der SAP HANA-Datenbank implementieren [Seite 115]
Beispiel-Implementierung einer Interfacemethode in SQLScript [Seite 120]
Im folgenden finden Sie ein Beispiel für die Implementierung der Methode
if_rsplfa_srvtype_trex_exec_r ~ trex_execute.
Achtung
Beachten Sie, das Sie eine öffentliche Klasse (public class) implementieren müssen, damit diese Klasse
dem Planungsfunktionstyp zugewiesen werden kann.
Beispielcode
METHOD if_rsplfa_srvtype_trex_exec_r~trex_execute.
DATA: l_r_sql_script TYPE REF TO if_rspls_sql_script,
l_procedure_name TYPE string,
l_srvtypenm TYPE rsplf_srvtypenm,
l_t_iobj_param TYPE if_rsr_pe_adapter=>tn_t_iobj_param.
Planungskonzepte
120 PUBLIC (ÖFFENTLICH) Planungskonzepte
l_r_sql_script =
cl_rspls_session_store_manager=>get_sql_script_instance( i_r_store =
i_r_store ).
* The method if_rspls_sql_script~get_parameter_values returns a table of
parameters
* with the values given in the function definition
l_r_sql_script->get_parameter_values(
EXPORTING
i_r_param_set = i_r_param_set
i_para_name_for_procedure = 'HANA_PROCEDURE_NAME'
IMPORTING
e_procedure_name = l_procedure_name
e_t_iobj_param = l_t_iobj_param ).
* The function parameter given method paramenter i_para_name_for_procedure
* will not be returned in the table e_t_iobj_param but the value of this
* function parameter will be returned int the method parameter
e_procedure_name
* This mechanisme can e.g. be used to define function specific SAP HANA
procedure names.
* Other examples to get the name of the SAP HANA procedure name which will
be called can be
* - you use the technical name of the planning function type:
l_srvtypenm = p_r_srv->get_srvtypenm( ).
l_procedure_name = l_srvtypenm.
* - or you simply give the SAP HANA procedure name in a string:
l_procedure_name = 'MY_HANA_PROCEDURE'.
r_s_view-view = l_r_sql_script->execute_sql_script(
i_view = i_view
i_view_ref = i_view_ref
i_t_iobj_param = l_t_iobj_param
i_proc_name = l_procedure_name
i_r_msg = i_r_msg ).
ENDMETHOD. "IF_RSPLFA_SRVTYPE_TREX_EXEC_R~TREX_EXECUTE
Weitere Informationen
Business-Logik für Planungsfunktionstyp auf der SAP HANA-Datenbank implementieren [Seite 115]
Parameter der Interfacemethode execute_sql_script [Seite 118]
Verwendung
Eingabebereite Queries können Sie verwenden, um Anwendungen für die manuelle Planung zu erstellen, die
von einer einfachen Datenerfassung bis zu komplexen Planungsanwendungen reichen. Weiterhin ermöglichen
eingabebereite Queries zur Laufzeit, Kurztexte in der Query zu bearbeiten, um z.B. Klassifikationen zu
verändern bzw. freie Kommentare zu Kennzahlwerten zu erfassen.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 121
Integration
Sie können die eingabebereiten Queries in verschiedenen Clients verwenden und ggf. mit weiteren Queries und
Planungsfunktionen zu komplexen Planungsanwendungen kombinieren.
Weitere Informationen
Dieser Link führt in die Dokumentation der Analysefunktionen des Analytic Managers.
In Planungsanwendungen, die eine eingabebereite Query als Data Provider verwenden, bietet das System die
Möglichkeit, zur Laufzeit Daten manuell zu erfassen. Ob Zellen einer eingabebereiten Query zur
Ausführungszeit änderbar sind, hängt vom Query View und eventuell von weiteren Einstellungen (wie etwa von
Datenscheiben und Merkmalsbeziehungen) ab.
In Hinsicht auf die Eingabebereitschaft von Zellen eines Query Views beachten Sie die folgenden Regeln:
1. In einer Query, die für die manuelle Planung verwendet werden soll, ist eine Zelle nur dann eingabebereit,
wenn jeder Merkmalswert sämtlicher, in der Aggregationsebene enthaltener Merkmale eindeutig bestimmt
ist. Daraus folgt, dass alle hinsichtlich der Aggregationsebene aggregierten Werte nicht eingabebereit sind:
Summen, Teilsummen und innere Hierarchieknoten sind nicht eingabebereit.
2. Um auch Werte für berechnete Kennzahlen (wie z.B. Durchschnittspreis als Quotient aus Betrag und
Menge) ändern zu können, müssen diesen eingabebereite Formeln zugrunde liegen, und mindestens ein
Operand muss eingabebereit sein.
3. Um auch (hinsichtlich der Aggregationsebene) aggregierte Werte ändern zu können, müssen diese Werte
auf alle Datensätze disaggregiert werden, die zum aggregierten Wert der Zelle beitragen.
4. Wenn eine Query, die für die manuelle Planung verwendet werden soll, ein Navigationsattribut enthält, das
durch einen festen oder dynamischen Filter oder eine eingeschränkte Kennzahl eingeschränkt ist,
behandelt das System dieses Navigationsattribut als ein normales Merkmal. Dementsprechend wird die
unter Punkt 1 genannte Regel angewendet. Nur wenn das Navigationsattribut nicht eingeschränkt wird,
verhält sich das System so, als wäre das Navigationsattribut in der Query nicht enthalten.
5. In einer Query, die auf einem CompositeProvider oder einer komplexen Aggregationsebene definiert ist
und für die manuelle Planung verwendet werden soll, ist eine Zelle dann eingabebereit, wenn auf dem Weg
vom InfoProvider der Query zum planbaren Basis-InfoProvider genau eine Aggregationsebene beteiligt ist.
○ Wenn die Query auf einer komplexen Aggregationsebene definiert ist, muss der durch die Zelle
bestimmte Teilprovider ein planbarer Basis-InfoProvider sein.
○ Wenn die Query auf einem CompositeProvider definiert ist, muss der durch die Zelle bestimme
Teilprovider eine einfache Aggregationsebene auf einem planbarer Basis-InfoProvider sein.
In jedem Fall muss sich dann auch der planbare Basis-InfoProvider im Planmodus befinden.
6. Wenn eine eingabebereite Query im Änderungsmodus ausgeführt wird und die angeforderten Daten bereits
durch einen anderen Benutzer gesperrt sind, wird die Query im Anzeigemodus gestartet.
Planungskonzepte
122 PUBLIC (ÖFFENTLICH) Planungskonzepte
Weitere Informationen
Mit Merkmalsbeziehungen für planbare Basis-InfoProvider ist es möglich, die gültigen Kombinationen von
Merkmalswerten zu modellieren. Diese Information kann das System nutzen, um in eingabebereiten Queries
Merkmalskombinationen vorzuschlagen, für die noch keine Werte gesichert wurden.
Verwendung
Um nur die gültigen Kombinationen von Merkmalswerten zu erzeugen, verwendet das System aktuell genutzte
Werte aus dem Filter der Query und die Relationen aus den Merkmalsbeziehungen.
Voraussetzungen
Vorgehensweise
Wenn Sie eine Query definieren, können Sie in den Eigenschaften eines Merkmals über Access Type for Result
Values die Zugriffsart für Ergebniswerte festlegen:
● Wenn Sie den Kombinationsvorschlag für die Planung nutzen möchten, wählen Sie die Option
Characteristic Relationships (Merkmalsbeziehungen). Falls ein Merkmal in einer Relation nicht enthalten
ist, greift das System auf die Stammdaten zurück, um die gültigen Kombinationen zu erzeugen. Da
Merkmalsbeziehungen für einen planbaren Basis-InfoProvider definiert werden, erzeugt das System für die
jeweils betroffenen planbaren Basis-InfoProvider die gültigen Kombinationen. Dabei werden auch die
technischen Merkmalsbeziehungen für Zeitmerkmale und Navigationsattribute berücksichtigt.
● Wenn Sie die Option Master Data (Stammdaten) wählen, erzeugt das System zunächst alle möglichen, nur
durch Zeitmerkmale und Navigationsattribute eingeschränkten Kombinationen. Dabei werden immer die
InfoObjekte aus demjenigen InfoProvider verwendet, auf dem die Query definiert ist. Durch diesen Prozess
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 123
entstehen ggf. Datenzellen zu Merkmalskombinationen, die laut Merkmalsbeziehungen ungültig sind. Das
System prüft alle erzeugten Zellen; Zellen zu ungültigen Kombinationen sind nicht eingabebereit.
Hinweis
Beachten Sie, dass bei den Optionen Characteristic Relationships bzw. Master Data leicht eine erhebliche
Anzahl von Kombinationen erzeugt werden kann. Setzen Sie entsprechend restriktiv für solche Merkmale
die Einschränkungen im Filter. Für Merkmalsbeziehungen können Sie pro planungsrelevanten Basis-
InfoProvider eine maximale Anzahl von Kombinationen angeben. Beachten Sie, dass
Merkmalsbeziehungen nicht als ein weiterer impliziter Filter für die zu lesenden Bewegungsdaten wirken.
Das System liest die durch den Filter der Query spezifizierten Bewegungsdaten (egal ob laut
Merkmalsbeziehung gültig oder nicht gültig) und erzeugt dann ggf. zusätzlich nach den oben erläuterten
Regeln weitere Kombinationen.
Beispiel
Für eine Absatzplanung planen Sie Mengen (ggf. rollierend) für die Perioden eines vorgegebenen Zeitintervalls
(z.B. ein Jahr). Die Produkte sind in einer Produkthierarchie enthalten, die Sie über Merkmalsbeziehungen
modelliert haben. Produkte gehören einer Produktgruppe an und diese wiederum einer Produktlinie. Verwenden
Sie diese Merkmale in den Zeilen einer eingabebereiten Query. In den Spalten verwenden Sie die Kennzahl
Absatzmenge und das Zeitmerkmal Geschäftsjahr/Periode im Aufriss. Für diese vier Merkmale wählen Sie
unter Zugriffsart für Ergebniswerte die Option Merkmalsbeziehungen. Dann erzeugt die System in den Zeilen
genau die gültigen Kombinationen; für das Merkmal Periode/Jahr er mittelt das System alle gültigen Perioden
aus den Stammdaten, die im Filter enthalten sind, und erzeugt entsprechend viele Kombinationen der
Kennzahlstruktur mit den Periodenwerten.
Planungskonzepte
124 PUBLIC (ÖFFENTLICH) Planungskonzepte
Die folgende Graphik zeigt ein Beispiel für eine solche Planung:
Hinweis
Beachten Sie, dass die Sonderperioden bei Geschäftsjahresvarianten gültige Stammdaten sind. Das
System wird im Fall der Selektion 1.2006 - 12.2007 bei Nutzung der Geschäftsjahresvariante K4 also auch
die Sonderperioden 13.2006 bis 16.2006 und die Periode 0.2007 vorschlagen. Wenn Sie diese Werte nicht
planen möchten, müssen Sie diese entsprechend aus der Selektion entfernen.
Weitere Informationen
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 125
Eingabebereite Queries werden immer mit Bezug auf Aggragationsebenen definiert. Ohne die Funktionalität
der Disaggregation gilt, dass eine Zelle nur dann eingabebereit ist, wenn jeder Merkmalswert sämtlicher in der
Aggregationsebene enthaltener Merkmale eindeutig bestimmt ist. Somit ergibt sich, dass Zellen, die
aggregierte Werte hinsichtlich der Aggregationsebene enthalten, nicht eingabebereit sind. Dazu gehören
Summen, Zwischensummen und innere Hierarchieknoten.
Disaggregation ermöglicht es Ihnen, auch solche Werte, die hinsichtlich der Aggregationsebene aggregiert
sind, zu ändern. Dazu müssen die veränderten Werte auf alle Datensätze, die zum aggregierten Wert der Zelle
beitragen, top-down verteilt werden. Diese Top-down-Verteilung bezeichnen wir als Disaggregation.
Achtung
Beachten Sie, dass die Disaggregation die vorhandene Planungsmodellierung nicht außer Kraft setzt: Neue
Datensätze und Delta-Datensätze werden immer auf der Grundlage der Aggregationsebene angelegt. Die
Disaggregation ist lediglich eine Hilfe für die manuelle Dateneingabe in eingabegereiten Queries.
Die Disaggregation in eingabebereiten Queries kann sich auf die Anwendungsmodellierung der Planung
auswirken, insbesondere im Bereich der Merkmalsbeziehungen.
Damit ein veränderter Wert einer Zelle der Query disaggregiert werden kann, muss das System alle Datensätze
bestimmen, die zum Wert der Zelle beitragen. Um diese Daten zu lesen, werden neben den bereits in den Zeilen
oder Spalten enthaltenen Merkmalen alle Merkmale der beteiligten Aggregationsebenen in den Aufriss
genommen. Wenn die Disaggregation in der Query genutzt werden soll, müssen also entweder Daten für die
Disaggregation vorhanden sein oder über Einstellungen der Query in der Disaggregation selbst erzeugt werden.
Das kann z.B. über die Einstellung zur Erzeugung von Kombinationen in der Query (laut Access Type for Result
Values, Zugriffsart für Ergebniswerte) erreicht werden. Achten Sie hierbei darauf, dass der Filter der Query so
eingeschränkt wird, dass die Anzahl der erzeugten Kombinationen in einem sinnvollen Rahmen bleibt.
Wenn Sie in der Defintion einer eingabebereiten Query die Einstellung Always Disaggregate Unposted Values
(Immer auf alle gültigen Kombinationen disaggregieren) wählen, überschreibt das System die Einstellungen
Zugriffsart für Ergebniswerte für jedes Merkmal. Das bedeutet, dass für jede Disaggregation alle gültigen
Kombinationen laut Merkmalsbeziehungen erzeugt werden und dann auf diese Kombinationen disaggregiert
wird. Das gilt auch dann, wenn die Query nur gebuchte Daten anzeigt. Diese Einstellung kann dann hilfreich
sein, wenn in der Planung die eingabebereiten Zellen i.a. leer sind, die Disaggregation jedoch auch ohne Daten
möglich sein soll. Achten Sie hierbei darauf, dass der Filter der Query so eingeschränkt wird, dass die Anzahl
der erzeugten Kombinationen in einem sinnvollen Rahmen bleibt. Ein typischer Anwendungsfall für diese
Einstellung ist eine Query, die nur bzgl. einem Zeitmerkmal verdichtet ist (Kostenstellen-Planung).
Hinweis
Für Massendaten ist die Disaggregation in eingabegereiten Queries nicht konzipiert. Falls über
Disaggregation in der Query Massendaten verarbeitet werden sollen, empfehlen wir den Einsatz des Top-
Down-Planungsfunktionstyps.
Die Disaggregation steht nur für Basiskennzahlen mit der Aggregationsart SUM oder NO2 zur Verfügung, nicht
aber für berechnete Kennzahlen, Kennzahlen mit Ausnahmeaggregation, lokale Aggregationen und
Zeitkennzahlen. In der Query-Definition ist es möglich, das Disaggregationsverhalten eines bestimmten
Strukturelementes zu modellierung und zu parametrisieren:
Planungskonzepte
126 PUBLIC (ÖFFENTLICH) Planungskonzepte
Modellierungsmöglichkeiten der Disaggregation
Equally: Gleichverteilung x -
Weitere Informationen
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 127
Disaggregation Kopieren, inhomogene Werte [Seite 133]
Disaggregation mit versteckten Referenzdaten [Seite 134]
Disaggregation zur Ausführungszeit: In diesen Abschnitten finden Sie einfache Beispiele, die verdeutlichen, wie
das System Werte gemäß der getroffenen Einstellungen verteilt.
Resultat 3 30 30 36
Die Resultatzeile ist nicht eingabebereit. Nur das Verändern der Werte in den eingabebereiten Zellen und der
Transfer dieser Werte aktualisiert die Resultatzeile.
Weitere Informationen
Planungskonzepte
128 PUBLIC (ÖFFENTLICH) Planungskonzepte
Die folgende Tabelle zeigt das Ergebnis dieser Disaggregation:
Resultat 3 30 36 36
Die Resultatzeile ist eingabebereit. Der Ergebniswert wurde von 30 in 36 geändert. Der Wert 36 wurde dann
gleichmäßig auf alle drei betroffenen Zellen verteilt (36/3 = 12).
Weitere Informationen
Resultat 3 30 36 36
Die Resultatzeile ist eingabebereit. Der Ergebniswert wurde von 30 in 36 geändert. Der Wert 36 wurde dann
analog zur Gewichtung der bisherigen Betragswerte, also gewichtet, auf die Zellen verteilt. Im Ergebnis bleibt
der Wert für TFT 21" Monitor unverändert.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 129
Weitere Informationen
Resultat 3 30 36 36
Die Resultatzeile ist eingabebereit. Der Ergebniswert wurde von 30 in 36 geändert. Durch die gewählte
Verteilungsart wurden die Werte in KennzahlBetrag (Referenz) als Referenz für die analoge Verteilung des
veränderten Wertes herangezogen. (In diesem Beispiel führte dies zu den gleichen Ergebnissen wie mit der
Einstellung Keine Disaggregation.)
Diese Modellierung ist am flexibelsten, wenn Sie die Kennzahl Betrag (Referenz) eingabebereit setzen.
Damit können Sie die Gewichtung für die Verteilung der Werte, die ja aus der Referenzspalte kommt, einstellen.
Weitere Informationen
Planungskonzepte
130 PUBLIC (ÖFFENTLICH) Planungskonzepte
Merkmale sind auf einen Wert beschränkt. In der Query werden für die Kennzahl Betrag die Einstellungen
Differenz zu eingegebenem Wert disaggregieren und Gleichverteilung gewählt.
Resultat 3 30 36 36
Die Resultatzeile ist eingabebereit. Der Ergebniswert wurde von 30 in 36 geändert. Diesmal wurde nicht der
neue Wert auf die betroffenen Zellen verteilt, sondern nur die Differenz des Wertes vor Eingabe und nach
manueller Eingabe, also 6. Da Verteilungsart Gleichverteilung gewählt wurde, werden alle betroffenen Zellwerte
um den Wert 6/3 = 2 modifiziert.
Weitere Informationen
Resultat 3 30 36 36
Die Resultatzeile ist eingabebereit. Der Ergebniswert wurde von 30 in 36 geändert. Diesmal wurde nicht der
neue Wert auf die betroffenen Zellen verteilt, sondern nur die Differenz des Wertes vor Eingabe und nach
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 131
manueller Eingabe, also 6. Die 6 wurde dann analog der bisherigen Zellenwerte, also gewichtet, auf die Zellen
verteilt. Das Ergebnis entspricht der Disaggragation mit den Einstellungen Eingegebenen Wert disaggregieren
und Analogverteilung (zu sich selbst).
Weitere Informationen
Resultat 30 30 36 36
Die Resultatzeile ist eingabebereit. Der Ergebniswert wurde von 30 in 36 geändert. Diesmal wurde nicht der
neue Wert auf die betroffenen Zellen verteilt, sondern nur die Differenz des Wertes vor Eingabe und nach
manueller Eingabe, also 6. Durch die gewählte Verteilungsart wurden die Werte in KennzahlBetrag
(Referenz) als Referenz für die analoge Verteilung des veränderten Wertes herangezogen.
Weitere Informationen
Planungskonzepte
132 PUBLIC (ÖFFENTLICH) Planungskonzepte
1.9.3.8 Disaggregation Kopieren, homogene Werte
In diesem Beispiel wird die Disaggregation Kopieren für die Kennzahl Preis verwendet. Preis ist eine Basis-
Kennzahl mit der Aggregation NO2 (keine Aggregation) und hat für alle Produkte homogene Werte.
Die Werte für Preis sind für alle Produkte gleich 10. Daher ist der Ergebniswert ebenfalls 10.
Resultat 30 10 36 36
Die Resultatzeile ist eingabebereit. Der Ergebniswert wurde von 10 in 36 geändert. Der Wert 36 wurde dann auf
alle in den Ergebniswert eingehenden Zellen kopiert.
Weitere Informationen
In diesem Beispiel wird die Disaggregation Kopieren für die Kennzahl Preis verwendet. Preis ist eine Basis-
Kennzahl mit der Aggregation NO2 (keine Aggregation) und hat keine homogene Werte für die verschiedenen
Produkte.
Die Werte für Preis sind für alle Produkte verschieden. Daher ist der Ergebniswert ‘*’ (oder ‘NOP’
bzw. ‘NONEX’).
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 133
Preis (manuelle Ein
Produkt Betrag (Referenz) Preis (vor Eingabe) gabe) Preis (nach Eingabe)
Resultat 30 * 36 36
Die Resultatzeile ist eingabebereit. Der Ergebniswert wurde von ‘*’ (für inhomogene Werte) in 36 geändert. Der
Wert 36 wurde dann auf alle in den Ergebniswert eingehenden Zellen kopiert.
Weitere Informationen
Allen bisherigen Beispielen ist gemeinsam, dass die Referenzdaten für die Verteilung in der Query View
vorhanden sind. Im praktischen Einsatz ist dies aber oft nicht der Fall. Das kann zu scheinbar falschen
Resultaten führen. Das folgende Beispiel enthält einen solchen scheinbaren Fehler, ist in Wahrheit aber richtig.
Folgende Daten werden angenommen; alle nicht erwähnten Merkmale haben einen festen Wert.
Folgend wird die gleiche Query View wie oben dargestellt, d.h. das MerkmalGeschäftsjahr ist nicht
aufgerissen. Das Ergebnis ist:
Planungskonzepte
134 PUBLIC (ÖFFENTLICH) Planungskonzepte
Betrag (manuelle Ein Betrag (nach Ein
Produkt Betrag (Referenz) Betrag (vor Eingabe) gabe) gabe)
Resultat 0 0 6 0
Wir nehmen an, die Verteilungsart Gleichverteilung sei gewählt. Wenn die Resultatzeile von 0 in 6 geändert wird,
dann werden die Werte wie in der Tabelle dargestellt verteilt, da das System alle Datensätze liest, die zum
Ergebniswert beisteuern. Für jedes Produkt gibt es eine verschiedene Anzahl von Datensätzen. Im Ergebnis
werden die Werte nach der Aggregation überGeschäftsjahr in Hinsicht auf Produkt nicht gleichverteilt,
obwohl das System die Verteilungsart Gleichverteilung nutzt.
Hinweis
In obiger Situation hätte ein Aufriss nach Geschäftsjahr alle Datensätze sichtbar machen können, die für
die Verteilung herangezogen wurden. Sofern die Query nicht zu groß istm, kann diese Technik helfen, das
Ergebnis besser zu verstehen.
Weitere Informationen
Verwendung
Im folgenden Abschnitt wird die Definition inverser Formeln mit Hilfe einer mathematischen Notation genau
beschrieben.
Hinweis
Beispiele für inverse Formeln finden Sie unter Beispiele: Inverse Formel [Seite 142] sowie im SAP-Hinweis
1236347 .
Um eine inverse Formel genau beschreiben zu können, legen wir zunächst eine Notation fest. Wir nehmen an,
ist eine Formel mit den Operanden op1 bis opn. Wenn diese Formel eingabebereit ist, nennen wir die Formel F
Träger einer Formelguppe. Die Formelgruppe besteht (laut Definition) aus den Operanden op1 bis opn und der
Formel F.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 135
Für eingabebereite Formeln, inverse Formeln und Formelgruppen gelten folgende Regeln, die in der Query-
Definition oder zur Generierungszeit der Query vom System überprüft werden:
FG1: Folgende Objekte sind als Operanden opi, i = 1, ..., n für eine eingabebereite Formel F erlaubt:
FG2: Wenn der Operand opi eingabebereit ist, muss man im Query Designer eine inverse Formel definieren, die opi aus den
folgenden Operanden berechnet: F, op1, ..., op(i-1), op(i+1), ..., opn.
FG3: Sämtliche Elemente der Formelgruppe müssen entweder in der Kennzahl-Struktur oder in Ausnahmezellen enthalten
sein; der letztgenannte Fall ist nur für Queries mit zwei Strukturen von Bedeutung.
Ausnahmefall: %GT (Prozentualer Anteil an der Gesamtsumme), %XT (Normieren auf Ergebnis entlang der
Spalten), %YT (Normieren auf Ergebnis entlang der Zeilen)
Wenn Sie den prozentualen Anteil an der Gesamtsumme berechnen möchten, wählen Sie die Formel F= %GT.
In diesem Fall ist nur ein Operand erlaubt. Dieser Operand muss eine Basis-Kennzahl oder eine eingeschränkte
Kennzahl mit eingeschalteter Disaggregation sein. Sie brauchen keine inverse Formel zu definieren. Dieselben
Regeln gelten für %XT und %YT.
Hinweise
● Wenn Sie in der Query-Definition inverse Formeln anlegen, überprüft das System, zu welchen Operanden
inverse Formeln angelegt werden müssen und legt eine entsprechende Liste an. Per Doppelklick auf eine
inverse Formel gelangen Sie auf das Bild Formel ändern. Das System zeigt unter Verfügbare Operanden
eine Liste aller erlaubten Operanden für die Umstellung der Formel an.
● Die inverse Formel zu einem eingabebereiten Operanden einer eingabebereiten Formel entsteht durch das
Auflösen der Formel nach dem eingabebereiten Operanden.
● Man kann eingabebereite Formeln auch in einer wieder verwendbaren Struktur definieren. Dann müssen
auch alle Elemente der Formelgruppe in der wieder verwendbaren Strukturen liegen.
● In einer Query mit eingabebereiten Formeln dürfen die Kennzahlen nicht nur im Filter der Query enthalten
sein.
● Das System unterstützt das Verketten von Formeln; Formeln können auch Schnittmengen haben und in
anderen Formeln enthalten sein. Eine Schachtelung muss zyklenfrei sein.
Achtung
Beachten Sie, dass eine eingabebereite oder inverse Formel, sobald sie eine Formelvariable vom Typ
Ersetzungspfad enthält, nicht geschachtelt werden darf, damit das System die Variable durch die
Stammdatenattribute eines Merkmals in jedem Falle richtig ersetzen kann.
● Inverse Formeln sind technische Objekte, die für Invertierung von eingabebereiten Formeln benötigt
werden. Daher haben inverse Formeln auf der Registerkarte General zur Einstellung Display die
Voreinstellung Immer Ausblenden. Zur Fehlersuche kann es hilfreich sein, diese technischen Formeln
einzublenden.
Planungskonzepte
136 PUBLIC (ÖFFENTLICH) Planungskonzepte
Um die Verwendung von Formeln in Queries mit zwei Strukturen genau beschreiben zu können, legen wir
zunächst eine Notation fest.
X enthält die Elemente X1, ..., Xm und wird in den Spalten dargestellt.
Y enthält die Elemente Y1, ..., Yn und wird in den Zeilen dargestellt. Y enthält die Kennzahlen.
Die Kreuzungspunkte von zwei Strukturkomponenten Yi und Xk sind Zellen, die wir mit Yi/Xk = cik bezeichnen.
Diese Zellen werden immer vom System generiert. Im Zelleditor der Query-Definition können Sie diese Zellen
allerdings als sog. Ausnahmezellen ausdrücklich definieren. Ausnahmezellen können vom Typ Zellreferenz,
Selektion oder Formel sein.
Die folgende Tabelle veranschaulicht Zellen, die durch die Verwendung der beiden Strukturen X und Y
entstehen:
...
...
Yn Cn1 Cni C
nm
Wir nehmen an, dass Yn = F = F(Y1, ..., Yk) der Träger einer Formelgruppe ist, d.h. k < n und Yn ist eine
eingabebereite Formel. Die Operanden Y1, ..., Yk haben einen der Typen, die oben unter Regel FG1 genannt
wurden. Wie die Notation bereits zeigt, müssen alle eingabebereiten Operanden in der Zeilenstruktur Y
enthalten sein. Daraus ergibt sich die erste Regel:
C1: Wenn eine Query zwei Strukturen und keine Ausnahmezellen hat, können eingabebereite Formeln und inverse Formeln
nur in einer Struktur definiert werden, d.h. alle eingabebereiten und inversen Formeln müsen in der Kennzahlstruktur
enthalten sein.
Die tatsächlich zu berechnenden Formeln in den Zellen der Zeile Yn für die Spalte Xj in der oben stehenden
Tabelle kann man herleiten, indem man die Operanden Y1, ...Yk durch die korrespondieren Zellen c1j, ckj
ersetzt. Für die inversen Formeln gilt dasselbe.
Beispiel
Wie nehmen an, n = 3 und Y3 = Y2 / Y1, d.h. Y3 ist der Durchschnittspreis, Y2 ist Umsatz und Y1 ist Menge.
Weiterhin nehmen wir an, m = 3 und X1, X2 haben den Typ Selektion, enthalten z.B. Einschränkungen nach
dem Merkmal Vorgangsart wie etwa Kundenauftrag und Abrechnungsdaten in einem Szenario der
Ergebnisrechnung. X3 enthält die Formel X3 = X1 + X2.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 137
Y/X X1 X2 X3 = X1 + X2
Wie dieses Beispiel zeigt, müssen wir festlegen, ob Kreuzungspunkte zwischen eingabebereiten Formeln und
Reporting-Formeln eingabebereit sein können und dort ggf. inverse Formeln berechnet werden können.
Mit einer allgemeineren Notation nehmen wir an, dass Xm eine Formel ist; in diesem Fall muss eine
Vorrangregel für die Kreuzungspunkte Yn = F und Xm festgelegt werden. Ohne eine solche Regel nimmt das
System das zuletzt gesicherte Strukturelement. Auf der Registerkarte Erweitert für das Strukturelement Yn
oder Xm können Sie festlegen, ob das System diese Formel oder die Formel aus der anderen Struktur für die
Berechnung anwenden soll.
Aber Yn ist eine eingabebereite Formel, und es gibt inverse Formeln für die eingabebereiten Operanden Y1, ...,
Yk. Wie das Beispiel zeigt, spielt es am Kreuzungspunkt von Yn und Xm keine Rolle, ob das System im
Kreuzungspunkt Yn/Xm die von Yn oder von Xm kommende Formel berechnet: Die Zelle Yn/Xm kann nicht
eingabebereit sein, da dann auch eine Formelinversion für diese Zelle benötigt würde. Da aber Xm eine
Reporting-Formel ist und keine Inversion hat, kann es hierfür auch keine Inversion geben. Daraus ergibt sich die
zweite Regel:
C2: Der Kreuzungspunkt einer inversen Formel und einer nicht eingabebereiten Formel ergibt eine nicht eingabebereite Zelle.
Das hängt nicht von den Einstellungen der Formelpriorität der eingabebereiten Formel oder der Formel aus der anderen
Struktur ab. Im Ergebnis verwendet das System für diese Kreuzungspunkte keine inversen Formeln.
In den oben genannten Fällen wurden keine Ausnahmezellen verwendet. Im folgenden soll beschrieben werden,
wie sich das System verhält, wenn Ausnahmezellen cij in der Formel F = F(c1j, ..., ckj) verwendet werden, wobei
die Variablen folgendes bedeuten:
i = 1, ..., k sind die Indizes der Operanden der eingabebereiten Formel F, die in der Zeilenstruktur Y enthalten ist,
C3: Wenn F eine eingabebereite Formel in der Kennzahlenstruktur Y und Yi ein Operand der Formel F in der Struktur Y ist,
könnenAusnahmezellen für die Kreuzungspunkte Yi/Xj von Yi mit Xj nach den folgenden Regeln so definiert werd en, dass die
eingabebereiten Formeln nicht zurückgesetzt werden:
1. Wenn Yi nicht eingabebereit ist, kann die Ausnahmezelle cij einen der folgenden Typen haben: nicht eingabebereite Se
lektion, nicht eingabebereite Formel
2. Wenn Yi eine eingabebereite Formel ist (oder ggf. auch ineinander verschachtelte eingabebereite Formeln), wird die
oben genannte Regel 1. auf die Operanden von Yi angewendet. Das ist daher möglich, weil auch die Operanden von Yi in
der Kennzahlstruktur Y enthalten sind (siehe Regel FG3).
Planungskonzepte
138 PUBLIC (ÖFFENTLICH) Planungskonzepte
Mit Rücksicht auf die oben genannte Regel FG3 gibt es noch einen Fall:
C4: Wenn es in der Kennzahlstruktur keine eingabebereite Formel gibt, kann eine eingabebereite Formel F nur in einer
Ausnahmezelle definiert werden. Sämtliche Operanden der Formel müssen Ausnahmezellen sein. Für die Formel F und ihre
Operanden gelten dann die Regeln FG1, FG2, FG3, wenn folgende Ersetzungen durchgeführt werden:
1. Basis-Kennzahl bzw. eingeschränkte Kennzahl ist zu ersetzen durch Ausnahmezelle vom Typ Selektion oder Zellrefe
renz vom Typ Selektion.
2. Nicht eingabebereite Formel ist zu ersetzen durch Ausnahmezelle vom Typ (nicht eingabebereite) Formel oder Zellrefe
renz vom Typ (nicht eingabebereite) Formel.
Hinweise
● Die in der Query-Definition getroffenen Einstellungen für eingabebereite Formeln können durch andere
Einstellungen zur Laufzeit überschrieben werden. Eingabebereitschaft zur Laufzeit wird von den
Operanden des Trägers der Formelgruppe geerbt. Wenn z.B. sämtliche Operanden einer eingabebereiten
Formel nicht eingabebereit sind, kann auch die Formel selbst nicht eingabebereit sein.
● Eine Formel als Träger einer Formelgruppe hat keine eigene Disaggregationseinstellung. Wenn Werte für
eingabebereite Formeln geändert werden, rechnet das System stets auf die zugrunde liegenden Basis-
oder eingeschränkten Kennzahlen zurück, wobei letztere durchaus Disaggregationseinstellungen haben
können. Im Ergebnis wird das Disaggregationsverhalten von eingabebereiten Kennzahlen also implizit
durch die Basis-Kennzahlen festgelegt, die in der Formeldefinition enthalten sind.
Empfehlung
Wir empfehlen, ineinander geschachtelte Formelgruppen zu vermeiden, da der Anwender bei diesen
die Rechenfolge meist nicht einfach ablesen kann.
Achtung
Beachten Sie, dass zur Laufzeit im Rahmen der Berechnung von eingabebereiten und inversen Formeln
Rundungen durchgeführt werden. Die Anzeigeeinstellungen haben keinen Einfluss auf die Rundungen.
Diese werden stets im Hinblick auf die von dem entsprechenden Datenbankfeld vorgegebene höchste
Genauigkeit vorgenommen.
Die Prozentfunktion %GT (Prozentualer Anteil an der Gesamtsumme) ist eine spezielle Formelgruppe, für die
keine inversen Formeln definiert zu werden brauchen. Wenn die Formel %GT(op) verwendet wird, muss der
Operand op eingabebereit und entweder eine Basis- oder eine eingeschränkte Kennzahl mit eingeschalteter
Disaggregation sein. Es ist nicht erlaubt, eingabebereite Formeln, die die Prozentfunktion %GT enthalten,
ineinander zu verschachteln.
Dieselben Regeln gelten für die Prozentfunktionen %XT (Normieren auf Ergebnis entlang der Spalten) und %YT
(Normieren auf Ergebnis entlang der Zeilen). Diese Funktionen errechnen den Prozentwert des Operanden mit
Rücksicht auf die nächst höhere Zwischensumme auf der X-, d.h. Spaltenachse bzw. auf der Y-, d.h.
Zeilenachse.
Beispiel
Wir nehmen an, ein Unternehmen verkauft an zwei Kunden A und B zwei Produkte (Produkt 1 und Produkt
2):
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 139
Umsatz
Summe der Umsätze aller
Produkt 1 Produkt 2 Produkte pro Kunde
Kunde A 20 40 60
Kunde B 80 40 120
● Der Wert 20 entspricht einem Anteil von 33,3% bezogen auf die Summe der Umsätze aller Produkte
pro Kunde A (nämlich 60); dies errechnet die Formel %XT (enlang der Spalten).
● Der Wert 20 entspricht einem Anteil von 20% bezogen auf die Summe der Umsätze aller Kunden pro
Produkt 1 (nämlich 100); dies errechnet die Formel %YT (entlang der Zeilen).
Achtung
Falls eine SAP BW∕4HANA-Hierarchie auf der X-Achse verwendet wird, berechnet die Formel %XT den
Prozentwert des Operanden mit Rücksicht auf den Wurzelknoten der Hierarchie und nicht mit Rücksicht
auf den nächsten Vaterknoten der Hierarchie. Entsprechendes gilt für den Fall, dass eine Hierarchie auf der
Y-Achse und die Formel %YT verwendet wird.
Hinweis
Der Rechenmodus legt fest, wann das System beginnen soll, inverse Formeln auszurechnen. Sie können
den Rechenmodus in den Eigenschaften der Query auf der Registerkarte General, Bildbereich Planning
festlegen.
Kennzeichen ist nicht gesetzt Initialer Rechenmodus: Dies ist die Standardeinstellung. Zur
Laufzeit der Query berechnet das System inverse Formeln,
wenn mindestens ein Wert einer eingabebereitenFormel fi-
xiert oder manuell geändert wurde.
Kennzeichen ist gesetzt Symmetrischer Rechenmodus: Zur Laufzeit der Query be
rechnet das System inverse Formeln, wenn mindestens ein
Element einer eingabebereitenFormel fixiert oder manuell
geändert wurde.
Planungskonzepte
140 PUBLIC (ÖFFENTLICH) Planungskonzepte
Abhängig von dem gewählten Rechenmodus können Sie die Formelpriorität für alle inversen Formeln einer
eingabebereiten Formel wie folgt festlegen:
Rechenmodus Beschreibung
Initialer Rechenmodus Unter der eingabebereiten Formel finden Sie alle inversen
Formeln, die zu den eingabebereiten Operanden der Träger
formel angelegt wurden. Die Reihenfolge der inversen For
meln in dieser Liste bestimmt die Formelpriorität. Das
oberste Element hat die höchste Priorität.
Symmetrischer Rechenmodus Unter der eingabebereiten Formel finden Sie alle inversen
Formeln, die zu den eingabebereiten Operanden der Träger
formel angelegt wurden, sowie die Trägerformel. Die Reihen
folge der inversen Formeln in dieser Liste bestimmt die For
melpriorität. Das oberste Element hat die höchste Priorität.
Infolge dessen hat die Trägerformel nicht, wie im initialen Re
chenmodus, stets die höchste Priorität, sondern kann auch
eine niedrigere Priorität erhalten.
Wenn das System eine Formelgruppe zur Laufzeit berechnet und weder manuelle Eingabe noch fixierte Zellen
oder vorangegangene Berechnungen eindeutig die Reihenfolge der Berechnungen bestimmen, berechnet das
System die inverse Formel mit der höchsten Priorität.
Der Hinweis für Berechnung ist eine Eigenschaft der Formelgruppe. Wenn Sie dieselben Operanden in
verschiedenen eingabebereiten Formeln verwenden, ist ggf. nicht eindeutig festgelegt, in welcher Reihenfolge
die Formelgruppen abgearbeitet werden sollen. Sie können dies vermeiden, indem Sie die Priorität der
Formelgruppen mit Hilfe von ganzen Zahlen im Feld Hinweis für Berechnung festlegen. Je niedriger der Wert,
desto höher ist die Priorität der Formelgruppe. Für verschiedene Formelgruppen kann auch derselbe Wert für
die Priorität vergeben werden; die Prioritäten dürfen auch Lücken enthalten.
Der Hinweis für Berechnung ist keine absolute, sondern eine relative Einstellung. Wie diese Einstellung die
Reihenfolge der Formelgruppen bestimmt, hängt auch vom Kontext ab, z.B. von den geänderten, fixierten oder
berechneten Zellwerten. In der Regel ist es nicht nötig, die Formelgruppenpriorität über den Hinweis für
Berechnung ausdrücklich festzulegen.
Weitere Informationen
Diese Links führen in die Dokumentation des Konzeptes der eingabebereiten Query.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 141
1.9.4.1 Beispiele: Inverse Formel
Verwendung
Im folgenden wird an Hand einiger einfacher Beispiele verdeutlicht, wie das System Werte gemäß der in der
Query-Definition zu einer eingabebereiten Formel definierten inversen Formeln berechnet.
Hinweis
Die Beschreibung mit Hilfe einer mathematischen Notation und die Regeln im einzelnen finden Sie unter
Inverse Formel definieren [Seite 135]. Weitere Beispiele finden Sie im SAP-Hinweis 1236347.
Beispiel 1: Durchschnittspreis
Das erste Beispielszenario ist folgendes: Sie möchten mit folgenden Kennzahlen planen: Menge, Umsatz und
Durchschnittspreis. Die Kennzahl Durchschnittspreis wird wie folgt berechnet:
Hinweis
Um Fehler aufgrund einer Division durch Null zu vermeiden, verwenden wir hier die Funktion NDIV0.
Da die Kennzahl Durchschnittspreis eine berechnete Kennzahl ist und eingabebereit sein soll, benötigt das
System Regeln, die beschreiben, wie eine Änderung des Wertes des Durchschnittpreises entweder auf die
Menge oder auf den Umsatz zurückgerechnet werden soll. Diese Regeln werden durch inverse Formeln
festgelegt. Das System benötigt eine inverse Formel für jeden Operanden der eingabebereiten Formel
Durchschnittspreis.
Wir nehmen an, dass beide Operanden, Menge und Umsatz, eingabebereite Kennzahlen sind. In diesem Fall
müssen Sie folgende inverse Formeln definieren:
und
Hinweis
Falls nur der Wert für den Durchschnittspreis geändert wird, ist es zunächst nicht eindeutig, ob das System
auf die Menge oder auf den Umsatz zurückrechnen soll. In diesem Fall wendet das System die inverse
Formel mit der höchsten Priorität an. Die Formelpriorität wird durch die Anordnung der inversen Formeln in
der Formelgruppe bestimmt: Die Formel mit der höchsten Priorität steht an oberster Stelle in der Liste der
inversen Formeln.
Planungskonzepte
142 PUBLIC (ÖFFENTLICH) Planungskonzepte
Das zweite Beispielszenario ist folgendes: Sie möchten mit folgenden Kennzahlen planen: Betrag und
prozentualer Anteil des Betrages in Hinsicht auf die Gesamtsumme. Der prozentualer Anteil soll ebenfalls
eingabebereit sein.
Dieser Fall kann wie Beispiel 1 mit einer eingabebereiten Formel und der Definition einer inversen Formel
modelliert werden. Daneben gibt es aber auch die Möglichkeit, die Funktion '%GT' (d.h. prozentualer Anteil an
der Gesamtsumme) mit einigen zusätzliche Funktionen zu nutzen:
● Wenn Sie die Funktion %GT verwenden, brauchen Sie keine inverse Formel anzulegen, das diese im System
bereits definiert ist.
● Die Gesamtsumme bezüglich des Operanden von %GT ist während der Berechnung der inversen Formel
automatisch fixiert. Damit wird vom System sichergestellt, dass sich der veränderte %-Wert nach einem
Server-Roundtrip nicht verändert.
● Die Funktion %GT ist dann sinnvoll, wenn die zugrunde liegende Basiskennzahl eine der unterstützten
Disaggregationseinstellungen nutzt. Weitere Informationen über die möglichen
Disaggregationseinstellungen finden Sie unter Eingabebereite Query [Seite 121].
Wählen Sie die Option Eingabebereit. Eine inverse Formel brauchen Sie nicht anzulegen.
Formeln werden immer dann berechnet, wenn der OLAP-Prozessor ein neues Ergebnis berechnet.
Wenn der Wert einer eingabebereiten Formel geändert wird, z.B. der Wert der berechneten Kennzahl
Durchschnittspreis, muss das System die inverse Formel ausrechnen. In diesem Fall berechnet das System
entweder die Formel für Umsatz oder die Formel für Menge.
Wenn jedoch der Wert eines Operanden einer eingabebereiten Formel wie z.B. der Kennzahl Umsatz geändert
wird, berechnet das System keine inversen Formeln. Das System errechnet einen neuen Durchschnittspreis,
wenn der OLAP-Prozessor das Ergebnis aktualisiert.
Es gibt Anwendungsfälle, in denen ein anderes Verhalten erwünscht ist: Wenn der Wert eines Operanden wie
z.B. der Kennzahl Umsatz geändert wird, soll der Wert für den Durchschnittspreis beibehalten und die
Änderung auf die Kennzahl Menge zurückgerechnet werden. Dieses Verhalten können Sie mit dem sog.
symmetrischen Rechenmodus erreichen.
Hinweis
Um den symmetrischen Rechenmodus einzuschalten, wählen Sie bei der Query-Definition in den
Eigenschaften der Query auf der Registerkarte General, Bildbereich Planung die Eigenschaft Symmetrical
Calculation Mode.
Sinnvoll ist dieser Modus insbesondere in komplexen Szenarios, die mit vielen verschachtelten eingabebereiten
Formeln arbeiten, um die geforderte Geschäftslogik abzubilden. In solchen Szenarios kann es sinnvoll sein, eine
Möglichkeit zu haben, um ausdrücklich festzulegen, in welcher Reihenfolge die Berechnungen der
Formelgruppen auszuführen sind. Dazu dient der Hinweis für Berechnung.
Hinweis
Wenn Sie den symmetrischen Rechenmodus eingeschaltet haben, können Sie in den Eigenschaften der
Querybestandteile für jeden eingabebereiten Operanden einschließlich der sie verwendenden
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 143
eingabebereiten Formeln die Formelpriorität festlegen. Im Feld Hinweis für Berechnung können Sie
zusätzlich festlegen, mit welcher Priorität die Formelgruppe bezogen auf andere Formelgruppen berechnet
werden soll.
Verwendung
Im folgenden werden die Laufzeitaspekte inverser Formeln erläutert. Wir setzen voraus, dass Sie
eingabebereite und inverse Formeln in der Query-Definition anlegen können.
Hinweis
Beispiele, die die Laufzeitaspekte inverser Formeln verdeutlichen, finden Sie unter Beispiele: Inverse Formel
zur Laufzeit [Seite 148] sowie im SAP-Hinweis 1236347 .
Formeln erben ihre Eingabebereitschaft von ihren Operanden: Wenn Sie in der Query-Definition eine
eingabebereite Formel F = F(op1, …, opn) definiert haben, prüft das System zur Laufzeit, ob mindestens ein
Operand eingabebereit ist. Wenn das nicht der Fall ist, ist auch die Formel F nicht eingabebereit. Falls ein
Operand opi = G ebenfalls eine eingabebereite Formel ist, gilt dieselbe Regel für G.
Wie bei eingabebereiten Strukturelementen kann auch die Eingabebereitschaft von Formeln erfordern, dass
bestimmte Merkmale eindeutig bestimmt sind: Wenn eine eingabebereite Formel oder ein Operand einer
solchen Formel Ausnahmeaggregation verwendet, müssen alle Bezugsmerkmale für die Ausnahmeaggregation
auf Zellebene eindeutig bestimmt sein, damit die Formel eingabebereit ist. Dieselbe Regel gilt auch für Werte
von Stammdatenattributen in eingabebereiten Formeln (Formelvariablen vom Typ Ersetzungspfad, bei denen
die Variable durch den Attributwert eines Merkmals ersetzt wird).
Die Berechnung inverser Formeln kann man als eine Art "Umkehrung" des Reportings betrachten. Da die
Planung eingabebereite Queries für die manuelle Planung verwendet, berechnet das System die Reporting-
Formeln für das Resultset, das an das Frontend geschickt wird. In ABAP-Dynpro-Terminologie werden
Reporting-Formeln also im PBO (process before output) berechnet. Nachdem Daten in eingabebereiten Zellen
der Query manuell geändert wurden, wird ein Server-Roundtrip angestoßen, ein sogenannter PAI (process after
input). Zu diesem Zeitpunkt werden inverse Formeln berechnet. Änderungen in eingabebereiten Formeln
werden auf die Basiskennzahlen zurückgeführt, wobei ggf. auch Disaggregationseinstellungen berücksichtigt
werden. Dadurch entstehen neue Deltasätze, die im Deltabuffer abgelegt werden. Im nächsten PBO liest der
OLAP-Prozessor die Deltasätze aus, um seinen internen Zustand und das Resultset aufzufrischen. Dabei
werden die Reporting-Formeln erneut berechnet.
Für die inversen Formeln ergibt sich daraus, dass diese tatsächliche Umkehrungen der eingabebereiten
Formeln im mathematischen Sinne sein müssen. Andernfalls würde eine Änderung in einer eingabebereiten
Formel nach einem vollendeten PAI-PBO-Zyklus im nächsten PBO überschrieben.
Der folgende Abschnitt erläutert die allgemeinen Regeln des implementierten Rechenmodells im einzelnen.
Allgemeine Regeln
Planungskonzepte
144 PUBLIC (ÖFFENTLICH) Planungskonzepte
Der folgende Abschnitt erläutert die allgemeinen Regeln des implementierten initialen Rechenmodells sowie
des symmetrischen Rechenmodells, das als erweiterter Rechenmodus in der Query-Definition ausgewählt
werden kann.
Abhängig davon, welcher Rechenmodus in der Query-Definition gewählt wurde, stößt das System die
Berechnung von inversen Formeln entweder nur dann an, wenn eingabebereite Formeln geändert wurden bzw.
wenn diese fixiert waren und andere Operanden von eingabebereiten Formeln geändert wurden (initialer oder
asymmetrischer Rechenmodus), oder aber, wenn irgendein Element einer Formelgruppe manuell geändert
oder fixiert wurde (symmetrischer Rechenmodus).
Angenommen F = F(op1,..., opn) ist eine eingabebereite Formel, wobei die Operanden op1,..., opk mit k < n
ebenfalls eingabebereit sind. In der Query-Definition wurden dann k inverse Formeln angelegt, um die
Operanden op1,..., opn zu berechnen:
Wenn z.B. F geändert wurde, muss das System die 'beste' inverse Formel Fi für deren Berechnung finden. Das
Ergebnis von Fi wird an opi weitergegeben. Dann kann der neue Wert von opi weitere Berechnungen oder eine
Disaggregation anstoßen.
Die folgenden Regeln wendet das System für die Formelinversion an:
1. Formelinversionen werden auf der Grundlage von Datensätzen durchgeführt. Hier bestimmen die Werte
der Merkmale im Aufriss den Datensatz. Die Berechnung der inversen Formeln findet pro Datensatz für die
in der Query-Definition definierten Strukturbestandteile statt; diese Berechnungen werden von anderen
Datensätzen nicht beeinflusst.
2. Eingabebereite Formeln werden auf eingabebereite Basis- oder eingeschränkte Kennzahlen
zurückgerechnet, ggf. durch Inversion anderer eingabebereiter Formeln, wenn es ineinander geschachtelte
Formelgruppen gibt. Diese Änderungen stoßen eine Disaggregation an, sofern Kennzahlen eine der
Disaggregationseinstellungen verwenden.
3. In einem Server-Roundtrip wird pro Formelgruppe nur eine inverse Formel gerechnet. Nach dieser
Berechnung sind alle Elemente dieser Formelgruppe temporär fixiert, d.h. während dieses Server-
Roundtrips können die Elemente einer bereits berechneten Formelgruppe nicht durch Berechnungen aus
anderen Formelgruppen überschrieben werden.
4. Um diejenige inverse Formel herauszufinden, die berechnet werden muss, sammelt das System zuerst die
Elemente, die Berechnungen auslösen, d.h. geänderte oder fixierte Zellwerte von eingabebereiten Formeln
oder Elementen einer Formelgruppe (für jeden Datensatz). Je nach Rechenmodus (asymmetrisch oder
symmetrisch) ist es unterschiedlich, welche Elemente die Berechnung auslösen. Wenn ein Operand der
Formelgruppe in einem früheren Schritt berechnet wurde, wird auch dieser Operand als fix für die neue
Berechnung behandelt, d.h. er wird als eine bekannte Quelle betrachtet. Mögliche Ziele für die Berechnung
sind die eingabebereiten Operanden der aktuellen Formelgruppe, die nicht geändert, fixiert oder berechnet
wurden. Falls daraus nicht eindeutig eine der inversen Formeln als zu berechnen hervorgeht, nimmt das
System die inverse Formel mit der (in der Query-Definition festgelegten) höchsten Formelpriorität.
5. An den durch manuelle Änderungen oder fixierte Zellwerte ausgelösten Berechnungen können mehrere
Formelgruppen beteiligt sein. Da sich die Festlegung der Formelpriorität auf alle Elemente einer
Formelgruppe bezieht, ist nicht eindeutig bestimmt, welche Formelgruppe als erste zu berechnen ist. Das
System berechnet die Formelgruppen in aufsteigender Reihenfolge nach der Anzahl der "Freiheitsgrade".
Der aktuelle Freiheitsgrad wird durch die Differenz von Anzahl der Operanden minus der Anzahl von bereits
bekannten Operanden (d.h. Konstanten, fixierte, manuell geänderte oder in einem früheren Schritt
berechnete Operanden) festgelegt. Falls sogar der aktuelle Freiheitsgrad der Formelgruppen derselbe ist,
prüft das System, ob der symmetrische Rechenmodus verwendet wird. Falls dies der Fall ist, wertet das
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 145
System den Hinweis zur Berechnung aus, um die Formelgruppenpriorität zu klären. In allen anderen Fällen
ist die Reihenfolge der Berechnung undefiniert.
6. In Hinsicht auf die Formelinversion werden neue Zeilen wie bestehende behandelt. Wenn es die Zeile
bereits gibt, werden geänderte oder zurückgerechnete Werte von Basis-Kennzahlen aggregiert.
Hinweis
Beachten Sie, dass das System nicht versucht, irgendeine Lösung für das Rechenproblem zu finden,
welches aufgrund manueller Eingaben und aller Arten von Customizing eingabebereiter Queries entsteht.
Das System wendet zur Lösungsfindung die oben genannten Regeln an. Wenn dies nicht zum Erfolg führt,
weist das System mit entsprechenden Fehlermeldungen darauf hin.
Fehlerbehandlung
Wenn das System keine inverse Formel zur Berechnung findet, ist die Benutzereingabe ungültig. Das System
generiert Meldungen, die auf die Ursachen des Problems - wie z.B. zu viele manuelle Änderungen oder zu viele
Einschränkungen aufgrund fixierter Werte - hinweisen.
Es gibt Fälle, in denen sämtliche Formelinversionen möglich sind, aber nicht die anschließende Disaggregation
der Werte, wenn z.B. sämtliche Einzelwerte einer Teilsumme, einer Gesamtsumme oder eines
Hierarchieknotens und die Teilsumme, Gesamtsumme oder der Hierarchieknoten selbst geändert oder
berechnet wurden. Das System generiert entsprechende Meldungen.
Rundungsregeln
Kennzahlwerte werden in der Datenbank mit einer begrenzten Anzahl von Dezimalstellen gespeichert. Bei der
Berechnung von Formeln treten im allgemeinen Rundungseffekte auf. Durch inverse Formeln können
Kennzahlwerte berechnet werden, die auf der Datenbank abgelegt werden. Für solche Kennzahlen wird daher
jeder berechnete oder durch Disaggregation entstandene Kennzahlwert auf die Datenbank-Dezimalen
gerundet. Wenn das System aggregierte Werte durch inverse Formeln berechnet und die berechneten Werte
disaggregiert, können Rundungsfehler erheblich werden. Beachten Sie daher, dass ein Wert, der manuell
geändert wurde, nach der Berechnung der Formelinversion und der Aktualisierung des Result-Sets von dem
eingegebenen Wert abweichen kann. Dasselbe gilt auch für fixierte Werte.
Empfehlung
Wir empfehlen daher, für alle Operanden von inversen Formeln dieselbe Anzahl von
Datenbankdezimalstellen zu verwenden.
Empfehlungen
Um bei Quotienten als eingabebereiten Formeln, z.B. bei dem Durchschnittspreis, formale Divisionsfehler wie
Division durch Null zu vermeiden, verwenden Sie den Operator NDIV0. Wenn z.B. noch keine Daten geplant
sind und für einige Merkmale unter Zugriffsart für Ergebniswerte die Einstellung Stammdaten oder
Merkmalsbeziehungen verwendet wird, entstehen im allgemeinen viele leere Datenzellen. Ohne die Nutzung
der Datenfunktion NDIV0 wären dann die Zellen für Durchschnittspreis nicht eingabebereit. Wenn Sie jedoch
NDIV0 verwenden, ergibt die Berechnung NDIV0( 0 / 0 ) = 0 für solche Zellen und der Durchschnittspreis kann
geändert werden.
Planungskonzepte
146 PUBLIC (ÖFFENTLICH) Planungskonzepte
Weitere Informationen
Diese Links führen in die Dokumentation des Konzeptes der eingabebereiten Query.
Zur Laufzeit kann eine eingabebereite Formel mit der Prozentfunktion %GT(op), Prozentualer Anteil an der
Gesamtsumme, nur dann wirklich eingabebereit sein, wenn der Operand op zur Laufzeit eingabebereit ist.
Hinweis
Weitere Informationen über allgemeine Regeln, wie die Eigenschaft "nicht eingabebereit" für Teilsummen,
Summen und Hierarchieknoten vererbt wird, finden Sie im SAP-Hinweis 994853 .
Beispiel
Ausführliche Erläuterungen der geltenden Regeln finden Sie in der Diskussion des Beispieles 6,
Prozentualer Anteil %GT, im Abschnitt Beispiele: Inverse Formel zur Laufzeit [Seite 148].
Das System führt Berechnungen inverser Formeln auch in neuen Zeilen durch. Dies führt zu geänderten Werten
der Basis-Kennzahlen. Falls Zeilen bereits vorhanden waren, addiert das System die geänderten Werte auf die
bestehenden Werte. Es gibt keine speziellen Prüfungen für neue Zeilen.
Die Funktionen %XT, %YT können in denselben Clients verwendet werden wie %GT. %XT(op), %YT(op) sind
nur eingabebereit, wenn der Operand op eingabebereit ist.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 147
Die Funktion %XT bzw. %YT berechnet die Prozentwerte bezogen auf die nächste Summenstufe der X- bzw.
der Y- Achse.
Hinweis
Falls eine SAP BW∕4HANA-Hierarchie auf der X- oder Y-Achse verwendet wird, berechnet die Formel den
Prozentwert des Operanden mit Rücksicht auf den Wurzelknoten der Hierarchie und nicht mit Rücksicht
auf den nächsten Vaterknoten der Hierarchie.
In den folgenden Fällen nimmt das System die Eingabebereitschaft der Prozentfunktionen %XT und %YT
zurück:
● Es wird eine Hierarchie in der jeweiligs betroffenen Achse verwendet, d.h. es wird %XT verwendet und
gleichzeitig eine Hierarchie auf der X-Achse bzw. es wird %YT verwendet und eine Hierarchie auf der Y-
Achse.
● Es werden Teilsummen in der Ergebnismenge der Queries unterdrückt, die für die Berechnung der
Prozentfunktionen jedoch notwendig sind.
Wenn der Wert der Zelle %XT(op) geändert wird, übernimmt das System den geänderten Prozentwert und
berechnet den neuen Wert von op auf der Grundlage des nächsten Summenstufenwertes von op auf der X-
Achse. Außerdem fixiert das System den Wert der Zwischensumme, um sicherzustellen, dass der geänderte
Protzentwert nach einem Serverroundtrip bewahrt bleibt. Entsprechend führt das System auch die
Berechnungen für geänderte %YT-Werte durch.
In neuen Zeilen sind die Funktionen %XT, %YT nicht eingabebereit. Es hängt vom Client ab, ob die
entsprechenden Zellen als nicht eingabebereit dargestellt werden.
Verwendung
Im folgenden werden die Laufzeitaspekte inverser Formeln an Hand ausgewählter Beispiele erläutert.
Beispiel 1: Durchschnittspreis
Wie in der Dokumentation zur Definition inverser Formeln beginnen wir mit dem Beispiel Durchschnittspreis.
Wir nehmen an, dass Umsatz (Sales) und Menge (Sales Quantity) eingeschränkte Kennzahlen sind (wobei für
Umsatz die Währung auf einen Wert eingeschränkt und eine initiale Mengeneinheit festgelegt ist und für Menge
umgekehrt). Beide eingeschränkte Kennzahlen verwenden in der Query-Definition unter Planung auf Summen
die Einstellung Eingegebenen Wert disaggregieren.
Eine Datenscheibe schützt die Produkte Comes after C++ und MMIX by D.E. Knuth.
Wie das folgende Bild zeigt, ist die Summenzeile Werkzeuge (Tools) nicht eingabebereit, weder für die
eingeschränkten Kennzahlen Menge und Umsatz noch für die (eingabebereite) Formel Durchschnittspreis (Avg.
Price). Die Formel Durchschnittspreis ist hier nicht eingabebereit, da alle Operanden dieser Formel nicht
eingabebereit sind.
Planungskonzepte
148 PUBLIC (ÖFFENTLICH) Planungskonzepte
Query-Beispiel Durchschnittspreis
Wir verdeutlichen die allgemeinen Regeln am Beispiel der berechneten eingabebereiten Kennzahl
Durchschnittspreis (siehe oben Beispiel 1).
Wir nehmen an, dass der initiale (asymmetrische) Rechenmodus Anwendung findet.
Hier ist der Durchschnittspreis Träger der Formelgruppe, die aus folgenden Elementen besteht:
Durchschnittspreis, Umsatz und Menge. In der Query-Definition sind die folgenden beiden inversen Formeln
definiert worden:
● Wir nehmen an, dass der Wert für den Durchschnittspreis geändert wurde. Beide inverse Formeln können
für die Formelinversion verwendet werden; das System nimmt die Formel mit der höchsten Formelpriorität,
in diesem Falle die Umsatz-Formel.
● Wir nehmen an, dass die Werte für den Durchschnittspreis und den Umsatz geändert wurden. In diesem Fall
ist es eindeutig, dass das System die Menge-Formel berechnen muss.
● Wir nehmen an, dass der Wert für den Durchschnittspreis geändert und die Zelle Umsatz fixiert wurde. In
diesem Fall ist es eindeutig, dass das System die Menge-Formel berechnen muss.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 149
● Wir nehmen an, dass der Wert für den Durchschnittspreis geändert wurde und die Zelle Umsatz nicht
eingabebereit ist, z.B. weil diese Kennzahl durch eine Datenscheibe geschützt ist. In diesem Fall ist es
eindeutig, dass das System die Menge-Formel berechnen muss.
● Wir nehmen an, dass die Werte für den Umsatz oder Menge geändert wurden. Dann spielen inverse
Formeln keine Rolle. Das System berechnet den Durchschnittspreis.
● Wir nehmen an, dass der Wert für den Umsatz geändert und die Zelle Durchschnittspreis fixiert. In diesem
Fall ist es eindeutig, dass das System die Umsatz-Formel berechnen muss.
Hier ist der Durchschnittspreis Träger der Formelgruppe, die aus folgenden Elementen besteht:
Durchschnittspreis, Umsatz und Menge. In der Query-Definition sind die folgenden beiden inversen Formeln
definiert worden; zusätzlich hat die Trägerformel die niedrigste Priorität:
● Wir nehmen an, dass der Wert für den Durchschnittspreis geändert wurde. Beide inverse Formeln können
für die Formelinversion verwendet werden; das System nimmt die Formel mit der höchsten Formelpriorität,
in diesem Falle die Umsatz-Formel.
● Wir nehmen an, dass die Werte für den Durchschnittspreis und den Umsatz geändert wurden. In diesem Fall
ist es eindeutig, dass das System die Menge-Formel berechnen muss.
● Wir nehmen an, dass der Wert für den Durchschnittspreis geändert wurde und die Zelle Umsatz nicht
eingabebereit ist, z.B. weil diese Kennzahl durch eine Datenscheibe geschützt ist. In diesem Fall ist es
eindeutig, dass das System die Menge-Formel berechnen muss.
● Wir nehmen an, dass die Werte für den Umsatz geändert wurden. Damit wird die Berechnung der
Formelgruppe angestoßen. Weil Menge eine höhere Priorität hat, wird Durchschnittspreis beibehalten und
auf Menge zurückgerechnet.
● Wir nehmen an, dass die Werte für den Menge geändert wurden. Damit wird die Berechnung der
Formelgruppe angestoßen. Weil Umsatz die höchste Priorität hat, wird Durchschnittspreis beibehalten
und auf Umsatz zurückgerechnet.
● Wir nehmen an, dass der Wert für den Umsatz geändert und die Zelle Durchschnittspreis fixiert. In diesem
Fall ist es eindeutig, dass das System die Umsatz-Formel berechnen muss.
In diesem Beispiel nutzen wir drei eingeschränkte Kennzahlen: Umsatz geplant, Umsatz Prognose, Umsatz
aktuell. Wir möchten auch die prozentuale Abweichung des geplanten vom vorausberechneten sowie des
geplanten vom aktuellen Umsatz planen. Daher legen wir zwei eingabebereite Formeln und die entsprechenden
inversen Formeln an.
Die eingabebereite Formel zur Berechnung der prozentuale Abweichung des geplanten vom aktuellen Umsatz
lautet:
Diese Formelgruppe hat als Elemente: '%Dev(P,A)', Umsatz geplant und Umsatz aktuell.
Planungskonzepte
150 PUBLIC (ÖFFENTLICH) Planungskonzepte
Die eingabebereite Formel zur Berechnung der prozentuale Abweichung des geplanten vom prognostizierten
Umsatz lautet:
Diese Formelgruppe hat als Elemente: '%Dev(P,F)', Umsatz geplant und Umsatz Prognose.
Beide Formelgruppen enthalten das Element Umsatz geplant. Wir nehmen an, dass Umsatz aktuell und Umsatz
Prognose nicht eingabebereit sind, z.B. weil die Vorausberechnung vom Planungsadministrator vorbereitet
wurde. In diesem Fall sind eingabebereit: Umsatz geplant, '%Dev(P,A)' und '%Dev(P,F)'. Das System braucht
nur Inversionen von '%Dev(P,A)' auf Umsatz geplant und von '%Dev(P,F)' auf Umsatz geplant.
Produkt %Dev (P,F) %Dev (P,A) Umsatz geplant Umsatz Prognose Umsatz aktuell
Die manuelle Eingabe ist in der Tabelle dargestellt durch den Pfeil '->'. Für eine bessere Übersichtlichkeit
enthält diese Tabelle gleich alle drei im folgenden näher erklärten Beispiele. Das soll aber nicht bedeuten, dass
die Änderungen in einem einzigen Interaktionsschritt durchgeführt wurden.
1. Wenn man '%Dev(P,A)' für 'PC Medium' ändert, errechnet das System zuerst im PAI (process after input)
den Umsatz geplant und dann im PBO (process before output) die prozentuale Abweichung '%Dev(P,F)'.
2. Wenn man '%Dev(P,F)' für 'PC Small' ändert, errechnet das System zuerst im PAI den Umsatz geplant und
dann im PBO die prozentuale Abweichung '%Dev(P,A)'.
3. Wenn man '%Dev(P,A)' und '%Dev(P,F)' in einem Schritt für 'PC High End' ändert, versucht das System,
Umsatz geplant zu berechnen. Das ist für eine Formelgruppe möglich, bei der anderen aber versucht das
System, zugleich auch Umsatz geplant abzugleichen. Dieses Verhalten führt zu einem Fehler, da die
anderen Kennzahlen nicht eingabebereit sind und daher nicht über die Berechnung inverser Formeln
geändert werden.
Produkt %Dev (P,F) %Dev (P,A) Umsatz geplant Umsatz Prognose Umsatz aktuell
In diesem Beispiel möchten wir Kosten einiger Kostenstellen planen. Wir nehmen an, wir haben zwei
Kennzahlen Fixe Kosten and Variable Kosten. Fixe Kosten ist nicht eingabebereit, da wir in diesem Beispiel
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 151
annehmen, dass wir diese Kosten nicht beeinflussen können. Variable Kosten werden geplant. Die
Gesamtkosten sind die fixen Kosten zuzüglich der variablen Kosten. Vom vergangenen Jahr haben wir bereits
die Gesamtkosten in einer eingeschränkten Kennzahl Kosten LY; hiervon interessieren uns die fixen und die
variablen Kostenanteile nicht. Wir möchten allerdings die prozentuale Abweichung der Gesamtkosten von den
Gesamtkosten des Vorjahres planen. Diese Überlegungen zusammenfassend, können wir zwei eingabebereite
Formeln bilden:
Diese Formelgruppe hat als Elemente: Gesamtkosten, Variable Kosten und Fixe Kosten.
Diese Formelgruppe hat als Elemente: '%Dev(T,LY)l', Gesamtkosten und Kosten LY.
Die beiden Formelgruppen sind ineinander geschachtelt, da die Formel Gesamtkosten auch in der Formel
'%Dev(T,LY)' verwendet wird.
Die manuelle Eingabe ist in der Tabelle dargestellt durch den Pfeil '->'. Für eine bessere Übersichtlichkeit
enthält diese Tabelle gleich alle drei im folgenden näher erklärten Beispiele. Das soll aber nicht bedeuten, dass
die Änderungen in einem einzigen Interaktionsschritt durchgeführt wurden.
1. Wenn man die Gesamtkosten für die Kostenstelle 4711 ändert, errechnet das System zuerst im PAI die
Variablen Kosten und rechnet dann im PBO zurück auf die Gesamtkosten und die prozentuale Abweichung
zum Vorjahr '%Dev(T,LY)'.
2. Wenn man die prozentuale Abweichung zum Vorjahr '%Dev(T,LY)' für die Kostenstelle 4712 ändert,
errechnet das System zuerst im PAI die Gesamtkosten, weil die Formel eingabebereit ist. Diese implizite
Änderung stößt die nächste Formelinversion an. Im Ergebnis berechnet das System auch die Variablen
Kosten im PAI. Im PBO rechnet das System dann zurück auf die Gesamtkosten und auf die prozentuale
Abweichung zum Vorjahr '%Dev(T,LY)'.
3. Wenn man die prozentuale Abweichung zum Vorjahr '%Dev(T,LY)' und die Gesamtkosten für die
Kostenstelle 4713 in einem Schritt ändert, wurde zugleich auch der einzige eingabebereite Operand der
Formel '%Dev(T,LY)' geändert. Damit ist eine Formelinversion für die prozentuale Abweichung zum Vorjahr
'%Dev(T,LY)' nicht möglich. Das System weist mit entsprechenden Fehlermeldungen darauf hin.
Planungskonzepte
152 PUBLIC (ÖFFENTLICH) Planungskonzepte
Ohne den unter 3. beschriebenen Fehlerfall erhält man folgendes Ergebnis:
Im folgenden zeigen wir ein noch komplexeres Beispiel, indem wir mehrere Werte auf verschiedenen Ebenen
des Result-Sets in einem Schritt ändern. Wir nehmen an, die folgende Formel hat die höchste Priorität:
Wie durch die Pfeile ' -> ' angezeigt, wurden in der folgenden Tabelle einige Zahlen auf verschiedenen
Summationsstufen in einem Schritt geändert. Beachten Sie, dass das System hier zuerst die inversen Formeln
aller Ebenen berechnet und dann geänderte oder berechnete Werte auf die Basiskennzahlen disaggregiert.
PC Medium 4000.00 (zeitweilig fixiert) 4000.00 / 800 (Priorität) 1333.33 -> 800
Gesamt 12000.00 (zeitweilig fixiert) 12000.00 / 1000 (Priorität) 1200.00 -> 1000
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 153
Das Zwischenergebnis ist folgendes:
Die Mengen-Spalte enthält einen geänderten Gesamt-Wert und Änderungen von Werten auf niedrigeren
Ebenen. Das System beginnt daher die Disaggregation von 12 - ( 5 + 3 ) = 4 für den einzigen unveränderten
Wert des Produktes 'PC High End'.
Die Umsatz-Spalte enthält (durch Berechnungen in den jeweiligen Zeilen) zeitweilig fixierte Werte und einen
geänderten Wert. Das System beginnt daher die Disaggregation von 12000 - ( 4000 + 1500 ) = 6500 für den
einzigen unveränderten Wert des Produktes 'PC High End'.
Das Ergebnis der Berechnung der inversen Formeln und der Disaggregation ist folgendes:
Wir erläutern die Laufzeitaspekte des Beispiels Prozentualer Anteil %GT (siehe Beispiele: Inverse Formel [Seite
142], Beispiel 2).
Wir nehmen an, dass der Betrag eine Basis-Kennzahl mit der Verteilungsart für Disaggregation
Analogverteilung (zu sich selbst) ist.
Eine Datenscheibe schützt die Produkte Comes after C++ und MMIX by D.E. Knuth.
Wie das folgende Bild zeigt, ist die Summe der Spalte Prozentualer Anteil des Betrages in Hinsicht auf die
Gesamtsumme ( % Contribution) nicht eingabebereit, da der entsprechende Wert immer 100% ist. Alle
übrigen Zellen sind eingabebereit mit Ausnahme der Werte für die Produkte Comes after C++ und MMIX by D.E.
Knuth und die Teilsummen für diese Produkte. Die Basis-Kennzahl Betrag ( Amount) wird durch eine
Datenscheibe geschützt. Im Ergebnis ist auch die Eingabebereitschaft für Prozentualer Anteil ( % Contribution)
ausgeschaltet: Die Eigenschaft "nicht eingabebereit" wurde durch die Formel %GT von dem Operanden Betrag
( Amount) geerbt. Zusätzlich wurde die Eigenschaft "nicht eingabebereit" von der Teilsumme Tools geerbt, da
alle Kinder dieses Hierarchieknotens nicht eingabebereit sind.
Planungskonzepte
154 PUBLIC (ÖFFENTLICH) Planungskonzepte
Der Wert von %GT für die Gesamtsumme ist immer 100%; daher ist das Gesamtergebnis nicht eingabebereit.
So bleibt der Wert für %GT auch 100%, wenn man z.B. einen Filter (auf der Achse) für Personal Computer
verwendet. Berechnungen mit %GT sind noch möglich, wenn keine Teilsummen, Summen oder
Hierarchieknoten angezeigt werden. Es ist auch möglich, die Kennzahl op, in unserem Beispiel Betrag
( Amount), auszublenden; der Operand op, hier Betrag ( Amount), muss dann aber eingabebereit sein.
Wenn beide, sowohl der Operand op, in unserem Beispiel Betrag ( Amount), als auch %GT für dieselbe Ebene in
einem einzigen Interaktionsschritt geändert werden, weist das System darauf mit Fehlermeldungen hin.
Möglich ist hingegen, das Gesamtergebnis für op, d.h. Betrag ( Amount), und die Werte für %GT auf einer
tieferen Ebene zu ändern. In diesem Fall nimmt das System den neuen Wert für das Gesamtergebnis und den
geänderten Wert %GT, um den neuen Wert für den Operanden op, d.h. Betrag ( Amount), auf der tieferen Ebene
zu berechnen. Diese beiden Änderungen stoßen eine Disaggregation für den Operanden op, d.h. Betrag
( Amount), an.
Das Gesamtergebnis für Betrag ( Amount) darf nicht gleich Null sein. Falls das nicht der Fall ist, sind %GT-Zellen
nicht eingabebereit.
Werte für %GT können auch außerhalb des Bereichs von 0 bis 100 liegen; im allgemeinen wird dies - nach
Disaggregation - zu negativen Werten für den Operanden, d.h. Betrag ( Amount), führen.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 155
1.9.6 Stammdatenplanung
Sie können ein InfoObject (Merkmal) mit Stammdatentabelle als Basis-InfoProvider für die
Stammdatenplanung verwenden, indem alle Attribute und Texte dieses InfoObject zusätzlich als beplanbare
Kennzahlen exponiert werden.
Voraussetzungen
● InfoObject (Merkmal):
Als für die Stammdatenplanung geeigneten Basis-InfoProvider haben Sie ein InfoObject (Merkmal) mit
Stammdatentabelle mit Mitteln des SAP BW∕4HANA und ohne die Eigenschaft Erweiterte
Stammfortschreibung angelegt.
Um die Stammdatenplanung zu ermöglichen, haben Sie diesem InfoObject (Merkmal) die
Modellierungseigenschaften Usable as InfoProvider und Planning Mode zugewiesen und es vom Load Mode
in den Planning Mode umgeschaltet.
● Aggregationsebene:
Auf diesem Basis-InfoProvider haben Sie eine Aggregationsebene anlegt. Das System hat als Metadaten
für Attribute und Texte des InfoProviders Kennzahlen erzeugt.
● Query:
Auf dieser Aggregationsebene haben Sie eingabebereite Queries angelegt.
Hinweis
Alle Schlüsselmerkmale, Attribute und Texte, die beplanbar sein sollen, müssen eingabebereit sein.
Setzen Sie dazu in den Eigenschaften des Strukturelementes auf der Registerkarte Planning in dem
Feld Input-Ready den Wert Yes.
Optional können Sie als Disaggregationsverhalten wählen: Disaggregation Kopieren, homogene Werte.
Wenn Sie die Query im Änderungsmodus starten, können Sie Stammdaten ändern. Alle Attribute und Texte des
InfoObjects, die in der Aggregationsebene enthalten sind, können als Kennzahlen in der Query verwendet
werden.
Wenn es zeitabhängige Attribute und Texte gibt, können Sie zusätzlich die folgenden Kennzahlenin die
Aggregationsebene aufnehmen und in der Query verwenden:
Diese Kennzahlen können eingabebereit sein oder nicht, je nachdem ob diese Felder änderbar sein sollen oder
nicht. Falls sie änderbar sein sollen, gilt, dass die neuen Grenzen des Zeitintervalls innerhalb desjenigen
Zeitintervalls liegen müssen, in dem der Query-Stichtag liegt. Dazu kommt, dass die untere Grenze des
Zeitintervalls unter (oder gleich) dem Query-Stichtag sein muss, die obere Grenze über (oder gleich) dem
Query-Stichtag. Der Query-Stichtag selbst kann fest oder variabel sein. Es gilt also:
Planungskonzepte
156 PUBLIC (ÖFFENTLICH) Planungskonzepte
● Attribute: DATEFROM(alt) < DATEFROM(neu) <= KEY_DATE(Query-Stichtag) <= DATETO(neu) < DATETO(alt)
● Texte: TXTDATEFROM(alt) < TXTDATEFROM(neu) <= KEY_DATE(Query-Stichtag) <= TXTDATETO(neu) <
TXTDATETO(alt)
Neue Zeilen: Ein InfoObject-Wert in einer neuen Zeile ist ein neuer Stammdatenwert. Wenn die Felder
DATEFROM und DATETO nicht als Kennzahlen in der Query verwendet werden oder nicht eingabebereit sind,
setzt das System die folgenden Werte:
● *DATEFROM = 01.01.1000
● *DATEFTO = 31.12.9999
Hinweis
Sichern der Stammdatenänderungen: Beachten Sie, dass alle Änderungen an Stammdaten, Attributen
und Texten in einen einzigen Auftrag gelangen.
Sperrkonzept: Relevant für Sperren sind nur die Schlüsselmerkmale. Attribute sind nicht relevant für
Sperren.
Weitere Informationen
Wenn Sie Ihre Daten in einer Planungsanwendung sichern, persistiert das System die seit dem letzten Sichern
veränderten Daten auf der Datenbank. Sie können die Daten vor dem Sichern mit einer Planungssequenz
prüfen. Um die gesicherten Werte zu protokollieren, implementieren Sie das Interface
IF_RSPLS_LOGGING_ON_SAVE.
Verwendung
Wenn Sie Ihre Daten in einer Planungsanwendung sichern, persistiert das System die seit dem letzten Sichern
veränderten Daten auf der Datenbank. Dabei werden immer die Änderungen an Daten (und nicht die absoluten
Werte) gebucht.
Um zu vermeiden, dass Benutzer einer Planungsanwendung geänderte Daten sichern, die als ungültig gelten,
können Sie als Administrator festlegen, dass bei jedem Sichern-Ereignis zu einem InfoProvider eine bestimmte
Planungssequenz ausgeführt wird, die die Daten dieses InfoProviders prüft.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 157
Gesicherte Werte protokollieren
Das BAdI ist filterabhängig. Legen Sie für jeden geeigneten Basis-InfoProvider, für den Sie eine Protokollierung
vornehmen möchten, eine Implementierung des Interfaces IF_RSPLS_LOGGING_ON_SAVE an.
Das BAdI wird gerufen, wenn Daten im Rahmen einer Planungsanwendung in einen geeigneten Basis-
InfoProvider gesichert werden, nicht aber, wenn der InfoProvider anderweitig beschrieben wird, z.B. im
Lademodus mit Mitteln des Data Warehouse Management. Sofern Daten des InfoProviders teilweise oder
vollständig gelöscht werden, hat dies keine Auswirkungen auf bereits vorliegende Protokollierungen.
● Über die Methoden log_defined bzw. log_structure wird festgelegt, ob bzw. in welchem Format die Daten
zur Verfügung gestellt werden sollen. In der Methode log_structure können Sie festlegen, dass über
spezielle InfoObjects in der DDIC-Struktur auch Kontextinformationen über den Namen des schreibenden
Benutzers, das Datum, die Uhrzeit und die SAVE-ID zur Verfügung stehen. Über die SAVE-ID ist es möglich,
eine Sichern-Aktion in einer Planungsanwendung zu identifizieren.
Beispiel
Wenn also z.B. ein Benutzer im Rahmen einer Planungsanwendung insgesamt dreimal Daten sichert
und jeweils zwei Basis-InfoProvider beschreibt und zudem für beide Basis-InfoProvider die
Protokollierung aktiv ist, so werden insgesamt drei SAVE-IDs vom System erzeugt, die jeweils den
beiden Protokollierungsaufrufen der beiden Basis-InfoProvider bei Bedarf mitgegeben werden. Es ist
somit möglich, in den Protokollen der beiden Basis-InfoProvider zu identifizieren, welche Daten aus
Basis-InfoProvider1 zusammen mit welchen Daten aus Basis-InfoProvider2 gesichert wurden.
● Mit der Methode log_write wird die eigentliche Protokollierung bei jedem Sichern-Ereignis in der
Anwendung aufgerufen, die die Daten in der über log_structure festgelegten Struktur übergibt. In der
Methode log_write wird die eigentliche Protokollierung implementiert, z.B. das Schreiben der Daten in eine
transparente Tabelle. Der Methode log_write wird neben den Daten auch die Request-ID des geeigneten
InfoProviders mitgeteilt, in der die Daten gesichert wurden.
● Mit der Methode log_defined_db aktivieren Sie das Logging auf der SAP HANA-Datenbank für einen
InfoProvider, den Sie über die Methode log_defined für das Logging klassifiziert haben. Sobald dies erfolgt
ist, wird für den betreffenden InfoProvider die Methode log_write nicht mehr gerufen, sondern die im
folgenden erklärte Methode log_write_db.
● Mit der Methode log_write_db erhalten Sie den Namen einer Datenbanktabelle, die die Struktur
i_structure_name hat und die zu loggenden Daten enthält. Anders als im Falle der Methode log_write
handelt es sich hierbei jedoch nicht um eine interne Tabelle, sondern um eine Datenbanktabelle. Sie ist im
DDIC nicht bekannt und muss daher mit Datenbankmitteln (z.B. ADBC API oder EXEC SQL, also Native
SQL) verarbeitet werden. Indem Sie den Inhalt der jeweiligen Datenbanktabelle in eine Ablage Ihrer Wahl
transformieren, können Sie die Log-Informationen in Ihrer Ablage persistieren.
Hinweis
Die Methoden dieses Interfaces sind im einzelnen in der Interface-Dokumentation beschrieben (siehe Class
Builder, Transaktionscode SE24).
Planungskonzepte
158 PUBLIC (ÖFFENTLICH) Planungskonzepte
Hinweis
Weitere Informationen
1.11 Audit
Mit Hilfe des Datenaudits können Sie Änderungen an Bewegungsdaten auf der Ebene einer eingabebereiten
Query verfolgen, z. B. wann und von wem Daten in der Query geändert wurden. Der Benutzer kann sich die
Audit-Informationen für jede Zelle der Query in Form von Deltawerten der Änderungshistorie in einer
entsprechenden Audit-Query anschauen.
Unterstützte InfoProvider
● Data Mart DataStore-Objekt: In einem solchen InfoProvider ist das Datenaudit fest eingebaut und immer
aktiv.
● Lokaler Provider im BW Workspace, wenn dieser für die Planung freigeschaltet ist: Einem solchen lokalen
Provider werden ebenfalls die Audit-Merkmale hinzugefügt.
Hinweis
Die Audit-Merkmale sollen nur für die Audit-Funktion verwendet werden, also nicht in InfoProvider
aufgenommen werden, die keinen Audit unterstützen.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 159
Verwendung der Audit-Merkmale in den Providern
Im DataStore-Objekt ist die Audit-Infrastruktur fest eingebaut. Die Audit-Informationen werden über den
Request fortgeschrieben und können in Queries über Navigationsattribute eingebunden werden.
● Zeitstempel: 0REQTSN
● User: Navigationsattribut 0REQTSN__0AUSER
● Datenquelle: Navigationsattribut 0REQTSN__ 0ASOURCE
● Datenaudit aktiv:
○ 0ATIMESTAMP = Zeitstempel des Sichern-Ereignisses
○ 0AUSER = SY-UNAME
○ 0AMODE = PLAN
○ 0ASOURCE = Name der Query oder Planungsfunktion, falls eindeutig
● Datenaudit inaktiv:
○ 0ATIMESTAMP = Fester Zeitstempel (Zeitpunkt des Umschaltens von aktiv auf inaktiv)
○ 0AUSER ist leer
○ 0AMODE = OFF
○ 0ASOURCE ist leer
Achtung
Beachten Sie, dass lokale Objekte und alle Objekte, die einen lokalen Provider referenzieren, nicht
transportierbar sind.
Weitere Informationen
1.11.1 Audit-Merkmale
Planungskonzepte
160 PUBLIC (ÖFFENTLICH) Planungskonzepte
Die Audit-Merkmale werden mit dem Technischen Content des SAP BW∕4HANA ausgeliefert. Sie werden vom
System gefüllt und können vom Benutzer nicht modelliert werden.
Die folgende Tabelle gibt eine Übersicht über die Audit-Merkmale und ihre Werte.
Audit-Merkmale
Merkmal Werte und Beschreibung
● Wenn das Datenaudit aktiv ist, enthält dieses Merkmal den Zeitstempel,
wann die Daten auf der Datenbank gesichert wurden.
● Wenn das Datenaudit inaktiv ist, enthält dieses Merkmal den festen Zeit
stempel, wann das Datenaudit von aktiv auf inaktiv umgeschaltet wurde.
0AMODE Dieses Merkmal enthält den Audit-Modus. Zulässige Werte sind die folgenden:
● WHM: Dieser Wert wird im Lademodus verwendet, d.h. wenn die Daten
durch das Laden von Requests in den InfoProvider kommen.
● PLAN: Dieser Wert wird im Planmodus verwendet, d.h. wenn die Daten aus
der Planung kommen.
● OFF: Dieser Wert wird verwendet, wenn das Datenaudit auf inaktiv gesetzt
ist.
0AUSER Dieses Merkmal enthält den Namen des Benutzers, der das Sichern-Ereignis ver
anlasst hat.
● Wenn das Datenaudit aktiv ist, enthält dieses Merkmal den Inhalt des ABAP-
Systemfeldes SY-UNAME.
● Wenn das Datenaudit inaktiv ist, ist dieses Merkmal leer.
0ASOURCE Dieses Merkmal enthält in bestimmten Fällen den Namen der Quelle der Daten
änderung zum Zeitpunkt des Sicherns.
● Wenn das Datenaudit aktiv ist und die Daten aus der Planung kommen
(Planmodus), enthält dieses Merkmal den Name der Query oder der Pla
nungsfunktion, sofern diese eindeutig sind.
Hinweis
Falls dieses Feld den Namen einer vom System erzeugten Standardqu
ery enthält und dieser Name mit einem ‚!‘ beginnt, wird dieses Zeichen
durch ein ‚$‘-Zeichen ersetzt.
Weitere Informationen
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 161
1.11.2 Audit-Query
Das folgende Beispiel zeigt, wie Sie eine eingabebereite Query und eine entsprechende Audit-Query definieren.
Eine Audit-Query können Sie entweder so ausführen, dass Sie die Änderungen nachvollziehen können, oder so,
dass Sie die Deltawerte sehen.
In dem folgenden Beispiel hat der Benutzer zunächst Werte über die eingabebereite Query in ein Data Mart
DataStore-Objekt geschrieben.
Nachfolgend hat der Benutzer in der eingabebereiten Query weitere Änderungen vorgenommen und jeweils
sofort gesichert. Es handelt sich um folgende Änderungen:
1. Für die Zwischensumme Hardware, Personal Computer wurde der Wert von Sales Quantity von 30 auf 60
geändert.
2. Für die Zwischensumme Hardware, Personal Computer wurde der Wert von Sales von 15.000 auf 20.000
geändert.
Planungskonzepte
162 PUBLIC (ÖFFENTLICH) Planungskonzepte
3. Für die Zwischensumme Hardware, Personal Computer wurde der Wert von Sales Quantity von 60 auf 120
und der Wert von Sales von 20.000 auf 30.000 geändert.
Das folgende Bild zeigt die ausgeführte Query nach den Änderungen:
Die Audit-Query legt man in der Regel auf einen CompositeProvider an, der alle Basis-InfoProvider enthält, die
über eingabebereite Queries oder Planungsfunktionen verändert werden. Wir empfehlen, die Audit-Query
analog zur eingabebereiten Query zu bauen. Zusätzlich sollten jedoch alle Merkmale der Audit-Dimension und
ggf. 0INFOPROV als freie Merkmale verfügbar sein.
In unserem Beispiel wird das Merkmal Request Transaction Sequence Number (0REQTSN) in den Zeilen
aufgerissen. Das Merkmal Product wird aus den Zeilen entfernt, damit man die Änderungen auf der
Zwischensumme einfacher nachvollziehen kann.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 163
Ausführung der Audit-Query ZTSC0H000_Q_AUDIT_00
Wenn man die Audit-Query ausführt, sieht man das folgende Ergebnis: Man kann über das Merkmal 0REQTSN
nachvollziehen, welche Werte der Benutzer der eingabebereiten Query verändert hat; dazu nutzt man die
Eigenschaft Cumulate Values für das Merkmal 0REQTSN in der Querydefinition.
Das folgende Bild zeigt die ausgeführte Audit-Query mit den Änderungen:
Planungskonzepte
164 PUBLIC (ÖFFENTLICH) Planungskonzepte
Wenn die Audit-Query ohne die Eigenschaft Cumulate Values für das Merkmal 0REQTSN ausgeführt wird, kann
man die Änderungen (Deltawerte) nachvollziehen.
Das folgende Bild zeigt die ausgeführte Audit-Query mit den Deltawerten:
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 165
1.12 Sperrkonzept und Sperrverwaltung
Verwendung
Wenn Bewegungsdaten im Änderungsmodus angefordert werden, müssen diese Daten exklusiv für einen
Benutzer gesperrt werden. Die zu sperrenden Datensätze werden durch eine Selektionstabelle beschrieben.
Ein Datensatz wird genau dann durch die Selektionstabelle gesperrt, wenn für jedes Merkmal der
Selektionstabelle der Merkmalswert im Datensatz in der Selektion liegt. Dabei spielt es keine Rolle, ob dieser
Datensatz auf der Datenbank vorhanden ist.
Planungskonzepte
166 PUBLIC (ÖFFENTLICH) Planungskonzepte
Beispiel
Merkmal Merkmalswert
Geschäftsjahr 2006
Produkt P1 - P10
Diese Tabelle beschreibt eine Selektion. Alle Sätze, die in diese Selektion fallen, sind gesperrt. Dazu
gehören z.B.:
Geschäftsjahr Produkt
Aktivitäten
Die Selektionstabellen müssen zentral für alle Benutzer und Applikationsserver abgelegt und verwaltet werden.
Der SAP-Standard-Sperrserver kann keine Sperren verwalten, die auf Selektionstabellen beruhen. Daher sind
hier für die Ablage der Sperren, die durch Selektionstabellen beschrieben werden, SAP BW∕4HANA-spezifische
Einstellungen vorzunehmen.
Die Einstellungen zur SAP BW∕4HANA-Sperrverwaltung sind über den SAP-Referenz-IMG (Transaktionscode
SPRO) oder direkt über die Pflege der Sperreinstellungen für die Planung (Transaktionscode RSPLSE)
zugänglich. Um die Planung zu nutzen, ist ein Sizing der verwendeten Sperrtabelle notwendig. Das Sizing ist
vom Ablageort der Sperrtabelle abhängig.
Weitere Informationen
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 167
1.12.1 Verwalten der Sperreinstellungen
Verwendung
Sie möchten Informationen über die Sperrverwaltung erhalten, um mit entsprechenden Einstellungen darauf
reagieren zu können.
Um in die Sperrserververwaltung zu gelangen, wählen Sie den Transaktionscode RSPLSE. Sie gelangen auf das
Bild Sperreinstellungen Planung anzeigen.
Voraussetzungen
Stellen Sie sicher, dass Sie die notwendigen Berechtigungen besitzen. Für die Anzeige und Änderung der
Sperreinstellungen der Planung gibt es ein entsprechendes Berechtigungsobjekt: S_RS_PLENQ.
Funktionsumfang
Auf den Registerkarten Sperrtabelle und Sperrmerkmale können Sie die gewünschten Änderungen im
Änderungsmodus vornehmen.
Registerkarte: Sperrtabelle
Hier können Sie die Ablage der Sperrtabelle festlegen (siehe Ablegen der Sperrtabelle [Seite 169]).
Achtung
Sie können nur dann vom Anzeigemodus in den Änderungsmodus wechseln, wenn es für keinen Basis-
InfoProvider der Planung aktive Sperren gibt, d.h. wenn für keinen InfoProvider der Datenbasis
Bewegungsdaten einer Planungsanwendung gesperrt sind. Dies soll sicherstellen, dass gesperrte
Bewegungsdaten konsistent bleiben.
Registerkarte: Sperrmerkmale
Hier können Sie festlegen, welche Merkmale für die Sperren relevant sind (siehe Auswahl der Sperrmerkmale
[Seite 171]).
Achtung
Sie können nur dann vom Anzeigemodus in den Änderungsmodus wechseln, wenn es keine aktiven
Sperren für den ausgewählten InfoProvider gibt, d.h. wenn für den jeweiligen InfoProvider der Datenbasis
keine Bewegungsdaten über eine Planungsanwendung gesperrt sind.
Hinweis
Die Sperrmerkmale liegen in der Tabelle RSPLS_CHAS_LOCK. Diese Einstellungen lassen sich
transportieren, indem man die Tabelleneinträge direkt in einen Transportauftrag einträgt.
Planungskonzepte
168 PUBLIC (ÖFFENTLICH) Planungskonzepte
Auf den Registerkarten Sperren, Sperrkonflikt und Master-Sperren können Sie sich die entsprechenden
Informationen anzeigen lassen.
Registerkarte: Sperren
Hier können Sie sich anzeigen lassen, welche Sperren für einen bestimmten InfoProvider und Benutzer gesetzt
sind (siehe Anzeige der aktiven Sperren [Seite 172]).
Registerkarte: Sperrkonflikt
Das System zeigt Informationen zum letzten Sperrkonflikt an (siehe Analyse eines Sperrkonfliktes [Seite
175]).
Registerkarte: Master-Sperren
Hier können Sie sich anzeigen lassen, welche Privilegsperren gesetzt sind, und diese ggf. löschen (siehe
Anzeige der Privilegsperren [Seite 173]).
Verwendung
Die Selektionstabellen müssen zentral für alle Benutzer und Applikationsserver abgelegt und verwaltet werden.
Der SAP Standard-Sperrserver kann keine Sperren verwalten, die auf Selektionstabellen beruhen. Daher sind
hier für die Ablage der Sperren, die durch Selektionstabellen beschrieben werden, eigene Einstellungen
vorzunehmen.
In einer Sperrtabelle wird festgehalten, welche Sperren derzeit bestehen. Auf der Registerkarte Sperrtabelle
können Sie festlegen, wo die Sperrtabelle abgelegt werden soll. Es gibt drei Optionen zur Ablage der
Sperrtabelle; je nach der Art der Ablage können Sie einen geeigneten Server auswählen.
Funktionsumfang
Die Selektionstabellen werden komprimiert in der Sperrtabelle des SAP Standard-Sperrservers abgelegt.
Die Kollisionsprüfung von Sperren erfolgt dabei nicht durch den Sperrserver selbst, sondern durch ein ABAP-
Programm. Diese Prüfung erfordert einen Kopiervorgang der Selektionstabellen in den Benutzerkontext. Die
Kollisionsprüfung erfolgt voreingestellt auf dem Server der Anmeldung. Wenn Sie statt dessen einen anderen,
festen Server auswählen, dann wird die Kollisionsprüfung dort mittels RFC-Aufruf durchgeführt.
Dies kann dann sinnvoll sein, wenn der Enqueue-Prozess nicht auf der Zentralinstanz, sondern auf einem
anderen (möglichst schnellen) Server installiert ist, um den Kopiervorgang von Selektionen aus der
Sperrtabelle in den Benutzerkontext eventuell zu beschleunigen. Der Server mit dem Enqueue-Prozess ist in
der Server-Auswahl speziell als solcher gekennzeichnet.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 169
Hinweis
In der SAP-Sperrverwaltung (Transaktionscode SM12) können Sie die komprimierten Sperrsätze über den
Tabellennamen RSPLS_S_LOCK anzeigen lassen; die gesperrten Selektionen selbst finden Sie in der
Transaktion RSPLSE (siehe Anzeige der aktiven Sperren [Seite 172]).
Empfehlung
Diese Option verlangt den geringsten Administrationsaufwand. Sie ist für kleine und mittlere Installationen
geeignet. Die Größe der Sperrtabelle kann über den Profilparameter enque/table_size eingestellt werden.
Ablegen der Sperrtabelle im Shared Object Memory eines Applikationsservers (Voreinstellung des
Systems)
Die Selektionstabellen werden unkomprimiert in einem Shared-Object-Memory-Bereich abgelegt. Dies ist die
Voreinstellung des Systems, es sei denn, Sie verwenden den SAP Standalone Engine Server; dann ist die obige
Option (Ablegen der Sperrtabelle im SAP Standard-Sperrserver) voreingestellt.
Dieser Bereich ist an einen Applikationsserver gebunden. Der SAP Standard-Sperrserver enthält in diesem Fall
nur einen Zeiger (genau einen Sperrsatz pro Selektionstabelle) auf die Selektion. Sie müssen einen Server
angeben, der die Sperrtabelle im Shared Object Memory enthalten und auf dem die Kollisionsprüfung erfolgen
soll. (Voreingestellt ist der Enqueue-Server.) Dadurch ist der Kopiervorgang von Selektionen aus der
Sperrtabelle in den Benutzerkontext nicht mehr notwendig. Wenn Sie auf einem anderen Server angemeldet
sind, dann wird die Kollisionsprüfung dort mittels RFC-Aufruf durchgeführt.
Auch hier kann es sinnvoll sein, den Enqueue-Prozess nicht auf der Zentralinstanz, sondern auf einem
(möglichst schnellen) Server zu installieren. Denn bei einem Sperrvorgang werden die Selektionen im Shared
Object Memory mit den Zeigern im SAP Standard-Sperrserver synchronisiert. Diese Synchronisation geschieht
am schnellsten, wenn der Server mit dem Enqueue-Prozess derselbe wie der mit der Sperrtabelle ist. Daher ist
diese Option in der Regel auch voreingestellt.
Hinweis
In der SAP-Sperrverwaltung (Transaktionscode SM12) finden Sie pro gesperrter Selektion nur einen
Sperrsatz über den Tabellennamen RSPLS_S_LOCK_SYNC; die gesperrten Selektionen selbst finden Sie in
der Transaktion RSPLSE (siehe Anzeige der aktiven Sperren [Seite 172]).
Empfehlung
Diese Option hat eine bessere Performance als das Ablegen der Sperrtabelle im SAP Standard-Sperrserver.
Allerdings muss die Verfügbarkeit des Servers mit der Sperrtabelle sichergestellt werden, wenn
Bewegungsdaten über Selektionen gesperrt werden sollen. Die Größe des Shared Object Memory kann
über den Profilparameter abap/shared_objects_size_MB eingestellt werden.
Planungskonzepte
170 PUBLIC (ÖFFENTLICH) Planungskonzepte
1.12.3 Auswahl der Sperrmerkmale
Verwendung
Auf der Registerkarte Sperrmerkmale können Sie festlegen, welche Merkmale für die Sperrprüfung
herangezogen werden sollen.
● In der Voreinstellung sind zu einem DataMart DataStore-Objekt und einem lokalen Provider im BW
Workspace alle Merkmale und das Kunstmerkmal 1KYFNM für die Sperrprüfung relevant.
● In einem Direct Update DataStore-Objekt sind ebenfalls alle Merkmale in der Voreinstellung für die
Sperrprüfung relevant, das Kunstmerkmal 1KYFNM steht jedoch grundsätzlich nicht zur Verfügung. Das
bedeutet, dass Daten in Direct Update DataStore-Objekten immer unabhängig von den verwendeten
Kennzahlen der Planungsfunktion oder eingabebereiten Query gesperrt werden.
Um die Größe der Sperrtabelle zu verringern, können Sie solche Merkmale, die die Sperrselektionen nicht
separieren können, von der Sperrprüfung ausnehmen. Dazu gehören Merkmale, die für alle Benutzer gleiche
oder überlappende Werte haben.
Wenn kein Merkmal für die Sperren relevant ist, wird der gesamte InfoProvider gesperrt.
Aktivitäten
Beispiel
In einer Kostenstellen-Planung werden meist die Merkmale Geschäftsjahr, Version, Kostenstelle und
Kostenart verwendet. Wenn viele Benutzer für das gleiche Jahr und die gleichen Kostenarten planen,
reichen eventuell die Merkmale Kostenstelle und Version aus, um die Selektionen der verschiedenen
Benutzer überschneidungsfrei zu machen. Legen Sie dann nur diese Merkmale als relevant für die
Sperren fest.
In der Voreinstellung sind Navigationsattribute nicht relevant für die Sperren, d.h. sie sind immer komplett
gesperrt. Um die Selektionstabellen kleiner zu machen, kann es sinnvoll sein, einige Navigationsattribute
relevant für die Sperren zu machen. So könnten Sie z.B. Selektionen über eine Produktgruppe nutzen statt
Selektionen über umfangreiche Listen von Produkten, die zu dieser Produktgruppe gehören.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 171
Hinweis
Der Modus kann über den ok_code EXPERT eingeschaltet und über NOEXPERT wieder ausgestellt werden.
Achtung
Stellen Sie sicher, dass während der Durchführung der Planung keine Werte von Navigationsattributen
geändert werden. Sonst ist es nicht ausgeschlossen, dass verschiedene Benutzer die gleichen Werte des
zugehörigen Basismerkmals bearbeiten und somit beide neue Delta-Sätze schreiben können.
Benutzer 1 plant Produkt P1, welches in der Produktgruppe (Navigationsattribut) PG1 liegt. In der
Selektionstabelle werde PG1 selektiert, auf Produkt liege keine Einschränkung. Wenn über die
Produktgruppe gesperrt wird, kann folgendes passieren. Benutzer 2 plant Produktgruppe PG2: Erst steigt
Benutzer 1 ein, die Daten werden gesperrt. Während dieser Zeit wird das Attribut von Produkt P1 von PG1
auf PG2 geändert. Benutzer 2 steigt dann in die Planung ein. Da jetzt PG2 mit PG1 formal disjunkt ist, gibt
es keinen Sperrkonflikt. Beide Benutzer können aber Kennzahlwerte für Produkt P1 planen.
Verwendung
Auf der Registerkarte Sperren können Sie sich (ähnlich zur SAP-Sperrverwaltung Sperreinträge selektieren,
Transaktionscode SM12) die aktuell gesperrten Selektionen pro InfoProvider und Benutzer ansehen.
Funktionsumfang
Das System zeigt die Kopfeinträge zu jeder gesperrten Selektion an (InfoProvider, Benutzername, Sperrmodus,
Sperrsätze, Sperrhandle). Hierbei sind der Benutzername und die Anzahl der Sätze in dieser gesperrten
Selektion sowie der Sperrmodus interessant.
● E(exclusive): Schreibsperre, die für alle Daten, die im Änderungsmodus bearbeitet werden, verwendet wird;
damit sind die Daten exklusiv für die Bearbeitung durch einen Benutzer geschützt.
● S(shared): Lesesperre, die zur Laufzeit z.B. Referenzdaten für Planungsfunktionen vor Änderungen
schützt.
Hinweis
Tabelle Sperrsätze
Planungskonzepte
172 PUBLIC (ÖFFENTLICH) Planungskonzepte
Das System zeigt die gesperrten Selektionen an. Die Anzeige erfolgt gruppiert nach den Kopfeinträgen
(Sperrhandle), dem Merkmal, der Intervall-Art (Intervall) und der unteren und oberen Intervallgrenze der
Selektion (Merkmalswert intern). Die Selektionen selbst werden in der Sperrtabelle in einer Normalform
dargestellt: Jede Selektion ist pro Merkmal eine disjunkte Vereinigung von offenen, halboffenen oder
abgeschlossenen Intervallen.
Aktivitäten
1. Wählen Sie den InfoProvider aus. Das System ermittelt alle vorhandenen Sperren aus den
planungsrelevanten InfoProvidern, die in diesem InfoProvider (z.B. bei Aggregationsebenen oder
CompositeProvidern) enthalten sind.
2. Wählen Sie den Benutzer aus. Bei der Eingabe sind Wildcards der Form PRE* oder *ABC* erlaubt. Das
System listet die aktiven Sperren in den Tabellen Sperren: Kopfeinträge und Sperrsätze auf.
3. Benachrichtigen Sie die betroffenen Benutzer und löschen Sie ggf. die Sperren.
Hinweis
Wenn Sie aktive Sperren löschen möchten, verwenden Sie die SAP-Sperrverwaltung (Transaktionscode
SM12). Je nach der Ablage der Sperrtabelle müssen Sie eine andere Sperrstruktur auswählen.
○ Sperrtabelle im SAP Sperrserver: Tabellenname RSPLS_S_LOCK.
○ Sperrtabelle im Shared Objects Memory: Tabellenname RSPLS_S_LOCK_SYNC.
In der SAP-Sperrverwaltung (Transaktionscode SM12) sehen Sie allerdings nicht, welche Datensätze
genau gesperrt sind. Dafür verwenden Sie die Pflege der Sperreinstellungen für die Planung
(Transaktionscode RSPLSE).
Verwendung
Mittels der privilegierten Datensperre kann sichergestellt werden, dass umfangreiche Planungssequenzen
nicht wegen Sperrkollisionen mit anderen Benutzern abbrechen. Auf der Registerkarte Master Sperren können
Sie die aktuell gesetzten Privilegsperren anzeigen und ggf. löschen.
Privilegsperren werden zur Laufzeit von Planungssequenzen auf der Ebene der planungsrelevanten
InfoProvider gesetzt, die als Schritte in Prozessketten eingebunden sind. Das System ermittelt vor der
Verarbeitung der Daten alle erforderlichen Selektionen. Für diese Selektionen wird zunächst versucht, eine
normale Sperre zu setzen. Wenn dies möglich ist, werden diese Selektionen als Privilegsperren gesichert, die
normalen Sperren werden danach aufgehoben. Von da an kann kein Benutzer Daten innerhalb dieses Bereichs
ändern.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 173
Die Prozesskette selbst wird im Normalfall im Hintergrund verarbeitet. Einzelne Teilprozesse können sich
gegenüber der Privilegsperre als privilegiert ausweisen, nur diese passieren die Privilegsperre. Während der
Laufzeit der Planungssequenz werden die zu verarbeitenden Daten wie üblich durch normale Sperren
geschützt. Nach Verarbeitung der Daten durch die Prozesskette werden die Privilegsperren wieder aufgehoben.
Integration
Funktionsumfang
Die von einer Prozesskette gesetzten Privilegsperren bekommen ein Sperrhandle zugewiesen. Das System
zeigt die Kopfeinträge zu jeder gesperrten Selektion an ( Sperrhandle, InfoProvider, Prozesskette,
Prozessvariante).
Tabelle Sperrsätze
Das System zeigt die gesperrten Selektionen zu den Sperrhandles an. Die Anzeige erfolgt gruppiert nach den
Kopfeinträgen (Sperrhandle), den zusammengehörigen Selektionen (Nummer der Selektionstabelle), dem
Merkmal, der Intervall-Art (Intervall) und der unteren und oberen Intervallgrenze der Selektion (Merkmalswert
intern). Die Selektionen selbst werden in der Sperrtabelle in einer Normalform dargestellt: Jede Selektion ist
pro Merkmal eine disjunkte Vereinigung von offenen, halboffenen oder abgeschlossenen Intervallen.
Aktivitäten
1. Wählen Sie einen InfoProvider aus. Das System ermittelt alle vorhandenen Privilegsperren aus den
planungsrelevanten InfoProvidern oder Aggregationsebenen und stellt Sie Ihnen in der Übersicht dar.
2. Um eine Privilegsperre zu löschen, löschen Sie die entsprechende Zeile in der Tabelle Master Sperren:
Kopfeinträge.
Hinweis
Auch nach Löschen einer Privilegsperre sind die Bewegungsdaten zur Laufzeit durch normale aktive
Sperren geschützt. Ohne die Privilegsperre aber können ggf. Teile von Planungssequenzen aufgrund
von Sperrkonflikten mit anderen Benutzern nicht ausgeführt werden.
Planungskonzepte
174 PUBLIC (ÖFFENTLICH) Planungskonzepte
1.12.6 Analyse eines Sperrkonfliktes
Verwendung
Auf der Registerkarte Sperrkonflikt zeigt das System die Selektionen zum letzten aufgetretenen Sperrkonflikt
an. Sie erhalten folgende Informationen über den Kontext des Aufrufenden:
● InfoProvider
● Benutzer der Sperranfrage
● Benutzer mit Sperre, d.h. Benutzer der bereits gesperrten Selektion
● Datum und Zeitpunkt der Sperranfrage in Systemzeit
● Ob der Sperrkonflikt mit einer Privilegsperre auftrat ( Master Sperre)
Aktivitäten
Um die Ursache für den Sperrkonflikt zu identifizieren, vergleichen Sie die Selektionen aus den Tabellen
Selektion aus Sperranfrage und Gesperrte Selektion. Der Sperrkonflikt trat dort auf, wo sich die Selektionen
überlappen.
Verwendung
Für einen InfoProvider der Datenbasis der Planung sind für die Dauer einer Sperroperation keine anderen
Zugriffe auf den SAP BW∕4HANA-Sperrserver möglich. Der Sperrserver ist also eine ggf. knappe Ressource.
Daher ist es erforderlich, bei der Implementierung von Planungsanwendungen in einem SAP BW∕4HANA-
System ein Design zu wählen, das die Anzahl und Größe der Selektionen möglichst klein hält. Je kleiner die
Sperrtabelle ist, desto besser sind die Antwortzeiten des Sperrservers.
Sie können die Sperrtabelle dadurch verkleinern, dass Sie Merkmale, die die Selektion nicht separieren, aus der
Liste der für die Sperren relevanten Merkmale eines planungsrelevanten InfoProviders entfernen. Dazu
gehören Merkmale, die für alle Benutzer gleiche oder überlappende Werte annehmen. Weitere Informationen
finden Sie unter Auswahl der Sperrmerkmale [Seite 171].
Die folgenden Abschnitte enthalten Informationen zum Sizing der Sperrtabelle für die Planung. Es wird
erläutert, wie man den benötigten Speicherverbrauch ermitteln und dann die entsprechenden Profilparameter
einstellen kann.
Hinweis
Weitere Informationen über die verschiedenen Möglichkeiten, die Sperrtabelle abzulegen, finden Sie unter
Ablegen der Sperrtabelle [Seite 169].
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 175
Integration
Die aktuell gesetzten Werte können Sie in der Pflege der Profilparameter (Transaktionscode RZ11) anzeigen
lassen.
Funktionsumfang
Die Größe der Sperrtabelle des SAP Standard-Sperrservers kann über den Profilparameter enque/table_size
eingestellt werden.
Die Einstellung enque/table_size = 25.000 sollte für die meisten Systeme ausreichend sein, in denen die
Planung verwendet wird.
Genauer kann die Anzahl der benötigten Sperrsätze wie folgt abgeschätzt werden:
● Die Anzahl der aktiv genutzten planungsrelevanten InfoProvider als Datenbasis sei IC.
● Die durchschnittliche Anzahl der Zeilen in der Selektionstabelle sei Rec. Diese Anzahl können Sie für einen
repräsentativen Benutzer über die Pflege der Sperreinstellungen für die Planung (Transaktionscode
RSPLSE) ermitteln, indem Sie sich auf der Registerkarte Anzeige der aktiven Sperren die gesperrten
Selektionen anzeigen lassen.
● Die Anzahl der Sperranfragen pro Benutzer sei LReq. Diese Anzahl hängt vom Design der
Planungsanwendung ab: Anzahl der eingabebereiten Queries, Anzahl der verwendeten Planungsfunktionen
und wie oft diese Komponenten Daten im Änderungsmodus anfragen.
● Die Anzahl der aktiven Benutzer sei U.
● Der Komprimierungsfaktor für eine Selektionstabelle sei Compr. Dieser Faktor ist zwischen 5 und 10.
Um festzustellen, wie viele Sperrsätze bei dem aktuellen Wert des Profilparameters enque/table_size in der
Sperrtabelle maximal abgelegt werden können, wählen Sie in der SAP-Sperrverwaltung (Transaktionscode
SM12) Zusätze Statistik . Sie finden den Wert in der Zeile Sperreinträge Tabelle, Groesse.
Ablage der Sperrtabelle im Shared Object Memory eines Applikationsservers (Voreinstellung des
Systems)
Die Größe der Sperrtabelle im Shared Object Memory eines Applikationsservers kann über den
Profilparameter abap/shared_objects_size_MB eingestellt werden.
Die Einstellung abap/shared_objects_size_MB = 200 sollte für die meisten Systeme ausreichend sein, in denen
die Planung verwendet wird.
Genauer kann die Anzahl der benötigten Sperrsätze wie folgt abgeschätzt werden:
● Die Anzahl der aktiv genutzten planungsrelevanten InfoProvider als Datenbasis sei IC.
● Die durchschnittliche Anzahl der Zeilen in der Selektionstabelle sei Rec. Die eigentlichen Selektionen liegen
zweimal im Shared Object Memory: einmal optimiert für Suchzugriffe pro Merkmal und einmal optimiert
für Zugriffe pro gesperrter Selektion (Sekundärindex). Die benutzte DDIC-Struktur hat eine Breite von 207
Planungskonzepte
176 PUBLIC (ÖFFENTLICH) Planungskonzepte
Zeichen, also von 207 Byte (bzw. 414 Byte in Unicode-Systemen). Man kann mit etwa 1KByte pro Zeile der
Selektionstabelle rechnen.
● Die Anzahl der Sperranfragen pro Benutzer sei LReq. Diese Anzahl hängt vom Design der
Planungsanwendung ab: Anzahl der eingabebereiten Queries, Anzahl der verwendeten Planungsfunktionen
und wie oft diese Komponenten Daten im Änderungsmodus anfragen.
● Die Anzahl der aktiven Benutzer sei U.
Daraus ergibt sich der benötigte Speicher in Kilobyte durch Multiplikation von NLCK mit dem Faktor 2, denn bei
einer Sperranfrage zieht das System für die Dauer einer Kollisionsprüfung eine Kopie der bereits gesperrten
Selektionen.
Informationen über den aktuell benötigten Speicher für den SAP BW∕4HANA-Sperrserver finden Sie in der
Shared Object Gebietsverwaltung (Transaktionscode SHMA): Rufen Sie diese Transaktion auf dem Server mit
der SAP BW∕4HANA-Sperrtabelle auf; verwenden Sie als Gebiet CL_RSPLS_ENQ_AREA.
Planungskonzepte
Planungskonzepte PUBLIC (ÖFFENTLICH) 177
2 Planungsrelevante Objekte anlegen
Funktionsumfang
Die BW-Modellierungswerkzeugen bieten Ihnen die folgenden Funktionen zur Bearbeitung planungsspezifischer
Metadatenobjekte:
● Aggregationsebenen
● Datenscheiben
● Merkmalsbeziehungen
● Planungsfunktionen
● Planungssequenzen
Für die manuelle Erfassung von Plandaten definieren Sie eine eingabebereiten Query.
Für die Anzeige der planungsspezifischen Metadatenobjekten zu einem bestimmten, im Editor der BW-
Modellierungswerkzeuge geöffneten Objekt verwenden Sie die den Planning View.
Weitere Informationen
Um Daten manuell planen oder über Planungsfunktionen verändern zu können, benötigen Sie einen
planungsspezifischen InfoProvider, die Aggregationsebene. Über die Aggregationsebene legen Sie die
Granularität der Planung fest, indem Sie nur die für die Planung relevanten Merkmale und Kennzahlen des
zugrunde liegenden InfoProviders aufnehmen.
Planungskonzepte
178 PUBLIC (ÖFFENTLICH) Planungsrelevante Objekte anlegen
Voraussetzungen
Sie haben eine SAP HANA-Datenbank im Einsatz. Sie haben die BW-Modellierungswerkzeuge installiert und
konfiguriert.
Sie haben einen für die Planung geeigneten InfoProvider als Grundlage der Aggregationsebene ausgewählt
(siehe Datenbasis InfoProvider [Seite 7]).
Kontext
Sie können mehrere Aggregationsebenen zu einem InfoProvider anlegen und so verschiedene Ebenen der
Planung und z.B. hierarchische Strukturen modellieren. Beachten Sie, dass Aggregationsebenen nicht
geschachtelt werden können.
Vorgehensweise
1. Legen Sie die Aggregationsebene an. Sie können eine Aggregationsebene im Project Explorer View
entweder zu einem BW-Projekt oder zu einer InfoArea anlegen. Außerdem können Sie eine
Aggregationsebene als Kopie einer bestehenden Aggregationsebene anlegen.
a. Wählen Sie aus dem Kontextmenü entweder zu einem BW-Projekt oder zu einer InfoArea New
Aggregation Level , oder wählen Sie aus dem Kontextmenü zu der als Vorlage gewünschten
Aggregationsebene Copy . Sie gelangen auf das Dialogfenster New Aggregation Level. Je nachdem,
welchen Einstieg Sie gewählt haben, hat das System die entsprechenden Objekte bereits
vorausgewählt.
b. In jedem Fall hat das System das aktuelle BW-Projekt vorausgewählt. Über Browse können Sie ggf. ein
anderes BW-Projekt auswählen.
c. Wenn Sie eine Aggregationsebene zu einem BW-Projekt angelegt haben, müssen Sie noch die
gewünschte InfoArea auswählen. Geben sie deren technischen Namen oder einen entsprechenden
Suchbegriff ein. Das System unterstützt Sie bei der Suche des technischen Namens und gibt eine Liste
der Ergebnisse im Bereich Matching items aus.
d. Wenn Sie eine Aggregationsebene zu einer InfoArea angelegt haben, hat das System diese InfoArea
vorausgewählt. Über Browse können Sie ggf. eine andere InfoArea auswählen.
e. Um Ihre Aggregationsebene Ihren lokalen Favoriten hinzuzufügen, wählen Sie Add to Favorites.
f. Geben Sie einen eindeutigen technischen Namen und eine Beschreibung für die Aggregationsebene
ein.
g. Geben Sie den gewünschten, für die Planung geeigneten InfoProvider an. Über Browse können Sie aus
der Liste aller geeigneten InfoProvider auswählen.
h. Wenn Sie eine Aggregationsebene als Kopie zu einer bereits bestehenden Aggregationsebene angelegt
haben, hat das System diese Aggregationsebene (und den ihr zugrundeliegenden InfoProvider)
vorausgewählt. Über Browse können Sie ggf. eine andere Aggregationsebene als Vorlage auswählen.
i. Wählen Sie Finish.
Das System öffnet die neue Aggregationsebene im nativen Eclipse-Editor. Sie gelangen auf die
Registerkarte General mit den bisher festgelegten Eigenschaften der Aggregationsebene.
Planungskonzepte
Planungsrelevante Objekte anlegen PUBLIC (ÖFFENTLICH) 179
2. Wählen Sie die Registerkarte Output. Sie gelangen zur Anzeige der Definition der Aggregationsebene.
Wenn Sie eine neue Aggregationsebene anlegen, ist der Bereich Provider Fields leer.
Wenn Sie eine Aggregationsebene als Kopie zu einer bestehenden Aggregationsebene angelegt haben,
zeigt das System im Bereich Provider Fields die ausgewählten Felder der zugrundeliegenden
Aggregationsebene.
3. Legen Sie fest, welche Merkmale und Kennzahlen in der Aggregationsebene zur Verfügung stehen sollen.
a. Wechseln Sie vom Project Explorer View zum InfoProvider View. Das System zeigt den der
Aggragationsebene zugrundeliegenden InfoProvider an.
b. Wählen Sie aus dem InfoProvider View die gewünschten Merkmale und Kennzahlen aus, und ziehen
Sie diese per Drag&Drop in die Definition der Aggregationsebene.
Per Klick auf ein Providerfeld zeigt das System im rechten Bildbereich die Eigenschaften des Objektes
an.
Per Klick auf den Link zum assoziierten Objekt öffnet das System die Anzeige des Objektes in einem
neuen Fenster.
Hinweis
Die in der Aggregationsebene enthaltenen Kennzahlen werden über die nicht in der
Aggregationsebene enthaltenen Merkmale verdichtet.
c. Wenn Sie ein InfoObject entfernen möchten, wählen Sie aus dem Kontextmenü Remove...
4. Sichern Sie die Definition der Aggregationsebene.
○ Wenn Sie Sichern wählen, sichert das System die aktuelle Definition der Aggregationsebene als M-
Version.
○ Wenn Sie Aktivieren wählen, prüft das System die aktuelle Definition der Aggregationsebene und
sichert sie ggf. als A-Version. Das Ergebnis der Prüfung erscheint im Problems View.
Nach dem Aktivieren steht die Aggregationsebene für die weitere Verwendung zur Verfügung.
Weitere Informationen
Mit Hilfe von Datenscheiben schützen Sie zentral Daten eines Basis-InfoProviders gegen Änderungen.
Planungskonzepte
180 PUBLIC (ÖFFENTLICH) Planungsrelevante Objekte anlegen
Voraussetzungen
Sie haben den gewünschten Basis-InfoProvider, also ein DataStore-Objekt mit dem Kennzeichen Planning
Mode, gewählt. Beachten Sie, dass dieses einen aktiven Object State und Version State hat.
Wenn Sie mit einer Exit-Klasse arbeiten möchten, benötigen Sie ein ABAP-in-Eclipse-Projekt.
Kontext
Wenn Sie mit Hilfe von Datenscheiben Daten eines Basis-InfoProviders zentral gegen Änderungen, schützen,
wirkt sich dies auf alle InfoProvider der Planung aus, die diesen InfoProvider enthalten; es wirkt sich auch auf
alle eingabebereiten Queries und Planungsfunktionen aus, die diesen InfoProvider verwenden.
Vorgehensweise
1. Um eine Datenscheibe anzulegen, wählen Sie auf der Registerkarte General im Bildbereich Modeling
Properties den entsprechenden Link neben dem Feld Planning Mode.
Wenn es bereits eine Datenscheibe zu dem InfoProvider gibt, können Sie aus dem Kontextmenü des
gewünschten InfoProviders Open Data Slices wählen.
2. Wenn Sie eine neue Datenscheibe anlegen, müssen Sie zuerst den relevanten Transportauftrag zuweisen.
○ Wenn das Transportwesen in Ihrem System aktiv ist, gelangen Sie auf ein Dialogfenster zur Auswahl
des Transportauftrages. Wählen Sie den relevanten Transportauftrag aus.
○ Wenn das Transportwesen in Ihrem System nicht aktiv ist, sichert das System im Hintergrund
automatisch auf $TMP.
3. Sie gelangen auf die Registerkarte Data Slices. Im Bildbereich Data Slices sehen Sie alle ggf. bereits
vorhandenen Datenscheiben. Um Änderungen vorzunehmen, markieren Sie die gewünschte Datenscheibe.
4. Wenn Sie eine neue Datenscheibe anlegen möchten und diese auf einer Selektion beruhen soll, wählen Sie
Add Selection. Sie gelangen auf das Dialogfenster Edit Selection.
1. Markieren Sie das jeweils einzuschränkende Merkmal und übernehmen Sie es per Doppelklick oder
per Drag&Drop in die Spalte Selection Details.
2. Wählen Sie aus dem Kontextmenü zu dem Merkmal Restrict. Sie gelangen auf das Dialogfenster Edit
Filter. Schränken Sie das Merkmal ein:
○ auf einen einzelnen Merkmalswert
○ auf ein Merkmalswertintervall
○ auf variable Merkmalswerte
○ auf einem bestimmten Hierarchieknoten
○ auf einen variablen Hierarchieknoten
3. Wählen Sie OK.
4. Geben Sie der Datenscheibe im Bildbereich General eine Beschreibung.
5. Wenn Sie eine neue Datenscheibe anlegen möchten und diese auf einer Exit-Klasse beruhen soll, wählen
Sie Add user exit. Sie gelangen auf das Dialogfenster Edit Selection.
Planungskonzepte
Planungsrelevante Objekte anlegen PUBLIC (ÖFFENTLICH) 181
1. Markieren Sie das jeweils einzuschränkende Merkmal und übernehmen Sie es per Doppelklick oder
per Drag&Drop in die Spalte Selection Details.
Hinweis
Nur für diese Merkmale erhalten Sie die aktuellen Werte im Exit. Wenn Sie auch an Initialwerten im
Exit interessiert sind, setzen Sie im Bildbereich Selection das Kennzeichen in der Spalte # is Used.
2. Wählen Sie die gewünschte Exit-Klasse. Es steht eine Werthilfe zur Verfügung.
Hinweis
Die Exit-Klasse muss das Interface 'IF_RSPLS_DS_EXIT' implementieren; in der Pflege werden nur
solche Klassen zur Bearbeitung angeboten. Wir empfehlen, dass die Kundenklasse von der
Vorlageklasse 'CL_RSPLS_DS_EXIT_BASE' erbt. Die Vorlageklasse selbst ist direkt lauffähig, führt
jedoch noch keine Aktion aus. Reimplementieren Sie die Methode 'IS_PROTECTED'. Beachten Sie
auch den auskommentierten Beispiel-Quelltext in der Vorlageklasse; dort wird z.B. eine
Infrastruktur für eine Pufferung angeboten.
Hinweis
Wenn dieses Kennzeichen für ein Merkmal nicht gesetzt wird, wird der Exit z.B. nicht für diejenigen
Aggregationsebenen aufgerufen, die dieses Merkmal nicht enthalten, da der betreffende
Merkmalswert in diesen Fällen initial wäre.
6. Ordnen Sie die Schritte in der gewünschten Reihenfolge, indem Sie sie mit Up oder Down in der Liste nach
oben oder unten verschieben.
7. Setzen Sie das Kennzeichen Active für diejenigen Schritte, die berücksichtigt werden sollen.
8. Entfernen Sie einen Schritt, der nicht benötigt wird, über Remove.
Kontext
Sie haben den gewünschten Basis-InfoProvider, also ein DataStore-Objekt mit dem Kennzeichen Planning
Mode, gewählt. Beachten Sie, dass dieses einen aktiven Object State und Version State hat.
Planungskonzepte
182 PUBLIC (ÖFFENTLICH) Planungsrelevante Objekte anlegen
Vorgehensweise
1. Um eine Merkmalsbeziehung anzulegen, wählen Sie auf der Registerkarte General im Bildbereich Modeling
Properties den entsprechenden Link neben dem Feld Planning Mode.
Wenn es bereits eine Merkmalsbeziehung zu dem InfoProvider gibt, können Sie aus dem Kontextmenü des
gewünschten InfoProviders Open Characteristic Relation wählen.
2. Wenn Sie eine neue Merkmalsbeziehung anlegen, müssen Sie zuerst den relevanten Transportauftrag
zuweisen.
○ Wenn das Transportwesen in Ihrem System aktiv ist, gelangen Sie auf ein Dialogfenster zur Auswahl
des Transportauftrages. Wählen Sie den relevanten Transportauftrag aus.
○ Wenn das Transportwesen in Ihrem System nicht aktiv ist, sichert das System im Hintergrund
automatisch auf $TMP.
3. Sie gelangen auf die Registerkarte General Settings der Merkmalsbeziehung. Auf dieser Registerkarte
können Sie für den gewählten InfoProvider zentrale Einstellungen vornehmen, die im ganzen
Planungsmodell gelten, soweit dieses auf diesem InfoProvider beruht.
4. Wählen Sie die Registerkarte Characteristic Relations. Im Bildbereich Relations können Sie über die
entsprechenden Drucktasten Merkmalsbeziehungen vom Typ DSO, Exit Class, Attribute oder Hierarchy
hinzufügen, nach oben oder unten verschieben oder auch wieder entfernen.
5. Wählen Sie den Typ der Merkmalsbeziehung aus.
6. Wählen Sie die Basis der Merkmalsbeziehung aus.
Weitere Informationen
Planungskonzepte
Planungsrelevante Objekte anlegen PUBLIC (ÖFFENTLICH) 183
2.3.1 Registerkarte General Settings
Auf dieser Registerkarte können Sie für den gewählten InfoProvider zentrale Einstellungen vornehmen, die im
ganzen Planungsmodell gelten, soweit dieses auf diesem InfoProvider beruht.
Im Anzeigemodus können Sie sich einen Überblick über die im System vorhandenen Einstellungen
verschaffen.
1. Im Bildbereich Key Date können Sie abweichend vom Standardwert ein fixes Datum oder einen
Variablenwert als Standardstichtag festlegen. Dieser Stichtag wird in allen zeitabhängigen Objekten der
Planung verwendet, etwa in Merkmalsbeziehungen, Datenscheiben und im Planungspuffer (Werte
zeitabhängiger Navigationsattribute).
2. Im Feld Maximum Number of Created Combinations können Sie die Anzahl der Kombinationen festlegen,
die das System für den gewählten InfoProvider maximal erzeugen soll.
3. Im Bildbereich Save Plan Data können Sie festlegen, ob das System die Daten des gewählten InfoProviders
vor dem Sichern mittels einer Planungssequenz auf ihre Gültigkeit prüfen und auf welcher Grundlage
geänderte Daten gelesen werden sollen.
○ Im Feld Planning Sequence When Saving können Sie die Planungssequenz angeben, die die zu
sichernden Daten dieses InfoProviders prüft. Über Browse steht eine Wertehilfe zur Verfügung.
Wenn die Planungssequenz einen Fehler meldet, werden die Daten nicht gesichert.
○ Sie können festlegen, welche Daten die Planungsfunktion verarbeitet. Diese Daten werden über die
Filter beschrieben, die in der Planungssequenz hinterlegt sind. Mit der Einstellung Only Read Changed
Data werden diese Filter zur Laufzeit der Sequenz jedoch so angepasst, das sie eine möglichst kleine
Obermenge der Daten beschreiben, die in der User Session verändert und noch nicht auf der
Datenbank gespeichert wurden. Diese Einstellung ist ggf. performancerelevant, da im Allgemeinen
weniger Datensätze verarbeitet werden.
Only Read Changed Data ist performancerelevant.
○ Im Feld Aggregation Level For Reading Changed Data Only können Sie diejenige Aggregationsebene
angeben, über die die geänderten Daten gelesen werden sollen. Über Browse steht eine Wertehilfe zur
Verfügung.
Auf dieser Registerkarte können Sie abhängig vom jeweiligen Typ der Merkmalsbeziehung Einstellungen
vornehmen.
Abhängig von Ihrer Auswähl im Feld Derivation können Sie entweder Prüfmerkmale in der Tabelle Used
Characteristics oder die Quell- und Zielmerkmale in den Tabellen Source und Target auswählen:
● Wenn Sie keine Ableitung gewählt haben, können Sie Prüfmerkmale auswählen.
● Wenn Sie mit Ableitung gewählt haben, können Sie Quell- und Zielmerkmale auswählen und diese
entweder über die Drucktasten Add und Remove oder per Drag&Drop zwischen den beiden Tabellen hin-
und herschieben.
Planungskonzepte
184 PUBLIC (ÖFFENTLICH) Planungsrelevante Objekte anlegen
Typ Attribut
Als Zielmerkmal sind die Attribute des Basismerkmals auswählbar. Die vorhandenen Kombinationen aus
Merkmals- und Attributswerten werden als zulässige Kombinationen interpretiert.
Beispiel
Wenn Sie ein anderes Basismerkmal verwenden möchten, löschen Sie die aktuelle Merkmalsbeziehung und
legen eine neue mit dem gewünschten Basismerkmal an.
Typ Hierarchie
Als Quell- bzw. Zielmerkmale sind alle Merkmale verfügbar, die in der InfoObject-Pflege als Externe Merkmale in
Hierarchie festgelegt wurden. Die Hierarchie muss neben dem Hierarchiebasismerkmal mindestens ein
weiteres Merkmal enthalten.
Als Quell- bzw. Zielmerkmal ist jeweils nur ein Merkmal erlaubt (hierbei werden die übergeordneten Merkmale
bei geklammerten Merkmale nicht mitgezählt).
Die zulässigen Kombinationen werden aus der Hierarchiestruktur entnommen. Dieselbe Hierarchie kann in
mehreren Relationen verwendet werden: In einem Schritt leitet man aus dem Hierarchiebasismerkmal ein
Merkmal auf der nächst höheren Ebene ab; in einem zweiten Schritt aus diesem Merkmal, dann wieder ein
Merkmal aus der nächsten Ebene.
Wenn die Hierarchie versions- und/oder zeitabhängig ist, können Sie auch vom Basismerkmal abweichende
Einstellungen zur Version und/oder zum Stichtag vornehmen. Dafür können die verwendeten Hierarchien auch
mit den passenden Variablen parametrisiert werden.
In einer bereits angelegten Merkmalsbeziehung können Sie das Basismerkmal nicht ändern, aber Sie können
eine andere Hierarchie auswählen. Auswählbar sind alle Hierarchien zu dem Basismerkmal. Wenn Sie ein
anderes Basismerkmal verwenden möchten, löschen Sie die aktuelle Merkmalsbeziehung und legen eine neue
mit dem gewünschten Basismerkmal an.
Typ DataStore-Objekt
Die im DataStore-Objekt enthaltenen Datensätze legen die gültigen Merkmalskombinationen fest bzw. dienen
zur Merkmalsableitung.
Nur Kombinationsprüfung: Sie können alle InfoObjects des DataStore-Objektes (außer Kennzahlen)
auswählen. Wenn Sie das Kennzeichen With Subsets setzen, wird die Relation auch dann angewendet, wenn
eine nicht-leere Teilmenge von Merkmalen der Relation in der Aggregationsebene vorkommt. Die Relation
definiert dann genau die Kombinationen des DataStore-Objekts als gültig, die durch Projektion der Sätze des
DataStore-Objekts auf die Teilmenge entstehen. Wir empfehlen, alle Merkmale im Schlüssel des DataStore-
Objektes entweder in die Merkmalsbeziehung aufzunehmen oder durch einen Einzelwert als Einschränkung in
der Relation festzulegen.
Planungskonzepte
Planungsrelevante Objekte anlegen PUBLIC (ÖFFENTLICH) 185
Mit Ableitung: Als Quellmerkmale können Sie die Schlüssel des DataStore-Objektes auswählen. Als
Zielmerkmale stehen die InfoObjects aus dem Datenteil des DataStore-Objektes (außer Kennzahlen) zur
Auswahl. Jedes ausgewählte Merkmal darf nur in einer der beiden Tabellen vorkommen.
Die Schlüssel des DataStore-Objektes können mit einer Einschränkung versehen werden. Wenn Sie in der
Tabelle Restriction Einschränkungen hinterlegen, zieht das System dann den durch diese Einschränkungen
festgelegten Teil zur Kombinationsprüfung bzw. Ableitung heran. Sie können die Einschränkungen auch mit
Variablen parametrisieren, die dann aber ohne Dialog ersetzbar sein müssen.
Hinweis
Beachten Sie, wenn Sie ein geklammertes Merkmal einschränken, braucht der Klammervater nicht in die
Tabelle Restriction aufgenommen zu werden.
Typ Exit
Die gültigen Merkmalskombinationen bzw. ableitbaren Merkmalswerte ergeben sich aus der
kundenspezifischen Implementierung der angegebenen Exit-Klasse. Über den Link Exit Class gelangen Sie zur
Auswahl eines ABAP-in-Eclipse-Projektes, in dem Sie dann die Exit-Klasse anzeigen und ändern können.
Die Exit-Klasse muss das Interface IF_RSPLS_CR_EXIT implementieren; in der Pflege werden nur solche
Klassen zur Bearbeitung angeboten. Wir empfehlen, die eigene Klasse von der Beispielklasse
CL_RSPLS_CR_EXIT_BASE abzuleiten. Sie müssen dann nur die Methoden CHECK, DERIVE und ggf. CREATE
implementieren. Die Klasse CL_RSPLS_CR_EXIT_BASE selbst ist direkt lauffähig, führt jedoch noch keine
Aktion aus.
Nicht vergessen
Beachten Sie dort auch die Dokumentation zu den Attributen und Methoden der Klasse in der Transkation
SE24. Wenn Sie Zugriffe auf die bereits gelesenen Datensätze in den Methoden CHECK, DERIVE, CREATE
puffern möchten, können Sie diese Aufgabe dem System übertragen und müssen dies nicht im Exit
implementieren. Dazu setzen Sie im CONSTRUCTOR der Exit-Klasse das Attribut N_USE_EXTERNAL_BUFFER
im Interface IF_RSPLS_CHAR_RELATION. Beachten Sie weiterhin, dass Sie die Methode CREATE in jedem
Fall implementieren sollten, denn das System ruft diese Methode immer dann auf, wenn auf der Grundlage
von Merkmalsbeziehungen für die Merkmale der Relation Kombinationen erzeugt werden sollten, etwa in
eingabebereiten Queries (Zugriffsart für Ergebniswerte, Wertehilfe im dynamischen Filter oder in neuen
Zeilen) und in einigen Planungsfunktionstypen.
Sie können für Ihre Merkmalsbeziehung die Exit-Klasse auch im Nachhinein wechseln, da die Liste der
Merkmale aus dem zugrundeliegenden InfoProvider davon unabhängig ist. Sie können alle Merkmale und
geklammerten Merkmale aufnehmen.
Hinweis
Beachten Sie, wenn zwei geklammerte Merkmale ein und denselben Klammervater haben und das eine in
die Tabelle Source aufgenommen wird und das andere in die Tabelle Target, so wird der Klammervater in die
Tabelle Source aufgenommen.
Planungskonzepte
186 PUBLIC (ÖFFENTLICH) Planungsrelevante Objekte anlegen
Weitere Informationen
Merkmalsbeziehungen [Seite 9]
Merkmalsbeziehung anlegen [Seite 182]
Planungsfunktionen dienen der Planung zur systemgestützten Bearbeitung bzw. Erzeugung von Daten. Um
eine Planungsfunktion verwenden zu können, definieren Sie den Typ der Planungsfunktion und die
Aggregationsebene, auf der die Planungsfunktion arbeiten soll. Weiterhin können Sie die
Merkmalsverwendung, die Bedingungen und die zugehörigen Parametersätze festlegen.
Voraussetzungen
Kontext
Sie können Planungsfunktionen anlegen, kopieren, löschen, ändern, prüfen und sichern.
Vorgehensweise
1. Sie befinden sich im Project Explorer. Wählen Sie aus dem Kontextmenü zu einer InfoArea Ihres Projektes
New Planning Function . Sie gelangen auf ein Dialogfenster zum Anlegen einer Planungssequenz.
2. Geben Sie einen Namen und eine Beschreibung ein.
3. Wählen Sie die Aggregationsebene aus, auf der die Planungsfunktion angelegt werden soll. Es steht eine
Wertehilfe zur Verfügung.
4. Wählen Sie den Standard-Planungsfunktionstyp aus, den die Planungsfunktion soll. Es steht eine
Wertehilfe zur Verfügung.
5. Über Copy from können Sie eine Planungsfunktion als Vorlage verwenden. Es steht eine Wertehilfe zur
Verfügung.
Planungskonzepte
Planungsrelevante Objekte anlegen PUBLIC (ÖFFENTLICH) 187
6. Wählen Sie Finish. Sie gelangen in die Pflege der Planungsfunktion auf die Registerkarte General. Im
Bildbereich General sehen Sie den technischen Namen, die Beschreibung, den Namen der
zugrundeliegenden Aggregationsebene, den gewählten Planungsfunktionstyp und einen Hilfetext. Diesem
können Sie entnehmen, was die Funktion leistet und wie Sie sie weiter gestalten können.
7. Im Bildbereich Characteristic Usage (Merkmalsverwendung) sehen Sie alle zur verfügung stehenden
Merkmale. Wählen Sie diejenigen Merkmale aus, die verändert werden sollen,und diejenigen, die in die
Bedingung eingehen sollen.
8. Wechseln Sie auf die Registerkarte Parameters.
Diese Registerkarte wird immer angezeigt, auch wenn der Planungsfunktionstyp keine Parameter hat.
9. Im Bildbereich Conditions können Sie Bedingungen hinzufügen,bearbeiten, duplizieren, entfernen und ihre
Reihenfolge verändern.
10. Im Bildbereich Parameters können Sie die Parameter spezifisch für den jeweiligen Planungsfunktionstyp
definieren.
11. Prüfen Sie die Planungsfunktion.
Beim Prüfen müssen für vorhandene eingabepflichtige Variablen, für die in der aktuellen Sitzung noch
keine Werte gewählt wurden, Werte angegeben werden. Dazu erscheint in diesen Fällen ein Eingabefenster.
12. Sichern Sie die Planungsfunktion.
Planungsfunktionen können auch dann gesichert werden, wenn sie nicht konsistent sind.
13. Führen Sie die Planungsfunktion aus.
Um eine Planungsfunktion ausführen zu können, müssen Sie diese zunächst in eine Planungssequenz
einbinden. Vor dem Ausführen der Planungsfunktion prüft das System stets, ob die Planungsfunktion
konsistent ist.
Weitere Informationen
Mit Hilfe einer Planungssequenz können Sie Planungsfunktionen gruppieren, in einer sortierten Reihenfolge
abspeichern und die gesamte Gruppe sortiert ausführen. Sie können auch Schritte zur manuellen
Dateneingabe in eine Planungssequenz einfügen.
Voraussetzungen
Planungskonzepte
188 PUBLIC (ÖFFENTLICH) Planungsrelevante Objekte anlegen
Kontext
Sie können eine Planungssequenz anlegen, ändern, ausführen sowie mit allen Unterelementen kopieren.
Vorgehensweise
1. Sie befinden sich im Project Explorer. Wählen Sie aus dem Kontextmenü zu Ihrem Projekt oder zu einer
InfoArea Ihres Projektes New Planning Sequence... . Sie gelangen auf ein Dialogfenster zum Anlegen
einer Planungssequenz.
2. Wenn Sie die Planungssequenz zu einem Projekt anlegen, müssen Sie jetzt die gewünschte InfoArea
auswählen. Es steht eine Wertehilfe zur Verfügung.
3. Geben Sie einen Namen und eine Beschreibung ein.
4. Über Copy from können Sie eine Planungssequenz als Vorlage verwenden. Es steht eine Wertehilfe zur
Verfügung.
5. Wählen Sie Finish. Sie gelangen in die Pflege der Planungssequenz auf die Registerkarte Steps.
6. Wenn Sie einen Schritt hinzufügen möchten, wählen Sie Add. Sie gelangen auf das Dialogfenster Add
Planning Sequence Step.
7. Wählen Sie den Typ des Schrittes aus: Planning Function oder Manual Input.
8. Wählen sie die zugrundeliegende Aggregationsebene aus.
Achtung
Wenn Sie einen Schritt auf einer Aggregationsebene definiert haben, empfehlen wir nicht, die
Aggregationsebene zu ändern. Falls dies nötig sein sollte, entfernen Sie den Schritt und legen Sie einen
neuen Schritt auf der Grundlage der gewünschten Aggregationsebene an.
9. Um den Schritt in Ihre Planungssequenz zu übernehmen, wählen Sie OK. Sie gelangen auf die
Registerkarte Steps zurück.
10. Wählen Sie im Bildbereich General den gewünschten Filter und ggf. die Planungsfunktion aus. Zur Auswahl
stehen diejenigen Objekte, die für die gewählte Aggregationseben zur Verfügung stehen. Gemeint sind hier
also die (wiederverwendbaren) Filter.
Wenn Sie einen Schritt vom Typ Manual Input anlegen, müssen Sie einen Filter definieren. Andernfalls
erhalten Sie eine Fehlermeldung.
Wenn Sie Änderungen an einer Planungsfunktion vornehmen möchten, klicken Sie auf den Link Planning
Function im Bildbereich General. Sie gelangen in den SAP GUI zur Bearbeitung von Planungsfunktionen.
Im Bildbereich General stehen Ihnen zwei weitere global für die ganze Planungssequenz geltende
Einstellungen zur Vefügung:
○ Reprocess Variables: Wenn Sie diese Option wählen, werden die Variablen vor dem Ausführen neu
prozessiert.
○ No Data Slice Check: Wenn Sie diese Option wählen, berücksichtigt die Planungssequenz zur
Ausführungszeit keine Datenscheiben. Dies kann für spezielle Fälle interessant sein. Beachten Sie,
dass andere Benutzer und in anderen Sessions die Datenscheiben aber weiterhin gültig sind.
11. Gestalten Sie Ihre Planungssequenz:
Planungskonzepte
Planungsrelevante Objekte anlegen PUBLIC (ÖFFENTLICH) 189
○ Über Duplicate können Sie einen Schritt kopieren (und dann ggf. ändern).
○ Über Up können Sie einen Schritt nach oben verschieben. Er wird dann früher ausgeführt.
○ Über Down können Sie einen Schritt nach unten verschieben. Er wird dann später ausgeführt.
○ Über Remove können Sie einen Schritt entfernen.
12. Wenn Sie die Planungssequenz definiert haben, können Sie diese ausführen. Wählen Sie dazu aus der
Funktionsleiste Execute Planning Sequence. Sie gelangen in den SAP GUI im Anzeigemodus. Hier können
Sie die Planungssequenz schrittweise oder insgesamt ausführen.
Hinweis
Beachten Sie, dass Schritte vom Typ Manual Input bei der Ausführung nicht berücksichtigt werden.
13. Um die Planungssequenz mit all ihren Unterelementen (Filtern und Planungsfunktionen) zu kopieren,
wählen Sie aus der Funktionsleiste Deep Copy of Planning Sequence. Sie gelangen in den SAP GUI im
Anzeigemodus. Hier können Sie auswählen, welche Unterelemente kopiert werden sollen. Standardmäßig
erhalten die kopierten Elemente im technischen Namen den Präfix CP_ und in der Beschreibung Copy
of .
Hinweis
Planungskonzepte
190 PUBLIC (ÖFFENTLICH) Planungsrelevante Objekte anlegen
Ausschlussklauseln und rechtliche Aspekte
Hyperlinks
Einige Links werden durch ein Symbol und/oder einen Quick-Info-Text klassifiziert. Über diese Links erhalten Sie weitere Informationen.
Informationen zu den Symbolen:
● Links zum Symbol : Sie rufen eine Website auf, die nicht von SAP gehostet wird. Durch die Nutzung solcher Links stimmen Sie Folgendem zu (sofern sich
nicht aus Ihren Vereinbarungen mit SAP etwas anderes ergibt):
● Der Inhalt der verlinkten Site ist keine SAP-Dokumentation. Basierend auf diesen Informationen ergibt sich für Sie keinerlei Produkthaftungsanspruch
gegen SAP.
● Weder widerspricht SAP dem Inhalt auf der verlinkten Site noch stimmt SAP ihm zu. Außerdem übernimmt SAP keine Gewährleistung für dessen
Verfügbarkeit und Richtigkeit. SAP übernimmt keine Haftung für Schäden, die durch die Nutzung solchen Inhalts verursacht wurden, es sei denn, dass
diese Schäden von SAP grob fahrlässig oder vorsätzlich verursacht wurden.
● Links zum Symbol : Sie verlassen die Dokumentation für das jeweilige SAP-Produkt oder den jeweiligen SAP-Service und rufen eine von SAP gehostete
Website auf. Durch die Nutzung solcher Links stimmen Sie zu (sofern sich nicht aus Ihren Vereinbarungen mit SAP etwas anderes ergibt), dass sich basierend
auf diesen Informationen für Sie keinerlei Produkthaftungsanspruch gegen SAP ergibt.
Beispielcode
Bei dem Quelltext und/oder den Code-Snippets handelt es sich ausschließlich um beispielhafte Darstellungen. Sie sind nicht zur Nutzung in einem Produktivsystem
vorgesehen. Der Beispielcode dient ausschließlich dem Zweck, Syntax- und Verphrasungsregeln besser zu erläutern und zu visualisieren. SAP übernimmt keine
Gewährleistung für die Richtigkeit und Vollständigkeit des Beispielcodes. SAP übernimmt keine Haftung für Fehler oder Schäden, die durch die Nutzung des
Beispielcodes verursacht wurden, es sei denn, dass diese Fehler oder Schäden von SAP grob fahrlässig oder vorsätzlich verursacht wurden.
Geschlechtsneutrale Sprache
Sofern möglich, wird geschlechtsneutral formuliert. Je nach Kontext und zur besseren Lesbarkeit kann SAP die männliche Flexionsform verwenden, um sich auf alle
Geschlechter zu beziehen.
Planungskonzepte
Ausschlussklauseln und rechtliche Aspekte PUBLIC (ÖFFENTLICH) 191
www.sap.com/contactsap
Die vorliegenden Unterlagen werden von der SAP SE oder einem SAP-
Konzernunternehmen bereitgestellt und dienen ausschließlich zu
Informationszwecken. Die SAP SE oder ihre Konzernunternehmen
übernehmen keinerlei Haftung oder Gewährleistung für Fehler oder
Unvollständigkeiten in dieser Publikation. Die SAP SE oder ein SAP-
Konzernunternehmen steht lediglich für Produkte und Dienstleistungen
nach der Maßgabe ein, die in der Vereinbarung über die jeweiligen
Produkte und Dienstleistungen ausdrücklich geregelt ist. Keine der hierin
enthaltenen Informationen ist als zusätzliche Garantie zu interpretieren.
Zusätzliche Informationen zur Marke und Vermerke finden Sie auf der
Seite https://www.sap.com/germany/about/legal/trademark.html.