Служба для запуска бизнес-процессов в системе ELMA из xml-файлов

Примечание
Информация, приведенная ниже, актуальна только для версии ELMA 3.9.0 и выше.

В данной статье рассматриваются:

Служба WorkflowRunner разработана компанией ELMA и использует при работе сервисы WebAPI.

Принцип работы данной службы состоит в следующем:

  Во внешней системе (например, 1С) генерируется (автоматически или вручную Администратором системы) xml-файл определенного формата (схемы). В данный файл записываются все контекстные переменные и их значения, которые должны быть переданы в бизнес-процесс. Предварительно названия данных переменных необходимо получить из требуемого БП. После генерации xml-файла он автоматически должен быть подан на "вход" (сохранен в требуемой папке службы WorkflowRunner).
 

Система ELMA периодически (по умолчанию 1 раз в 60 секунд, можно настроить) проверяет наличие файла в данной папке, и в случае обнаружения необработанного файла запускает бизнес-процесс.

 

После этого данные (значения контекстных переменных) из поданного на вход xml-файла передаются в систему ELMA при помощи методов веб-сервиса (через SOAP-запросы) через определенные промежутки времени. При этом осуществляется запуск бизнес-процесса в системе ELMA с импортированными значениями переменных.

 

Форматы xml-файлов

Xml-файлы, используемые службой, могут быть нескольких форматов (схем):

  1. Strict – использование данной схемы при написании импортируемого xml-файла обеспечивает валидацию переданных значений. Рекомендуется использовать данную схему только при импорте простых объектов (например, строковых значений). В том случае, если в xml-файле были допущены ошибки, запуск бизнес-процесса в веб-приложении не будет осуществлен.
  2. Custom – использование данной схемы при написании импортируемого xml-файла не обеспечивает валидацию переданных значений, однако позволяет импортировать более сложные объекты (любые контекстные переменные). При использовании данной схемы xml-файл будет иметь небольшой размер. Данная схема является более простой, при работе рекомендуется использовать ее.

Примеры xml-файлов разных схем приведены ниже. 

Последовательность действий при работе

Для корректной работы с данной службой необходимо выполнить следующие действия:

  1. Установить WorkflowRunner службу на локальный компьютер. Следует отметить, что для корректной работы службы WorkflowRunner необходимо наличие прав доступа на изменение системных папок данной службы у пользователя, от имени которого запущен сервер ELMA, а также должен быть доступ к серверу ELMA c того компьютера, где установлена служба.
  2. Создать бизнес-процесс с требуемыми контекстными переменными. Набор контекстных переменных зависит от данных, которые будут передаваться в процесс (пример контекстных переменных см. ниже). При этом у пользователя, который в xml-файле указан в качестве инициатора, должны быть права на запуск процесса (он должен быть указан в настройках стартовой зоны ответственности).
  3. Создать xml-файл требуемой схемы (Strict или Custom).
  4. Переместить созданный xml-файл в папку с установленной службой WorkflowRunner.

Служба WorkflowRunner

Установка службы WorkflowRunner

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

Процесс установки данной службы состоит из нескольких шагов.

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

Рис. 1. Диалоговое окно с предупреждением системы безопасности

В стартовом окне мастера установки (Рис. 2) содержится краткая информация об устанавливаемом сервисе с некоторыми рекомендациями по процессу установки. Для продолжения установки необходимо нажать на кнопку Далее.

Рис. 2. Стартовое окно мастера установки

Шаг 2. В открывшемся диалоговом окне (Рис. 3) необходимо выбрать директорию для установки. Для установки рекомендуется использовать папку, установленную по умолчанию. Для изменения папки по умолчанию необходимо нажать на кнопку Обзор…, после чего указать новое местоположение в файловой системе. Для продолжения установки необходимо нажать на кнопку Далее.

 
Рис. 3. Диалоговое окно выбора папки установки

По умолчанию в этой же директории будут размещены следующие папки:

  • Watching – папка для мониторинга, в которую необходимо помещать xml-файлы для обработки. Обработанные файлы автоматически перемещаются из данной папки в одну из папок – Successfully или Failed (зависит от результата обработки xml-файла);
  • Successfully – папка для хранения успешно обработанных xml-файлов;
  • Failed – папка для хранения файлов, обработанных с ошибкой;
  • Logs – папка для хранения файлов-отчетов, автоматически сгенерированных после обработки xml-файлов.

После установки сервиса может быть изменено место размещения папок хранения файлов. Подробнее об этом см. в подразделе Настройка конфигурационного файла.

