Ажурирајте вредност финансијске димензије из Кс++ кода у Динамицс 365
Објављено: 16. фебруар 2025. 12:04:49 UTC
Овај чланак објашњава како да ажурирате вредност финансијске димензије из Кс++ кода у Динамицс 365, укључујући пример кода.
Update Financial Dimension Value from X++ Code in Dynamics 365
Информације у овом посту су засноване на Динамицс 365. Такође би требало да ради у Динамицс АКС 2012, али га нисам експлицитно тестирао.
Недавно сам добио задатак да ажурирам вредност једне финансијске димензије на основу неке логике облика.
Као што вероватно знате, будући да се финансијске димензије Динамицс АКС 2012 чувају у засебним табелама и на њих упућује преко РецИд-а, обично у пољу Подразумевана димензија.
Цео оквир за руковање димензијама је донекле сложен и често морам да поново читам документацију о њему, можда зато што то није нешто са чиме често радим.
У сваком случају, ажурирање поља у постојећем скупу димензија је нешто што се често појављује, па сам мислио да напишем свој омиљени рецепт ;-)
Метода статичког услужног програма може изгледати овако:
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;
}
Метод враћа нови (или исти) ДименсионДефаулт РецИд, тако да ако ажурирате вредност димензије за запис – што је вероватно најчешћи сценарио – требало би да обавезно ажурирате поље димензије на том запису новом вредношћу.