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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.09.2019, 20:46   #1  
alicedr is offline
alicedr
Участник
 
109 / 28 (1) +++
Регистрация: 06.07.2012
Адрес: Киев
D365FO v10 webrequest + try/catch + ttslevel>0
Есть код, который вызывается во время стандарных бизнесс процессов - picking list, packing slip, post invoice, соответсвенно выполняется он внутри внешнего TTS блока.

Код посылает запрос (System.Net.WebRequest) внешнему сервису, который, к сожалению, иногда отвечает различного вида исключения (exception), обычно на webRequest.GetResponse().
Естественно, проиходит откат (rollback) и разбор иключения идет на try/catch самого внешнего TTS уровня, что не всегда есть желаемый результат.

Есть ли возможность в D365FO v10 обработать исключение в своем -не внешнем - try/catch блоке или каким-то другим образом обработать событие webRequest.GetResponse()? Бывают случаи, когда вне зависимоти от результата getresponse() надо продолжить процесс.
Старый 03.09.2019, 22:12   #2  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
647 / 669 (24) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Заверните все в c# dll там делайте свой try\catch, а в АХ кидайте только те исключения которые хотите.
За это сообщение автора поблагодарили: alicedr (1).
Старый 04.09.2019, 02:57   #3  
trud is offline
trud
Участник
Лучший по профессии 2017
 
769 / 998 (35) +++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от alicedr Посмотреть сообщение
Есть код, который вызывается во время стандарных бизнесс процессов - picking list, packing slip, post invoice, соответсвенно выполняется он внутри внешнего TTS блока.
Лучше наверное вообще так не делать, маркируйте как-то свои записи и потом их обрабатываете(ну или можно попробовать новые бизнес евенты).
Как к примеру будет обрабатываться ситуация когда запрос к внешнему серверу прошел успешно, а основная транзакция откатилась
За это сообщение автора поблагодарили: Logger (1).
Старый 04.09.2019, 22:02   #4  
alicedr is offline
alicedr
Участник
 
109 / 28 (1) +++
Регистрация: 06.07.2012
Адрес: Киев
Функционал связан с оплатами и, например, накладная не должна разноситься, если оплата не смогла пройти. До разноски оплату нельзя проводить, так как бывают дополнительные платежи (charges) которые добавляются во время разноски накладной. Например, налоги AVATAX добавляются вообще в самом конце.
Так что тут вопрос курицы и яйца и правильного ответа что должно быть раньше нет.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axforum blogs: X++, the catch Michael Fruergaard PontoppidanNovember 24, 2016 Blog bot DAX Blogs 0 10.06.2019 17:12
ax-erp: Try Catch and transactions Blog bot DAX Blogs 0 29.10.2012 19:11
fatihdemirci: Try ve Catch Komutları Blog bot DAX Blogs 0 05.10.2010 22:05
ChangeCompany Try...Catch Владимир Максимов DAX: Программирование 10 12.01.2009 17:19
Глупый вопрос про try .. catch Vadik DAX: База знаний и проекты 6 12.03.2003 18:04
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:38.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.