Шаг 3. На следующем шаге установки (Рис. 4) необходимо нажать на кнопку Установить

Рис. 4. Диалоговое окно мастера установки

Шаг 4. Настройка сервиса

На данном шаге (Рис. 5) необходимо заполнить требуемые поля и нажать на кнопку Далее.

Рис. 5. Настройка сервиса

Адрес сервера ELMA – адрес сервера ELMA, к которому будет осуществляться подключение. Адрес сервера задается в формате: http://<адрес сервера ELMA>:<порт>.

Интервал проверки – интервал запуска службы для проверки поступления новых xml-файлов (в секундах).

По умолчанию настройки прокси-сервера не устанавливаются. В том случае, если в организации используется прокси-сервер, необходимо установить флажок Использовать прокси-сервер и заполнить появившиеся поля Адрес, Порт, Логин, Пароль (Рис. 6).

Рис. 6. Настройка сервиса

После установки сервиса адрес сервера ELMA, интервал для обработки файлов, а также параметры прокси-сервера могут быть изменены. Подробнее об этом см. в подразделе Настройка конфигурационного файла.

Шаг 5. На данном шаге в диалоговом окне установки отображается информация о результатах установки сервиса. Для его автоматического запуска по завершению установки необходимо установить флажок Запустить сервис (Рис. 7).

Рис. 7. Диалоговое окно завершения установки сервиса

Установленный сервис будет отображаться в списке служб Windows (Рис. 8).

Рис. 8. Диспетчер задач. Служба "WorkflowRunner"

 

Настройка конфигурационного файла

При необходимости, после установки сервиса WorkflowRunner можно изменить его настройки путем редактирования конфигурационного файла Settings.config, расположенного в папке с установленной службой.

Конфигурационный файл содержит в себе несколько блоков вида ключ/значение: <add key="…" value="…"/>  ,

где: key – ключ, value – значение.

Для изменения настроек службы необходимо изменить значение соответствующего блока (блоки определяются по ключу – key).

Примечание

Следует отметить, что после любого внесения изменений в файл Settings.config, необходимо осуществлять перезапуск службы WorkflowRunner для вступления внесенных изменений в силу. 

Изменение адреса сервера ELMA

Для изменения адреса сервера ELMA, к которому будет осуществляться подключение, необходимо изменить value в соответствующем блоке с key="elma_url". Например, <add key="elma_url" value="localhost:7000"/> 

Изменение путей до папок с файлами

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

  • путь до папки с файлами для мониторинга:
    <add key=" watching_directory" value="новый путь"/>;
  • путь до папки с успешно обработанными файлами:
    <add key="successfully_directory" value="новый путь"/>;
  • путь до папки с файлами, обработанными с ошибкой:
    <add key="failed_directory" value="новый путь"/>.

При этом необходимо указывать абсолютный путь, например: <C:\Program Files\ELMA\ELMAServiceRunner\successfully>.

В конце данной строки не должно быть символа «\», т.е., если новый путь <C:\...\ successfully\>, то символ "\" нужно убрать, чтобы получилось <C:\...\ successfully>.

Примечание

Относительный путь указывается только в том случае, если папки расположены в той же директории, куда установлена служба, например:
<add key="successfully_directory" value="successfully"/>,
где successfully – название папки. 

Изменение таймера

По умолчанию мониторинг файлов происходит каждые 60 секунд (если данное значение не было изменено при установке службы). При необходимости это время можно изменить в блоке: <add key="watching_interval" value="новое значение"/>.

Значение должно быть указано в секундах. 

Изменение настроек прокси-сервера

Чтобы отключить использование прокси-сервера, необходимо в блоке <add key="use_proxy" value="значение"/> указать value="0". В этом случае все настройки, указанные ниже (адрес, порт, логин и пароль) будут игнорироваться. В том случае, если прокси-сервер используется, то value обязательно должно иметь значение "1".

Настройки прокси-сервера осуществляется в следующих блоках:     

  • адрес прокси-сервера:
    <add key="proxy_address" value=" новое значение "/>;
  • порт прокси-сервера:
    <add key="proxy_port" value=" новое значение "/>;
  • логин пользователя прокси-сервера:
    <add key="proxy_user" value=" новое значение "/>;
  • пароль пользователя прокси-сервера:
    <add key="proxy_password" value=" новое значение "/>

Примеры работы со службой

В связи с тем, что xml-файлы, используемые службой WorkflowRunner, могут быть нескольких форматов (схем), принципы работы с ними различаются.

Рассмотрим подробнее создание xml-файлов по strict и custom схемам, процессы, в которые будут импортированы данные, а также результаты импорта. 

