Gerarchie incomplete

Una gerarchia incompleta è una gerarchia definita dall'utente contenente un numero di livelli ineguale. Esempi comuni includono un organigramma in cui un manager di livello superiore ha come subalterni manager di reparto e non manager o gerarchie geografiche composte da Paese-Regione-Città, in cui alcune città non presentano un elemento padre Stato o Provincia, ad esempio Washington D.C., Città del Vaticano o Nuova Delhi.

Nella maggior parte delle gerarchie di una dimensione, ciascun livello presenta lo stesso numero di membri di livello superiore di tutti gli altri membri allo stesso livello. In una gerarchia incompleta, invece, il membro padre logico di almeno un membro non si trova nel livello immediatamente superiore rispetto al membro. Quando si verifica questa situazione, il numero di livelli di nidificazione della gerarchia varia in base ai percorsi di drill-down. In un'applicazione client, questo può rendere i percorsi di drill-down inutilmente complicati.

Le applicazioni client gestiscono le gerarchie incomplete in modo diverso. Se nel modello in uso sono presenti gerarchie incomplete, è necessario eseguire un lavoro supplementare per ottenere il comportamento di rendering previsto.

Innanzitutto, controllare il modo in cui l'applicazione client gestisce il percorso di drill-down. Ad esempio, Excel ripete i nomi degli elementi padre come segnaposti per i valori mancanti. Per visualizzare questo comportamento, creare una tabella pivot utilizzando la dimensione Territorio vendita nel modello multidimensionale Adventure Works. In una tabella pivot che contiene gli attributi Gruppo, Paese e Regione per Territorio vendita, ai paesi che non presentano un valore relativo alla regione verrà assegnato un segnaposto, in questo caso una ripetizione dell'elemento padre al livello superiore (il nome del paese). Questo comportamento deriva dalla proprietà della stringa di connessione MDX Compatibility=1 fissata in Excel. Se il client non fornisce naturalmente i comportamenti di drill-down desiderati, è possibile impostare le proprietà nel modello, in modo da modificare almeno alcuni di questi comportamenti.

In questo argomento sono incluse le sezioni seguenti:

  • Approcci per la modifica della navigazione drill-down in una gerarchia incompleta

  • Impostazione della proprietà HideMemberIf per nascondere i membri in una gerarchia regolare

  • Impostazione della proprietà MDX Compatibility per determinare il modo in cui i segnaposti sono rappresentati nelle applicazioni client

Approcci per la modifica della navigazione drill-down in una gerarchia incompleta

La presenza di una gerarchia incompleta diventa un problema quando la navigazione drill-down non restituisce i valori previsti o è difficile da utilizzare. Per risolvere i problemi di navigazione causati da gerarchie incomplete, possono essere considerate le seguenti opzioni:

  • Utilizzare una gerarchia regolare ma impostare la proprietà HideMemberIf in ciascun livello, per specificare se un livello mancante viene visualizzato all'utente. Se si imposta la proprietà HideMemberIf, è necessario impostare anche la proprietà MDXCompatibility nella stringa di connessione, per sostituire i comportamenti di navigazione predefiniti. Le istruzioni per l'impostazione di queste proprietà sono disponibili in questo argomento.

  • Creare una gerarchia padre-figlio che gestisca esplicitamente i membri dei livelli. Per un'illustrazione della tecnica, vedere Gerarchia incompleta in SSAS (post di blog). Per ulteriori informazioni, vedere Dimensioni padre-figlio nella documentazione online. Gli svantaggi della creazione di una gerarchia padre-figlio risiedono nel fatto che è possibile disporre di un'unica gerarchia per dimensione e, in genere, ciò comporta un peggioramento delle prestazioni quando si calcolano le aggregazioni per i membri intermedi.

