Os conjuntos de dados podem ser muito esparsos. O cálculo de conjuntos de resultados vazios pode prejudicar consideravelmente o desempenho. Para evitar conjuntos de resultados vazios, você pode usar a cláusula de propriedade NONEMPTYTUPLE nas fórmulas de cálculo personalizadas. O uso de NONEMPTYTUPLE restringe o local em que o sistema tenta calcular. Para configurar isso, você define uma tupla que só será calculada se não estiver vazia. Depois, define uma operação numérica simples para ser aplicada à tupla.
Sintaxe
Esta é a sintaxe para usar NONEMPTYTUPLE:
tuple := NONEMPTYTUPLE (nonempty_member_list) numeric_value_expression;
Onde:
tuple
: Uma especificação MDX de um ou mais membros, em que nenhum dos dois membros pode ser da mesma dimensão
NONEMPTYTUPLE
: Uma propriedade opcional que você pode usar para otimizar um desempenho de cálculo. Se essa opção for usada, você deverá usar nonempty_member_list
depois dessa propriedade literal.
nonempty_member_list
: Um ou mais nomes de membros separados por vírgula de diferentes dimensões. Deve haver uma tupla em numeric_value_expression
.
numeric_value_expression
: Uma expressão de valor numérico MDX simples, como um número ou uma operação aritmética
A expressão deve estar à direita da equação. Você só deve usar operadores aritméticos. Será retornado um erro se você usar operadores não aritméticos, como AND, OR ou IF.
Por exemplo:
[UnitCost] := NONEMPTYTUPLE ([TotalExpense], [NetBalance]) ([TotalExpense], [NetBalance]) / ([Units], [CostPool]);
Esse exemplo informa o seguinte:
Observe a tupla ([TotalExpense], [NetBalance])
.
Se essa tupla, ou a interseção, não estiver vazia (ou seja, contiver um valor real), execute a operação a seguir:
Considere a tupla ([TotalExpense], [NetBalance])
e divida-a pela tupla ([Units], [CostPool])
para chamar UnitCost
.
Se ela estiver vazia, ignore-a e calcule a instância seguinte.
Regras para Uso
Uma tupla é uma combinação de membros de algum conjunto de dimensões diferentes, por exemplo:
([product2], [account5], customer3])
([myactivity], [yourdepartment])
Estes são os requisitos para adicionar NONEMPTYTUPLE à fórmula das regras de cálculo personalizadas do Profitability and Cost Management, onde A, B e C representam tuplas:
Você só pode usar NONEMPTYTUPLE quando uma tupla tiver algum valor. Caso contrário, o resultado seria inesperado. Suponha o seguinte:
A=B+C
-- Você não pode usar NONEMPTYTUPLE em B
nem em C
. Se B
ou C
estiver faltando, o resultado será Nenhum, o que é incorreto.
Note:
Para calcular A=B+C usando NONEMPTYTUPLE, utilize duas regras:
Regra 1: A=A+B
com NONEMPTYTUPLE em B
Regra 2: A=A+C
(ou A=A-C
) com NONEMPTYTUPLE em C
Neste caso, sempre que o valor de B
estiver presente, ele será adicionado a A
; e sempre que o valor de C
estiver presente, ele será adicionado a A
.
A=B-C
-- Você não pode usar NONEMPTYTUPLE em B
nem em C
. Se B
ou C
estiver ausente, o resultado será Nenhum, o que está incorreto (a menos que você use duas regras, conforme descrito anteriormente).
Você poderá usar NONEMPTYTUPLE quando o resultado for o mesmo se a tupla estiver ou não ausente. Suponha o seguinte:
A=B
-- Você pode usar NONEMPTYTUPLE em B
.
A=B*C
-- Você pode usar NONEMPTYTUPLE em B
ou C
.
A=B/C
-- Você pode usar NONEMPTYTUPLE em B
ou C
.
Resumindo: você só pode usar NONEMPTYTUPLE com segurança em operações de multiplicação ou divisão. Para adição e subtração, você deve avaliar seu uso para cada caso separado a fim de evitar resultados inesperados.
Note:
Para obter mais informações sobre como escrever regras de cálculo personalizado, consulte Sintaxe de fórmula para regras de cálculo personalizadas. Para obter informações sobre como habilitar tuplas não vazias, consulte "Como habilitar Tuplas Não Vazias (NET, Non-Empty Tuples) no Enterprise Profitability and Cost Management?" em Perguntas Frequentes sobre o Enterprise Profitability and Cost Management.