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
Última actualització: 13 de novembre del 2025, a les 13:39:23 UTC
Aquest article explica com actualitzar un valor de dimensió financera des del codi X++ al Dynamics 365, incloent-hi 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 m'han encarregat l'actualització del valor d'una única dimensió financera basant-me en alguna lògica de formulari.
Com probablement sabeu, atès que les dimensions financeres del Dynamics AX 2012 s'emmagatzemen en taules separades i s'hi fa referència mitjançant un RecId, normalment en un camp DefaultDimension.
Tot el marc de treball per gestionar les dimensions és una mica complex i sovint em trobo havent de rellegir la documentació, potser perquè no és una cosa amb què treballi gaire sovint.
De tota manera, actualitzar un camp en un conjunt de dimensions existent és una cosa que sorgeix sovint, així que he pensat que faria un escrit de la meva recepta preferida ;-)
Un mètode d'utilitat estàtica podria tenir aquest aspecte:
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ú), heu d'assegurar-vos d'actualitzar el camp de dimensió d'aquest registre amb el nou valor.
Lectures addicionals
Si t'ha agradat aquesta publicació, també et poden agradar aquests suggeriments:
- El Visual Studio es bloqueja a l'inici mentre carrega els projectes recents
- Creació d'un camp de cerca per a una dimensió financera al Dynamics 365
- Posa el Dynamics 365 FO Virtual Machine Dev o Test al mode de manteniment
