Эл. почта в процессе. Отправка, получение и обработка. Пример: настройка подключений, путей передачи данных, диаграммы процесса и сценария
Введение
Comindware Platform может отправлять и принимать электронные письма, а также передавать сообщения между процессами.
Здесь представлены инструкции по настройке обмена данными посредством электронных писем и межпроцессного взаимодействия на примере процесса согласования отпуска:
- настройка подключений и путей передачи данных;
- настройка процессов согласования отпуска и обработки эл. писем;
- настройка событий отправки и получения сообщений на диаграммах процессов.
Сценарии обработки эл. почты в процессе
В зависимости от бизнес-требований можно настроить различные сценарии обработки эл. почты:
- Отправка почты:
- Уведомления пользователей — отправка уведомлений о событиях процессов (завершение задач, изменения статуса).
- Запросы на действие — отправка писем с кнопками для выполнения действий без входа в систему.
- Отчеты и документы — автоматическая отправка сгенерированных отчетов и документов.
- Приём почты:
- Обработка запросов — создание новых экземпляров процесса для каждого входящего письма.
- Обработка ответов — направление писем в существующие экземпляры процессов.
- Маршрутизация — использование технического процесса для анализа и маршрутизации различных типов писем.
Логика идентификации писем
Для идентификации писем здесь используются идентификаторы:
- В тему исходящего письма внедряется идентификатор (например, номер заявления, идентификатор процесса или GUID) с машиночитаемой маркировкой, например:
Заявление № [{ApplicationNumber}]
. - При получении письма идентификатор извлекается из темы для маршрутизации процесса:
- либо в существующий экземпляр процесса, ожидающий письмо;
- либо через конечное событие для выполнения дальнейших действий.
Для повышения безопасности используйте GUID человекочитаемых идентификаторов и проверяйте отправителей писем.
Технический процесс для обработки входящих писем
Для обработки входящих писем рекомендуется создать технический процесс, обеспечивающий маршрутизацию на основе анализа содержимого письма.
Такой подход позволяет:
- централизованно обрабатывать все входящие письма;
- определять, следует ли обрабатывать письмо, и относится ли оно к процессу;
- анализировать содержимое для определения типа запроса;
- маршрутизировать письма в соответствующие бизнес-процессы;
- обеспечить единообразную обработку различных типов сообщений.
Это особенно актуально в случае использования одного адреса для обработки различных писем, но рекомендуется и в случае использования специализированных адресов с целью повышения безопасности.
Прикладная задача
Требуется настроить процесс согласования Руководителем заявлений на отпуск так, чтобы Руководитель мог согласовать отпуск или отказать в отпуске с помощью кнопки в эл. письме с заявлением, не покидая почтового ящика и не выполняя вход в Comindware Platform.
Настроим процесс «Согласование отпуска» из следующих шагов:
- Заявитель подаёт заявление на отпуск.
-
Процесс «Согласование отпуска» отправляет Руководителю эл. письмо от имени Отдела кадров со следующим содержимым:
- Номер заявления
- Ф. И. О. заявителя
- Даты начала и окончания отпуска
- Количество дней отпуска
- Кнопки «Согласовать отпуск» и «Отказать в отпуске»
- Инструкции по подаче решения по заявлению
-
Руководитель рассматривает заявление и нажимает в письме кнопку «Согласовать отпуск» или «Отказать в отпуске».
-
При нажатии Руководителем кнопки автоматически создаётся новое письмо со следующим содержимым:
- Получатель — адрес почтового ящика, письма в котором обрабатывает процесс «Обработка ответа руководителя»;
- Тема — решение по заявлению и номер заявления.
Примечание
Руководитель не должен изменять адрес получателя и тему автоматически созданного письма.
В тексте письма Руководитель может указать в произвольной форме причину решения по заявлению.
-
Руководитель отправляет заполненное письмо с решением по заявлению.
- Процесс «Обработка ответа руководителя» получает письмо от Руководителя, извлекает из него данные и передаёт решение Руководителя в процесс «Согласование отпуска».
- В зависимости от решения Руководителя процесс «Согласование отпуска» отправляет Заявителю уведомление «Отпуск согласован» или «В отпуске отказано» от имени Отдела кадров.
Исходные данные
В приложении «Отпуска» создайте перечисленные ниже шаблоны.
Шаблон процесса «Согласование отпуска»
Шаблон процесса «Согласование отпуска» свяжите с шаблоном записи «Заявления на отпуск».
См. также «Настройка элементов диаграммы процесса «Согласование отпуска».
- Оформлено заявление на отпуск — простое начальное событие; соединено с событием «Отправка уведомления для руководителя».
- Отправка уведомления для руководителя — промежуточное событие-отправка сообщения; соединено с событием «Обработан ответ руководителя».
- Обработан ответ руководителя — промежуточное событие-получение сообщения; соединено с развилкой «Решение руководителя».
- Решение руководителя — развилка «или/или»; соединена с событиями «Отпуск согласован» и «В отпуске отказано».
- Отпуск согласован — конечное событие-отправка сообщения.
- В отпуске отказано — конечное событие-отправка сообщения.
Шаблон процесса «Обработка ответа руководителя»
Шаблон процесса «Обработка ответа руководителя» свяжите с шаблоном записи «Решения руководителя».
См. также «Настройка элементов диаграммы процесса «Обработка ответа руководителя».
- Поступил ответ руководителя — начальное событие-получение сообщения; соединено с конечным событием.
- Передача решения в процесс «Согласование отпуска» — конечное событие-отправка сообщения.
Атрибуты шаблона записи «Заявления на отпуск»
Название |
Системное имя |
Свойства |
---|---|---|
№ заявления |
ApplicationNumber |
Тип данных: текст |
Имя заявителя |
ApplicantName |
Тип данных: текст Вычислять автоматически: флажок установлен Вычисляемое значение: формула
|
Адрес заявителя |
ApplicantEmail |
Тип данных: текст Вычислять автоматически: флажок установлен Вычисляемое значение: формула
|
Дата начала |
StartDate |
Тип данных: дата и время |
Количество дней |
Duration |
Тип данных: число |
Дата окончания |
EndDate |
Тип данных: дата и время Вычислять автоматически: флажок установлен Вычисляемое значение: формула
|
Решение руководителя |
ManagerDecision |
Тип данных: запись Связанный шаблон: Решения руководителя |
Атрибуты шаблона записи «Решения руководителя»
Название |
Системное имя |
Свойства |
---|---|---|
Тема письма с ответом |
ResponseEmailSubject |
Тип данных: текст |
Комментарий руководителя |
ManagerComment |
Тип данных: текст |
№ заявления |
ApplicationNumber |
Тип данных: текст Вычислять автоматически: флажок установлен Вычисляемое значение: формула
|
Отпуск согласован |
LeaveApproved |
Тип данных: логический Вычислять автоматически: флажок установлен Вычисляемое значение: формула:
|
Синтаксис регулярного выражения
.*
— ноль или более любых символов. Точка.
обозначает любой одиночный символ, а звездочка*
обозначает, что таких символов может быть ноль или больше. Этот фрагмент позволяет игнорировать любые символы, которые могут предшествовать искомой строке.Отпуск согласован\. Заявление №
— фиксированная часть искомой строки. Регулярное выражение ищет именно этот текст в указанной последовательности с точным совпадением прописных и строчных букв.\.
— экранированная точка. Точка в регулярном выражении означает любой одиночный символ, поэтому для поиска самой точки её необходимо экранировать с помощью косой черты\
.
\[
— экранированная квадратная скобка. Квадратные скобки в регулярных выражениях используются для обозначения диапазона символов, поэтому для поиска самой скобки необходимо её экранировать с помощью обратной косой черты\
. Таким образом,\[
означает «открывающая квадратная скобка».[0-9]+
— набор из одной или более цифр. Диапазон[0-9]
обозначает любую цифру от 0 до 9, а плюс+
обозначает, что таких цифр может быть одна или более.\]
— экранированная закрывающая квадратная скобка, аналогичная открывающей..*
— ноль или более любых символов. Этот фрагмент позволяет игнорировать любые символы, которые могут следовать за искомой строкой.- Ознакомиться с принципами составления регулярных выражений и поэкспериментировать с ними можно на следующем сайте: https://regex101.com/
Пример
- Дано регулярное выражение:
.*Отпуск согласован\. Заявление № \[[0-9]+\].*
"Здравствуйте! Отпуск согласован. Заявление № [12345] одобрено."
— удовлетворяет регулярному выражению."Ваш отпуск согласован. Заявление № [12345]."
— не удовлетворяет регулярному выражению, так как слово «отпуск
» должно начинаться с прописной буквы.
Настройка подключений
Отправка эл. почты из процесса
Настроим подключение к SMTP-серверу для отправки эл. писем от имени Отдела кадров.
- Откройте страницу «Администрирование» – «Подключения».
- Выберите пункт «Создать» – «Подключения к электронной почте» – «Отправка эл. почты из процесса».
-
Настройте подключение к SMTP-серверу:
- Название: Письма от отдела кадров;
- Адрес почтового сервера, Порт, Защита данных, Имя пользователя, Пароль: укажите параметры для доступа к SMTP-серверу;
- Адрес отправителя: укажите адрес эл. почты отдела кадров;
- Имя отправителя: Отдел кадров.
Получение эл. почты в процессе
Настроим подключение к IMAP-серверу для приёма писем с решением по заявлениям от Руководителя.
Логика чтения писем на почтовом сервере
При подключении к почтовому серверу для получения эл. почты Comindware Platform выступает как почтовый клиент, который регулярно проверяет наличие новых писем.
При каждой проверке почтового ящика Comindware Platform:
- обрабатывает новые письма;
- отмечает новые письма как прочтённые.
Таким образом, каждое непрочитанное письмо в указанном почтовом ящике будет обработано и отмечено как прочитанное.
Рекомендации по настройке:
- Используйте отдельный ящик эл. почты для автоматической обработки писем, чтобы избежать случайной обработки личной корреспонденции.
- Создайте технический процесс для приема входящих писем с последующей маршрутизацией по типу письма.
- Анализируйте содержимое писем (тему, отправителя, текст) для определения дальнейших действий при использовании одного адреса для обработки писем разных типов.
- Откройте страницу «Администрирование» – «Подключения».
- Выберите пункт «Создать» – «Подключения к электронной почте» – «Получение эл. почты в процессе».
-
Настройте подключение к IMAP-серверу:
- Название: Ответы от руководителя.
-
Протокол, Адрес почтового сервера, Порт, Имя пользователя, Пароль, Защита данных: укажите параметры для доступа к IMAP-серверу.
Примечание
Для обработки писем с решениями Руководителя рекомендуется использовать отдельный ящик эл. почты, например:
leavedecisions@<hostname>
. -
Интервал опроса: укажите интервал, с которым Comindware Platform будет проверять наличие новых писем.
Настройка путей передачи данных
Отправка уведомления Руководителю
Бизнес-логика
Отправителем писем с заявлениями на отпуск будет указан Отдел кадров.
В письме Руководителю мы будем передавать значения следующих атрибутов заявления на отпуск: Номер заявления, Имя заявителя, Дата начала, Количество дней, Дата окончания.
В качестве Номера заявления мы будем использовать ID экземпляра процесса «Согласование отпуска».
Подстановка значений атрибутов сообщения в эл. письмо
Путь передачи данных для отправки эл. почты из процесса позволяет передавать данные из записей в эл. письмо.
- На вкладке «Атрибуты сообщения» пути передачи данных задайте набор атрибутов, значения которых требуется передать в путь передачи данных и подставить в сообщение.
-
На вкладке «Свойства сообщения» подставьте значения атрибутов сообщения в любое поле, указав их системные имена в фигурных скобках
{}
.- Например, подставьте в тему письма номер заявления и имя заявителя:
- Тема: Заявление на отпуск №
{ApplicationNumber}
от:{ApplicantName}
- Тема: Заявление на отпуск №
- Например, подставьте в тему письма номер заявления и имя заявителя:
-
Задайте значения атрибутов сообщения с помощью вкладки «Данные сообщения» в свойствах события отправки сообщения, использующего этот путь передачи данных.
Настроим путь передачи данных для отправки заявлений на рассмотрение Руководителю.
- В приложении «Отпуска» откройте страницу «Пути передачи данных».
- Выберите пункт «Создать» – «Подключения к электронной почте» – «Отправка эл. почты из процесса».
-
Настройте путь передачи данных:
- Основные свойства
- Название: Уведомление для руководителя
- Подключение: Письма от отдела кадров
- Имя сообщения: MessageToApprover
- Приложение: Отпуска
-
Атрибуты сообщения
Название Системное имя Тип данных Номер заявления ApplicationNumber Текст Имя заявителя ApplicantName Текст Дата начала StartDate Дата и время Количество дней Duration Число Дата окончания EndDate Дата и время -
Свойства сообщения
- Адрес отправителя: адрес эл. почты Отдела кадров
- Имя отправителя: Отдел кадров
- Кому: аккаунт или адрес эл. почты Руководителя
- Тема:
Заявление на отпуск № {ApplicationNumber} от: {ApplicantName}
-
Формат сообщения: HTML
-
Сообщение
- Перейдите в поле «Сообщение».
- В панели инструментов нажмите кнопку «Источник» .
-
Введите следующий HTML-код:
<p>Уважаемый коллега!</p>
<p>Поступило заявление на отпуск № {ApplicationNumber}.</p>
<p>Заявитель: {ApplicantName}</p>
<p>Количество дней: {Duration}</p>
<p>Даты отпуска: {StartDate}–{EndDate}</p>
<p>Просьба согласовать отпуск или отказать в отпуске:</p>
<ol>
<li>Нажмите соответствующую кнопку ниже.</li>
<li>Будет создано новое письмо.</li>
<li>В теме письма будет указано Ваше решение по заявлению и номер заявления.</li>
<li><u>Не меняйте тему письма и адрес получателя.</u></li>
<li>При необходимости укажите причину решения в тексте письма.</li>
<li>Отправьте письмо.</li>
</ol>
<table border="0" cellpadding="6" cellspacing="0">
<tbody markdown="block">
<tr markdown="block">
<td markdown="block">
<a href="mailto:leavedecisions@<hostname>?subject=Отпуск согласован. Заявление № [{ApplicationNumber}]">
Согласовать отпуск</a>
</td>
<td markdown="block">
<a href="mailto:leavedecisions@<hostname>?subject=В отпуске отказано. Заявление № [{ApplicationNumber}]&body=Причина отказа:">
Отказать в отпуске</a>
</td>
</tr>
</table>
-
Снова нажмите кнопку «Источник» .
- Должно отобразиться показанное на следующей иллюстрации письмо:
Тема и текст письма для Руководителя с заполнителями для подстановки значений атрибутов - Основные свойства
Получение ответа Руководителя
Бизнес-логика
Из ответного письма руководителя путь передачи данных будет извлекать тему и текст письма.
Затем процесс «Обработка ответов руководителя» будет извлекать из письма данные в шаблон «Решения руководителя»:
- номер заявления из темы письма — в атрибут «№ заявления»
- решение по заявлению из темы письма — в атрибут «Отпуск согласован»;
- текст письма — в атрибут «Комментарий руководителя».
Извлечение значений атрибутов из эл. письма
Путь передачи данных для получения эл. почты из процесса позволяет передавать данные из эл. письма в записи.
-
На вкладке «Атрибуты сообщения» пути передачи данных задайте набор атрибутов, значения которых требуется извлечь из полученного письма. Для этого создайте атрибуты и сопоставьте их с полями эл. письма.
-
Например, поместите текст эл. письма в атрибут EmailBody:
- Название: Текст письма
- Системное имя: EmailBody
- Тип данных: текст
- Поместить тело атрибута в этот атрибут: Сообщение
-
-
Передайте значения атрибутов сообщения в атрибуты записи с помощью вкладки «Данные сообщения» в свойствах события получения сообщения, использующего этот путь передачи данных.
Настроим путь передачи данных для приёма писем от Руководителя.
- В приложении «Отпуска» откройте страницу «Пути передачи данных».
- Выберите пункт «Создать» – «Подключения к электронной почте» – «Получение эл. почты в процессе».
-
Настройте путь передачи данных:
-
Основные свойства
- Название: Ответ руководителя
- Подключение: Ответы от руководителя
- Имя сообщения: ReceiveManagerEmail (это имя сообщения в данном примере не используется, поэтому можно ввести произвольное уникальное имя)
- Приложение: Управление командировками
- Процесс: Обработка ответа
- Назначение: Новый экземпляр процесса
-
Атрибуты сообщения
Название Системное имя Тип данных Поместить тело атрибута в этот атрибут Тема письма EmailSubject Текст Тема Текст письма EmailBody Текст Сообщение
-
Отправка уведомления «Отпуск согласован»
Настроим путь передачи данных для отправки уведомлений о согласовании заявления от имени Отдела кадров.
- В приложении «Отпуска» откройте страницу «Пути передачи данных».
- Выберите пункт «Создать» – «Подключения к электронной почте» – «Отправка эл. почты из процесса».
-
Настройте путь передачи данных:
-
Основные свойства
- Название: Уведомление «Отпуск согласован»
- Подключение: Письма от отдела кадров
- Имя сообщения: MessageFromHrApproved
- Приложение: Отпуска
-
Атрибуты сообщения
Название Системное имя Тип данных № заявления ApplicationNumber Текст Имя заявителя ApplicantName Текст Адрес заявителя ApplicantEmail Текст Дата начала StartDate Дата и время Количество дней Duration Число Дата окончания EndDate Дата и время Комментарий руководителя ManagerComment Текст -
Свойства сообщения
- Адрес отправителя: адрес эл. почты Отдела кадров
- Имя отправителя: Отдел кадров
-
Кому:
- Адрес получателя:
{ApplicantEmail}
- Имя получателя:
{ApplicantName}
- Адрес получателя:
-
Тема: Отпуск согласован. Заявление №
{ApplicationNumber}
- Формат сообщения: HTML
-
Сообщение
- Перейдите в поле «Сообщение».
- В панели инструментов нажмите кнопку «Источник» .
-
В поле введите следующий HTML-код «Сообщение»:
<p>Здравствуйте, {ApplicantName}!</p>
<p>Ваш отпуск согласован.</p>
<p>Заявление №: {ApplicationNumber}</p>
<p>Количество дней: {Duration}</p>
<p>Даты отпуска: {StartDate}–{EndDate}</p>
<p>Комментарий руководителя:</p>
<p>{ManagerComment}</p>
-
Снова нажмите кнопку «Источник» .
- Должно отобразиться показанное на следующей иллюстрации письмо:
Тема и текст письма заявителю с уведомлением «Отпуск согласован» с заполнителями для подстановки значений атрибутов
-
Отправка уведомления «В отпуске отказано»
Настроим путь передачи данных для отправки уведомлений об отклонении заявления от имени Отдела кадров.
- В приложении «Отпуска» откройте страницу «Пути передачи данных».
- Выберите пункт «Создать» – «Подключения к электронной почте» – «Отправка эл. почты из процесса».
-
Настройте путь передачи данных:
-
Основные свойства
- Название: Уведомление «В отпуске отказано»
- Подключение: Письма от отдела кадров
- Имя сообщения: MessageFromHrRejected
- Приложение: Отпуска
-
Атрибуты сообщения
Название Системное имя Тип данных № заявления ApplicationNumber Текст Имя заявителя ApplicantName Текст Адрес заявителя ApplicantEmail Текст Дата начала StartDate Дата и время Количество дней Duration Число Дата окончания EndDate Дата и время Комментарий руководителя ManagerComment Текст -
Свойства сообщения
- Адрес отправителя: адрес эл. почты Отдела кадров
- Имя отправителя: Отдел кадров
-
Кому:
- Адрес получателя:
{ApplicantEmail}
- Имя получателя:
{ApplicantName}
- Адрес получателя:
-
Тема: В отпуске отказано. Заявление №
{ApplicationNumber}
- Формат сообщения: HTML
-
Сообщение
- Перейдите в поле «Сообщение».
- В панели инструментов нажмите кнопку «Источник» .
-
В поле введите следующий HTML-код «Сообщение»:
<p>Здравствуйте, {ApplicantName}!</p>
<p>По Вашему заявлению на отпуск получен отказ.</p>
<p>Заявление №: {ApplicationNumber}</p>
<p>Количество дней: {Duration}</p>
<p>Даты отпуска: {StartDate}–{EndDate}</p>
<p>Комментарий руководителя:</p>
<p>{ManagerComment}</p>
-
Снова нажмите кнопку «Источник» .
- Должно отобразиться показанное на следующей иллюстрации письмо:
Тема и текст письма заявителю с уведомлением «В отпуске отказано» с заполнителями для подстановки значений атрибутов
-
Настройка элементов диаграммы процесса «Согласование отпуска»
Бизнес-логика
- Процесс «Согласование отпуска» запускается вручную путём создания его экземпляра.
- При запуске процесса создаётся запись в шаблоне «Оформлено заявление на отпуск», связанная с экземпляром процесса.
- Пользователь, запустивший процесс, заполняет стартовую форму события «Оформлено заявление на отпуск», указав дату начала и количество дней отпуска.
- Событие «Отправка уведомления для руководителя» отправляет письмо с заявлением Руководителю.
- Событие «Обработан ответ руководителя» ожидает решения Руководителя из процесса «Обработка ответа руководителя».
- Руководитель нажимает в полученном письме кнопку «Согласовать отпуск» или «Отказать в отпуске» и отправляет автоматически сформированное письмо с решением по заявлению.
- Процесс «Обработка ответа руководителя» получает письмо, извлекает из него данные и передаёт решение по заявлению в событие «Обработан ответ руководителя» процесса «Согласование отпуска».
- В зависимости от решения Руководителя в процессе «Согласование отпуска» срабатывает конечное событие «Отпуск согласован» или «В отпуске отказано».
- Сработавшее конечное событие отправляет Заявителю письмо с решением по заявлению.
- В приложении «Отпуска» откройте шаблон процесса «Согласование отпуска».
- Откройте вкладку «Диаграмма».
- Составьте диаграмму процесса, показанную на иллюстрации.
- Настройте элементы процесса, как указано ниже.
Начальное событие «Оформлено заявление на отпуск»
- Выберите начальное событие сообщения «Оформлено заявление на отпуск».
- В меню элемента выберите пункт «Стартовая форма» .
-
Настройте стартовую форму:
- В свойствах созданной по умолчанию Новой области введите отображаемое название «Оформлено заявление на отпуск».
-
Перетащите на область «Оформлено заявление на отпуск» атрибуты:
- Имя заявителя
- Адрес заявителя
- Дата начала
- Количество дней
- Дата окончания
-
Сохраните форму.
-
Вернитесь к диаграмме процесса.
- Выберите начальное событие «Оформлено заявление на отпуск».
- В меню элемента выберите пункт «Сценарий на выходе» .
-
Настройте сценарий:
- Внутрь имеющегося действия «Сменить контекст» добавьте действие «Изменить значения атрибутов».
- Настройте действие «Изменить значения атрибутов»:
Атрибут |
Операция со значениями |
Значение |
---|---|---|
Номер заявления |
Заменить |
Формула:
|
Системная переменная ProcessObject
В переменной ProcessObject
хранится ID экземпляра процесса в сценариях по событиям «Запуск процесса», «Вход токена», «Выход токена».
Промежуточное событие «Отправка уведомления для руководителя»
- Выберите промежуточное событие отправки сообщения «Отправка уведомления для руководителя».
- В меню элемента выберите пункт «Свойства» .
-
Настройте свойства события:
-
Основные
- Название: Отпуск согласован
-
Дополнительные
- Место назначения: внешний сокет
- Использовать путь передачи данных: Уведомление для руководителя
-
Данные сообщения
Название Системное имя Тип данных Значение № заявления ApplicationNumber Текст Атрибут: Номер заявления Имя заявителя ApplicantName Текст Атрибут: Имя заявителя Дата начала StartDate Дата и время Атрибут: Дата начала Количество дней Duration Число Атрибут: Количество дней Дата окончания EndDate Дата и время Атрибут: Дата окончания
-
Промежуточное событие «Обработан ответ руководителя»
Имя сообщения для процессной коммуникации
Для обмена данными между экземплярами процессов (и внутри экземпляров) используются события отправки и получения сообщений (события-инициаторы и события-обработчики).
Каждому такому событию присваивается имя сообщения.
Когда событие-инициатор отправляет сообщение, это сообщение принимают все события-обработчики с таким же именем сообщения, как у события-инициатора.
- Выберите промежуточное событие отправки сообщения «Обработан ответ руководителя».
- В меню элемента выберите пункт «Свойства» .
-
Настройте свойства события:
-
Основные
- Название: Ответ руководителя
-
Дополнительные
- Использовать путь передачи данных: флажок снят
-
Имя сообщения: ApproverResponse
- Это имя должно совпадать с именем сообщения в конечном событии «Передача решения в процесс «Согласование отпуска».
-
Данные сообщения
Название Системное имя Тип данных Значение Решение руководителя ManagerDecision Текст Атрибут: Решение руководителя
-
Развилка «Решение руководителя»
Бизнес-логика
Развилка «Решение руководителя» определяет, какое уведомление отправить Заявителю:
- если атрибут «Отпуск согласован» в записи шаблона «Решения руководителя», связанной с заявлением на отпуск, имеет значение
true
, срабатывает конечное событие «Отпуск согласован»; - в противном случае срабатывает конечное событие «В отпуске отказано»;
- сработавшее конечное событие отправляет Заявителю письмо с решением по заявлению на отпуск.
- Выберите развилку «или/или» «Решение руководителя».
- В меню элемента выберите пункт «Свойства» .
-
Настройте свойства события:
-
Основные
- Название: Решение руководителя
-
Дополнительные
-
Поток «иначе» |
Конечная точка |
Условие |
---|---|---|
Отпуск согласован |
Формула:
|
|
Флажок установлен |
В отпуске отказано |
Конечное событие «Отпуск согласован»
- Выберите конечное событие-отправки сообщения «Отпуск согласован».
- В меню элемента выберите пункт «Свойства» .
-
Настройте свойства события:
-
Основные
- Название: Отпуск согласован
-
Дополнительные
- Место назначения: внешний сокет
- Использовать путь передачи данных: Уведомление «Отпуск согласован»
-
Данные сообщения
Название Системное имя Тип данных Значение Решение руководителя ManagerDecision Текст Атрибут: ID Имя заявителя ApplicantName Текст Атрибут: Имя заявителя Дата начала StartDate Дата и время Атрибут: Дата начала Количество дней Duration Число Атрибут: Количество дней Дата окончания> EndDate Дата и время Атрибут: Дата окончания Комментарий руководителя ManagerComment Текст Атрибут: Решение руководителя→Комментарий руководителя Примечание
Из значений этих атрибутов формируется эл. письмо Заявителю посредством пути передачи данных «Уведомление «Отпуск согласован».
-
Конечное событие «В отпуске отказано»
- Выберите конечное событие-отправки сообщения «В отпуске отказано».
- В меню элемента выберите пункт «Свойства» .
-
Настройте свойства события:
-
Основные
- Название: В отпуске отказано
-
Дополнительные
- Место назначения: внешний сокет
- Использовать путь передачи данных: Уведомление «В отпуске отказано»
-
Данные сообщения
Название Системное имя Тип данных Значение № заявления ApplicationNumber Текст Атрибут: Номер заявления Имя заявителя ApplicantName Текст Атрибут: Имя заявителя Дата начала StartDate Дата и время Атрибут: Дата начала Количество дней Duration Число Атрибут: Количество дней Дата окончания EndDate Дата и время Атрибут: Дата окончания Комментарий руководителя ManagerComment Текст Атрибут: Решение руководителя→Комментарий руководителя Примечание
Из значений этих атрибутов формируется эл. письмо Заявителю посредством пути передачи данных «Уведомление «В отпуске отказано».
-
Настройка элементов диаграммы процесса «Обработка ответа руководителя»
- В приложении «Отпуска» откройте шаблон процесса «Обработка ответа руководителя».
- Откройте вкладку «Диаграмма».
- Составьте диаграмму процесса, показанную на иллюстрации.
- Настройте элементы процесса, как указано ниже.
Начальное событие «Поступил ответ руководителя»
Бизнес-логика
- Процесс «Обработка ответов руководителя» запускается при поступлении нового письма в почтовый ящик, указанный в подключении «Получение эл. почты в процессе».
- При запуске процесса создаётся запись в шаблоне «Решения руководителя», связанная с экземпляром процесса.
- Процесс «Обработка ответа руководителя» обрабатывает поступившие письма и передаёт данные в процесс «Согласование отпуска».
-
В теме письма от Руководителя содержатся номер заявления на отпуск и решение по нему в следующем формате:
-
Отпуск согласован. Заявление № [X]
или
-
В отпуске отказано. Заявление № [X]
Здесь
X
— номер заявления, состоящий из произвольного количества цифр. -
-
В теле письма может содержаться произвольное сообщение от Руководителя.
-
В свойствах начального события-получения сообщения «Поступил ответ руководителя» мы настраиваем передачу данных из полученного письма от Руководителя.
- Указываем путь передачи данных для получения писем.
-
Передаём значения атрибутов сообщения пути передачи данных «Ответ руководителя» в атрибуты шаблона записи «Решения руководителя»:
- Тема письма — Тема письма с ответом;
- Текст письма — Комментарий руководителя.
-
По значению атрибута «Тема письма с ответом» автоматически вычисляются значения атрибутов записи в шаблоне «Решения руководителя»:
- значение атрибута «№ заявления» совпадает с ID экземпляра процесса «Согласование отпуска», связанного с заявлением на отпуск;
- атрибут «Отпуск согласован» принимает значение
true
, если отпуск согласован, и значениеfalse
, если в отпуске отказано.
-
После обработки письма конечное событие передаёт Решение руководителя в процесс «Согласование отпуска».
- Выберите начальное событие-отправки сообщения «Поступил ответ руководителя».
- В меню элемента выберите пункт «Свойства» .
-
Настройте свойства события:
-
Основные
- Название: Получение и разбор ответа от руководителя
-
Дополнительные
- Использовать путь передачи данных: Ответ руководителя
-
Данные сообщения
Название Системное имя Тип данных Значение Тема письма EmailSubject Текст Атрибут: Тема письма с ответом Текст письма EmailBody Текст Атрибут: Комментарий руководителя
-
Конечное событие «Передача решения в процесс «Согласование отпуска»
Бизнес-логика
- Конечное событие процесса «Обработка ответов руководителя» передаёт решение Руководителя в экземпляр процесса «Согласование отпуска», связанный с заявлением на отпуск.
-
В свойствах конечного события-отправки сообщения мы настраиваем передачу ID записи из шаблона «Решения руководителя» в атрибут «Решение руководителя» записи в шаблоне «Заявления на отпуск».
- Посредством имени сообщения указываем промежуточное событие «Обработан ответ руководителя».
- Передаём в атрибут сообщения «Решение руководителя» значение системного атрибута «ID» шаблона записи «Решения руководителя».
-
Значение этого атрибута передаётся в промежуточное событие «Обработан ответ руководителя» процесса «Согласование отпуска».
- Выберите конечное событие-отправки сообщения «Передача решения в процесс «Согласование отпуска».
- В меню элемента выберите пункт «Свойства» .
-
Настройте свойства события:
-
Основные
- Название: Передача решения в процесс «Согласование отпуска»
-
Дополнительные
- Место назначения: промежуточное событие
-
Имя сообщения: ApproverResponse
- Это имя должно совпадать с именем сообщения в промежуточном событии «Обработан ответ руководителя».
-
Экземпляр процесса: формула
$ApplicationNumber
-
Данные сообщения
Название Системное имя Тип данных Значение Решение руководителя ManagerDecision Текст Атрибут: ID
-
Тестирование процесса «Согласование отпуска»
- Откройте шаблон записи «Согласование отпуска».
- На вкладке «Свойства» нажмите кнопку «Перейти к экземплярам».
- В списке экземпляров процесса, нажмите кнопку «Создать».
- Отобразится всплывающее окно со стартовой формой
- Заполните поля «Дата начала» и «Количество дней».
- Поля «Имя заявителя», «Адрес заявителя» и «Дата окончания» должны заполниться автоматически.
- Нажмите кнопку «Создать».
- Откройте почтовый ящик Руководителя.
-
Руководителю должно прийти письмо от Отдела кадров, показанное на следующей иллюстрации.
Письмо Руководителю с заявлением на отпуск и кнопками для согласования и отказа в отпуске -
Нажмите кнопку «Согласовать отпуск» в письме.
-
В почтовом клиенте будет создано новое письмо, показанное на следующей иллюстрации.
Письмо в Отдел кадров с положительном решением по заявлению на отпуск -
Не меняйте адресата и тему письма. Введите произвольный текст письма.
- Нажмите кнопку «Отправить».
- Откройте почтовый ящик Заявителя.
-
Заявителю должно прийти письмо от Отдела кадров, показанное на следующей иллюстрации.
Письмо Заявителю с положительным решением по Заявлению об отпуске -
Аналогичным образом протестируйте работу процесса в случае отказа в отпуске.
Эта статья была полезна 2 чел.