Перейти к содержанию

Статья для устаревшей неподдерживаемой версии ПО!

Текущая рекомендованная версия — Comindware Platform 6.0. См. документацию к версии 6.0.

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

Введение

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

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

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

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

Требуется настроить процесс согласования Руководителем заявлений на отпуск так, чтобы Руководитель мог согласовать отпуск или отказать в отпуске с помощью кнопки в эл. письме с заявлением, не покидая почтового ящика и не выполняя вход в Comindware Business Application 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.

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

  • .* — ноль или более любых символов. Точка . обозначает любой одиночный символ, а звездочка * обозначает, что таких символов может быть ноль или больше. Этот фрагмент позволяет игнорировать любые символы, которые могут предшествовать искомой строке.
  • Отпуск согласован\. Заявление № — фиксированная часть искомой строки. Регулярное выражение ищет именно этот текст в указанной последовательности с точным совпадением прописных и строчных букв.
    • \. — экранированная точка. Точка в регулярном выражении означает любой одиночный символ, поэтому для поиска самой точки её необходимо экранировать с помощью косой черты \.
  • \[ — экранированная квадратная скобка. Квадратные скобки в регулярных выражениях используются для обозначен