Отправка, получение и обработка эл. почты в процессе. Пример: настройка подключений, путей передачи данных, диаграммы процесса и сценария


Введение

Comindware Platform может отправлять и принимать электронные письма, а также передавать сообщения между процессами.

Здесь представлены инструкции по настройке обмена данными посредством электронных писем и межпроцессного взаимодействия на примере процесса согласования отпуска:

  • настройка подключений и путей передачи данных;
  • настройка процессов согласования отпуска и обработки эл. писем;
  • настройка событий отправки и получения сообщений на диаграммах процессов.

Прикладная задача

Требуется настроить процесс согласования Руководителем заявлений на отпуск так, чтобы Руководитель мог согласовать отпуск или отказать в отпуске с помощью кнопки в эл. письме с заявлением, не покидая почтового ящика и не выполняя вход в Comindware Platform.

Настроим процесс «Согласование отпуска» из следующих шагов:

  1. Заявитель подаёт заявление на отпуск.
  2. Процесс «Согласование отпуска» отправляет Руководителю эл. письмо от имени Отдела кадров со следующим содержимым:

    • Номер заявления
    • Ф. И. О. заявителя
    • Даты начала и окончания отпуска
    • Количество дней отпуска
    • Кнопки «Согласовать отпуск» и «Отказать в отпуске»
    • Инструкции по подаче решения по заявлению
  3. Руководитель рассматривает заявление и нажимает в письме кнопку «Согласовать отпуск» или «Отказать в отпуске».

  4. При нажатии Руководителем кнопки автоматически создаётся новое письмо со следующим содержимым:

    • Получатель — адрес почтового ящика, письма в котором обрабатывает процесс «Обработка ответа руководителя»;
    • Тема — решение по заявлению и номер заявления.

    Примечание

    Руководитель не должен изменять адрес получателя и тему автоматически созданного письма.

    В тексте письма Руководитель может указать в произвольной форме причину решения по заявлению.

  5. Руководитель отправляет заполненное письмо с решением по заявлению.

  6. Процесс «Обработка ответа руководителя» получает письмо от Руководителя, извлекает из него данные и передаёт решение Руководителя в процесс «Согласование отпуска».
  7. В зависимости от решения Руководителя процесс «Согласование отпуска» отправляет Заявителю уведомление «Отпуск согласован» или «В отпуске отказано» от имени Отдела кадров.

Исходные данные

В приложении «Отпуска» создайте перечисленные ниже шаблоны.

Шаблон процесса «Согласование отпуска»

Шаблон процесса «Согласование отпуска» свяжите с шаблоном записи «Заявления на отпуск».

См. также «Настройка элементов диаграммы процесса «Согласование отпуска».

Диаграмма процесса «Согласование отпуска»

Диаграмма процесса «Согласование отпуска»

Шаблон процесса «Обработка ответа руководителя»

Шаблон процесса «Обработка ответа руководителя» свяжите с шаблоном записи «Решения руководителя».

См. также «Настройка элементов диаграммы процесса «Обработка ответа руководителя».

Диаграмма процесса «Обработка ответа руководителя»

Диаграмма процесса «Обработка ответа руководителя»

Атрибуты шаблона записи «Заявления на отпуск»

Название

Системное имя

Свойства

№ заявления

ApplicationNumber

Тип данных: текст

Имя заявителя

ApplicantName

Тип данных: текст

Вычислять автоматически: флажок установлен

Вычисляемое значение: формула

$_creator->fullName 
  • $ — ссылка на текущую запись в шаблоне «Заявления на отпуск».
  • _creator — системный атрибут, содержащий ID аккаунта, который создал запись.
  • fullName — системный атрибут, содержащий Ф. И. О. аккаунта.

Адрес заявителя

ApplicantEmail

Тип данных: текст

Вычислять автоматически: флажок установлен

Вычисляемое значение: формула

$_creator->mbox 
  • $ — ссылка на текущую запись в шаблоне «Заявления на отпуск».
  • _creator — системный атрибут, содержащий ID аккаунта, который создал запись.
  • mbox — системный атрибут, содержащий адрес эл. почты аккаунта.

