Примеры использования HTTP-запросов для запуска бизнес-процессов.

При помощи HTTP запросов можно запускать процессы в системе. ELMA поддерживает GET и POST запросы. 

Чтобы запустить процесс при помощи запроса, необходимо настроить процесс в Дизайнере. Для этого:
  • в процессе переходим на вкладку Настройки и в разделе Варианты запуска процесса устанавливаем галочку Из внешних систем;
  • указываем вручную или генерируем токен процесса. Для автоматической генерации нужно нажать Сгенерировать. Токен нужен для идентификации, по этому он должен быть уникальным для каждого процесса;
  • указываем тип запроса, с помощью которого будем запускать процесс (GET или POST).

 

 

Примеры GET-запросов

Пример GET-запрос для запуска процесса:

Запрос для запуска процесса со стандартными значениями параметров:
http://127.0.0.1:8000/Processes/ProcessHeader/RunByWebQuery/6e8e72fb-0178-4d8c-a84d-d354debe4de9, где
http://127.0.0.1:8000 - URL системы
6e8e72fb-0178-4d8c-a84d-d354debe4de9 - токен процесса 

Пример GET-запроса для запуска процесса с параметрами:

В GET-запросе можно указать параметры для передачи значений переменным процесса примитивных типов (строка, число и т.д.). GET-параметр имеет формат Имя_свойства_переменной=значение_переменной, между собой параметры разделяются знаком &. Пример GET-запроса с двумя параметрами:
http://127.0.0.1:8000/Processes/ProcessHeader/RunByWebQuery/6e8e72fb-0178-4d8c-a84d-d354debe4de9?NazvanieOrganizacii=ELMA&TelefonKontaktnogoLica=936693, где 

http://127.0.0.1:8000 – URL системы;
6e8e72fb-0178-4d8c-a84d-d354debe4de9 – токен процесса;
NazvanieOrganizacii – имя свойства переменной процесса "Название организации", имя свойства можно посмотреть на вкладке Контекст;
ELMA – значение переменной "Название организации";
TelefonKontaktnogoLica – имя свойства переменной процесса "Телефон контактного лица";
936693 – значение переменной "Телефон контактного лица".

Для запуска процесса с с помощью GET-запроса можно создать html-форму, в которой пользователь будет заполнять параметры перед запуском процесса. Пример кода формы:

<form ACTION="http://127.0.0.1:8000/Processes/ProcessHeader/RunByWebQuery/6e8e72fb-0178-4d8c-a84d-d354debe4de9" method="get">
			<table width="60%" border="0" cellspacing="1" cellpadding="4">
			<tr>
				<td><b>Название организации:</b></td>
				<td><input type="text" name="NazvanieOrganizacii" size="100"></td>
			</tr>
			<tr>
				<td><b>Телефон контактного лица:</b></td>
				<td><input type="text" name="TelefonKontaktnogoLica" size="15"></td>
			</tr>
				<tr><td><input type="Submit" value="Отправить" name="Run_Workflow"></td></tr>
			</table>
</form>

Примеры POST-запросов

В POST-запросе можно указать параметры для передачи значений переменных процесса всех типов. Для запуска процесса с помощью POST-запроса можно создать HTML-форму, в которой пользователь будет заполнять параметры перед запуском процесса.

Пример POST-запроса для запуска процесса с параметрами:

НTML-форма в браузере может выглядеть так: 

 

Пример кода формы:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Тег FORM</title>
</head>
<body>
<form enctype="multipart/form-data" action="http://dev-elma3.prj.elewise.com:8090/Processes/ProcessHeader/RunByWebQuery/65053273-468e-4e6e-bb9b-564af6d160c3" method="POST">
<table width="100%" border="0" cellspacing="1" cellpadding="4">
<tr>
<td><b>Строка:</b></td>
<td><input type="text" name="Stroka" size="15"></td>
</tr>    
<tr>
<td><input type="Submit" value="Отправить" name="Run_Workflow"></td>
</tr>
</table>
</form>
</body>
</html>

