[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-форму, в которой пользователь будет заполнять параметры перед запуском процесса. Пример кода формы:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <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-форма в браузере может выглядеть так:
Пример кода формы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <!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 – имя свойства контекстной переменной Строка в процессе, имя свойства можно посмотреть на вкладке Контекст.
Кнопка Отправить
Код кнопки отправляющей запрос
1 2 3 | <tr> <td><input type= "Submit" value= "Отправить" name= "Run_Workflow" ></td> </tr> |
Примеры использования передачи параметров в коде формы
Для того чтобы запустился процесс с заполненными контекстными переменными нужно:
- Запустить HTML-форму в браузере.
- Заполнить поля формы.
- Нажать кнопку Отправить.
Приведен список контекстных переменных используемых в процессе, которые подробно описаны ниже:
Все простые типы (строка, число и т.д.) оформляются в HTML-коде аналогично типу Строка.
1 2 3 4 | <tr> <td width= "15%" ><b>Строка:</b></td> <td><input type= "text" name= "Stroka" size= "15" ></td> <!-- строка--> </tr> |
Блок
1 2 3 4 5 6 7 8 9 | <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 – контекстная переменная блока.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <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 – контекстная переменная подблока.
1 2 3 4 | <tr> <td><b> ID документа:</b></td> <td><input type= "text" name= "Dokument.Id" size= "15" ></td> <!-- Документ---> </tr> |
Списки оформляются в HTML коде , аналогично Списку пользователей
1 2 3 4 5 6 7 8 9 | <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 пользователя.
Переменная типа Файл
1 2 3 4 | <tr> <td> Выбираем файл:</td> <td><input type= "file" name= "Fail" ></td> </tr> |
Передача файла в переменную типа Вложение
1 2 3 4 | <tr> <td> Выбираем вложение:</td> <td><input type= "file" name= "Vlozhenie.File" ></td> </tr> |