BotStationConfigurationGuide

Материал из RunaWFE
Перейти к навигации Перейти к поиску

Бот станция. Руководство по настройке

Версия 4.4.2

© 2015-2021, ООО "Процессные технологии", материалы этого документа распространяются свободно на условиях лицензии GNU FDL. RunaWFE Free является системой с открытым кодом и распространяется в соответствии с LGPL лицензией (http://www.gnu.org/licenses/lgpl.html).

# Конфигурирование бот станций

Настройки работы бот-станции расположены в конфигурационном файле botstation.properties

С бот-станцией должен быть связан один из пользователей (параметр botstation.system.username). От имени этого пользователя бот станция будет обращаться к RunaWFE серверу для того, чтобы прочитать свои параметры. Логин и пароль этого пользователя необходимо ввести в конфигурационный файл botstation.properties.

С каждым ботом должен быть связан один из пользователей, от имени которого бот будет выполнять задания в системе. В настройках бота должны быть заданы логин и пароль данного пользователя. (Пароль бота обязательно должен совпадать с паролем, который установлен в свойствах исполнителя).

Права на работу с бот станциями устанавливаются в меню бот-станции по клику на ссылку «Владельцы прав»:

Ima1 1.jpg

В частности, у пользователя – бот станции должны быть права на чтение бот станций:

Ima2.jpg

Замечание: По умолчанию в botstation.properties в качестве пользователя с правами на работу с бот станцией указан Administrator.

# Создание файла конфигурации обработчиков ботов

DatabaseTaskHandler

Конфигурация для DatabaseTaskHandler задается в виде xml файла, схема к которому находиться в репозитории в проекте bots (resources/bot/database-tasks.xsd). Пример конфигурации используемой для вставки записи в таблицу базы данных и для вызова хранимой процедуры базы данных.

<?xml version="1.0" encoding="UTF-8"?>
<database-tasks xmlns="http://runa.ru/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
xsi:schemaLocation="http://runa.ru/xml database-tasks.xsd">
 <task datasource="java:/wfebotds">
   <queries>
     <query sql="insert into OVERTIMES(INSTANCE_ID, EMPLOYEE_CODE, FROM_DATE, TO_DATE, REASON, COMMENT, 
CHIEF_COMMENT) values(?, ?, ?, ?, ?, ?, ?)">
       <param  var="instanceId" />
       <swimlane-param  var="сотрудник" field="code" />
       <param  var="дата с" />
       <param  var="дата по" />
       <param  var="причина" />
       <param  var="комментарий" />
       <param  var="комментарий руководителя" />
     </query>
     <query sql="{CALL sp_insertShift(?, ?, ?, ?, ?)}">
       <param  var="instanceId" />
       <swimlane-param  var="сотрудник" field="code" />        
       <swimlane-param  var="подавший_заявку" field="code" /> 
       <param  var="воскресенье_обед" />
       <param  var="учитывать_праздничные_дни" />
       <result var="commit" />
     </query>
   </queries>
 </task>
</database-tasks>

EmailTaskHandler

Формат конфигурации аналогичен обработчику.

StartProcessTaskHandler

Конфигурация для StartProcessTaskHandler задается в виде xml файла, схема к которому находиться в репозитории в проекте bots (resources/bot/process-start.xsd).

Пример:

<?xml version="1.0" encoding="UTF-8"?>
<process-start xmlns="http://runa.ru/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://runa.ru/xml process-start.xsd">
 <process name="NewSubProcess">
   <variable from="X" to="XX"/>
   <variable from="Y" to="YY"/>
   <variable from="r" to="rr"/>
   <started-process-id variable-name="process1"/>
 </process>  
 <process name="NewSubProcess">
   <variable from="X" to="XX"/>
   <variable from="Y" to="YY"/>
   <variable from="r" to="rr"/>
   <started-process-id variable-name="process2"/>
 </process>  
</process-start>

StopProcessHandler

Конфигурация для StopProcessHandler задается в виде xml файла.

Пример:

<?xml version="1.0" encoding="UTF-8"?>
<config>
  <input>
    <param name="processId" variable="VAR" />
  </input>
</config>

TextReportTaskHandler

Конфигурация к боту создания текстового отчета задается в виде xml файла, схема к которому находиться в репозитории в проекте bots (resources/bot/textreport.xsd).

Пример:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://runa.ru/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://runa.ru/xml textreport.xsd">
 <template fileName="/bot/TextFileTemplate_demo.txt" fileEncoding="UTF8" />
 
 <report fileName="textFile.txt" fileEncoding="UTF8" variableName="resultTextFile" contentType="plain/text" />
 
 <replacements xmlFormat="true" applyToRegexp="false" />
 
</config>