Дата начала

StartDate

Тип данных: дата и время

Количество дней

Duration

Тип данных: число

Дата окончания

EndDate

Тип данных: дата и время

Вычислять автоматически: флажок установлен

Вычисляемое значение: формула

ADDDAYS($StartDate, $Duration) 
  • ADDDAYS() — эта функция принимает дату и число, прибавляет к дате указанное число дней и возвращает новую дату.
  • $ — ссылка на текущую запись в шаблоне «Заявления на отпуск».
  • StartDate, Duration — атрибуты «Дата начала» и «Количество дней».

Решение руководителя

ManagerDecision

Тип данных: запись

Связанный шаблон: Решения руководителя

Атрибуты шаблона записи «Решения руководителя»

Название

Системное имя

Свойства

Тема письма с ответом

ResponseEmailSubject

Тип данных: текст

Комментарий руководителя

ManagerComment

Тип данных: текст

№ заявления

ApplicationNumber

Тип данных: текст

Вычислять автоматически: флажок установлен

Вычисляемое значение: формула

SUBSTRING( 
$ResponseEmailSubject,
INDEXOF($ResponseEmailSubject,"[")+1,
INDEXOF($ResponseEmailSubject,"]")-
INDEXOF($ResponseEmailSubject,"[")-1
)
  • SUBSTRING() — эта функция принимает строку, позиции начала и конца подстроки и возвращает фрагмент исходной строки между указанными позициями.
  • INDEXOF() — эта функция принимает две строки, ищет в первой строке вторую строку и возвращает число — позицию искомой строки в исходной строке. В противном случае функция возвращает null.
  • $ — ссылка на текущую запись в шаблоне «Решения руководителя».
  • ResponseEmailSubject — атрибут «Тема письма с ответом».
  • Данная формула возвращает true, если тема письма содержит строку «Отпуск согласован. Заявление № [X]», где X — номер заявления, состоящий из произвольного количества цифр. В противном случае формула возвращает false.

Отпуск согласован

LeaveApproved

Тип данных: логический

Вычислять автоматически: флажок установлен

Вычисляемое значение: формула:

IF( 
MATCHES($ResponseEmailSubject,
".*Отпуск согласован\. Заявление № \[[0-9]+\].*"),
true,
false
)
  • IF() — эта функция принимает логическое выражение и два аргумента любого типа. Функция возвращает второй аргумент, если выражение возвращает true. В противном случае функция возвращает третий аргумент.
  • MATCHES() — эта функция принимает строку с темой письма в атрибуте $ResponseEmailSubject и регулярное выражение .*Отпуск согласован\. Заявление № \[[0-9]+\].*, ищет в строке регулярное выражение и возвращает true, если выражение найдено. В противном случае функция возвращает false.
  • $ — ссылка на текущую запись в шаблоне «Решения руководителя».
  • ResponseEmailSubject — атрибут «Тема письма с ответом».
  • Данная формула возвращает true, если тема письма содержит строку «Отпуск согласован. Заявление № [X]», где X — номер заявления, состоящий из произвольного количества цифр. В противном случае формула возвращает false.

