Show TOC Anfang des Inhaltsbereichs

HintergrunddokumentationInverse Formel zur Laufzeit  Dokument im Navigationsbaum lokalisieren

Im folgenden werden die Laufzeitaspekte inverser Formeln erläutert. Wir setzen voraus, dass Sie eingabebereite und inverse Formeln im Query Designer anlegen können (siehe Eingabebereite Query, Beispiele: Inverse Formel sowie Inverse Formel definieren).

Hinweis

Beispiele, die die Laufzeitaspekte inverser Formeln verdeutlichen, finden Sie unter Beispiele: Inverse Formel zur Laufzeit sowie im SAP-Hinweis 1236347.

Eingabebereite Formeln können Sie sowohl im SAP BusinessObjects Analysis, edition for Microsoft Office (version 1.1), als auch im BEx Analyzer und im BEx Web Analyzer verwenden.

Achtung

Beachten Sie, dass das Fixieren von Zellen allerdings nur im BEx Web Analyzer möglich ist.

Eingabebereitschaft von Formeln

Formeln erben ihre Eingabebereitschaft von ihren Operanden: Wenn Sie im Query Designer 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).

Reihenfolge der Berechnungen

Die Berechnung inverser Formeln kann man als eine Art “Umkehrung” des Reportings betrachten. Da die BI Integrierte 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 initialen Rechenmodells sowie des symmetrischen Rechenmodells, das als erweiterter Rechenmodus im BEx Query Designer ausgewählt werden kann (siehe Eingabebereite Query sowie Inverse Formel definieren).

Allgemeine Regeln

Abhängig davon, welcher Rechenmodus im BEx Query Designer 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. Im Query Designer wurden dann k inverse Formeln angelegt, um die Operanden op1,..., opn zu berechnen:

Fi = Fi(F, op1,…, opi-1, opi+1, … , opk, … , opn)  für i = 1,…, k

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 im Query Designer 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 (im BEx Query Designer 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 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

Wir empfehlen, ineinander geschachtelte eingabebereite Formeln zu vermeiden. Modellieren Sie eingabebereite Formeln und Formelinversionen möglichst so, dass es nicht zu viele Varianten für mögliche Berechnungen gibt. Die zur Laufzeit ausgeführten Berechnungen sind dann leichter zu verstehen.

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.

Allgemeine Regeln für die Prozentfunktion %GT zur Laufzeit

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.

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.

Berechnung der Prozentfunktion %GT in neuen Zeilen

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.

 

Ende des Inhaltsbereichs