Темплейт для отчета в данном случае должен находиться в кодировке "UTF8" в файле в $JBOSS_HOME/server/default/conf/bot/TextFileTemplate_demo.txt.

Как указано в строчке конфигурации:

<template fileName="/bot/TextFileTemplate_demo.txt" fileEncoding="UTF8" />


Пример темплейта из демо процесса TextFileCreation:

Report title: ${header}.
 number: ${number}       
 date:   ${date}
       Text: 
 ${mainText}

Вместо ${имя_переменной_процесса} темплейта в текст результирующего файла вставляется значение указанной переменной.

Результирующий файл согласно конфигурации будет в кодировке "UTF8", будет назван textFile.txt и будет сохранен в переменную "resultTextFile".

<report fileName="textFile.txt" fileEncoding="UTF8" variableName="resultTextFile" contentType="plain/text" />

MSWordReportTaskHandler

Конфигурация к MSWordReportTaskHandler задается в виде xml файла, схема к которому находится в репозитории в проекте bots (resources/bot/msword-report-task.xsd).

Пример конфигурации:

<<?xml version="1.0" encoding="UTF-8"?>
<msword-report-task xmlns="http://runa.ru/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://runa.ru/xml msword-report-task.xsd">

 <report template-path="C:\Workflow\Templates\Word\sample-template.doc" output-variable="report" output-
variable-file-name="report.doc">
   <mapping bookmark="vacationDateFrom" variable="dateFrom" />
   <mapping bookmark="employeeFullName" variable="fullName" />
 </report>
</msword-report-task>

Закладки в документе Word sample-template.doc будут заменены на отформатированные значения соответствующих переменных бизнес-процесса. После этого документ будет сохранен в файле report.doc и в переменной "report" бизнес процесса согласно строке конфигурации:

<report template-path="C:\Workflow\Templates\Word\sample-template.doc" output-variable="report" output-variable-file-name="report.doc">

Шаблон для отчета в данном случае находится в файле C:\Workflow\Templates\Word\sample-template.doc. Закладки в этом файле создаются и именуются стандартным способом через основное меню редактора Word.

Используется тип переменной, определенный в Среде разработки, для форматирования текста, вставляемого вместо закладки.

WebServiceTaskHandler

Бот предназначен для выполнения SOAP запросов к веб-сервисам и обработке ответов. Настройки бота задаются в виде xml файла.

Корневой элемент config содержит:

Элемент Описание Обязательный
url Задаёт URL, на который отправляется запрос Обязательный, не более одного
SOAPAction Задаёт значение атрибута SOAPAction в отправляемом запросе Необязательный, не более одного
basic-authentication Задаёт значение атрибута Authentication в отправляемом запросе. Необязательный, не более одного
request-method Задаёт тип запроса (POST, GET, и т. п.) Необязательный, не более одного
errorAction Задаёт поведение в случае, если запрос вернул ошибку. Может переопределяться в элементе interaction. Необязательный, не более одного
log Если значение элемента равно true, то запрос и ответ к веб-сервису логируются с важностью debug. Необязательный, не более одного
interaction Описывает одно взаимодействие веб-сервисом. Обязательный, один и более


Элементы interaction содержат:

Элемент Описание Обязательный
request Задаёт SOAP запрос, отправляемый веб-сервису. Обязательный.
response Задаёт XSLT преобразование, применяемое к ответу, полученному от сервиса. Может содержать атрибуты:
  • maxLength: максимальная длина ответа от сервиса. При превышении длины ответа бот выбросит исключение и выполнение задания будет прекращено.
  • variable: имя переменной, в которую будет сохранён ответ от сервиса.
errorAction может принимать следующие значения:
  • BREAK (значение по умолчанию) – В случае ошибки бот прекратит выполнение последовательности запросов и выбросит исключение. Через некоторое время задание снова поступит на обработку боту и вся последовательность запросов будет выполнена заново.
  • IGNORE – В случае ошибки бот проигнорирует её и перейдет к выполнению следующего запроса в списке.
  • RETRY – Выполнение задания откладывается. Через некоторое время задание снова поступит на обработку боту и последовательность запросов будет начата с ошибочного запроса. Все переменные, сохранённые ботом во время работы, будут сохранены в экземпляре процесса.
Необязательный


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

В теле XML запроса и XSLT, применяемого к ответу можно использовать специальные теги для доступа к данным Workflow:

  • getProcessInstanceId – Возвращает идентификатор текущего экземпляра процесса.
  • getVariable(String name) – Возвращает переменную из текущего экземпляра процесса с указанным именем.
  • getProcessInstanceGraph(String processInstanceIdVariable)
  • setNewVariable(String name, String value) – Установить значение переменной с указанным именем. Используется в XSLT, применяемом к ответу от веб-сервиса.