Синтаксис регулярного выражения

  • .* — ноль или более любых символов. Точка . обозначает любой одиночный символ, а звездочка * обозначает, что таких символов может быть ноль или больше. Этот фрагмент позволяет игнорировать любые символы, которые могут предшествовать искомой строке.
  • Отпуск согласован\. Заявление № — фиксированная часть искомой строки. Регулярное выражение ищет именно этот текст в указанной последовательности с точным совпадением прописных и строчных букв.
    • \. — экранированная точка. Точка в регулярном выражении означает любой одиночный символ, поэтому для поиска самой точки её необходимо экранировать с помощью косой черты \.
  • \[ — экранированная квадратная скобка. Квадратные скобки в регулярных выражениях используются для обозначения диапазона символов, поэтому для поиска самой скобки необходимо её экранировать с помощью обратной косой черты \. Таким образом, \[ означает «открывающая квадратная скобка».
  • [0-9]+ — набор из одной или более цифр. Диапазон [0-9] обозначает любую цифру от 0 до 9, а плюс + обозначает, что таких цифр может быть одна или более.
  • \] — экранированная закрывающая квадратная скобка, аналогичная открывающей.
  • .* — ноль или более любых символов. Этот фрагмент позволяет игнорировать любые символы, которые могут следовать за искомой строкой.
  • Ознакомиться с принципами составления регулярных выражений и поэкспериментировать с ними можно на следующем сайте: https://regex101.com/

Пример

  • Дано регулярное выражение:
.*Отпуск согласован\. Заявление  \[[0-9]+\].* 
  • "Здравствуйте! Отпуск согласован. Заявление № [12345] одобрено."удовлетворяет регулярному выражению.
  • "Ваш отпуск согласован. Заявление № [12345]."не удовлетворяет регулярному выражению, так как слово «отпуск» должно начинаться с прописной буквы.

Настройка подключений

Отправка эл. почты из процесса

Настроим подключение к SMTP-серверу для отправки эл. писем от имени Отдела кадров.

  1. Откройте страницу «Администрирование» – «Подключения».
  2. Выберите пункт «Создать» – «Подключения к электронной почте» – «Отправка эл. почты из процесса».
  3. Настройте подключение к SMTP-серверу:

    • Название: Письма от отдела кадров;
    • Адрес почтового сервера, Порт, Защита данных, Имя пользователя, Пароль: укажите параметры для доступа к SMTP-серверу;
    • Адрес отправителя: укажите адрес эл. почты отдела кадров;
    • Имя отправителя: Отдел кадров.

Получение эл. почты в процессе

Настроим подключение к IMAP-серверу для приёма писем с решением по заявлениям от Руководителя.

Логика чтения писем на почтовом сервере

При подключении к почтовому серверу для получения эл. почты Comindware Platform выступает как почтовый клиент, который регулярно проверяет наличие новых писем.

При каждой проверке почтового ящика Comindware Platform:

  • обрабатывает новые письма;
  • отмечает новые письма как прочтённые.

Поэтому для автоматической обработки входящих писем рекомендуется использовать отдельный ящик эл. почты.

Если использовать ящик, на который поступают прочие письма, они тоже будут отмечены как прочитанные.

  1. Откройте страницу «Администрирование» – «Подключения».
  2. Выберите пункт «Создать» – «Подключения к электронной почте» – «Получение эл. почты в процессе».
  3. Настройте подключение к IMAP-серверу:

    • Название: Ответы от руководителя.
    • Протокол, Адрес почтового сервера, Порт, Имя пользователя, Пароль, Защита данных: укажите параметры для доступа к IMAP-серверу.

      Примечание

      Для обработки писем с решениями Руководителя рекомендуется использовать отдельный ящик эл. почты, например: leavedecisions@<hostname>.

    • Интервал опроса: укажите интервал, с которым Comindware Platform будет проверять наличие новых писем.

Настройка путей передачи данных

Отправка уведомления Руководителю

Настроим путь передачи данных для отправки заявлений на рассмотрение Руководителю.

Бизнес-логика

Отправителем писем с заявлениями на отпуск будет указан Отдел кадров.

В письме Руководителю мы будем передавать значения следующих атрибутов заявления на отпуск: Номер заявления, Имя заявителя, Дата начала, Количество дней, Дата окончания.

В качестве Номера заявления мы будем использовать ID экземпляра процесса «Согласование отпуска».

Подстановка значений атрибутов сообщения в эл. письмо

Путь передачи данных для отправки эл. почты из процесса позволяет передавать данные из записей в эл. письмо.

  1. На вкладке «Атрибуты сообщения» пути передачи данных задайте набор атрибутов, значения которых требуется передать в путь передачи данных и подставить в сообщение.
  2. На вкладке «Свойства сообщения» подставьте значения атрибутов сообщения в любое поле, указав их системные имена в фигурных скобках {}.

    • Например, подставьте в тему письма номер заявления и имя заявителя:
      • Тема: Заявление на отпуск № {ApplicationNumber} от: {ApplicantName}
  3. Задайте значения атрибутов сообщения с помощью вкладки «Данные сообщения» в свойствах события отправки сообщения, использующего этот путь передачи данных.

  1. В приложении «Отпуска» откройте страницу «Пути передачи данных».
  2. Выберите пункт «Создать» – «Подключения к электронной почте» – «Отправка эл. почты из процесса».
  3. Настройте путь передачи данных:

    • Основные свойства
      • Название: Уведомление для руководителя
      • Подключение: Письма от отдела кадров
      • Имя сообщения: MessageToApprover
      • Приложение: Отпуска
    • Атрибуты сообщения

      Название Системное имя Тип данных
      Номер заявления ApplicationNumber Текст
      Имя заявителя ApplicantName Текст
      Дата начала StartDate Дата и время
      Количество дней Duration Число
      Дата окончания EndDate Дата и время
    • Свойства сообщения

      • Адрес отправителя: адрес эл. почты Отдела кадров
      • Имя отправителя: Отдел кадров
      • Кому: аккаунт или адрес эл. почты Руководителя
      • Тема: Заявление на отпуск {ApplicationNumber} от: {ApplicantName}
      • Формат сообщения: HTML

      • Сообщение

        1. Перейдите в поле «Сообщение».
        2. В панели инструментов нажмите кнопку «Источник» .
        3. Введите следующий HTML-код:

          <p>Уважаемый коллега!</p> 
          <p>Поступило заявление на отпуск № {ApplicationNumber}.</p>
          <p>Заявитель: {ApplicantName}</p>
          <p>Количество дней: {Duration}</p>
          <p>Даты отпуска: {StartDate}&ndash;{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>
        4. Снова нажмите кнопку «Источник» .

        5. Должно отобразиться показанное на следующей иллюстрации письмо:

        Тема и текст письма для Руководителя с заполнителями для подстановки значений атрибутов
        Тема и текст письма для Руководителя с заполнителями для подстановки значений атрибутов

Получение ответа Руководителя

Настроим путь передачи данных для приёма писем от Руководителя.

Бизнес-логика

Из ответного письма руководителя путь передачи данных будет извлекать тему и текст письма.

Затем процесс «Обработка ответов руководителя» будет извлекать из письма данные в шаблон «Решения руководителя»:

  • номер заявления из темы письма — в атрибут «№ заявления»
  • решение по заявлению из темы письма — в атрибут «Отпуск согласован»;
  • текст письма — в атрибут «Комментарий руководителя».

Извлечение значений атрибутов из эл. письма

Путь передачи данных для получения эл. почты из процесса позволяет передавать данные из эл. письма в записи.

  • На вкладке «Атрибуты сообщения» пути передачи данных задайте набор атрибутов, значения которых требуется извлечь из полученного письма. Для этого создайте атрибуты и сопоставьте их с полями эл. письма.

    • Например, поместите текст эл. письма в атрибут EmailBody:

      • Название: Текст письма
      • Системное имя: EmailBody
      • Тип данных: текст
      • Поместить тело атрибута в этот атрибут: Сообщение
  • Передайте значения атрибутов сообщения в атрибуты записи с помощью вкладки «Данные сообщения» в свойствах события получения сообщения, использующего этот путь передачи данных.

  1. В приложении «Отпуска» откройте страницу «Пути передачи данных».
  2. Выберите пункт «Создать» – «Подключения к электронной почте» – «Получение эл. почты в процессе».
  3. Настройте путь передачи данных:

    • Основные свойства

      • Название: Ответ руководителя
      • Подключение: Ответы от руководителя
      • Имя сообщения: ReceiveManagerEmail (это имя сообщения в данном примере не используется, поэтому можно ввести произвольное уникальное имя)
      • Приложение: Управление командировками
      • Процесс: Обработка ответа
      • Назначение: Новый экземпляр процесса
    • Атрибуты сообщения

      Название Системное имя Тип данных Поместить тело атрибута в этот атрибут
      Тема письма EmailSubject Текст Тема
      Текст письма EmailBody Текст Сообщение

Отправка уведомления «Отпуск согласован»

Настроим путь передачи данных для отправки уведомлений о согласовании заявления от имени Отдела кадров.

  1. В приложении «Отпуска» откройте страницу «Пути передачи данных».
  2. Выберите пункт «Создать» – «Подключения к электронной почте» – «Отправка эл. почты из процесса».
  3. Настройте путь передачи данных:

    • Основные свойства

      • Название: Уведомление «Отпуск согласован»
      • Подключение: Письма от отдела кадров
      • Имя сообщения: 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}&ndash;{EndDate}</p>
          <p>Комментарий руководителя:</p>
          <p>{ManagerComment}</p>
        • Снова нажмите кнопку «Источник» .

        • Должно отобразиться показанное на следующей иллюстрации письмо:

      Тема и текст письма заявителю с уведомлением «Отпуск согласован» с заполнителями для подстановки значений атрибутов
      Тема и текст письма заявителю с уведомлением «Отпуск согласован» с заполнителями для подстановки значений атрибутов

Отправка уведомления «В отпуске отказано»

Настроим путь передачи данных для отправки уведомлений об отклонении заявления от имени Отдела кадров.

  1. В приложении «Отпуска» откройте страницу «Пути передачи данных».
  2. Выберите пункт «Создать» – «Подключения к электронной почте» – «Отправка эл. почты из процесса».
  3. Настройте путь передачи данных:

    • Основные свойства

      • Название: Уведомление «В отпуске отказано»
      • Подключение: Письма от отдела кадров
      • Имя сообщения: 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}&ndash;{EndDate}</p>
          <p>Комментарий руководителя:</p>
          <p>{ManagerComment}</p>
        • Снова нажмите кнопку «Источник» .

        • Должно отобразиться показанное на следующей иллюстрации письмо:

        Тема и текст письма заявителю с уведомлением «В отпуске отказано» с заполнителями для подстановки значений атрибутов
        Тема и текст письма заявителю с уведомлением «В отпуске отказано» с заполнителями для подстановки значений атрибутов

