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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.03.2023, 14:10   #1  
axm2017 is offline
axm2017
Участник
 
1,890 / 295 (13) ++++++
Регистрация: 15.05.2017
Почему может не работать Exception внутри транзакции
Исторически всегда было что UpdateConflict и DuplicateKeyException не прерывают транзакцию чем успешно вроде как пользовался некоторое время назад (а в 365 вроде стало/было почти стандартом обхода MS кода).
И вдруг
юзая что то типа
ax-erp: Try Catch and transactions
Обнаружил что было когда то
Warning UpdateConflict can be caught inside transaction
а сейчас
UpdateConflict can only be caught outside of the transaction
Why?
И как обходить это? не хочу в моменте код от MS.

Последний раз редактировалось axm2017; 24.03.2023 в 14:24.
Старый 24.03.2023, 15:01   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Мне кажется ничего не поменялось.
Все зависит от того когда транзакция началась. Если внутри блока try то конечно прервется при любом исключении. Просто потому что за блок try вышли.
Старый 27.03.2023, 10:04   #3  
axm2017 is offline
axm2017
Участник
 
1,890 / 295 (13) ++++++
Регистрация: 15.05.2017
This behavior applies for both exceptions that are thrown manually and exceptions that the system throws. When an exception is thrown inside a ttsBegin-ttsCommit transaction block, no catch statement inside that transaction block can process the exception, (unless it is a UpdateConflict or a DuplicateKeyException).

https://learn.microsoft.com/en-us/dy...xpp-exceptions
Как понимаю для UpdateConflict и DuplicateKeyException можно было обрабатывать в транзакции. В 12 точно. Судя по тексту и в 365 должно быть так же, но на моем приложении это не так.
Старый 27.03.2023, 11:29   #4  
axm2017 is offline
axm2017
Участник
 
1,890 / 295 (13) ++++++
Регистрация: 15.05.2017
Проблема решена. В общем действительно все работает как и должно. Ошибка была в коде обработки исключения.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
goshoom: Exception handling in PU31 Blog bot DAX Blogs 0 30.04.2020 12:12
goshoom: Catching exceptions in AX 7 Blog bot DAX Blogs 4 22.06.2017 12:49
Почему запрос CustTransOpen именно такой? mazzy DAX: Программирование 18 10.03.2016 19:03
Почему может не передаваться args().record() ? egorych DAX: Программирование 5 03.11.2009 13:43

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

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

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