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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.01.2021, 22:33   #1  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
AX2012 R3 modal form - "unbalanced TTS" при нажатии CTRL+V, TAB или правом клике мышью
AX2012 R3. Клиент хочет добавить логику при ручном создании sales order confirmation: в самом конце процесса проверяются некоторые данные, и всплывает модальная форма с вариантами развития событийб где пользователь должен определить что делать дальше.

Форма вызывается так:

X++:
args = new Args();
            args.name(formstr(xxxRecoverDialog));
            args.record(log);
            formRun = classFactory::formRunClassOnClient(Args);
            formRun.init();
            formRun.run();
            formRun.wait();
В самой форме
X++:
public void run()
{
    super();
    this.wait(true);
}
Проблема возникает если пользователь нажимает TAB, CTRL+V или просто кликает правой кнопкой мыши на форме: "Unbalanced TTS".
Датасорс формы read-only. Никакой логики на active, write и т.д.
TTS есть только в методах которые вызываются кнопками, и при дебагге они не вызываются - т.к. на кнопки мы не нажимаем.

Единственный TTS begin который присутствует в момент когда форма вызывается, это внешний TTS от sales order confirmation.

Если честно, вообще не понимаю что происходит (((
Старый 27.01.2021, 00:08   #2  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
во первых - зачем в методе run() снова делать wait(true), почему бы сразу не в месте вызова?

Ну а во вторых - кто ж форму в транзакции открывает? Это ещё хуже, чем признаться что дворец его ...

см. SalesFormLetter и место, где глобальная транщакция закрывается, там и вызывать. По-моему, там даже метод-пу тышка где-то есть нс такой случай.
Старый 27.01.2021, 01:58   #3  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Так вот в том и дело, что транзакцию надо отменить если пользователь так решил - поэтому запускать после окончания транзакции не вариант.
Старый 27.01.2021, 07:48   #4  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Так вот в том и дело, что транзакцию надо отменить если пользователь так решил - поэтому запускать после окончания транзакции не вариант.
Придется переделывать логику и выносить все вопросы до запуска процедуры. Даже если вместо своей формы воспользуетесь BOX:: то все равно будете во многих случаях получать ошибки непарных транзакций.
Не знаю можно ли это обойти, просто не возникало желания что-то спрашивать у пользователя во время выполнения транзакций.
  • Пользователь может запустить процедуру в пакетном режиме, спрашивать будет не у кого.
  • Его может вызвать шеф, он уйдет на перекур/обед, а транзакция открыта, какие-то записи заблокированы, остальным пользователям приходится следовать примеру и тоже куда-либо идти.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX2012 R3 WMDP, Разрешить ввод "<" в поля web-формы (ошибка "A potentially dangerous Request.Form value was detected from the client") RSrd DAX: Программирование 2 27.02.2020 15:19
dynamicsaxse: November 2018 Release – Dynamics AX2012 R3 update Blog bot DAX Blogs 0 15.11.2018 09:11
emeadaxsupport: How to use the Automatic Billing Rule for Projects in Microsoft Dynamics AX 2012 R2 and AX2012 R3 Blog bot DAX Blogs 0 03.03.2015 19:11
dynamicsaxtraining: Vendor returns Blog bot DAX Blogs 0 11.10.2012 00:11
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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