Настройка элементов диаграммы процесса «Согласование отпуска»

Бизнес-логика

  1. Процесс «Согласование отпуска» запускается вручную путём создания его экземпляра.
  2. При запуске процесса создаётся запись в шаблоне «Оформлено заявление на отпуск», связанная с экземпляром процесса.
  3. Пользователь, запустивший процесс, заполняет стартовую форму события «Оформлено заявление на отпуск», указав дату начала и количество дней отпуска.
  4. Событие «Отправка уведомления для руководителя» отправляет письмо с заявлением Руководителю.
  5. Событие «Обработан ответ руководителя» ожидает решения Руководителя из процесса «Обработка ответа руководителя».
  6. Руководитель нажимает в полученном письме кнопку «Согласовать отпуск» или «Отказать в отпуске» и отправляет автоматически сформированное письмо с решением по заявлению.
  7. Процесс «Обработка ответа руководителя» получает письмо, извлекает из него данные и передаёт решение по заявлению в событие «Обработан ответ руководителя» процесса «Согласование отпуска».
  8. В зависимости от решения Руководителя в процессе «Согласование отпуска» срабатывает конечное событие «Отпуск согласован» или «В отпуске отказано».
  9. Сработавшее конечное событие отправляет Заявителю письмо с решением по заявлению.
  1. В приложении «Отпуска» откройте шаблон процесса «Согласование отпуска».
  2. Откройте вкладку «Диаграмма».
  3. Составьте диаграмму процесса, показанную на иллюстрации.
  4. Настройте элементы процесса, как указано ниже.

