QlikView - Riferimento circolare

Circular Referencesi verifica quando possiamo passare da una tabella all'altra utilizzando due o più percorsi diversi. Ciò significa che puoi unire Table1 con Table2 direttamente utilizzando una colonna oppure puoi anche unire prima Table1 con Table3 e poi table3 con Table2. Ciò può portare a risultati errati nell'output formato da un modello di dati, che carica tutte queste tre tabelle. QlikView impedisce il caricamento di tali dati nella sua memoria una volta che riconosce un riferimento circolare.

Dati in ingresso

Consideriamo i seguenti tre file di dati CSV, che vengono utilizzati come input per ulteriori illustrazioni.

SalesCountries:
ProductID,ProductCategory,Country,SaleAmount
1,Outdoor Recreation,Italy,4579
2,Clothing,USA,4125
3,Costumes & Accessories,South Korea,6521
4,Athletics,Japan,4125
5,Personal Care,Brazil,5124
6,Arts & Entertainment,China,1245
7,Hardware,South America,456
8,Home & Garden,Peru,241
9,Food,India,1247
10,Home & Garden,Singapore,5462
11,Office Supplies,Hungary,577

ProductCountry:
ProductID, Country
3,Brazil
3,China
2,Korea
1,USA
2,Singapore
7,Sri Lanka
1,Italy

Carica script

Carichiamo i dati di input di cui sopra utilizzando l'editor di script, che viene richiamato premendo Control+E. Scegli l'opzioneTable Files e cerca il file di input.

Caricamento dati

Dopo aver creato lo script precedente, carichiamo i dati nella memoria di QlikView utilizzando il comando Control+R. Questo è quando otteniamo il messaggio di errore che menziona la presenza di un ciclo circolare nelle tabelle che vengono caricate.

Modello di dati

Per trovare la causa esatta dell'avviso di cui sopra, possiamo esaminare il modello di dati utilizzando il comando di menu per il visualizzatore di tabelle: Control+T. Viene visualizzata la seguente schermata, che mostra chiaramente il riferimento circolare. Qui l'unione tra RegionCountry e SalesRegion può essere ottenuta direttamente utilizzando il campoRegion. Può anche essere ottenuto andando prima alla tabella ProductCountry, utilizzando il campoCountry e quindi mappare ProdcutID con Salesregion.

Risoluzione del riferimento circolare

Il riferimento circolare sopra può essere risolto rinominando alcune delle colonne nei set di dati in modo che QlikView non formi un'associazione tra le tabelle automaticamente utilizzando i nomi delle colonne. Per questo, rinomineremo la colonna del paese in RegionCountry in SalesCountry. Nel set di dati ProdcuCountry, la colonna Country viene rinominata in ProductCountry.

Modello di dati rettificato

Il modello di dati rettificato dopo aver rinominato la colonna sopra può essere visualizzato utilizzando il comando Control+T. Ora possiamo vedere che la relazione tra le tabelle non forma un ciclo.

Premendo Control+R ricaricare i dati non ci dà più l'avviso e possiamo utilizzare questi dati per creare report.