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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.11.2013, 17:53   #1  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Ошибка в периодической операции создания РБП.
При создании РБП периодической операцией Главная книга - Периодические операции - Расходы будущих периодов - Создание РБП, с установленной галкой "Предварительный просмотр" столкнулся со странным поведением системы.

После муторных копаний в настройках и классах RTax25 нашел унылый баг в методе new() класса RTax25StdChannel_DeferralPreview.

X++:
protected void new()
{
    super();

    deferralsTableList = new RecordSortedList(tablenum(RDeferralsTable));
    deferralsTableList.sortOrder(fieldnum(RDeferralsTable, DeferralsId));

    deferralsBookList  = new RecordSortedList(tablenum(RDeferralsBook));
    deferralsBookList.sortOrder(fieldnum(RDeferralsBook,   DeferralsId),
                                fieldnum(RDeferralsBook,   DeferralsBookId));

    deferralsTransList = new RecordSortedList(tablenum(RDeferralsTrans));
    deferralsBookList.sortOrder(fieldnum(RDeferralsTrans,   DeferralsId),
                                fieldnum(RDeferralsTrans,   DeferralsBookId));
}

При создании третьего объекта deferralsTransList обновление уникального ключа (sortOrder) идет почему-то снова для второго объекта deferralsBookList, но с полями таблицы RDeferralsTrans.

Ошибка актуальна для всех версий DAX 2009 и 2012. Более ранних версий системы под рукой не оказалось.
__________________
Dynamics AX Experience

Последний раз редактировалось CDR; 08.11.2013 в 18:02.
Старый 08.11.2013, 17:55   #2  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Исправление
X++:
protected void new()
{
    super();

    deferralsTableList = new RecordSortedList(tablenum(RDeferralsTable));
    deferralsTableList.sortOrder(fieldnum(RDeferralsTable, DeferralsId));

    deferralsBookList  = new RecordSortedList(tablenum(RDeferralsBook));
    deferralsBookList.sortOrder(fieldnum(RDeferralsBook,   DeferralsId),
                                fieldnum(RDeferralsBook,   DeferralsBookId));

    deferralsTransList = new RecordSortedList(tablenum(RDeferralsTrans));
    // bugfix, cdr -->
    /*
    deferralsBookList.sortOrder(fieldnum(RDeferralsTrans,   DeferralsId),
                                fieldnum(RDeferralsTrans,   DeferralsBookId));
    */
    deferralsTransList.sortOrder(fieldnum(RDeferralsTrans,   DeferralsId),
                                 fieldnum(RDeferralsTrans,   DeferralsBookId));
    // bugfix, cdr <--
}
__________________
Dynamics AX Experience

Последний раз редактировалось CDR; 08.11.2013 в 18:00.
За это сообщение автора поблагодарили: Алексей Контев (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Критическая ошибка в функции LedgerBondServer_RU.addBondProrateAmountMSTSecond. (Проводки по операции ПЕР034122 не балансируют согласно 14.06.2012. (Валюта компании: 0,00 - вторичная валюта: 0,00) Romb DAX: Программирование 16 19.04.2013 03:41
CRM:создания действия.ошибка fialka DAX: Программирование 2 23.06.2008 09:45
Создание РБП, через периодические операции sparur DAX: Функционал 7 30.08.2007 19:44
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Ошибка при попытке создания кассовых ордеров mad_pilot DAX: Функционал 1 03.02.2003 06:17

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

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

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