Диаграмма процесса «Согласование отпуска»

Диаграмма процесса «Согласование отпуска»

Начальное событие «Оформлено заявление на отпуск»

  1. Выберите начальное событие сообщения «Оформлено заявление на отпуск».
  2. В меню элемента выберите пункт «Стартовая форма» .
  3. Настройте стартовую форму:

    • В свойствах созданной по умолчанию Новой области введите отображаемое название «Оформлено заявление на отпуск».
    • Перетащите на область «Оформлено заявление на отпуск» атрибуты:

      • Имя заявителя
      • Адрес заявителя
      • Дата начала
      • Количество дней
      • Дата окончания
    • Сохраните форму.

  4. Вернитесь к диаграмме процесса.

  5. Выберите начальное событие «Оформлено заявление на отпуск».
  6. В меню элемента выберите пункт «Сценарий на выходе» .
  7. Настройте сценарий:

    • Внутрь имеющегося действия «Сменить контекст» добавьте действие «Изменить значения атрибутов».
    • Настройте действие «Изменить значения атрибутов»:

Атрибут

Операция со значениями

Значение

Номер заявления

Заменить

Формула:

FORMAT("{0}", LIST($$ProcessObject)) 
  • FORMAT() — эта функция принимает строку заполнителями вида {0}{N} и список значений. Функция подставляет значения из списка в соответствующие заполнители и возвращает результирующую строку.
  • LIST() — эта функция принимает перечень значений и возвращает список, состоящий из этих значений.
  • $$ProcessObject — системная переменная, хранящая ID экземпляра процесса.
  • Данная формула преобразует ID экземпляра процесса в строку. Это позволяет присвоить текстовому атрибуту «Номер заявления» значение ID экземпляра. Это текстовое значение далее используется для привязки ответов Руководителя к заявлениям на отпуск.

