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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.11.2017, 12:41   #1  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Napalm Посмотреть сообщение
Может стоит потратить 1 день и разобраться как это все работает, вместо того чтобы писать черти-что?

Зачем создавать DefaultDimension, добавлять в него один Dimension, потом конвертировать в LedgerDimension?

Не проще ли используя DimensionHelper найти нужный сегмент, присвоить ему значение и сохранить?
Может стоит внимательнее прочитать вопрос, прежде чем наезжать?

В D365 PU10 нет класса DimensionHelper. Если Вы чего-то другое имели в виду - приведите пример кода. А заодно - где (конкретно в каких объектах) разбираться. А то получается - каждый где нашел код, там и считает эталоном - кто в ЖГК, кто в проектах, кто в складском контуре
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: Aquarius (1).
Старый 08.11.2017, 19:52   #2  
Napalm is offline
Napalm
Участник
 
80 / 88 (3) ++++
Регистрация: 23.05.2012
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
В D365 PU10 нет класса DimensionHelper. Если Вы чего-то другое имели в виду - приведите пример кода.
Имел ввиду класс DimensionStorage. Ниже пример кода (разумеется для реального применения следует поменять константы на параметры и добавить проверок.
X++:
ttsbegin;

LedgerJournalTrans ledgerJournalTrans = LedgerJournalTrans::findRecId(5555555555, true);

DimensionAttribute dimensionAttribute = DimensionAttribute::findByName("BusinessUnit");

DimensionAttributeValue dimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, "001");

DimensionStorage dimensionStorage = DimensionStorage::findById(ledgerJournalTrans.LedgerDimension);

for (int i = 1; i <= dimensionStorage.segmentCount(); i++)
{
    if (dimensionStorage.getAttributeIdForSegment(i) == dimensionAttribute.RecId)
    {
        dimensionStorage.setSegment(i, DimensionStorageSegment::constructFromValue(dimensionAttributeValue.getValue(), dimensionAttributeValue));

        ledgerJournalTrans.LedgerDimension = dimensionStorage.save();
        ledgerJournalTrans.update();

        break;
    }
}

ttscommit;
За это сообщение автора поблагодарили: Aquarius (1), BOAL (1), ta_and (4).
Теги
defaultdimension, ledgerdimension, финансовые аналитики

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
organicax: Setting up the Statistical Demand Forecasting in D365 with Azure Machine Learning Blog bot DAX Blogs 0 12.08.2017 01:17
organicax: Refreshing forms – options in D365 Blog bot DAX Blogs 0 14.04.2017 19:11
organicax: D365 Mobile App – Creating an action Blog bot DAX Blogs 0 14.04.2017 07:17
теряется значение переменной laxel DAX: Программирование 3 05.02.2009 10:07
Как добавить значение в таблицу не по имени поля, а нпример по индексу поля? yuriuss DAX: Программирование 16 07.07.2008 16:36
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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