Dettagli di progettazione: Ricerca delle combinazioni di dimensione
Quando si chiude la pagina dopo avere modificato un set di dimensioni, in Business Central viene valutato se il set di dimensioni modificato esiste. Se il set non esiste, viene creato un nuovo set e viene restituito l'ID combinazione delle dimensioni.
Creazione albero di ricerca
La tabella 481 Nodo albero set di dimensioni viene utilizzata quando Business Central valuta se un set di dimensioni esiste già nella tabella 480 Voce set di dimensioni. La valutazione viene eseguita in modo ricorsivo lungo l'albero di ricerca a partire dal livello massimo con numero 0. Il livello massimo 0 rappresenta un set di dimensioni senza movimenti di set di dimensioni. I figli di questo set di dimensioni rappresentano i set di dimensioni con un solo movimento set di dimensioni. I figli di questi set di dimensioni rappresentano i set di dimensioni con due elementi figlio e così via.
Esempio 1
Nel seguente diagramma viene rappresentato un albero di ricerca con sei set di dimensioni. Solo il movimento set di dimensioni distintivo viene visualizzato nel grafico.
Nella tabella seguente viene descritto un elenco di movimenti set di dimensioni che costituiscono ogni set di dimensioni.
Set di dimensioni | Movimenti set di dimensioni |
---|---|
Set 0 | Nessuno |
Set 1 | AREA 30 |
Set 2 | AREA 30, REPARTO ADM |
Set 3 | AREA 30, REPARTO PROD |
Set 4 | AREA 30, REPARTO ADM, PROJ VW |
Set 5 | AREA 40 |
Set 6 | AREA 40, PROJ VW |
Esempio 2
In questo esempio viene mostrato in che modo Business Central valuta se è presente un set di dimensioni costituito da movimenti di set di dimensioni AREA 40, DEPT PROD.
Business Central aggiorna prima di tutto anche la tabella Nodo albero set di dimensioni per assicurarsi che l'albero di ricerca somigli al diagramma seguente. Pertanto il set di dimensioni 7 diventa un figlio del set di dimensioni 5.
Ricerca ID set di dimensioni
A livello concettuale, i valori ID padre, Dimensione e Valore dimensioni, nell'albero di ricerca vengono combinati e utilizzati come chiave primaria perché Business Central attraversa la struttura ad albero nello stesso ordine dei movimenti con dimensione. La funzione Get (record) viene utilizzata per cercare l'ID set di dimensioni. Nell'esempio di codice riportato di seguito viene illustrato come trovare l'ID set di dimensioni quando sono presenti tre valori di dimensione.
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);
Tuttavia, per mantenere la capacità di Business Central di rinominare una dimensione e un valore di dimensione, la tabella 349, Valore dimensioni, viene estesa con un campo di numero intero, ID valore dimensioni. Questa tabella converte la coppia di campi, Dimensione e Valore dimensioni, in un valore intero. Quando si rinominano la dimensione e il valore di dimensione, il valore intero non viene modificato.
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);
Vedere anche
Dettagli di progettazione: set di dimensioni Voci
set di dimensioni Panoramica delle voci
Dettagli di progettazione: struttura del tavolo
Trova qui moduli di e-learning gratuiti per Business Central