Frissítse a pénzügyi dimenzió értékét az X++ kódból a Dynamics 365-ben
Megjelent: 2025. február 16. 12:01:06 UTC
Ez a cikk bemutatja, hogyan frissíthet pénzügyi dimenzióértéket X++ kódból a Dynamics 365 rendszerben, beleértve egy kódpéldát.
Update Financial Dimension Value from X++ Code in Dynamics 365
A bejegyzésben szereplő információk a Dynamics 365-ön alapulnak. A Dynamics AX 2012-ben is működnie kell, de nem teszteltem kifejezetten.
Nemrég azt a feladatot kaptam, hogy valamilyen formalogika alapján frissítsem egyetlen pénzügyi dimenzió értékét.
Amint azt valószínűleg Ön is tudja, a Dynamics AX 2012 pénzügyi dimenziói külön táblákban vannak tárolva, és egy RecId-n keresztül hivatkoznak rájuk, általában egy DefaultDimension mezőben.
A méretek kezelésének teljes kerete kissé összetett, és gyakran azon kapom magam, hogy újra kell olvasnom a dokumentációt, talán azért, mert nem olyan gyakran dolgozom vele.
Mindenesetre egy meglévő dimenziókészletben gyakran előfordul egy mező frissítése, ezért úgy gondoltam, leírom kedvenc receptemet ;-)
A statikus segédprogram így nézhet ki:
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;
}
A metódus egy új (vagy ugyanazt) DimensionDefault RecId-t ad vissza, így ha egy rekord dimenzióértékét frissíti – ami valószínűleg a leggyakoribb forgatókönyv –, mindenképpen frissítse az adott rekord dimenziómezőjét az új értékkel.