Решение по реализации в ARIS Process Governance пользовательских операций посредством e-mail без использования ProcessBoard
Описание
Цель создания – реализовать возможность участия пользователей в процессе APG для принятия решений без необходимости входа в ARIS, предоставляя кнопки решений в теле электронного письма («e-mail task»).
Решение состоит из компонентов:
- REST-API Веб-сервис. Обеспечивает прием решений от пользователей, их хранение и предоставление по запросам.
- APG-сервис отправки пользовательских операций «e-mail task». Обеспечивает отправку писем в формате html с элементами GUI для принятия решений.
- APG-сервис получения и обработки ответов пользователей из операций типа «e-mail task».
- ARIS-скрипт формирования графического изображения модели.
При настройке в процесс ARIS Process Governance встраивается стандартный APG-сервис (содержится в ARIS по умолчанию) для запуска скрипта (компонент 4). Скрипт формирует графическое изображение для контекстной модели, сохраняет его в оперативной памяти в виде байтов для передачи обратно в APG-процесс.
Далее в процесс встраивается APG-сервис (компонент 2). На вход в сервис необходимо передать ARIS-пользователей, а также подготовленное ранее графическое изображение. Каждому пользователю отправляется отдельное электронное письмо с текстом, графическим изображением модели, кнопками для принятия решения.
Получив электронное письмо, пользователь передает Веб-сервису (компонент 1) своё решение. Для этого пользователь нажимает одну из кнопок в письме. При нажатии, в браузере открывается ссылка, содержащая идентификатор e-mail task и решение. Эту информацию принимает Веб-сервис и сохраняет, а пользователь видит в браузере сообщение, что его решение учтено. Данное пользовательское действие можно выполнить как на персональном компьютере, так и смартфоне/планшете под управлением любой операционной системы.
Далее в процесс встраивается следующий APG-сервис (компонент 3). Данный сервис специально является отдельным от компонента 2, чтобы получение решений от пользователей можно было встраивать в процесс более разнообразным образом, например, параллельно с другими операциями. Компонент осуществляет регулярный запрос информации у Веб-сервиса о принятых решениях. При достижении определенных условий (например, все пользователи передали решение), компонент завершает выполнение. На выходе предоставляются списки пользователей, сгруппированные по решению.
Рисунок 1. Пример «e-mail task»
Пример ссылки, обеспечивающей отправку решения пользователя к Веб-сервису:
http://:/emailtask/p/89d19eb6-2097-4610-84a6-bf690a166e2e/positive
Рисунок 2. Пример ответа от Веб-сервиса о том, что информация принята (кастомизируется)
Пример использования решения
Рисунок 3. Пример встраивания решения в APG-процесс
Спецификация входов и выходов APG-сервиса отправки пользовательских операций «e-mail task» (компонент 2):
№ | Имя входа | Обязательный | Тип данных | Описание |
Входы | ||||
1 | recipients | + | user | Пользователь или пользователи, которым нужно отправить e-mailtask |
2 | tenant |
| text | Текущий tenantдля чтения значений переменных из конфигурации сервера |
3 | subject | + | text | Тема письма |
4 | text | + | text | Шаблон текста письма. Может содержать метки для замены на значения |
5 | replaceTargetList |
| collection | Массив меток для поиска и замены в шаблоне текста письма |
6 | replaceValueList |
| collection | Массив значений для замены меток на них в тексте шаблона письма |
7 | pictureBytesBase64 |
| text | Массив байтов графического изображения в виде base64 строки |
8 | wsEndpoint | + | text | EndpointВебсервера. Синтаксис: “http://:” |
9 | buttonPositiveName |
| text | Имя кнопки положительного решения пользователя |
10 | buttonNegativeName |
| text | Имя кнопки отрицательного решения пользователя |
Выходы | ||||
1 | emailTaskIdList |
| text | Идентификаторы отправленных usertask, разделенные сочетанием символов «; ». Необходим как вход для APG-сервиса получения информации о решениях пользователей |
2 | userAccountList |
| text | Технические имена пользователей, кому были отправлены usertask, разделенные сочетанием символов «; ». Необходим как вход для APG-сервиса получения информации о решениях пользователей |
Рисунок 4. Пример потока данных функции отправки пользовательских операций «e-mailtask» (компонент 2)
Спецификация входов и выходов APG-сервиса получения и обработки ответов пользователей из операций типа «e-mailtask» (компонент 3):
№ | Имя входа | Обязательный | Тип данных | Описание |
Входы | ||||
1 | emailTaskIdList | + | text | Идентификаторы отправленных usertask, разделенные сочетанием символов «; ». Является выходом из APG-сервиса отправки e-mail task |
2 | userAccountList | + | text | Технические имена пользователей, кому были отправлены usertask, разделенные сочетанием символов «; ». Является выходом из APG-сервиса отправки e-mail task |
3 | wsEndpoint | + | text | EndpointВебсервера. Синтаксис: “http://:” |
4 | checkingInterval |
| text | Интервал регулярной проверки у Вебсервера наличия решений пользователей. Задается в минутах. Значением по умолчанию является «30» |
5 | votePercent |
| text | Процент положительных решений по отношению в общему числу участвующих пользователей, указывающий на итоговое единое положительное решение. Значением по умолчанию является «100» |
6 | deadlinePeriod |
| text | Максимальное время работы сервиса. Задается в минутах. В случае, если значение не задано, работа сервиса будет длиться до тех пор, пока не выполнится условие по необходимому числу положительных решений |
Выходы | ||||
1 | positiveAccountList |
| text | Технические имена пользователей, которые приняли положительное решение, разделенные сочетанием символов «; » |
2 | negativeAccountList |
| text | Технические имена пользователей, которые приняли отрицательное решение, разделенные сочетанием символов «; » |
3 | nullAccountList |
| text | Технические имена пользователей, которые к завершению работы сервиса проигнорировали принятие решения, разделенные сочетанием символов «; » |
4 | positiveCount |
| text | Число пользователей, которые приняли положительное решение |
5 | negativeCount |
| text | Число пользователей, которые приняли отрицательное решение |
6 | nullCount |
| text | Число пользователей, которые к завершению работы сервиса проигнорировали принятие решения |
7 | totalDecision |
| text | Итоговое единое решение. Рассчитывается как положительное, если процент положительных решений по отношению к числу участвующих пользователей выше или равно, чем votePercent |
Рисунок 5. Пример потока данных функции получения и обработки ответов пользователей из операций типа «e-mailtask» (компонент 3)
Рисунок 6. Пример дальнейшего использования в процессе ответов от пользователей
Функциональность компонентов
Функциональность | Степень реализации | |
Прототип решения | Готовое решение | |
REST-API WebService | ||
Основной целевой функционал | В степени, достаточной для демонстрации | В полной мере |
Поддержка конфигурационного файла | Частично | В полной мере |
Обеспечение непрерывной работы веб-сервиса: проверка работы веб-сервиса с функцией перезапуска | Нет | Да |
Сохранение решений пользователей | Только в оперативной памяти (теряется после перезапуска) | Поддержка сохранения в постоянную память (не теряется после перезапуска). Реализация обсуждается с заказчиком: сохранять в СУБД, в локальные файлы и т.п. |
Возможность изменить решение пользователя (включаемая опция) | Нет | Да |
Запрет на изменение решения пользователя (включаемая опция) | Нет | Да |
Поддержка защищенного протокола https | Нет | Да. Необходимость обсуждается с заказчиком. |
Логирование обработанных запросов | Нет | Да |
APG-сервисотправки e-mail task (emailTaskSender) | ||
Основной целевой функционал | В степени, достаточной для демонстрации | В полной мере |
Поддержка отправки писем от имени ARISConnectServer | В степени, достаточной для демонстрации | В полной мере |
Поддержка шаблона текстового сообщения | Да | Да |
Возможность изменить имена кнопок в сообщении | Да | Да |
APG-сервисобработкиответов e-mail task (emailTaskObserver) | ||
Основной целевой функционал | В степени, достаточной для демонстрации | В полной мере |
Проверка наличия ответов с заданной регулярностью | Да, раз в 5 минут | Да, настраивается |
Возможность установить максимальное время выполнения сервиса | Нет | Да |
Возможность указать % положительных решений пользователей как условие завершения сервиса | Нет | Да |
ARIS-скрипт формирования графического изображения модели | ||
Основной целевой функционал | В степени, достаточной для демонстрации | В полной мере |
Необходимые условия работы REST-API Веб-сервиса
1. Так как Веб-сервис разработан на Java, для его запуска под ОС Windowsнеобходима установка JRE (JavaRuntimeEnvironment). Также есть возможность использования portable-версии JRE.
2. Для того, чтобы проходили запросы к Веб-сервису от пользователей и APG-сервиса, необходимо соответствующим образом настроить сеть. Для этого нужно указать в конфигурационном файле Веб-сервиса свободный стандартный http-порт (например, 80) и/или открыть его в фаирволле:
- Сервер с Веб-сервисом – правило для входящих соединений;
- Сервера (nodes) с APG – правило для исходящих соединений;
- ПК пользователей – правило для исходящих соединени
В дополнении к статье, мы подготовили для вас видеоматериал с демонстрацией работы описанного выше решения.
Если у вас остались открытые вопросы или вам нужна консультация, позвоните нам в офис либо свяжитесь с нами через форму обратной связи.