Примеры использования 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>