Работа с xml-файлом по strict-схеме

Создадим простой бизнес-процесс (WorkflowRunnerTestStrict) с контекстными переменными (Рис. 9), значения которых в дальнейшем будут переданы в процессную задачу.

Рис. 9. Дизайнер ELMA. Контекстные переменные процесса "WorkflowRunnerTestStrict"

Xml-файл, созданный по strict-схеме, будет выглядеть следующим образом (Рис. 10):

Рис. 10. Xml-файл, созданный по strict-схеме

Рассмотрим подробнее основные теги в данном файле:

  • <login> – логин пользователя, от имени которого будет запущен бизнес-процесс;
  • <password> – пароль пользователя для авторизации в системе ELMA, от имени которого будет запущен бизнес-процесс;
  • <token>токен запускаемого бизнес-процесса из Дизайнера ELMA;
  • <workflow-name> – название запускаемого бизнес-процесса;
  • <variable-list> – список контекстных переменных, которые необходимо передать. В списке контекстных переменных могут содержаться как обычные свойства, так и свойства типа Блок.
    Обычные свойства генерируются следующим образом:
    • <string-variable name="StringTest"> – переменная типа Строка с названием StringTest;
    • <int-variable name="IntTest"> – переменная типа Целое число с названием IntTest;
    • <date-variable name="DateTest"> – переменная типа Дата/Время с названием DateTest;
    • <user-variable name="UserTest"> – переменная типа Пользователь с названием UserTest. Следует отметить, что в данном случае необходимо будет указать Id пользователя в системе ELMA, а не его ФИО;
    • и др.

         Свойства типа Блок генерируются следующим образом:

        <block-variable name="BlockTest">

              <item> <переменная требуемого типа и ее название>

Список всех переменных, представленных на рис. 10, доступен для скачивания в виде xml-файла, приложенного к статье.

После того, как мы поместим данный xml-файл в папку Watching, по истечению таймера проверки данной папки (по умолчанию 60 секунд) в системе ELMA будет автоматически запущен созданный бизнес-процесс (Рис. 11). При этом в процесс будут переданы все значения контекстных переменных, указанные в xml-файле.

Рис. 11. Бизнес-процесс "WorkflowRunnerTestStrict" 

Работа с xml-файлом по custom-схеме

Создадим простой бизнес-процесс ("WorkflowRunnerTestCustom") с контекстными переменными (рис. 12), значения которых в дальнейшем будут переданы в процессную задачу.

Рис. 12. Дизайнер ELMA. Контекстные переменные процесса "WorkflowRunnerTestCustom"

Xml-файл, созданный по custom-схеме, будет выглядеть следующим образом (рис. 13):

 

Рис. 13. Xml-файл, созданный по custom-схеме

Рассмотрим подробнее основные теги в данном файле:

  • <login> – логин пользователя, от имени которого будет запущен бизнес-процесс;
  • <password> – пароль пользователя для авторизации в системе ELMA, от имени которого будет запущен бизнес-процесс;
  • <token>токен запускаемого бизнес-процесса из Дизайнера ELMA;
  • <workflow-name> – название запускаемого бизнес-процесса;
  • <variable-list> – список контекстных переменных, которые необходимо передать. В списке контекстных переменных могут содержаться как обычные свойства, свойства типа Блок.
    Обычные свойства генерируются следующим образом (для пемененных не указываются их типы):
    • <item name="StringTest"> – переменная с названием StringTest;
    • <item name="IntTest"> – переменная с названием IntTest;
    • <item name="DateTest"> – переменная с названием DateTest;
    • <user-variable name="UserTest"> – переменная с названием UserTest. Следует отметить, что в данном случае необходимо будет указать Id пользователя в системе ELMA, а не его ФИО;
    • и др.

          Свойства типа Блок генерируются следующим образом:

         <item name="BlockTest1">
              <item> <название требуемой переменной>

Список всех переменных, представленных на Рис. 14, доступен для скачивания в виде xml-файла, приложенного к статье.

Данный xml-файл приложен к статье и доступен для скачивания.

После того, как мы поместим данный xml-файл в папку Watching, по истечению таймера проверки данной папки (по умолчанию 60 секунд) в системе ELMA будет автоматически запущен созданный бизнес-процесс (Рис. 14). При этом в процесс будут переданы все значения контекстных переменных, указанные в xml-файле.

Рис. 14. Бизнес-процесс "WorkflowRunnerTestCustom"

Все файлы, упомянутые в данной статье, приложены ниже в архиве.

Прикрепленные файлы