Miklix

Ажурирајте вредност финансијске димензије из Кс++ кода у Динамицс 365

Објављено: 16. фебруар 2025. 12:04:49 UTC

Овај чланак објашњава како да ажурирате вредност финансијске димензије из Кс++ кода у Динамицс 365, укључујући пример кода.


Ова страница је машински преведена са енглеског како би била доступна што већем броју људи. Нажалост, машинско превођење још увек није усавршена технологија, тако да може доћи до грешака. Ако желите, можете погледати оригиналну енглеску верзију овде:

Update Financial Dimension Value from X++ Code in Dynamics 365

Информације у овом посту су засноване на Динамицс 365. Такође би требало да ради у Динамицс АКС 2012, али га нисам експлицитно тестирао.

Недавно сам добио задатак да ажурирам вредност једне финансијске димензије на основу неке логике облика.

Као што вероватно знате, будући да се финансијске димензије Динамицс АКС 2012 чувају у засебним табелама и на њих упућује преко РецИд-а, обично у пољу Подразумевана димензија.

Цео оквир за руковање димензијама је донекле сложен и често морам да поново читам документацију о њему, можда зато што то није нешто са чиме често радим.

У сваком случају, ажурирање поља у постојећем скупу димензија је нешто што се често појављује, па сам мислио да напишем свој омиљени рецепт ;-)


Метода статичког услужног програма може изгледати овако:

public static DimensionDefault updateDimension( DimensionDefault    _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;
}

Метод враћа нови (или исти) ДименсионДефаулт РецИд, тако да ако ажурирате вредност димензије за запис – што је вероватно најчешћи сценарио – требало би да обавезно ажурирате поље димензије на том запису новом вредношћу.

Поделите на БлуескиПоделите на ФејсбукуДелите на ЛинкедИнуПодели на Тумблр-уПодели на КсДелите на ЛинкедИнуПин на Пинтерест-у

Миккел Банг Кристенсен

О аутору

Миккел Банг Кристенсен
Миккел је креатор и власник миклик.цом. Има преко 20 година искуства као професионални компјутерски програмер/програмер софтвера и тренутно је запослен са пуним радним временом у великој европској ИТ корпорацији. Када не пише блог, своје слободно време проводи на широком спектру интересовања, хобија и активности, што се у извесној мери може одразити на разноврсност тема обрађених на овој веб страници.