[ELMA3] Примеры использования 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-запроса для запуска процесса с параметрами:
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>
Примеры использования передачи параметров в коде формы
Для того чтобы запустился процесс с заполненными контекстными переменными нужно:
- Запустить HTML-форму в браузере.
- Заполнить поля формы.
- Нажать кнопку Отправить.
Приведен список контекстных переменных используемых в процессе, которые подробно описаны ниже:
Все простые типы (строка, число и т.д.) оформляются в 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>
- 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>
- Blok3 – название блока;
- Blok4 – название подблока;
- [0] – номер строки в блоке (подблоке);
- Stroka5 – контекстная переменная подблока.
<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>