I set di dati possono essere molto sparsi e il calcolo di set di risultati vuoti può ridurre notevolmente la performance. Per evitare il calcolo di set di risultati vuoti, è possibile utilizzare la clausola della proprietà NONEMPTYTUPLE nelle formule di calcolo. L'uso di NONEMPTYTUPLE limita le posizioni in cui il sistema tenta di eseguire i calcoli. Per impostare questa opzione, si definisce una tupla che verrà calcolata solo se non è vuota. Quindi, si definisce un'operazione numerica semplice da applicare alla tupla.
Sintassi
Di seguito si riporta la sintassi per utilizzare NONEMPTYTUPLE.
tuple := NONEMPTYTUPLE (nonempty_member_list) numeric_value_expression;
Dove:
tuple: una specifica MDX di uno o più membri in cui due membri non possono provenire dalla stessa dimensione.
NONEMPTYTUPLE: una proprietà facoltativa da utilizzare per ottimizzare le performance del calcolo. Se si utilizza questa proprietà, deve essere seguita da nonempty_member_list.
nonempty_member_list: uno o più nomi membro separati da virgole provenienti da dimensioni diverse. In numeric_value_expression deve essere presente una tupla.
numeric_value_expression: un'espressione con valori numerici MDX, ad esempio un numero o un'operazione aritmetica.
L'espressione deve trovarsi nella parte destra dell'equazione. È necessario utilizzare solo operatori aritmetici. Viene restituito un errore se si utilizzano operatori non aritmetici come AND, OR o IF.
Ad esempio:
[UnitCost] := NONEMPTYTUPLE ([TotalExpense], [NetBalance]) ([TotalExpense], [NetBalance]) / ([Units], [CostPool]);
Questo esempio significa quanto segue:
Esamina la tupla ([TotalExpense], [NetBalance]).
Se la tupla, o intersezione, non è vuota (ossia contiene un valore reale), esegui la seguente operazione:
Dividi la tupla ([TotalExpense], [NetBalance]) per la tupla ([Units], [CostPool]) per ottenere UnitCost.
Se la tupla è vuota, saltala e calcola l'istanza successiva.
Regole di utilizzo
Una tupla è una combinazione di membri per alcuni set di dimensioni diverse. Ad esempio:
([product2], [account5], customer3])
([myactivity], [yourdepartment])
Di seguito sono riportati i requisiti per aggiungere NONEMPTYTUPLE alla formula delle regole personalizzate di Enterprise Profitability and Cost Management. A, B e C rappresentano le tuple.
È possibile utilizzare NONEMPTYTUPLE solo se una tupla ha un valore. In caso contrario, il risultato potrebbe essere imprevisto. Si supponga quanto segue:
A=B+C: non è possibile utilizzare NONEMPTYTUPLE su B o C. Se manca B o C, il risultato sarà Nessuno, il che è errato.
Note:
Per calcolare A=B+C con NONEMPTYTUPLE, utilizzare due regole:
Regola 1: A=A+B con NONEMPTYTUPLE su B
Regola 2: A=A+C (o A=A-C) con NONEMPTYTUPLE su C
In questo caso, quando il valore di B non è vuoto, verrà aggiunto ad A e quando il valore di C non è vuoto, verrà aggiunto ad A.
A=B-C: non è possibile utilizzare NONEMPTYTUPLE su B o C. Se B o C è un valore vuoto, il risultato, ossia Nessuno, non sarà corretto, a meno che non si utilizzino due regole come descritto in precedenza.
È possibile utilizzare NONEMPTYTUPLE se il risultato è lo stesso a prescindere dalla mancanza della tupla. Si supponga quanto segue:
A=B: è possibile utilizzare NONEMPTYTUPLE su B.
A=B*C: è possibile utilizzare NONEMPTYTUPLE su B o C.
A=B/C: è possibile utilizzare NONEMPTYTUPLE su B o C.
Ricapitolando, è possibile utilizzare NONEMPTYTUPLE in moltiplicazioni o divisioni. Per addizioni e sottrazioni è necessario valutarne singolarmente l'uso per ciascun caso per evitare risultati imprevisti.
Note:
Per informazioni sulla scrittura di regole personalizzate, vedere Sintassi della formula per le regole customizzate. Per informazioni sull'abilitazione di tuple non vuote, fare riferimento a "Come si abilitano le tuple non vuote in Enterprise Profitability and Cost Management?" in Domande frequenti su Enterprise Profitability and Cost Management.