25.08.2016, 14:15 | #1 |
Участник
|
AIF действия в транзакции. Откат Rollback
Привет!
При интеграции AX и стороннего приложения (СП) появилась необходимость использования транзакции на несколько последовательных действий, например: 1. СП вызывает сервис создания данных в АХ; АХ создаёт данные и возвращает ответ СП; СП сохраняет у себя результат; 2. СП вызывает сервис разноски ранее созданных данных в АХ; АХ выполняет действие и возвращает результат об успешной разноске; СП фиксирует у себя успех. Схема простая, но добавив вероятность падения канала связи, СП не получит ответ 2 и откатит (rollback) свою транзакцию, включая результат 1. Предполагаю необходимость костылизации механизма, например, удаление данных разноски АХ при возобновлении связи, согласование данных, стек данных, время жизни документа; но такое решение не масштабируемое и громоздкое. Предварительный вызов АХ сервиса с ttsBegin; вызов действий; вызов ttsCommit/ttsAbort не получается сделать, т.е. нельзя просто взять и сделать откат в АХ. Подскажите пожалуйста, каким образом можно реализовать откат на стороне АХ? |
|
25.08.2016, 15:17 | #2 |
Участник
|
Похожая тема
AIF - как экранировать вызовы throw в аксапте |
|
25.08.2016, 17:48 | #3 |
Участник
|
я подобное спрашивал уже
вроде ничего простого нельзя сделать, потому что не поддерживаются транзакции остаются только костыли |
|
25.08.2016, 18:45 | #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 |
|
26.08.2016, 09:06 | #5 |
Участник
|
Цитата:
Сообщение от Logger
Похожая тема
AIF - как экранировать вызовы throw в аксапте Цитата:
Сообщение от Maxim Gorbunov
А версия AX какая? Если AX2012, можно попробовать использовать message batch.
Есть предположения костылизации? |
|
26.08.2016, 09:28 | #6 |
Участник
|
Цитата:
Сообщение от MazZzDaI
При интеграции AX и стороннего приложения (СП) появилась необходимость использования транзакции на несколько последовательных действий, например:
1. СП вызывает сервис создания данных в АХ; АХ создаёт данные и возвращает ответ СП; СП сохраняет у себя результат; 2. СП вызывает сервис разноски ранее созданных данных в АХ; АХ выполняет действие и возвращает результат об успешной разноске; СП фиксирует у себя успех. Схема простая, но добавив вероятность падения канала связи, СП не получит ответ 2 и откатит (rollback) свою транзакцию, включая результат 1. Цитата:
А вообще, по поводу разносок в AIF - как раз сейчас идет обсуждение в другой ветке |
|
14.02.2017, 13:03 | #7 |
Участник
|
Решился описать решение, может кому пригодится
Созданы действия AIF для:
Модифицирована таблица SysDatabaseLog:
Создана таблица AifTtsLog для отслеживания состояния AIF транзакций с набором полей:
Создан класс AxTtsMonitor extends RunBaseBatch, который мониторит таблицу AifTtsLog и:
|
|
|
За это сообщение автора поблагодарили: sukhanchik (5). |
Теги |
aif |
|
|