QlikView - Référence circulaire

Circular Referencese produit lorsque nous pouvons passer d'une table à une autre en utilisant deux ou plusieurs chemins différents. Cela signifie que vous pouvez joindre Table1 avec Table2 directement à l'aide d'une colonne ou vous pouvez également d'abord joindre Table1 avec Table3, puis table3 avec Table2. Cela peut conduire à un résultat incorrect dans la sortie formée par un modèle de données, qui charge ces trois tables. QlikView empêche le chargement de ces données dans sa mémoire une fois qu'il reconnaît une référence circulaire.

Des données d'entrée

Considérons les trois fichiers de données CSV suivants, qui sont utilisés comme entrée pour d'autres illustrations.

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

Charger le script

Nous chargeons les données d'entrée ci-dessus à l'aide de l'éditeur de script, qui est appelé en appuyant sur Control+E. Choisissez l'optionTable Files et recherchez le fichier d'entrée.

Chargement de données

Après avoir créé le script ci-dessus, nous chargeons les données dans la mémoire de QlikView à l'aide de la commande Control+R. C'est alors que nous obtenons l'invite d'erreur mentionnant la présence d'une boucle circulaire dans les tables en cours de chargement.

Modèle de données

Pour trouver la cause exacte de l'avertissement ci-dessus, nous pouvons examiner le modèle de données en utilisant la commande de menu de la visionneuse de table - Control+T. L'écran suivant apparaît, qui montre clairement la référence circulaire. Ici, la jointure entre RegionCountry et SalesRegion peut être réalisée directement en utilisant le champRegion. Il peut également être réalisé en accédant d'abord à la table ProductCountry, en utilisant le champCountry puis mapper ProdcutID avec Salesregion.

Résolution de la référence circulaire

La référence circulaire ci-dessus peut être résolue en renommant certaines des colonnes dans les ensembles de données afin que QlikView ne forme pas automatiquement une association entre les tables à l'aide des noms de colonne. Pour cela, nous renommerons la colonne country de RegionCountry en SalesCountry. Dans l'ensemble de données ProdcuCountry, nous renommons la colonne Country en ProductCountry.

Modèle de données rectifié

Le modèle de données rectifié après avoir renommé la colonne ci-dessus peut être vu à l'aide de la commande Control+T. Nous pouvons maintenant voir que la relation entre les tables ne forme pas une boucle.

Pressage Control+R recharger les données ne nous donne plus l'avertissement et nous pouvons utiliser ces données pour créer des rapports.