Сценарий "Очистка значений реквизитов справочников"

14 2

Часто при перемещении баз данных системы DIRECTUM возникает необходимость очистить базу не только от документов и задач (Очистка базы данных от документов и задач), но и от конфиденциальной информации, хранящейся в различных реквизитах и записях справочников. Например, при передаче БД от заказчика сервисной компании или для создания тестовой базы на основе рабочей и т.д.

В большинстве случаев, эти данные удаляются в ручную или пишутся sql-скрипты, что может быть достаточно трудоемкой задачей, т.к. каждый раз необходимо находить соответствие между реквизитами справочников и полями БД.

Для реализации очистки значений реквизитов справочников был разработан специальный сценарий, предназначенный для администраторов и разработчиков.

В сценарии реализован следующий функционал:

  1. Выбор нескольких типов справочников.
  2. Выбор определенных реквизитов.
  3. Возможность указать обезличенные или пустые (null) значения выбранных реквизитов.
  4. Возможность удалить все записи в справочнике.

Рассмотрим работу сценария на примере.

Предположим, необходимо удалить значения реквизитов Сумма договора и Сумма в валюте, а также же заменить значение реквизита Контрагент  на обезличенное значение во всех записях справочника Договоры.

  1. Для решения поставленной задачи, необходимо импортировать сценарий в DIRECTUM из архива (ссылку смотреть ниже), и запустить его от имени пользователя с правами администратора. В окне выбора справочников необходимо указать нужные справочники, в нашем случае это Договоры.

Рисунок 1 – Выбор справочников

 

  1. После выбора справочника, по нажатию кнопки Выбрать, появится окно выбора действия.

На данном этапе реализованы следующие возможности:

  • Выбор справочника, для которого осуществляется действие (выпадающий список Справочник);
  • Выбор очищаемых реквизитов (кнопка Реквизиты);
  • Удаление  всех записей в выбранном справочнике (кнопка Удалить все записи);
  • Запуск очистки записей/реквизитов справочников;
  • Визуальное отображение количества очищаемых реквизитов или удаление всех записей справочника (поле Очищаемые реквизиты);
  • Отмена действия и прекращение выполнения сценария (кнопка Отмена).

Рисунок 2 – Выбор действия

  1. При нажатии на кнопку Реквизиты, откроется окно выбора реквизитов выбранного справочника в выпадающем списке. Для очищения будут доступны все реквизиты справочника! Действия над системными реквизитами (такие как ID) будут ограничены правилами целостности данных SQL Server.

Рисунок 3 – Выбор реквизитов справочника ДГВ

  1. После выбора реквизитов (в нашем случае это контрагент, сумма в валюте и сумма договора) и нажатия на кнопку Выбрать, откроется окно для ввода значений реквизитов. Если необходимо удалить все значения реквизитов, хранящиеся во всех записях справочника, то поле Значение оставляем незаполненным. Если необходимо обезличить значения, то в поле Значение указываются произвольные данные.

Примечание: если количество выбранных реквизитов превышает 10шт, то значения реквизитов будет запрашиваться в несколько этапов. Для перехода на следующий этап необходимо нажать Далее.

Рисунок 4 – Значения реквизитов

  1. После заполнения всех значений изменяемых реквизитов и нажатие на кнопку Далее, появится окно выбора действия. В поле Очищаемые реквизиты после наименования справочника будет указано количество очищаемых реквизитов (в нашем случае это "3").

Рисунок 5 – Выбор действия

  1. При необходимости, реализована возможность удаления всех записей справочника, независимо от выбранных реквизитов. Для этого необходимо выбрать справочник в выпадающем списке (поле Справочник) и нажать на кнопку Удалить все записи. В поле Очищаемые реквизиты после наименования справочника будет указана строка Удалить все записи.
  2. Для выполнения очистки/замены/удаления данных справочников, нажмите на кнопку Готово. После чего подтвердите изменения данных.

Будьте внимательны, действия после подтверждения (п.7) отменить невозможно.

Script.rar (8,60 Кб)

Димитрий Яшаров

Доброго всем времени суток. Столкнулся с проблемой при выполнении сценария. Ошибка: 

Window Title]
Ошибка

[Content]
Значение переменной try не определено.

[Expanded Information]
Сценарий "Очистка значений реквизитов справочника": ошибка в строке 68.

[^] Меньше сведений  [ОК]

Версия ПО 4.7

С чем  может быть связана проблема?

Денис Архипов

Версия ПО 4.7

 

в Directum 4.7 еще не существует конструкции try , нужно как минимум 4.8. или убрать из кода все блоки try.

Авторизуйтесь, чтобы написать комментарий