Beispiele für benutzerdefinierte Treiberformeln

In den Beispielen für benutzerdefinierte Treiberformeln werden folgende Werte vorausgesetzt:

  • Dimensionen der Stufe 1: GL_ Department x GL_Account

  • Dimensionen der Stufe 2: ACT_Department x ACT_Activity

Bei der Generierung des Berechnungsskriptes in Oracle Hyperion Profitability and Cost Management wird das für einen benutzerdefinierten Treiber definierte Skript für alle Quellen eingefügt, die diesen Treiber verwenden. Das vom System erzeugte Skript erstellt die FIX-Anweisungen, um die Quell- und Zielkombinationen entsprechend der der Quelle beigefügten Zuweisungslogik festzulegen.

Das benutzerdefinierte Treiberskript muss diese FIX-Anweisungen nicht bereitstellen, kann diese jedoch nutzen oder ändern, um auf Daten von anderen Speicherorten als den üblichen für die Kennzahlenspeicherorte Destination, Source, Assignment oder Global definierten zu verweisen.

Die übliche Verwendung von benutzerdefinierten Treibern beruht auf der Fähigkeit, auf Daten zu verweisen, die an anderen Orten gespeichert sind als den üblichen vier Speicherorten. Dadurch kann der Benutzer Treiberkennzahlen auf höheren Ebenen der Hierarchie oder an weniger Kreuzungspunkten eingeben.

Die Standard-FIX-Anweisung, die die Kennzahl "CalculatedDriverValue" berechnet, spiegelt die Verknüpfung zwischen Quelle und Ziel wider. Bei Verwendung der Beispielstufen sieht die FIX-Anweisung, die mit dem vom System generierten Skript erstellt wurde, folgendermaßen aus:

GL_Department.member x GL_Account.member x ACT_Department.member x ACT_Activity.member

Dabei spiegeln die Dimensionselemente der einzelnen Dimensionen den Quell- und Zielkreuzungspunkt für die ausgeführte Umlage wider.

In den nachstehenden Beispielen wird diese Standard-FIX-Anweisung so geändert, dass Treiberkennzahlen von anderen Speicherorten abgerufen werden können. Wenn das Element, auf das mit der Standard-FIX-Anweisung verwiesen wird, für Ihre Zwecke geeignet ist, müssen Sie diese Einstellung nicht ändern.

Beispiel 1: Verweis auf eine Treiberkennzahl, die sich in nur einer der Zieldimensionen kreuz NoMember in der anderen befindet (in diesem Fall ACT_Department)

"CalculatedDriverValue" = "DriverMeasure" ->"[ACT_Activity.NoMember] ->"[ GL_Department.NoMember] ->"[ GL_Account.NoMember];

Verwenden Sie diese Formel, wenn für die gesamte Abteilung nur ein einzelner Treiberwert, z.B. Quadratfuß, Meter oder Headcount vorliegt.

Beispiel 2: Verweis auf eine Treiberkennzahl, die sich in der übergeordneten Dimension einer der Zieldimensionen kreuz NoMember in der anderen befindet:

"CalculatedDriverValue" = "DriverMeasure" ->"[ACT_Activity.NoMember]"->"(@PARENT(ACT_Department)" ->"[ GL_Department.NoMember] ->"[ GL_Account.NoMember];

Alternativ können Sie mit der Funktion @ANCEST auf die Generation des Vorgängers verweisen, von dem Sie den Wert abrufen möchten. Im folgenden Beispiel ruft der Treiber den Wert DriverMeasure vom Vorgänger der Generation 2 des Ziel-Department-Elements ab:

"CalculatedDriverValue" = "DriverMeasure" ->"[ACT_Activity.NoMember]"->"(@ANCEST(ACT_Department, 2)" ->"[ GL_Department.NoMember] ->"[ GL_Account.NoMember];

Häufig wird diese Methode auch verwendet, um die Berechnung des Treiberwertes von der Art der Kombination aus Quelle und Ziel abhängig zu machen. Mit dieser Option kann der Treiber an bestimmte Umstände angepasst werden, die von den Merkmalen der an der Umlage beteiligten Kreuzungspunkte abhängen.

Beispiel 3: Verweis auf eine andere Kennzahl für die Treiberberechnung in Abhängigkeit vom benutzerdefinierten Attribut (UDA) eines Zielelements:

IF(@ISUDA(Activity,"UDA1"))

"CalculatedDriverValue" = {Measure1->Destination};

ELSE IF (@ISUDA(Activity,"UDA2"))

"CalculatedDriverValue" = {Measure2->Destination};

ELSE IF (@ISUDA(Activity,"UDA3"))

"CalculatedDriverValue" = {Measure3->Destination};

ENDIF;

Verwenden Sie diese Formel, wenn Sie die Treiberformel mit einem Merkmal des Ziels verzahnen müssen, z.B. mit der Produktbaugröße oder einer Kundenklassifizierung. Beachten Sie, dass die Syntax im Beispiel (‘{Measure1->Destination}’) nicht der üblichen Oracle Essbase-Syntax für Berechnungsskripte entspricht. Mithilfe der geschweiften Klammern ({ }) kann Profitability and Cost Management die Abkürzung ‘->Destination’ interpretieren und durch das aktuelle Ziel ersetzen. Wenn das Skript in Essbase bereitgestellt wird, fügt Profitability die richtigen Elementverweise und die richtige Syntax ein.