Circular Dependency - Allocated Budget

Il software per la BI di Microsoft, leader nel mercato
Rispondi

Lorenzo Manganelli
Messaggi: 11 | Topic creati
Iscritto il: dom 23 ago 2020, 14:46
Ringraziato: 2 volte

Circular Dependency - Allocated Budget

Messaggio da Lorenzo Manganelli »

Ciao a tutti,

ho provato a seguire le indicazioni dei guru di SQLBI per la creazione di una Tabella "Allocated Budget".

Con questa nuova tabella ho aumentato il numero di righe della tabella "Budget", inserendo tutti i livelli gerarchici della tabella "Products" fino alla chiave primaria "Material". In questo modo sono riuscito a creare una relazione uno-a-molti tra "Products" e "Allocated Budget".

Il mio problema a questo punto e´quello di creare una relazione tra le tabelle " Date" e "Allocated Budget".

Come potete vedere dal file allegato, sembrerebbe che questa relazione non sia possibile a causa di un riferimento circolare.

E´possibile aggirare questo problema, magari modificando appropriatamente il codice DAX?
Allegati
File Test.pbix
(81.88 KiB) Scaricato 27 volte
Ultima modifica di Lorenzo Manganelli il lun 15 mar 2021, 15:26, modificato 2 volte in totale.


Avatar utente

Andrea90
Messaggi: 2244 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 672 volte
Contatta:

Circular Dependency - Allocated Budget

Messaggio da Andrea90 »

Ciao Lorenzo Manganelli,

Ho guardato al volo il tuo modello.

La circular dependency mi verrebbe da dire che avviene poiché tu hai creato la tua allocated budget sfruttando la relazione esistente tra Sales e Date (prova a togliere la relazione tra queste due e vedrai che la tua tabella calcolata non rimane in piedi).

Non so quale è la logica che vorresti utilizzare, ma direi che devi rivedere il modello dati, e la logica di creazione di quella allocated table (in modo particolare del motivo per cui carichi quella Budget Table e poi non sfrutti quella per la relazione con Date, che in quel caso funzionerebbe senza problemi).

A presto,
Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Circular Dependency - Allocated Budget

Messaggio da Enrico Galli »

Confermo quanto detto da Andrea. E' possibile che la tua tabella Allocated Budget possa essere creata in ETL con Power Query, e in tal caso non ti darebbe problemi di dipendenze circolari. Difficile però fare delle prove senza i file sorgente, vedi tu se con questi suggerimenti riesci ad andare avanti
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione

Autore del topic
Lorenzo Manganelli
Messaggi: 11 | Topic creati
Iscritto il: dom 23 ago 2020, 14:46
Ringraziato: 2 volte

Circular Dependency - Allocated Budget

Messaggio da Lorenzo Manganelli »

Ciao Andrea,

la tabella "Budget" contiene i valori stimati dal sales manager. Questa tabella pero´non va oltre la categoria prodotto "PRH4".

Con la seconda tabella budget "Allocated Budget" ho voluto estendere le informazioni fino alla categoria PRH5 e fino al "Material" (Product Key), utilizzando percentuali di ripartizione stimate sulla base delle vendite dell´anno passato. In questo modo l´end user ha la possibilita´di effettuare un´analisi approfondita degli scostamenti actual/budget.

Il risultato finale che vorrei e´quello di relazionare uno-a-molti "Date" con "Facts" e "Date" con "Allocated Budget" e "Product" con "Facts" e "Product" con "Allocated Budget".

Come e´ possibile togliere la relazione tra le tabelle "Date" e "Facts" all´interno della tabella "Allocated Budget", per superare il problema del riferimento circolare?

Autore del topic
Lorenzo Manganelli
Messaggi: 11 | Topic creati
Iscritto il: dom 23 ago 2020, 14:46
Ringraziato: 2 volte

Circular Dependency - Allocated Budget

Messaggio da Lorenzo Manganelli »

Ciao Enrico,

ho provato con Power Query e funziona perfettamente. L´unico problema e´ che il file e´passato da 4 a 8 MB.

Il mio obiettivo era pero´di risolvere questo problema utilizzando DAX, per potermi esercitare con questo codice e avere sempre una soluzione alternativa rispetto a Power Query.
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Circular Dependency - Allocated Budget

Messaggio da Enrico Galli »

Lorenzo Manganelli ha scritto: mar 16 mar 2021, 14:37 Il mio obiettivo era pero´di risolvere questo problema utilizzando DAX, per potermi esercitare con questo codice e avere sempre una soluzione alternativa rispetto a Power Query.
Non sempre i due strumenti sono intercambiabili, e quasi mai lo sono a costo zero. Quindi il tuo esercizio con DAX andava benissimo, ma ti sei reso conto che nella fattispecie non poteva risolvere il tuo problema ;)
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione

Autore del topic
Lorenzo Manganelli
Messaggi: 11 | Topic creati
Iscritto il: dom 23 ago 2020, 14:46
Ringraziato: 2 volte

Circular Dependency - Allocated Budget

Messaggio da Lorenzo Manganelli »

Ciao,
sono riuscito alla fine a risolvere il problema del riferimento circolare sostituendo la misura originaria:

Sum Sales AC 2020 = CALCULATE(
SUMX('Facts Sales',
'Facts Sales'[Net Sales]
),
Date','Date'[Year]=2020
)

con questa nuova misura:

Sum Sales AC 2020 = CALCULATE(
SUMX('Facts Sales',
'Facts Sales'[Net Sales]
),
FILTER(
ALLNOBLANKROWS(
'Date'[Year]),'Date'[Year]=2020)
)

Con questa soluzione spero di aver potuto ricambiare gli ottimi consigli che mi avete dato fino ad oggi.
Rispondi