Szczegóły projektu: Wyszukiwanie kombinacji wymiarów
W momencie zamknięcia strony, na której był edytowany zestaw wymiarów, Business Central sprawdza czy wybrany zestaw już istnieje. Jeśli zestaw nie istnieje, tworzony jest nowy zestaw i zwracany jest identyfikator kombinacji wymiarów.
Tworzenie drzewa poszukiwań
Tabela 481 Węzeł drzewa dla zestawu wymiarów jest używana, gdy Business Central sprawdza, czy dany zestaw wymiarów już istnieje w tabeli 480 Zapis zestawu wymiarów. Oceny dokonuje się poprzez rekurencyjne przemierzanie drzewa poszukiwań, zaczynając od najwyższego poziomu oznaczonego numerem 0. Najwyższy poziom 0 reprezentuje zestaw wymiarów pozbawiony zapisów zestawu wymiarów. Zestawy dziedziczące po tym zestawie wymiarów posiadają tylko jeden zapis zestawu wymiarów. Zestawy dziedziczące po tym zestawie wymiarów posiadają dwa zapisy zestawu wymiarów itd.
Przykład 1
Poniższy diagram przedstawia drzewo poszukiwań z sześcioma zestawami wymiarów. Na diagramie ukazany został tylko zapis zestawu wymiarów, który pozwala na ich rozróżnienie.
Poniższa tabela przedstawia kompletną listę zapisów zestawu wymiarów, które składają się na zestawy wymiarów.
Zestawy wymiarów | Zapisy zestawu wymiarów |
---|---|
Zestaw 0 | Brak |
Zestaw 1 | Obszar 30 |
Zestaw 2 | Obszar 30, DEPT ADM |
Zestaw 3 | Obszar 30, DEPT PROD |
Zestaw 4 | Obszar 30, DEPT ADM, PROJ VW |
Zestaw 5 | Obszar 40 |
Zestaw 6 | Obszar 40, PROJ VW |
Przykład 2
Ten przykład pokazuje, w jaki sposób Business Central ocenia, czy istnieje zestaw wymiarów, składający się z zapisów zestawu wymiarów AREA 40, DEPT PROD.
Najpierw, Business Central również aktualizuje tabelę Węzeł drzewa dla zestawu wymiarów, aby upewnić się, że drzewo wyszukiwania wygląda jak poniższy diagram. W ten sposób zestaw wymiarów z numerem 7 dziedziczy po zestawie wymiarów z numerem 5.
Znajdowanie identyfikatora zestawu wymiarów
Na poziomie koncepcji, Identyfikator nadrzędny, Wymiar oraz Wartość wymiaru są połączone w drzewie wyszukiwań i używane jako klucz podstawowy, ponieważ Business Central porusza się po drzewie w tej samej kolejności, co zapisy wymiarów. Funkcja GET (Rekord) służy do wyszukiwania identyfikatora zestawu wymiarów. Poniższy przykład kodu pokazuje, jak znaleźć identyfikator zestawu wymiarów, gdy istnieją trzy wartości wymiaru.
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);
Jednak aby Business Central nadal miało możliwość zmiany nazwy i wartości wymiaru, tabela 349, Wartość wymiaru, została rozszerzona o pole liczb całkowitych Identyfikator wartości wymiaru. Tabela konwertuje dwa pola, Wymiar i Wartość wymiaru, na wartość całkowitą. W przypadku zmiany nazwy i wartości wymiaru, wartość całkowita nie zostanie zmieniona.
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);
Zobacz też
Szczegóły projektu: Zapisy zestawu wymiarów
Przegląd zapisów zestawu wymiarów
Szczegóły projektu: Struktura tabeli