Détails de conception : Recherche de combinaisons de dimensions
Lorsque vous fermez une page après avoir modifié un ensemble d'axes analytiques, Business Central évalue si l'ensemble d'axes analytiques modifié existe. Si l'ensemble n'existe pas, un nouvel ensemble est créé et l'ID de combinaison d'axes analytiques est renvoyé.
Création de l'arbre de recherche
Table 481 Nœud d'arbre d'ensemble d'axes analytiques est utilisé lorsque Business Central évalue si un ensemble d'axes analytiques existe déjà dans la table 480 Écriture ensemble de dimensions table. L'évaluation est effectuée en parcourant récursivement l'arbre de recherche à partir du niveau supérieur numéroté 0. Le niveau supérieur 0 représente un ensemble d'axes analytiques sans entrées. Les enfants de cet ensemble d'axes analytiques représentent des ensembles d'axes analytiques avec une seule entrée d'ensemble d'axes analytiques. Les enfants de ces ensembles d'axes analytiques représentent des ensembles d'axes analytiques avec deux enfants, et ainsi de suite.
Exemple 1
Le diagramme suivant représente un arbre de recherche avec six ensembles d'axes analytiques. Seule l'entrée d'ensemble d'axes analytiques distinctive est affichée dans le diagramme.

Le tableau suivant décrit une liste complète des entrées d'ensemble d'axes analytiques composant chaque ensemble d'axes analytiques.
| Ensembles de dimensions | Écritures ensemble de dimensions |
|---|---|
| Ensemble 0 | Aucun |
| Ensemble 1 | AREA 30 |
| Ensemble 2 | AREA 30, DEPT ADM |
| Ensemble 3 | AREA 30, DEPT PROD |
| Ensemble 4 | AREA 30, DEPT ADM, PROJ VW |
| Ensemble 5 | AREA 40 |
| Ensemble 6 | AREA 40, PROJ VW |
Exemple 2
Cet exemple montre comment Business Central évalue si un ensemble d'axes analytiques composé des entrées d'ensemble d'axes analytiques AREA 40, DEPT PROD existe.
Tout d'abord, Business Central met également à jour la Nœud d'arbre d'ensemble d'axes analytiques table pour s'assurer que l'arbre de recherche ressemble au diagramme suivant. Ainsi, l'ensemble d'axes analytiques 7 devient un enfant de l'ensemble d'axes analytiques 5.

Recherche de l'ID d'ensemble d'axes analytiques
Sur le plan conceptuel, ID parent, Axe analytique, et Section analytique, dans l'arbre de recherche, sont combinés et utilisés comme clé primaire, car Business Central parcourt l'arbre dans le même ordre que les entrées d'axes analytiques. La fonction GET (enregistrement) est utilisée pour rechercher l'ID d'ensemble d'axes analytiques. L'exemple de code suivant montre comment trouver l'ID d'ensemble d'axes analytiques lorsqu'il y a trois sections analytiques.
DimSet."Parent ID" := 0; // 'root'
IF UserDim.FINDSET THEN
REPEAT
DimSet.GET(DimSet."Parent ID",UserDim.DimCode,UserDim.DimValueCode);
UNTIL UserDim.NEXT = 0;
EXIT(DimSet.ID);
Cependant, pour préserver la capacité de Business Central de renommer un axe analytique et une section analytique, la table 349, Section analytique, est étendue avec un champ entier, ID section analytique. Cette table convertit la paire de champs, Axe analytique et Section analytique, en une valeur entière. Lorsque vous renommez l'axe analytique et la section analytique, la valeur entière n'est pas modifiée.
DimSet."Parent ID" := 0; // 'root'
IF UserDim.FINDSET THEN
REPEAT
DimSet.GET(DimSet.ParentID,UserDim."Dimension Value ID");
UNTIL UserDim.NEXT = 0;
EXIT(DimSet.ID);
Informations connexes
Détails de conception : Écritures ensemble de dimensions
Vue d'ensemble des écritures ensemble de dimensions
Détails de conception : Structure de table
Trouvez des modules d'apprentissage en ligne gratuits pour Business Central ici