Se la dimensione contiene più di una gerarchia incompleta, è necessario utilizzare il primo approccio, impostando la proprietà HideMemberIf. Gli sviluppatori BI con esperienza pratica nella gestione di gerarchie incomplete vanno oltre, promuovendo modifiche aggiuntive nelle tabelle dati fisiche, mediante la creazione di tabelle separate per ciascun livello. Per i dettagli su questa tecnica, vedere Il cubo finanziario SSAS di Martin Mason–Parte 1a–Gerarchie incomplete (blog).

Impostazione della proprietà HideMemberIf per nascondere i membri in una gerarchia regolare

Nella tabella di una dimensione incompleta, i membri mancanti da un punto di vista logico possono essere rappresentati in diversi modi. Le celle della tabella possono contenere valori Null o stringhe vuote oppure possono contenere lo stesso valore del membro padre come segnaposto. La rappresentazione dei segnaposti è determinata dallo stato del segnaposto dei membri figlio, come determinato dalla proprietà HideMemberIf e dalla proprietà della stringa di connessione MDX Compatibility per l'applicazione client.

Per le applicazioni client che supportano la visualizzazione di gerarchie incomplete, è possibile utilizzare queste proprietà per nascondere i membri mancanti da un punto di vista logico.

  1. In SSDT, fare doppio clic su una dimensione per aprirla in Progettazione dimensioni. Nella prima scheda, Struttura dimensione, vengono visualizzate le gerarchie di attributi nel riquadro Gerarchie.

  2. Fare clic con il pulsante destro del mouse su un membro all'interno della gerarchia e selezionare Proprietà. Impostare la proprietà HideMemberIf su uno dei valori descritti in basso.

    Impostazione di HideMemberIf

    Descrizione

    Never

    I membri del livello non vengono mai nascosti. Questo è il valore predefinito.

    OnlyChildWithNoName

    Un membro del livello viene nascosto quando è l'unico elemento figlio del relativo padre e il nome è un valore Null o una stringa vuota.

    OnlyChildWithParentName

    Un membro del livello viene nascosto quando è l'unico elemento figlio del relativo padre e il nome corrisponde a quello del padre.

    NoName

    Un membro del livello viene nascosto quando il nome è vuoto.

    ParentName

    Un membro del livello viene nascosto quando il nome è identico a quello del padre.

Impostazione della proprietà MDX Compatibility per determinare il modo in cui i segnaposti sono rappresentati nelle applicazioni client

Dopo aver impostato la proprietà HideMemberIf in un livello della gerarchia, è necessario impostare anche la proprietà MDX Compatibility nella stringa di connessione inviata dall'applicazione client. L'impostazione di MDX Compatibility determina se viene utilizzata la proprietà HideMemberIf.

Impostazione di MDX Compatibility

Descrizione

Utilizzo

1

Viene visualizzato un valore di segnaposto.

Questo è il valore predefinito utilizzato da Excel, SSDT e SSMS. Indica al server di restituire i valori di segnaposto quando la navigazione drill-down svuota i livelli in una gerarchia incompleta. Se si fa clic sul valore di segnaposto, è possibile continuare la navigazione verso il basso per ottenere i nodi figlio (foglia).

Excel contiene la stringa di connessione utilizzata per connettersi ad Analysis Services e imposta sempre la proprietà MDX Compatibility su 1 per ciascuna nuova connessione. Questo comportamento preserva la compatibilità con le versioni precedenti.

2

Viene nascosto un valore di segnaposto (un valore Null o un duplicato del livello padre) ma vengono visualizzati altri livelli e nodi che hanno valori pertinenti.

MDX Compatibility=2 viene in genere visualizzato come impostazione preferita in termini di gerarchie incomplete Un report Reporting Services e alcune applicazioni client di terze parti possono mantenere questa impostazione.

Vedere anche

Concetti

Creare gerarchie definite dall'utente

Gerarchie definite dall'utente

Dimensioni padre-figlio

Proprietà delle stringhe di connessione (Analysis Services)