Salto delle tuple vuote per ottimizzare i calcoli custom

I set di dati possono essere molto sparsi e il calcolo di set di risultati vuoti può ridurre notevolmente la performance. Per evitare di calcolare set di risultati vuoti, è possibile utilizzare la clausola di proprietà NONEMPTYTUPLE nelle formule dei calcoli custom. 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:

  1. Esamina la tupla ([TotalExpense], [NetBalance]).

  2. 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.

  3. 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 si riportano i requisiti per aggiungere NONEMPTYTUPLE alla formula delle regole di calcolo customizzato di 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 di calcolo customizzate, fare riferimento alla sezione Sintassi delle formule per le regole di calcolo 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.