top of page

ENUM vs Options

  • marco ferrari
  • 1 apr 2020
  • Tempo di lettura: 2 min

Aggiornamento: 12 feb 2022

Nelle ultime versioni di Business Central avrete notato che i campi di tipo Option sono stati convertiti nel nuovo tipo di dato Enum.

Nella tabella Sales Header troviamo ad esempio il campo Document Type:

ree

L'Enum è a tutti gli effetti un nuovo oggetto con una sua definizione specifica. Diamo un'occhiata all'Enum Sales Document Type collegato al campo Document Type:

ree

In pratica la sequenza originale che era definita nella proprietà OptionMembers è stata trasformata nell'Enum assegnando i valori nello stesso ordine.

ree

Questo vale anche per quei campi Option che erano stati modificati nel processo di localizzazione. Possiamo fare un confronto tra l'Enum Gen. Journal Document Type della versione W1

ree

e lo stesso Enum della versione italiana:

ree

In questo caso la stringa Dishonored è stata associata al valore 10, non al valore 7 come ci saremmo potuti aspettare, ma è anche vero che nella proprietà OptionMembers della versione precedente l'opzione non era stata messa in coda alle altre, bensì dopo alcune virgole:

ree

Questa scelta è dovuta quindi a problemi di compatibilità con le versioni precedenti. Come sappiamo i campi Option erano tradotti in SQL come campi di tipo Integer, e la stessa cosa vale anche per il tipo di dati Enum; conseguentemente non si poteva cambiare il valore senza creare seri problemi (meglio dire un vero disastro) nel processo di aggiornamento.

Per questo motivo, se avessimo personalizzato un campo option aggiungendo in coda i nostri valori, adesso dovremmo aggiungerli utilizzando il nuovo oggetto enumextension

ree

Questo per quanto riguarda il passato. Da adesso in poi, volendo aggiungere nuovi valori a un campo Enum, non dovremo mai usare il primo numero disponibile, ma utilizzare la stessa numerazione che usiamo per gli oggetti nuovi, essendo in questo modo sicuri che nessuno potrà mai sovrapporsi.

ree



 
 
 

Post recenti

Mostra tutti

Commenti


©2022-2025 di Marco Ferrari

bottom of page