AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.01.2019, 07:53   #1  
r2d2 is offline
r2d2
Участник
 
62 / 10 (1) +
Регистрация: 25.11.2013
Заполнение аналитики в разнесенных проводках.
Добрый день товарищи!
MS DAX 2012 R3 6.3.4000.127.
Добавил новый сегмент в существующую структуру счета. Далее необходимо установить значение новой аналитики в проводки по ГК . Написал простенький код, который генерит новый LedgerDimension:

X++:
private LedgerDimensionAccount getLedgerDimVal(
    LedgerDimensionAccount  _ledgerDimension, 
    DimensionValue          _val,
    RefRecId                _attrRecid)
{
    RefRecId                ret;
    DimensionStorageSegment dimensionStorageSegment;
    DimensionStorage        dimensionStorage    = DimensionStorage::findById(_ledgerDimension);
    MainAccount             mainacc             = MainAccount::findByLedgerDimension(_ledgerDimension);
    RefRecId                dimHierId           = DimensionHierarchy::getAccountStructure(mainacc.RecId);
    DimensionHierarchyLevel dimHierLevel        = DimensionHierarchyLevel::findByDimensionHierarchyAndDimAttribute(
                                                                dimHierId,
                                                                _attrRecid);
    DimensionAttributeValue dimAttraValue;

    dimAttraValue = DimensionAttributeValue::findByDimensionAttributeAndValue(
                        DimensionAttribute::find(_attrRecid),
                        _val,
                        false,
                        true);

    dimensionStorageSegment = DimensionStorageSegment::construct(
        dimAttraValue.getValue(),
        dimAttraValue.RecId,
        dimAttraValue.HashKey);

    dimensionStorage.setSegment(dimHierLevel.Level, dimensionStorageSegment);

    ret = dimensionStorage.save();

    return ret;
}
Но при попытке запуска код валится с ошибкой "Функция DimensionStorage.setSegment была неверно вызвана." В отладке прошел по стеку DimensionStorage и обнаружил что в методе DimensionStorage::findById(),есть строка:
X++:
packedDimensionStorage = DimensionCache::getValue(DimensionCacheScope::DimensionStorageInstance, [_dimensionCombinationId, _validateStructureChanges]);
Контейнер packedDimensionStorage содержит набор параметров DimensionStorage в т.ч. и количество сегментов. При этом количество неверно, не хватает мною добавленного. Сделал
X++:
DimensionCache::clearAllScopes();
- не помогло. AOS перезапускал. Подскажите пожалуйста как можно решить подобную проблему?
Старый 21.01.2019, 14:49   #2  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
https://community.dynamics.com/ax/f/33/t/152746
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Автоматическое заполнение фин.аналитики по счету\корр счету в журнале накладных Elenko DAX: Функционал 14 19.09.2018 09:28
Аналитика в строках закупки отличается от аналитики в проводках miklenew DAX: Функционал 14 12.05.2008 14:52
Denis Fedotenko: Новые поля в складских проводках Blog bot DAX: База знаний и проекты 10 24.05.2007 11:57
Допустимо ли так использовать фин. аналитики kosenkov DAX: Функционал 5 26.02.2006 18:17
Код аналитики 'Номер партии' отмечен в складских проводках со значением Antidot DAX: Программирование 9 29.07.2005 10:57
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:09.