Quand utiliser l'incompatibilité d'objets ?
L'incompatibilité d'un objet avec une ou plusieurs tables est nécessaires dans les cas suivants :
- L'objet dimension correspond à un champ présent dans la table détail qui est abandonné dans des tables agrégées issues de cette table.
- L'objet n'est accessible que dans un seul des contextes mis en place dans l'univers.
1. Cas des tables agrégées :
Soit une table détail EVTS listant des 860 000 évènements datés et comportant cinq champs :
* Service
* ANNEE
* MOIS
* Date
* Evénement
De cette table détail ont été tirées deux tables agrégées visant à optimiser les temps de réponse
MOIS_EVTS
* Service
* ANNEE
* MOIS
* NbEvts
AN_EVTS
* Service
* ANNEE
* NbEvts
L'objet indicateur Nb d'évènements sera donc construit à l'aide de la fonction d'agrégat.
@Aggregate_Aware(AN_EVTS.NbEvts , MOIS_NbEvts , count(EVTS.Évènements) )
|
C'est la gestion des incompatibilités d'objets qui va permettre à BO de déterminer laquelle de ces trois tables doit être prise en compte.
L'objet Dimension Date de l'évènement sera désigné incompatible avec les tables AN_EVTS et MOIS_EVTS
L'objet Dimension MOIS sera désigné incompatible avec la table AN_EVTS
Dès lors, lorsque l'objet Dimension Date de l'évènement sera utilisé dans la requête, seule la table EVTS sera compatible.
2. Cas des contextes
Lorsque des boucles de jointures ont été résolues à l'aide de contextes par le Designer, les objets issus des tables situées aux extrémités et communes aux boucles peuvent être déclarées incompatibles avec une table au mois d'un contexte pour rendre obligé l'utilisation de l'autre contexte, évitant ainsi que le choix soit laissé à l'utilisateur.
|