Rakennetiedot: dimensioyhdistelmien etsiminen
Kun suljet sivun dimensioyhdistelmän muokkaamisen jälkeen, Business Central arvioi, onko muokattu dimensiojoukko olemassa. Jos yhdistelmää ei ole olemassa, järjestelmän luo uuden ja palauttaa dimensioyhdistelmän tunnuksen.
Rakennetaan hakupuuta
Taulukkoa 481 Dimensioyhdistelmän puusolmu käytetään, kun Business Central arvioi onko dimensiosarja jo olemassa taulukossa 480 Dimensioyhdistelmän tapahtuma. Arviointi suoritetaan kulkemalla hakupuu läpi rekursiivisesti aloittaen ylätason numerosta 0. Ylätason 0 edustaa dimensiosarjaa, jossa ei ole dimensiosarjan kirjauksia. Tämän dimensiosarjan jälkeläiset edustavat dimensiosarjoja, joilla on vain yksi dimensiosarjan kirjaus. Näiden dimensiosarjojen jälkeläiset edustavat dimensiosarjoja, joilla on kaksi jälkeläistä jne.
Esimerkki 1
Seuraava kaavio esittelee hakupuun ja kuusi dimensiosarjaa. Kaaviossa näkyy vain erottava dimensioyhdistelmä.
Seuraavassa taulukossa kuvataan koko dimensiosarjan kirjausten luettelo, joka muodostaa kunkin dimensiosarjan.
Dimensioyhdistelmät | Dimensioyhdistelmän tapahtumat |
---|---|
Aseta 0 | Ei mitään |
Aseta 1 | AREA 30 |
Aseta 2 | AREA 30, DEPT ADM |
Aseta 3 | AREA 30, DEPT PROD |
Aseta 4 | AREA 30, DEPT ADM, PROJ VW |
Aseta 5 | AREA 40 |
Aseta 6 | AREA 40, PROJ VW |
Esimerkki 2
Tämä esimerkki osoittaa, miten Business Central arvioi, onko dimensioyhdistelmän tapahtumat AREA 40 ja DEPT PROD sisältävä dimensioyhdistelmä olemassa.
Business Central varmistaa ensin päivittämällä Dimensioyhdistelmän puusolmu -taulukon, että hakupuu näyttää samalta kuin seuraavassa kaaviossa. Dimensioyhdistelmästä 7 tulee dimensioyhdistelmän 5 alitaso.
Dimensioyhdistelmän tunnuksen etsiminen
Käsitteellisellä tasolla hakupuun Päätunnus, Dimensio ja Dimensioarvo yhdistetään ja niitä käytetään perusavaimena, koska Business Central kulkee puussa samassa järjestyksessä kuin dimensiotapahtumat. GET-toimintoa (tietue) käytetään etsimään dimensiosarjan tunnusta. Seuraava koodiesimerkki osoittaa, kuinka löydetään dimensiosarjan tunnus, kun dimensioarvoja on kolme.
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);
Jotta Business Central voisi kuitenkin edelleen nimetä sekä dimension että dimensioarvon uudelleen, taulukkoa 349, Dimensioarvo, laajennetaan Dimensioarvon tunnus -kokonaislukukentällä. Tämä taulukko muuntaa kenttäparin Dimensio ja Dimension arvo kokonaislukuarvoksi. Kun nimeät dimension ja dimension arvon, kokonaislukuarvoa ei muuteta.
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);
Katso myös
Suunnittelun yksityiskohdat: dimensioyhdistelmä tapahtumat
dimensioyhdistelmä tapahtumien yleiskuvaus
Suunnittelun yksityiskohdat: Taulukon rakenne
Business Centralin ilmaiset e-learning-moduulit löydät täältä