Rediger

Del via


Designdetaljer: Søke etter dimensjonskombinasjoner

Når du lukker en side etter å ha redigert et sett med dimensjoner, undersøker Business Central 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 Business Central 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.

Eksempel på dimensjonstrestruktur.

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 Business Central vurderer om det finnes et dimensjonssett som består av dimensjonssettpostene AREA 40, DEPT PROD.

Først oppdaterer Business Central også tabellen Trenode for dimensjonssett for å sikre at søketreet ser ut som diagrammet nedenfor. Dimensjonssett 7 blir dermed underordnet dimensjonssett 5.

Eksempel på dimensjonstrestruktur i NAV 2013.

Finne dimensjonssett-ID

På et grunnleggende nivå vil Overordnet ID, Dimensjon og Dimensjonsverdi i søketreet, kombineres og brukes som primærnøkkel fordi Business Central 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 Business Central til å gi nytt navn til både en dimensjon og en dimensjonsverdi, utvides imidlertid tabell 349, Dimensjonsverdi, med et heltallsfelt, 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);  

Se også

Designdetaljer: Dimensjonssettposter
Dimensjonssettposter – oversikt
Designdetaljer: Tabellstruktur

Finn nettlæringsmoduler for Business Central her