|
|
#1 |
|
Участник
|
AIF действия в транзакции. Откат Rollback
Привет!
При интеграции AX и стороннего приложения (СП) появилась необходимость использования транзакции на несколько последовательных действий, например: 1. СП вызывает сервис создания данных в АХ; АХ создаёт данные и возвращает ответ СП; СП сохраняет у себя результат; 2. СП вызывает сервис разноски ранее созданных данных в АХ; АХ выполняет действие и возвращает результат об успешной разноске; СП фиксирует у себя успех. Схема простая, но добавив вероятность падения канала связи, СП не получит ответ 2 и откатит (rollback) свою транзакцию, включая результат 1. Предполагаю необходимость костылизации механизма, например, удаление данных разноски АХ при возобновлении связи, согласование данных, стек данных, время жизни документа; но такое решение не масштабируемое и громоздкое. Предварительный вызов АХ сервиса с ttsBegin; вызов действий; вызов ttsCommit/ttsAbort не получается сделать, т.е. нельзя просто взять и сделать откат в АХ. Подскажите пожалуйста, каким образом можно реализовать откат на стороне АХ? |
|
|
|
|
#2 |
|
Участник
|
Похожая тема
AIF - как экранировать вызовы throw в аксапте |
|
|
|
|
#3 |
|
Участник
|
я подобное спрашивал уже
вроде ничего простого нельзя сделать, потому что не поддерживаются транзакции остаются только костыли |
|
|
|
|
#4 |
|
Administrator
|
А версия AX какая? Если AX2012, можно попробовать использовать message batch.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
|
|
#5 |
|
Участник
|
Цитата:
Сообщение от Logger
Похожая тема
AIF - как экранировать вызовы throw в аксапте Цитата:
Сообщение от Maxim Gorbunov
А версия AX какая? Если AX2012, можно попробовать использовать message batch.
Есть предположения костылизации? |
|
|
|
|
#6 |
|
Участник
|
Цитата:
Сообщение от MazZzDaI
При интеграции AX и стороннего приложения (СП) появилась необходимость использования транзакции на несколько последовательных действий, например:
1. СП вызывает сервис создания данных в АХ; АХ создаёт данные и возвращает ответ СП; СП сохраняет у себя результат; 2. СП вызывает сервис разноски ранее созданных данных в АХ; АХ выполняет действие и возвращает результат об успешной разноске; СП фиксирует у себя успех. Схема простая, но добавив вероятность падения канала связи, СП не получит ответ 2 и откатит (rollback) свою транзакцию, включая результат 1. Цитата:
А вообще, по поводу разносок в AIF - как раз сейчас идет обсуждение в другой ветке
|
|
|
|
|
#7 |
|
Участник
|
Решился описать решение, может кому пригодится
![]() Созданы действия AIF для:
Модифицирована таблица SysDatabaseLog:
Создана таблица AifTtsLog для отслеживания состояния AIF транзакций с набором полей:
Создан класс AxTtsMonitor extends RunBaseBatch, который мониторит таблицу AifTtsLog и:
|
|
|
|
| За это сообщение автора поблагодарили: sukhanchik (5). | |
| Теги |
| aif |
|
|
|