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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.10.2007, 12:24   #1  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
? При повторном вызове linkActive проваливается в validateWrite(Строки общего журнала ГК)
Добрый день, уважаемые коллеги!

Наткнулись на интересное поведение формы строк журнала ГК. Когда создаем общий журнал ГК, не нажимая кнопку сохранить, идем в строки. На LedgerJournalTrans_ds срабатывает метод linkActive, в super() в первый раз он проваливается в QueryRun queryRunClass(Args _args), а вот второй раз через вызов super() он проваливается в _ds.validateWrite.

Результат: если в настройках журнала счет указан ГК, счет и корр-счет совпадают срабатывает проверка на одинаковые счета, Выделившийся Документ ГК остается в пуле сводобных номеров номерной серии. При создании второй строки "прозрачно" для пользователя для абсолютно разных операций имееим один номер документа ГК.

На чистом приложении фокус не повторяется, стало быть проблема наша.

Вопрос: почему, при первом открытие формы, второй вызов метода linkActive, через super(), попадает в метод validateWrite? Следствием чего может быть такое поведение формы или как это можно воспроизвести?

DAX 3.0 SP4 Build #11.
Старый 25.10.2007, 12:34   #2  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
На LedgerJournalTrans_ds срабатывает метод linkActive, в super() в первый раз он проваливается в QueryRun queryRunClass(Args _args), а вот второй раз через вызов super() он проваливается в _ds.validateWrite.
а стек что не показывает, откуда идут вызовы?
Старый 25.10.2007, 12:40   #3  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Cool
Цитата:
Сообщение от konopello Посмотреть сообщение
а стек что не показывает, откуда идут вызовы?
Показывает

Первый:
=========
\Classes\ClassFactory\QueryRunClass - line 1
\Classes\FormDataSource\executeQuery
\Classes\FormDataSource\linkActive
\Forms\LedgerJournalTransDaily\Data Sources\LedgerJournalTrans\Methods\linkActive - line 10
=========

Второй:
=========
\Forms\LedgerJournalTransDaily\Data Sources\LedgerJournalTrans\Methods\validateWrite - line 1
\Classes\FormDataSource\executeQuery
\Classes\FormDataSource\linkActive
\Forms\LedgerJournalTransDaily\Data Sources\LedgerJournal
=========

executeQuery на LedgerJournalTrans не перекрыт.
Старый 25.10.2007, 12:48   #4  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
ну так выход прост сравнить стандартный стек с твоим и найти в чем же глюк.
Старый 25.10.2007, 12:57   #5  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
?
Цитата:
Сообщение от konopello Посмотреть сообщение
ну так выход прост сравнить стандартный стек с твоим и найти в чем же глюк.
В стандарте оба раза вызовы идут по сценарию №1. Так что это мало чем помогает. Тут скорее вопрос: как заставить сработать validateWrite при неперекрытом executeQuery источника данных!?!
Старый 25.10.2007, 13:09   #6  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
Тут скорее вопрос: как заставить сработать validateWrite при неперекрытом executeQuery источника данных!?!
а при чем здесь executeQuery()? validateWirite() вызывается при попытке записи, вот и надо искать, кто или что пытается модифицировать запись? тут сложно вам помочь.
Старый 25.10.2007, 13:50   #7  
ViV is offline
ViV
Axapta Retail User
Самостоятельные клиенты AX
Axapta Retail User
 
200 / 79 (3) ++++
Регистрация: 14.09.2005
В качестве моральной поддержки:
Сталкивались с подобной ситуацией, когда при открытии формы после метода init 1 раз из 4-5 следующим вызывался метод, который в принципе никак не должен был вызываться, дергал метод класса который еще создаться то не успел... И все заканчивалось ошибкой. В стеке эта последовательность четко прослеживалась как и у вас. Побороли просто создав класс заранее и успокоились
За это сообщение автора поблагодарили: Lemming (2).
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Реверс операций из общего журнала sbol DAX: Функционал 9 10.12.2008 13:30
Обработка счет-фактуры поставщика из общего журнала ГК nmariya DAX: Функционал 2 05.06.2008 17:08
Строки журнала другого типа DreamCreator DAX: Программирование 0 16.03.2005 12:36
Создать/Удалить строки журнала Yprit DAX: Программирование 1 20.09.2004 08:54
Удаление строки журнала ATimTim DAX: Программирование 7 05.08.2004 13:49

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

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

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