Actualitzeu el valor de la dimensió financera del codi X++ al Dynamics 365
Publicat: 5 de març del 2025, a les 19:28:30 UTC
En aquest article s'explica com actualitzar un valor de dimensió financera del codi X++ al Dynamics 365, inclòs un exemple de codi.
Update Financial Dimension Value from X++ Code in Dynamics 365
La informació d'aquesta publicació es basa en el Dynamics 365. També hauria de funcionar al Dynamics AX 2012, però no l'he provat explícitament.
Recentment, em van encarregar d'actualitzar el valor d'una sola dimensió financera basant-se en una lògica de formulari.
Com probablement ja sabeu, atès que les dimensions financeres del Dynamics AX 2012 s'emmagatzemen en taules separades i es fan referència a través d'un RecId, normalment en un camp DefaultDimension.
Tot el marc per gestionar les dimensions és una mica complex i sovint em trobo havent de tornar a llegir la documentació sobre ell, potser perquè no és una cosa amb la qual treballo tan sovint.
De totes maneres, actualitzar un camp en un conjunt de dimensions existent és una cosa que apareix amb freqüència, així que vaig pensar que faria un escrit de la meva recepta preferida ;-)
Un mètode d'utilitat estàtica podria semblar així:
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;
}
El mètode retorna un nou (o el mateix) DimensionDefault RecId, de manera que si actualitzeu un valor de dimensió per a un registre, que és probablement l'escenari més comú, us heu d'assegurar d'actualitzar el camp de dimensió d'aquest registre amb el valor nou.