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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.11.2015, 15:24   #1  
ex3em is offline
ex3em
Участник
 
38 / 19 (1) ++
Регистрация: 22.07.2008
В методе который выполняется AIF запускайте thread.
Старый 26.04.2016, 20:32   #2  
sgt.Pepper is offline
sgt.Pepper
Участник
Аватар для sgt.Pepper
 
43 / 15 (1) ++
Регистрация: 05.10.2007
Адрес: Германия
Если кому интересно, нашел решение проблемы (спасибо подсказке Alex_KD).

При вызове сервиса AIF создает "глобальную" транзакцию, соттветственно если что-то случается в самом сервисе, все try-catch блоки самого сервиса просто игнорируются и идут выше в обработчики AIF, где собственно было начало транзакции. Все попытки использовать catch Error, ClrError, Internal и просто catch не увенчались успехом.

Что сделано:
в точке входа сервиса сделал проверку на уровень tts и сразу сделал ttscommit.

X++:
ttsInitialLevel = appl.ttsLevel();
if(ttsInitialLevel > 0)
{
    ttscommit;
    ttsbegin;
}
...
Дальше открыл свою транзакцию и запускаю логику. Если код где-то валится, то управление уже не передается выше в AIF, а срабатывают свои обработчики.

После отработки метода делаю ttscommit своей транзакции, и перед возвратом создаю новую.
X++:
if(ttsInitialLevel >0 && appl.ttsLevel() == 0)
ttsbegin;
return something
Так можно обмануть систему.

Последний раз редактировалось sgt.Pepper; 26.04.2016 в 20:43.
За это сообщение автора поблагодарили: gl00mie (2).
Старый 27.04.2016, 13:26   #3  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Цитата:
Сообщение от sgt.Pepper Посмотреть сообщение
Если кому интересно, нашел решение проблемы (спасибо подсказке Alex_KD)...
Немного доработайте свой код, т.к. ttsLevel может быть и > 1
За это сообщение автора поблагодарили: gl00mie (2).
Старый 27.04.2016, 15:52   #4  
sgt.Pepper is offline
sgt.Pepper
Участник
Аватар для sgt.Pepper
 
43 / 15 (1) ++
Регистрация: 05.10.2007
Адрес: Германия
Ну я собственно с единицей нигде не сравниваю, проверяю только, что транзакция открыта (ttsInitialLevel > 0)
А в чем вы видите ошибку?
Старый 27.04.2016, 15:55   #5  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
ttsBegin у вас один, когда все транзакции возвращаетесь
Старый 27.04.2016, 16:44   #6  
sgt.Pepper is offline
sgt.Pepper
Участник
Аватар для sgt.Pepper
 
43 / 15 (1) ++
Регистрация: 05.10.2007
Адрес: Германия
Вы правы, надо будет что-то вроде такого написать
X++:
for (i==1; I<= ttsInitialLevel;i++)
    ttsbegin;
Только я ни разу не заметил начального уровня больше чем 1. Думаю он открывается в AIF только один раз, но на всякий случай проверю.
Старый 27.04.2016, 17:35   #7  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Цитата:
Сообщение от sgt.Pepper Посмотреть сообщение
Вы правы, надо будет что-то вроде такого написать
X++:
for (i==1; I<= ttsInitialLevel;i++)
    ttsbegin;
Только я ни разу не заметил начального уровня больше чем 1. Думаю он открывается в AIF только один раз, но на всякий случай проверю.
Береженого бог бережет
Сегодня Вы не видите несколько транзакций, сделаете как вам видится, уволитесь, пройдет 5ть лет и кто-нибудь влезет в этот механизм, потом пол компании будет затылок чесать: "а что же произошло"?

P.S. Может вместо ttsAbort написать ttsCommit?
Теги
aif, ax2012, user connection

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вызов веб-сервиса Ax 2012 R3 из 1C 8.2 Bega DAX: Программирование 8 06.02.2015 13:30
Вызов Web-сервиса из Ax2009 samolalex DAX: Программирование 6 21.11.2012 14:50
daxdilip: How to: Configure Dynamics AX AIF Services to listen for SSL Requests (https) Blog bot DAX Blogs 0 23.01.2011 10:12
Dianne Siebold: AIF Top Ten Blog bot DAX Blogs 1 22.04.2008 11:19
Вызов веб-сервиса из аксапты dzeaman DAX: Программирование 18 24.12.2005 13:22
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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