Показать сообщение отдельно
Старый 14.02.2017, 13:03   #7  
MazZzDaI is offline
MazZzDaI
Участник
Аватар для MazZzDaI
 
44 / 35 (2) +++
Регистрация: 19.09.2013
Решился описать решение, может кому пригодится

Созданы действия AIF для:
  • открытия транзакции AifTtsBegin(GUID _messageId, UserId _userId, DataAreaId _dataAreaId, int _transactionLifeTimeSec)
  • коммита - AifTtsCommit(GUID _messageId)
  • отката - AifTtsAbort(GUID _messageId)

Модифицирована таблица SysDatabaseLog:
  • добавлено поле messageId типа GUID;
  • добавлены методы для отката изменений в логируемых таблицах:
    • rollbackInsert - удаляет запись
    • rollbackUpdate - обновляет запись в предыдущее состояние
    • rollbackDelete - вставляет запись из лога
  • модифицирован метод insert, в котором производится запись в поле SysDataBaseLog.messageId значения AifTtsLog.messageId в контексте текущего пользователя запущенной сессии AX

Создана таблица AifTtsLog для отслеживания состояния AIF транзакций с набором полей:
  • messageId - GUID - уникальный идентификатор транзакции, в контексте которого производятся изменения данных и запись в SysDatabaseLog; устанавливается интегрируемой системой
  • userId - идентификатор пользователя, в контексте которого производятся изменения данных и запись в SysDatabaseLog; устанавливается интегрируемой системой
  • wsAbort - boolean - признак вызова отката транзакции; устанавливается интегрируемой системой
  • expirationDateTime - время жизни транзакции, по истечению которого AX запустит механизм отката транзакции
  • axAbort - boolean - признак, отображающий успешное завершение отката транзакции на стороне AX
  • wsCommit - boolean - признак коммита транзакции; устанавливается интегрируемой системой
  • axRollbackError - boolean - признак, отображающий возникновение ошибки в процессе отката транзакции на стороне AX

Создан класс AxTtsMonitor extends RunBaseBatch, который мониторит таблицу AifTtsLog и:
  • Запускает откат изменений при появлении признака wsAbort, или же при истечении времени жизни транзакции
  • Устананавливает признаки axAbort и axRollbackError
Миниатюры
Нажмите на изображение для увеличения
Название: AX_AifTts.png
Просмотров: 485
Размер:	122.7 Кб
ID:	11198  
За это сообщение автора поблагодарили: sukhanchik (5).