Системная переменная ProcessObject

В переменной ProcessObject хранится ID экземпляра процесса в сценариях по событиям «Запуск процесса», «Вход токена», «Выход токена».

См. «Использование переменных в сценарии».

Сценарий на выходе из начального события «Оформлено заявление на отпуск»

Сценарий на выходе из начального события «Оформлено заявление на отпуск»

Промежуточное событие «Отправка уведомления для руководителя»

  1. Выберите промежуточное событие отправки сообщения «Отправка уведомления для руководителя».
  2. В меню элемента выберите пункт «Свойства» .
  3. Настройте свойства события:

    • Основные

      • Название: Отпуск согласован
    • Дополнительные

    • Данные сообщения

      Название Системное имя Тип данных Значение
      № заявления ApplicationNumber Текст Атрибут: Номер заявления
      Имя заявителя ApplicantName Текст Атрибут: Имя заявителя
      Дата начала StartDate Дата и время Атрибут: Дата начала
      Количество дней Duration Число Атрибут: Количество дней
      Дата окончания EndDate Дата и время Атрибут: Дата окончания

Промежуточное событие «Обработан ответ руководителя»

Имя сообщения для процессной коммуникации

Для обмена данными между экземплярами процессов (и внутри экземпляров) используются события отправки и получения сообщений (события-инициаторы и события-обработчики).

Каждому такому событию присваивается имя сообщения.

Когда событие-инициатор отправляет сообщение, это сообщение принимают все события-обработчики с таким же именем сообщения, как у события-инициатора.

  1. Выберите промежуточное событие отправки сообщения «Обработан ответ руководителя».
  2. В меню элемента выберите пункт «Свойства» .
  3. Настройте свойства события:

    • Основные

      • Название: Ответ руководителя
    • Дополнительные

    • Данные сообщения

      Название Системное имя Тип данных Значение
      Решение руководителя ManagerDecision Текст Атрибут: Решение руководителя

Развилка «Решение руководителя»

Бизнес-логика

Развилка «Решение руководителя» определяет, какое уведомление отправить Заявителю:

  • если атрибут «Отпуск согласован» в записи шаблона «Решения руководителя», связанной с заявлением на отпуск, имеет значение true, срабатывает конечное событие «Отпуск согласован»;
  • в противном случае срабатывает конечное событие «В отпуске отказано»;
  • сработавшее конечное событие отправляет Заявителю письмо с решением по заявлению на отпуск.
  1. Выберите развилку «или/или» «Решение руководителя».
  2. В меню элемента выберите пункт «Свойства» .
  3. Настройте свойства события:

    • Основные

      • Название: Решение руководителя
    • Дополнительные