где http://dev-elma3.prj.elewise.com:8090 – URL системы;   

65053273-468e-4e6e-bb9b-564af6d160c3 – токен процесса;

method="POST" – этот параметр показывает, что используется именно POST-запрос;

Stroka – имя свойства контекстной переменной Строка в процессе, имя свойства можно посмотреть на вкладке Контекст.

Кнопка Отправить

Код кнопки отправляющей запрос

<tr>
<td><input type="Submit" value="Отправить" name="Run_Workflow"></td>
</tr>

Примеры использования передачи параметров в коде формы 

Для того чтобы запустился процесс с заполненными контекстными переменными нужно:

             1. Запустить HTML-форму в браузере.

             2. Заполнить поля формы.

             3. Нажать кнопку Отправить.

Приведен список контекстных переменных  используемых в процессе, которые подробно описаны ниже:

Все простые типы (строка, число и т.д.)  оформляются в HTML-коде аналогично типу Строка.

<tr> 
<td width="15%"><b>Строка:</b></td>
<td><input type="text" name="Stroka" size="15"></td> <!-- строка--> 
</tr>     

 Блок

<tr> <td><b>Блок:</b></td></tr>
<tr>
<td><td>Первая строка в блоке   с одной переменной:</td></td> 
<td><input type="text" name="Blok[0].Stroka3" size="15"></td>  <!--первая строка в блоке с одной переменной-->
</tr>
<tr>
<td><td>Вторая строка в блоке  с одной переменной:</td></td>
<td><input type="text" name="Blok[1].Stroka3" size="15"></td>  <!--вторая строка в блоке  с одной переменной-->
</tr>
name="Blok[0].Stroka3" -  означает следующее: Blok - название блока, [0] - номер строки в блоке, Stroka3 - контекстная переменная блока
 
Блок в блоке

<tr>
<td><b>Блок в блоке:</b></td> <!--блок в блоке-->
 	<td> Строка первая переменная первая:</td> 
<td><input type="text" name="Blok3[0].Blok4[0].Stroka5" size="15"></td><!--строка первая переменная первая-->
<td>Строка первая переменная вторая:</td> 
<td><input type="text" name="Blok3[0].Blok4[0].Stroka6" size="15"></td> <!--строка первая переменная вторая-->
</tr>
<tr>
<td><td>Строка вторая переменная первая:</td></td>
<td><input type="text" name="Blok3[0].Blok4[1].Stroka5" size="15"></td> <!--строка вторая переменная первая-->
<td>Строка вторая переменная вторая:</td>
<td><input type="text" name="Blok3[0].Blok4[1].Stroka6" size="15"></td> <!--строка вторая переменная вторая-->
</tr>
 name="Blok3[0].Blok4[0].Stroka5" - означает следующее: Blok3 - название блока , Blok4 - название подблока, [0] - номер строки в блоке (подблоке), Stroka5" - контекстная переменная подблока.
 
Документы передаются с помощью ID

<tr>
<td><b> ID документа:</b></td>
<td><input type="text" name="Dokument.Id" size="15"></td> <!-- Документ--->
</tr>

Списки оформляются в HTML коде , аналогично Списку пользователей

<tr>
<td><b>Пользователи список:</b></td>
<td> ID первого пользователя:</td>
<td><input type="text" name="Polzovatelj[0].Id" size="15"></td> <!--Переменная пользователи список первая-->
</tr>
 <tr>
<td><td> ID второго пользователя:</td></td>
<td><input type="text" name="Polzovatelj[1].Id" size="15"></td> <!-- Переменная пользователи список вторая-->
</tr>

name="Polzovatelj[0].Id - означает следующее: Polzovatelj – контекстная переменная типа Пользователи, [0] - номер пользователя, Id - Id пользователя.

Переменная типа Файл

<tr>
<td> Выбираем файл:</td>
<td><input type="file" name="Fail"></td>
</tr>

Передача файла в переменную типа Вложение

<tr>
<td> Выбираем вложение:</td>
<td><input type="file" name="Vlozhenie.File"></td>
</tr>