Не всегда интеграции двух систем разрешают работать в полностью автоматическом режиме. Иногда специально добавляют шаг ручного утверждения очередного шага движения информации. Например, в начале запуска очередного типа обмениваемой информации, когда ещё остаётся вероятность, что чего-то не учли. Или, когда принять сообщение можно только тогда, когда в принимающей системе выполнены некоторые подготовительные мероприятия, например, мы уверены, что все необходимые дополнительные затраты включены в себестоимость поступившей продукции (не всегда этот процесс можно и/или нужно автоматизировать на 100%, бывают ситуации, когда это должен решить умный человек, а не безмозглый алгоритм). Коллеги попросили меня создать отчёт, визуализирующий поступившее сообщение до того, как ему будет разрешено двинуться дальше. Я об этом писал в заметке «Как посмотреть в человеческом виде, что внутри сообщения, поступившего на вход Epicor Service Connect?». При тестировании, однако, несколько раз возникала ситуация, когда на этапе утверждения сообщение редактировалось, причём неудачно, и тогда возникала необходимость посмотреть, что же было до того, как его отредактировали, или на любом другом этапе. Разумеется, это всё можно легко посмотреть в административной консоли, но нужно было сделать это доступным пользователю, у которого доступа к административной консоли никогда не было и не предвидится 🙂
И тут пришлось разбираться с перемещением информации из одной таблицы в другую и далее в третью. Весьма занятная аналитическая работа. Чтобы вам не разбираться в этом самостоятельно, поделюсь своими изысканиями:
Первоначально, если в рабочем потоке имеется элемент Task, информация попадает в таблицу ScaAssignedTasks. Затем, после прохождения этого элемента (в нашем случае ручного разрешения прохождения сообщения), информация перемещается в таблицу ScaCompletedTasks, а спустя какое-то время по мере переполнения данными (зависит от настроек инсталляции), перемещается в таблицу ScaTasksArchive.
Чтобы долго не мучиться, пытаясь объединить информацию из этих 3-х таблиц я просто создал 3 разных отчёта:
Внутри отчёта можно увидеть события по названию задачи:
На Task ID можно щёлкнуть и просмотреть информацию в человеческом виде (в каком виде её вывести уже дело техники) 🙂