Поток «иначе»

Конечная точка

Условие

Отпуск согласован

Формула:

$ManagerDecision->LeaveApproved 

Флажок установлен

В отпуске отказано

Конечное событие «Отпуск согласован»

  1. Выберите конечное событие-отправки сообщения «Отпуск согласован».
  2. В меню элемента выберите пункт «Свойства» ‌.
  3. Настройте свойства события:

    • Основные

      • Название: Отпуск согласован
    • Дополнительные

    • Данные сообщения

      Название Системное имя Тип данных Значение
      Решение руководителя ManagerDecision Текст Атрибут: ID
      Имя заявителя ApplicantName Текст Атрибут: Имя заявителя
      Дата начала StartDate Дата и время Атрибут: Дата начала
      Количество дней Duration Число Атрибут: Количество дней
      Дата окончания> EndDate Дата и время Атрибут: Дата окончания
      Комментарий руководителя ManagerComment Текст Атрибут: Решение руководителя→Комментарий руководителя

      Примечание

      Из значений этих атрибутов формируется эл. письмо Заявителю посредством пути передачи данных «Уведомление «Отпуск согласован».

Конечное событие «В отпуске отказано»

  1. Выберите конечное событие-отправки сообщения «В отпуске отказано».
  2. В меню элемента выберите пункт «Свойства» .
  3. Настройте свойства события:

    • Основные

      • Название: В отпуске отказано
    • Дополнительные

    • Данные сообщения

      Название Системное имя Тип данных Значение
      № заявления ApplicationNumber Текст Атрибут: Номер заявления
      Имя заявителя ApplicantName Текст Атрибут: Имя заявителя
      Дата начала StartDate Дата и время Атрибут: Дата начала
      Количество дней Duration Число Атрибут: Количество дней
      Дата окончания EndDate Дата и время Атрибут: Дата окончания
      Комментарий руководителя ManagerComment Текст Атрибут: Решение руководителя→Комментарий руководителя

      Примечание

      Из значений этих атрибутов формируется эл. письмо Заявителю посредством пути передачи данных «Уведомление «В отпуске отказано».

Настройка элементов диаграммы процесса «Обработка ответа руководителя»

  1. В приложении «Отпуска» откройте шаблон процесса «Обработка ответа руководителя».
  2. Откройте вкладку «Диаграмма».
  3. Составьте диаграмму процесса, показанную на иллюстрации.
  4. Настройте элементы процесса, как указано ниже.

Диаграмма процесса «Обработка ответа руководителя»

Диаграмма процесса «Обработка ответа руководителя»

Начальное событие «Поступил ответ руководителя»

Бизнес-логика

  1. Процесс «Обработка ответов руководителя» запускается при поступлении нового письма в почтовый ящик, указанный в подключении «Получение эл. почты в процессе».
  2. При запуске процесса создаётся запись в шаблоне «Решения руководителя», связанная с экземпляром процесса.
  3. Процесс «Обработка ответа руководителя» обрабатывает поступившие письма и передаёт данные в процесс «Согласование отпуска».
  4. В теме письма от Руководителя содержатся номер заявления на отпуск и решение по нему в следующем формате:

    • Отпуск согласован. Заявление № [X]

      или

    • В отпуске отказано. Заявление № [X]

    Здесь X — номер заявления, состоящий из произвольного количества цифр.

  5. В теле письма может содержаться произвольное сообщение от Руководителя.

  6. В свойствах начального события-получения сообщения «Поступил ответ руководителя» мы настраиваем передачу данных из полученного письма от Руководителя.

  7. По значению атрибута «Тема письма с ответом» автоматически вычисляются значения атрибутов записи в шаблоне «Решения руководителя»:

    • значение атрибута «№ заявления» совпадает с ID экземпляра процесса «Согласование отпуска», связанного с заявлением на отпуск;
    • атрибут «Отпуск согласован» принимает значение true, если отпуск согласован, и значение false, если в отпуске отказано.
  8. После обработки письма конечное событие передаёт Решение руководителя в процесс «Согласование отпуска».

  1. Выберите начальное событие-отправки сообщения «Поступил ответ руководителя».
  2. В меню элемента выберите пункт «Свойства» .
  3. Настройте свойства события:

    • Основные

      • Название: Получение и разбор ответа от руководителя
    • Дополнительные

    • Данные сообщения

      Название Системное имя Тип данных Значение
      Тема письма EmailSubject Текст Атрибут: Тема письма с ответом
      Текст письма EmailBody Текст Атрибут: Комментарий руководителя

