Ажурирајте ја вредноста на финансиската димензија од кодот X++ во Dynamics 365
Објавено: 5 март 2025, во 19:52:50 UTC
Последно ажурирано: 5 март 2025, во 19:53:09 UTC
Оваа статија објаснува како да се ажурира вредноста на финансиската димензија од кодот X++ во Dynamics 365, вклучувајќи пример за код.
Update Financial Dimension Value from X++ Code in Dynamics 365
Информациите во овој пост се засноваат на Dynamics 365. Треба да работи и во Dynamics AX 2012, но јас не сум експлицитно тестиран.
Неодамна добив задача да ја ажурирам вредноста на една финансиска димензија врз основа на некоја форма логика.
Како што веројатно знаете, бидејќи финансиските димензии на Dynamics AX 2012 се чуваат во посебни табели и се упатуваат преку RecId, обично во полето DefaultDimension.
Целата рамка за справување со димензиите е донекаде сложена и честопати морам да ја препрочитам документацијата за неа, можеби затоа што тоа не е нешто со кое работам толку често.
Како и да е, ажурирањето на поле во постоечко множество димензии е нешто што се појавува често, па помислив да го напишам мојот омилен рецепт ;-)
Статичка алатка може да изгледа вака:
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;
}
Методот враќа нов (или истиот) DimensionDefault RecId, па ако ажурирате вредност на димензија за запис - што е веројатно најчестото сценарио - треба да бидете сигурни дека ќе го ажурирате полето за димензија на тој запис со новата вредност.