Datasets können sehr dünn besetzt sein, und die Berechnung von leeren Ergebnissets kann zu einer erheblichen Leistungsverringerung führen. Um eine Berechnung leerer Ergebnissets zu vermeiden, können Sie die Eigenschaftenklausel "NONEMPTYTUPLE" in benutzerdefinierten Berechnungsformeln verwenden. Die Verwendung von NONEMPTYTUPLE schränkt die Berechnungsversuche des Systems ein. Um dies einzurichten, definieren Sie ein Tupel, das nur berechnet wird, wenn es nicht leer ist. Definieren Sie anschließend einen einfachen numerischen Vorgang, der auf das Tupel angewendet wird.
Syntax
Die Syntax für die Verwendung von NONEMPTYTUPLE lautet wie folgt:
tuple := NONEMPTYTUPLE (nonempty_member_list) numeric_value_expression;
Dabei gilt:
tuple
: eine MDX-Spezifikation von einem oder mehreren Elementen, wobei keines der Elemente aus derselben Dimension stammen darf.
NONEMPTYTUPLE
: eine optionale Eigenschaft, die Sie verwenden können, um die Berechnungsperformance zu optimieren. Wenn sie verwendet wird, muss auf diese Literaleigenschaft nonempty_member_list
folgen.
nonempty_member_list
: ein oder mehrere durch Komma getrennte Elementnamen aus unterschiedlichen Dimensionen. Ein Tupel muss in numeric_value_expression
vorhanden sein.
numeric_value_expression
: ein einfacher numerischer MDX-Wertausdruck, z.B. eine Zahl oder ein arithmetischer Vorgang.
Der Ausdruck muss auf der rechten Seite der Gleichung stehen. Sie dürfen nur arithmetische Operatoren verwenden. Ein Fehler wird zurückgegeben, wenn Sie nichtarithmetische Operatoren wie AND, OR oder IF verwenden.
Beispiel:
[UnitCost] := NONEMPTYTUPLE ([TotalExpense], [NetBalance]) ([TotalExpense], [NetBalance]) / ([Units], [CostPool]);
Dieses Beispiel gibt Folgendes an:
Betrachten Sie das Tupel ([TotalExpense], [NetBalance])
.
Wenn dieses Tupel oder die Schnittmenge nicht leer ist (d.h., es ist ein tatsächlicher Wert enthalten), führen Sie den folgenden Vorgang durch:
Dividieren Sie das Tupel ([TotalExpense], [NetBalance])
durch das Tupel ([Units], [CostPool])
, damit sich UnitCost
ergibt.
Wenn das Tupel leer ist, überspringen Sie es, und werten Sie die nächste Instanz aus.
Regeln für die Verwendung
Ein Tupel ist eine Kombination von Elementen aus einer Gruppe unterschiedlicher Dimensionen. Beispiele sind:
([product2], [account5], customer3])
([myactivity], [yourdepartment])
Die Anforderungen für das Hinzufügen von NONEMPTYTUPLE zur Formel von benutzerdefinierten Profitability and Cost Management-Berechnungsregeln lauten wie folgt, wobei A, B und C für Tupel stehen:
Sie können NONEMPTYTUPLE nur verwenden, wenn ein Tupel einen Wert hat. Andernfalls kann dies zu einem unerwarteten Ergebnis führen. Beispiele:
A=B+C
- Sie können NONEMPTYTUPLE weder für B
noch für C
verwenden. Wenn B
oder C
fehlt, lautet das Ergebnis "None", was falsch ist.
Note:
Verwenden Sie zur Berechnung von A=B+C mit NONEMPTYTUPLE die folgenden beiden Regeln:
Regel 1: A=A+B
mit NONEMPTYTUPLE für B
Regel 2: A=A+C
(oder A=A-C
) mit NONEMPTYTUPLE für C
Wenn der Wert für B
nicht fehlt, wird in diesem Fall der Wert zu A
addiert. Ebenso wird, wenn der Wert für C
nicht fehlt, der Wert zu A
addiert.
A=B-C
- Sie können NONEMPTYTUPLE weder für B
noch für C
verwenden. Wenn B
oder C
fehlt, lautet das Ergebnis "None" und ist falsch (es sei denn, Sie verwenden die beiden Regeln wie zuvor beschrieben).
Sie können NONEMPTYTUPLE verwenden, wenn das Ergebnis unabhängig davon, ob ein Tupel vorhanden ist, gleich ist. Beispiele:
A=B
- Sie können NONEMPTYTUPLE für B
verwenden.
A=B*C
- Sie können NONEMPTYTUPLE entweder für B
oder für C
verwenden.
A=B/C
- Sie können NONEMPTYTUPLE entweder für B
oder für C
verwenden.
Kurz gesagt: Sie können NONEMPTYTUPLE gefahrlos bei Multiplikations- oder Divisionsvorgängen verwenden. Bei Addition oder Subtraktion müssen Sie die Verwendung für jeden einzelnen Fall auswerten, um unerwartete Ergebnisse zu vermeiden.
Note:
Informationen zum Schreiben von benutzerdefinierten Verrechnungsregeln finden Sie unter Formelsyntax für benutzerdefinierte Berechnungsregeln. Information zum Aktivieren von Non-Empty Tuples finden Sie unter "Wie aktiviert man Non-Empty Tuples (NET) in Enterprise Profitability and Cost Management?" unter Häufig gestellte Fragen (FAQ) zu Enterprise Profitability and Cost Management.