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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.10.2009, 13:59   #1  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
? Ошибка в классе JournalTableData
До конца не уверен, но похоже что в методе updateBlockServer класса JournalTableData закралась ошибка, которая не дает пересчитывать количество строк в журнале:
исходный код:
X++:
                    if (!isSessionActive(journalTableCopy.SessionId,journalTableCopy.SessionLoginDate,journalTableCopy.SessionLoginTime))
                    {
                        journalTableData.initTotal();
                        _updateTotal = true;
                    }
заменил на:
X++:
                    if (isSessionActive(journalTableCopy.SessionId,journalTableCopy.SessionLoginDate,journalTableCopy.SessionLoginTime))
                    {
                        journalTableData.initTotal();
                        _updateTotal = true;
                    }
Вопрос к программистам: мои исправления верны?
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 07.10.2009, 00:33   #2  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 338 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Записей в блоге: 14
Метод updateBlockServer имеет основное ветвление в алгоритме:
  • разблокирование журнала //unlock
  • блокирование журнала //lock
Прокомментирую разблокирование журнала, к которому относится тот кусок кода с "ошибкой":
  1. Проверяется жива ли сессия, которая вызывала метод. Если сессия жива, то переходим к п. 2
  2. Если журнал блокирован системой -- ничего не делаем, переходим к п. 3
  3. В конце-концов, журнал не блокирован системой и сессия жива, то обновляются итоги
Проверить п. 1 мне не удалось, т. к. деббагер отваливается если убить сессию его вызвавшую. Но я думаю, эта ветка алгоритма обусловлена клиент-серверным взаимодействием.

Нажмите на изображение для увеличения
Название: _updateBlockServer.png
Просмотров: 275
Размер:	23.8 Кб
ID:	5219
Старый 07.10.2009, 12:35   #3  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Общую логику я понял. Но "по факту" получалось следующее:
- захожу в строки журнала;
- добавляю строку;
- выхожу из журнала и ... количество строк в журнале не пересчитывается, т.к. моя сессия "жива"
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 07.10.2009, 12:57   #4  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 338 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Записей в блоге: 14
Цитата:
Сообщение от KiselevSA Посмотреть сообщение
Общую логику я понял. Но "по факту" получалось следующее:
- захожу в строки журнала;
- добавляю строку;
- выхожу из журнала и ... количество строк в журнале не пересчитывается, т.к. моя сессия "жива"
Dynamics AX 4.0
Kernel: 4.0.2501.116
Application: 4.0.2501.347
Localization: Eastern Europe

У меня в журнале Инвентаризации не повторилось. А Вы в каком журнале пробовали и на какой системе?
Старый 07.10.2009, 14:12   #5  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Цитата:
Сообщение от Kabardian Посмотреть сообщение
Dynamics AX 4.0
Kernel: 4.0.2501.116
Application: 4.0.2501.347
Localization: Eastern Europe

У меня в журнале Инвентаризации не повторилось. А Вы в каком журнале пробовали и на какой системе?
Это повторялось и в LedgerJournal и в InventJournal, да и в собственном журнале-наследнике от базового класса.
Версия: AX 4.0 Kernel - 4.0.2501.116 Application - 4.0.2501.122
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 08.10.2009, 08:57   #6  
player is offline
player
Участник
 
107 / 69 (3) ++++
Регистрация: 25.08.2007
Подозреваю, что перехода по стрелке не будет никогда - в пункт 2 мы попадем, только если вообще нет JournalTableCopy.SessionId, ибо от пункта 1 его отделяет "else".
Старый 09.10.2009, 23:02   #7  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Вообще то обновление происходит в методе addTotal.
Если мы говорим про ручной ввод.
Но может я не прав, но возможно вы пытаетесь кодом создать строки и в конце забыли
X++:
        inventJournalTable::initTotal(inventJournalTable);
        inventJournalTable.update();
Просто догадка, не более.
Потому что штатно нумерация нормально работает.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Теги
journaltabledata

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ошибка в классе DirPartyAddress nano3 DAX: Программирование 1 15.09.2009 19:44
DAX 4.0 SP1 EE Ошибка в классе PurchFormLetter_PackingSlip метода createParmLineFromWMSJournalTrans.. aidsua DAX: Функционал 2 30.01.2008 12:13
Ошибка в классе SysMailerAddressField в Dynamics Ax 4 SP1. Метод appendAddress. Demetrio DAX: Программирование 3 03.01.2008 18:41
InventJournalTrans DreamCreator DAX: Программирование 7 14.12.2004 14:48
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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