Bewerken

Share via


Ontwerpdetails: Dimensiecombinaties zoeken

Wanneer u een pagina sluit nadat u een dimensieset hebt bewerkt, evalueert Business Central of de bewerkte dimensieset bestaat. Als de verzameling niet bestaat, wordt een nieuwe verzameling gemaakt en wordt de dimensiecombinatie-id geretourneerd.

Zoekactiestructuur opzetten

Tabel 481 Boomstructuurpunt dimensieset wordt gebruikt wanneer Business Central evalueert of een set dimensies al bestaat in tabel 480 Dimensiesetpost. De evaluatie wordt uitgevoerd doordat de zoekstructuur recursief wordt doorlopen vanaf het hoogste niveau met nummer 0. Hoogste niveau 0 staat voor een dimensieset zonder dimensiesetposten. De onderliggende elementen van deze dimensieset vertegenwoordigen dimensiesets met slechts één dimensiesetpost. De onderliggende elementen van deze dimensiesets vertegenwoordigen dimensiesets met twee onderliggende elementen, enzovoort.

Voorbeeld 1

Het volgende diagram vertegenwoordigt een zoekactiestructuur met zes dimensiesets. Alleen de onderscheidende dimensiesetpost wordt weergegeven in het diagram.

Voorbeeld van een dimensieboomstructuur.

In de volgende tabel wordt een volledig overzicht beschreven van dimensiesetposten waaruit elke dimensieset bestaan.

Dimensiesets Dimensiesetposten
Set 0 Geen
Set 1 AREA 30
Set 2 AREA 30, DEPT ADM
Set 3 AREA 30, DEPT PROD
Set 4 AREA 30, DEPT ADM, PROJ VW
Set 5 AREA 40
Set 6 AREA 40, PROJ VW

Voorbeeld 2

Dit voorbeeld geeft aan hoe Business Central evalueert of een dimensieset die bestaat uit de dimensiesetposten AREA 40, DEPT PROD bestaat.

Eerst werkt Business Central ook de tabel Boomstructuurpunt dimensieset bij om ervoor te zorgen dat de zoekstructuur lijkt op het volgende diagram. Zodoende wordt dimensieset 7 een onderliggend niveau van dimensieset 5.

Voorbeeld van een dimensieboomstructuur in NAV 2013.

Dimensieset-id zoeken

Op conceptueel niveau zijn Hoofd-id, Dimensie en Dimensiewaarde in de zoekstructuur gecombineerd en gebruikt als de primaire sleutel omdat Business Central de structuur doorloopt in dezelfde volgorde als de dimensieposten. De functie GET (record) wordt gebruikt om te zoeken naar dimensieset-id. In het volgende codevoorbeeld wordt aangegeven hoe u de dimensieset-id kunt vinden als er drie dimensiewaarden zijn.

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);  

Om het vermogen van Business Central te behouden om zowel een dimensie als dimensiewaarde te kunnen hernoemen wordt tabel 349 Dimensiewaarde uitgebreid met een geheelgetalveld genaamd Dimensiewaarde-id. In deze tabel wordt het veldpaar Dimensie en Dimensiewaarde omgezet in een geheel getal. Wanneer u de naam van de dimensie en dimensiewaarde wijzigt, wordt de waarde voor het gehele getal niet gewijzigd.

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);  

Zie ook

Ontwerpdetails: Dimensiesetposten
Dimensiesetposten - overzicht
Ontwerpdetails: Tabelstructuur

U vindt hier gratis e-learningmodules voor Business Central