Показать сообщение отдельно
Старый 20.10.2011, 16:29   #1  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
870 / 637 (23) +++++++
Регистрация: 14.10.2004
Создание снимков изменений в базе данных
Привет всем!
Предлагаю вам попробовать утилиту, которая позволяет просмотреть историю изменений базы данных между двумя заданными промежутками времени. Прилагаются проекты для AX2009 и для AX3.0.

Например, вы разнесли накладную, и вам интересно посмотреть, в какие таблицы записались данные, методы каких классов вызывались при изменении той или иной таблицы в базе.

Утилита реализована в виде, похожем на стандартную форму "Администрирование - Запросы - Журнал базы данных". Используется стандартный функционал журнала базы данных.

Основные отличия от стандартного журнала базы данных:
1) Видно все изменения в базе, которые произошли при разноске накладной (или журнала), либо при создании нового клиента и так далее.
2) Видно стек вызовов методов на Х++
3) Можно создавать множество снимков журнала базы данных. Каждый из снимков имеет свое название. Снимки можно именовать, к примеру, так "Разноска накладной по заказу ХХХХ", "Разноска складского журнала YYYY" и так далее.

В принципе, похожего результата можно добиться и при стандартном использовании мониторинга запросов SQL для пользователя. Но данная утилита предоставляет возможность просмотреть сразу все изменения в одном месте, в сжатом виде и с максимальным количеством информации. Средства просмотра изменений практически все взяты из формы журнала базы данных.

Инструкция по использованию:
1) Накатите проект на тестовую базу (из стандартных объектов изменяется только таблица SysDatabaseLog
2) Выполните пункт меню "Начать формирование снимка изменений данных"
3) В открывшемся диалоговом окне введите название снимка (можно оставить предлагаемое по умолчанию название). Нажмите кнопку Ок.
4) Разнесите какой-нибудь журнал, накладную, введите новую номенклатуру в справочник и т.д.
5) Выполните пункт меню "Завершить формирование снимка изменений данных"
6) Выполнте пункт меню "Снимки изменений в базе данных".
7) В открывшейся форме можно пользоваться всеми фукнциями просмотра журнала базы данных, просматривать стек вызова для каждого изменения, во вкладке "История" видеть старые и новые значения полей.
8) В раскрывающемся списке "Название снимка" можно выбирать другие снимки для просмотра. По умолчанию форма открывается с последним сделанным снимком.
9) Сохраненные снимки можно редактировать через кнопку "Список снимков", расположенную рядом с раскрывающимся списком "Название снимка".

Особенности работы утилиты:
1) Изменения в снимке сохраняются только для того пользователя, который начал формирование снимка. Просматривать снимок могут все пользователи, у которых есть права доступа.
2) Можно оставить снимок незавершенным на долгое время - тогда туда попадут все изменения, сделанные данным пользователем.
3) Данные в снимке можно просматривать только после завершения (через пункт меню "Завершить формирование снимка изменений данных")
4) Не рекомендуется настраивать журнал базы данных, если в текущий момент не завершен снимок, иначе при завершении снимка все изменения в настройках журнала базы данных потеряются. В любое другое время можно настраивать журнал базы данных без ограничений.

Примечание: на разработку с нуля данной утилиты у меня ушло примерно 4 часа. Идея о ее создании витала где-то пару месяцев.
Миниатюры
Нажмите на изображение для увеличения
Название: СнимкиИзмененийБазы.JPG
Просмотров: 532
Размер:	164.0 Кб
ID:	7228  
Вложения
Тип файла: xpo SharedProject_zSnapshotForAx2009.xpo (89.8 Кб, 553 просмотров)
Тип файла: xpo zSnapshotForAx30.xpo (192.1 Кб, 533 просмотров)

Последний раз редактировалось Ace of Database; 20.10.2011 в 17:46.
За это сообщение автора поблагодарили: slava (1), Logger (5), Poleax (5), Atar (2), ice (1), someOne (2).