Når du lukker et vindu etter å ha redigert et sett med dimensjoner, undersøker Microsoft Dynamics NAV om det redigerte settet med dimensjoner finnes. Hvis gruppen ikke finnes, blir det opprettet et nytt sett, og det kombinasjon-IDen for dimensjonen blir returnert.
Bygge søketre
Tabell 481 Trenode for dimensjonssett brukes når Microsoft Dynamics NAV vurderer om et sett med dimensjoner allerede finnes i tabell 480 Dimensjonssettpost. Evalueringen utføres ved å traversere søketreet rekursivt fra det øverste nivået, som har fått nummeret 0. Det øverste nivået 0 representerer et dimensjonssett uten dimensjonssettposter. De underordnede elementene for dette dimensjonssettet representerer dimensjonssett med bare én dimensjonssettpost. De underordnede elementene for disse dimensjonssettene representerer dimensjonssett med to underordnede elementer og så videre.
Eksempel 1
Diagrammet nedenfor representerer et søketre med seks dimensjonssett. Bare den spesielle dimensjonssettposten vises i diagrammet.

Tabellen nedenfor beskriver en fullstendig liste over dimensjonssettpostene som utgjør hvert dimensjonssett.
Dimensjonssett | Dimensjonssettposter |
---|---|
Sett 0 | Ingen |
Sett 1 | AREA 30 |
Sett 2 | AREA 30, DEPT ADM |
Sett 3 | AREA 30, DEPT PROD |
Sett 4 | AREA 30, DEPT ADM, PROJ VW |
Sett 5 | AREA 40 |
Sett 6 | AREA 40, PROJ VW |
Eksempel 2
Dette eksemplet viser hvordan Microsoft Dynamics NAV vurderer om det finnes et dimensjonssett som består av dimensjonssettpostene AREA 40, DEPT PROD.
Microsoft Dynamics NAV kontrollerer først om AREA 40 finnes som underordnet av den overordnede IDen 0. Microsoft Dynamics NAV finner et treff i tabellen Trenode for dimensjonssett. Treffet er merket som dimensjonssett 5 i diagrammet. Etter at Microsoft Dynamics NAV har funnet treffet, fortsetter det ved å kontrollere om DEPT PROD finnes som underordnet av dimensjonssettet 5. Fordi dette ikke er tilfelle oppretter Microsoft Dynamics NAV et nytt dimensjonssett ved hjelp av den ubrukte IDen 7. Det nye dimensjonssettet 7 inneholder dimensjonssettpostene AREA 40 og DEPT PROD. Microsoft Dynamics NAV oppdaterer også tabellen Trenode for dimensjonssett for å sikre at søketreet ser ut som diagrammet nedenfor. Dimensjonssett 7 blir dermed underordnet dimensjonssett 5.

Finne dimensjonssett-ID
På et grunnleggende nivå vil Overordnet-ID, Dimension, og Dimensjonsverdien i søketreet, kombineres og brukes som primærnøkkel fordi Microsoft Dynamics NAV går gjennom treet i samme rekkefølge som dimensjonspostene. GET-funksjonen (post) brukes til å søke etter dimensjonssett-ID. Følgende kodeeksempel viser hvordan du finner dimensjonssett-IDen når det finnes tre dimensjonsverdier.
![]() | |
---|---|
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); |
For å beholde muligheten for Microsoft Dynamics NAV til å gi nytt navn til en dimensjon og dimensjonsverdi, utvides imidlertid tabell 348 Dimensjonsverdi, med et heltallsfelt av Dimensjonsverdi-ID. Denne tabellen konverterer feltparet Dimensjon og Dimensjonsverdi til en heltallsverdi. Når du gir dimensjonen og dimensjonsverdien nytt navn, endres ikke heltallsverdien.
![]() | |
---|---|
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); |