Конечное событие «Передача решения в процесс «Согласование отпуска»

Бизнес-логика

  1. Конечное событие процесса «Обработка ответов руководителя» передаёт решение Руководителя в экземпляр процесса «Согласование отпуска», связанный с заявлением на отпуск.
  2. В свойствах конечного события-отправки сообщения мы настраиваем передачу ID записи из шаблона «Решения руководителя» в атрибут «Решение руководителя» записи в шаблоне «Заявления на отпуск».

  3. Значение этого атрибута передаётся в промежуточное событие «Обработан ответ руководителя» процесса «Согласование отпуска».

  1. Выберите конечное событие-отправки сообщения «Передача решения в процесс «Согласование отпуска».
  2. В меню элемента выберите пункт «Свойства» .
  3. Настройте свойства события:

    • Основные

      • Название: Передача решения в процесс «Согласование отпуска»
    • Дополнительные

    • Данные сообщения

      Название Системное имя Тип данных Значение
      Решение руководителя ManagerDecision Текст Атрибут: ID

Тестирование процесса «Согласование отпуска»

  1. Откройте шаблон записи «Согласование отпуска».
  2. На вкладке «Свойства» нажмите кнопку «Перейти к экземплярам».
  3. В списке экземпляров процесса, нажмите кнопку «Создать».
  4. Отобразится всплывающее окно со стартовой формой
  5. Заполните поля «Дата начала» и «Количество дней».
  6. Поля «Имя заявителя», «Адрес заявителя» и «Дата окончания» должны заполниться автоматически.
  7. Нажмите кнопку «Создать».
  8. Откройте почтовый ящик Руководителя.
  9. Руководителю должно прийти письмо от Отдела кадров, показанное на следующей иллюстрации.

    Письмо Руководителю с заявлением на отпуск и кнопками для согласования и отказа в отпуске
    Письмо Руководителю с заявлением на отпуск и кнопками для согласования и отказа в отпуске

  10. Нажмите кнопку «Согласовать отпуск» в письме.

  11. В почтовом клиенте будет создано новое письмо, показанное на следующей иллюстрации.

    Письмо в Отдел кадров с положительном решением по заявлению на отпуск
    Письмо в Отдел кадров с положительном решением по заявлению на отпуск

  12. Не меняйте адресата и тему письма. Введите произвольный текст письма.

  13. Нажмите кнопку «Отправить».
  14. Откройте почтовый ящик Заявителя.
  15. Заявителю должно прийти письмо от Отдела кадров, показанное на следующей иллюстрации.

    Письмо Заявителю с положительным решением по Заявлению об отпуске
    Письмо Заявителю с положительным решением по Заявлению об отпуске

  16. Аналогичным образом протестируйте работу процесса в случае отказа в отпуске.

К началу


Номер Статьи: 4691
Размещено: Mon, Nov 20, 2023
Последнее обновление: Thu, Apr 10, 2025

Online URL: https://kb.comindware.ru/article/otpravka-poluchenie-i-obrabotka-el-pochty-v-processe-primer-nastrojka-podklyuchenij-putej-peredachi-dannyh-diagrammy-processa-i-scenariya-4691.html