Aggiorna il valore della dimensione finanziaria dal codice X++ in Dynamics 365
Pubblicato: 16 febbraio 2025 alle ore 12:01:11 UTC
Ultimo aggiornamento: 13 novembre 2025 alle ore 13:37:12 UTC
Questo articolo spiega come aggiornare il valore di una dimensione finanziaria dal codice X++ in Dynamics 365, incluso un esempio di codice.
Update Financial Dimension Value from X++ Code in Dynamics 365
Le informazioni contenute in questo post si basano su Dynamics 365. Dovrebbero funzionare anche in Dynamics AX 2012, ma non l'ho testato in modo esplicito.
Di recente mi è stato affidato il compito di aggiornare il valore di una singola dimensione finanziaria in base a una qualche logica.
Come probabilmente saprai, le dimensioni finanziarie di Dynamics AX 2012 sono archiviate in tabelle separate e referenziate tramite un RecId, solitamente in un campo DefaultDimension.
L'intero framework per la gestione delle dimensioni è piuttosto complesso e spesso mi ritrovo a dover rileggere la documentazione a riguardo, forse perché non è qualcosa con cui lavoro molto spesso.
In ogni caso, aggiornare un campo in un set di dimensioni esistente è un'operazione che capita spesso, quindi ho pensato di scrivere un articolo sulla mia ricetta preferita ;-)
Un metodo di utilità statico potrebbe apparire così:
Name _dimensionName,
DimensionValue _dimensionValue)
{
DimensionAttribute dimAttribute;
DimensionAttributeValue dimAttributeValue;
DimensionAttributeValueSetStorage dimStorage;
DimensionDefault ret;
;
ret = _defaultDimension;
ttsbegin;
dimStorage = DimensionAttributeValueSetStorage::find(_defaultDimension);
dimAttribute = DimensionAttribute::findByName(_dimensionName);
if (_dimensionValue)
{
dimAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue( dimAttribute,
_dimensionValue,
true,
true);
dimStorage.addItem(dimAttributeValue);
}
else
{
dimStorage.removeDimensionAttribute(dimAttribute.RecId);
}
ret = dimStorage.save();
ttscommit;
return ret;
}
Il metodo restituisce un nuovo (o lo stesso) DimensionDefault RecId, quindi se si aggiorna un valore di dimensione per un record (che è probabilmente lo scenario più comune), è necessario assicurarsi di aggiornare il campo dimensione su quel record con il nuovo valore.
Ulteriori letture
Se ti è piaciuto questo post, potrebbero piacerti anche questi suggerimenti:
- Creazione di un campo di ricerca per una dimensione finanziaria in Dynamics 365
- Visual Studio si blocca all'avvio durante il caricamento dei progetti recenti
- Metti Dynamics 365 FO Virtual Machine Dev o Test in modalità di manutenzione
