Утилита управления Workflow

12 3

В настоящий момент известно, что для того, чтобы добавить новую базу данных DIRECTUM для обработки службой Workflow, необходимо выполнить такие действия:

1.     Открыть файл настроек службы Workflow (SBWorkflowSrvSettings.xml), добавить в него новый узел, где указать параметры добавляемой БД;

2.     Проконтролировать, чтобы код системы DIRECTUM в добавляемой БД не совпадал с кодом системы одной из БД, уже обрабатываемой службой Workflow;

3.     Перезапустить службу Workflow, проконтролировать корректность запуска.

Данные действия являются достаточно рутинными, но, тем не менее, для их выполнения требуется достаточно много контроля со стороны администратора. Банальная опечатка в синтаксисе файла настроек может привести к невозможности старта службы, две БД DIRECTUM в настройках Workflow с одинаковым кодом системы вызовут множество спонтанных сбоев в работе системы.

Кроме того, для выполнения всех вышеуказанных действий приходится открывать:

  • какой-либо файловый менеджер для нахождения файла настроек службы Workflow (либо воспользоваться командой «Выполнить» и прописать полный путь к файлу);
  • текстовый редактор для правки файла настроек службы Workflow;
  • консоль управления службами Windows для перезапуска службы Workflow.

Исходя из этого, достаточно давно созрела идея – реализовать какой-либо механизм, который позволит управлять службой Workflow из одной точки. Идея удачно совпала с желанием (и необходимостью) изучения средства автоматизации MicrosoftPowerShell, и в конечном итоге родилась, на мой взгляд, достаточно удобная утилита управления службой Workflow. Рабочее название - Workflow Configuration Tool.

Утилита умеет:

  • подключаться к любому серверу Workflow по доменному имени;
  • отображать и изменять основные настройки Workflow (тайм-аут, память, кол-во процессов и т.д.);
  • отображать, добавлять, редактировать и удалять записи БД для обработки службой Workflow;
  • автоматически контролировать уникальность кодов системы DIRECTUM в настройках БД для обработки службой Workflow;
  • перезапускать службу Workflow после редактирования настроек, контролировать работоспособность после перезапуска;
  • перезагружать и останавливать службу Workflow по желанию администратора.

Для корректной работы утилита требует:

  • установленную среду PowerShell;
  • установленную политику разрешения запуска неподписанных сценариев PowerShell (см. командлет PowerShell“Set-ExecutionPolicy”);
  • права на чтение/запись в файл настроек Workflow на удаленном сервере для пользователя, от имени которого запускается утилита;
  • права на чтение таблицы XINI всех БД DIRECTUM для пользователя, от имени которого запускается утилита. Данные права не обязательны, но при их отсутствии не будет работать контроль уникальности кодов систем DIRECTUM;
  • права на управление службой Workflow на удаленном сервере для возможности ее перезапуска/остановки.

В настоящий момент утилита является консольной - это отличный повод вспомнить времена DOS или, например, консоль *nix-систем.

ToDo:

  • оформить утилиту в графике;
  • оформить в виде командлета PowerShell;
  • по возможности учесть/реализовать появляющиеся замечания/пожелания.

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

wct.zip (111,42 Кб)

12
Авторизуйтесь, чтобы оценить материал.
1
Степан Мурашов

По-моему не учтен один важный момент - помимо того, чтобы прописать систему в файле настроек службы workflow, нужно еще и в самой системе в установках системы корректно указать имя машины со службой workflow.

А сейчас получается, что workflow готова систему обслуживать, только система об этом не знает ;)

Алексей Язынин
нужно еще и в самой системе в установках системы корректно указать имя машины со службой workflow

Это делает отдельная утилита )) SASystemActivator.  Вообще, замечание дельное. Но если рассматривать возможные сценарии, то обычно вопрос подключения базы к службе возникает когда ее развернули с помощью SASystemActivator. И, если админ знающий, то он в SASystemActivator пропишет имя машины, где стоит служба. А уже потом воспользуется утилитой Владимира.

Анастасия Лемешко

"В настоящий момент известно..." :) Благодаря Вашей статье и стало известно. Спасибо. Жаль, что справка написана так, что становится известно не из её прочтения.

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