Функционал Lazy approval для задачи

Примечание

Доступно только в Enterprise версии.

Lazy approval – функционал, позволяющий принимать решения из электронной почты, не заходя в ECOS.

Для активации данного функционала необходимо иметь следующие версии микросервисов:

  • ecos-process: 2.17.0 +

  • ecos-integration: 2.18.0 +

Переменные конфигурации

Для обеспечения работы Lazy approval необходимо заполнить некоторые переменные в конфигурации ECOS:

../../_images/LA_02.png
  • lazy-approval-mail-for-reply - адрес электронной почты, который будет прописываться в почтовых уведомлениях пользователя для отправки ответных сообщений с результатом выполнения задачи. На данный почтовый адрес должна быть настроена конфигурация со считыванием ответных сообщений.

  • lazy-approval-default-comment - комментарий по умолчанию, который будет прописываться в ответных сообщениях у пользователей.

Настройка обработки ответных сообщений через Camel DSL

В системе обработка ответных сообщений от пользователей обеспечивается за счет чтения почты на основе конфигурации через Camel DSL:

../../_images/LA_06.png

Пример настройки Camel DSL:

---
id: lazy-approval-email-configuration
type: YAML
state: STARTED
content: |-
  - beans:
      - name: "lazyApprovalEndpoint"
        type: ru.citeck.ecos.integrations.domain.lazyapproval.api.LazyApprovalEndpoint
        properties:
          type: "email"
  - route:
      from:
        uri: "imaps://imap.yandex.com?username=testuser1@mail.ru&password=password&delete=false&unseen=true&delay=60000"
        steps:
          - to: "bean:lazyApprovalEndpoint"
../../_images/LA_07.png

Общий принцип работы:

В системе создается бин типа «email», что указывает, что сообщения необходимо обрабатывать, как сообщения, пришедшие из почты. (В дальнейшем количество типов может быть расширено).

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

Полученные сообщения из почты отправляются в систему, где бин (который описан выше) их обрабатывает и делает соответствующие действия в системе.

Параметры route uri:

  • username - почта, которая будет обеспечивать обработку сообщений;

  • password - пароль для подключения;

  • delete - удалять ли сообщения в почте после обработки;

  • unseen - отмечать ли обработанные сообщения как прочитанные (обязательно выставлять как true, иначе сообщения будут обрабатываться бесконечно);

  • delay - частота проверки почтового ящика (указывается в милисекундах)

Шаблоны уведомлений для Lazy approval

../../_images/LA_08.png

FTL шаблон с использованием вердиктов:

<p>
Тестовое тело нотификации!
</p>
<div style="width: 100%; font-family:'GE Inspira',sans-serif;">
    <fieldset>
        <p style="font-weight:bold">Вердикты:</p>
        <div>
            <p><a href="mailto:${mail_for_answer}?Subject=CA-${task_id}-Done-${task_token}&body=Вердикт: Согласовать %0D%0A %0D%0A Поле комментарий обязательно для заполнения %0D%0A %0D%0A $[comment] %0D%0A %0D%0A ${default_comment} %0D%0A %0D%0A [comment]" target="_top">Согласовать / Approve</a></p>
        </div>
    </fieldset>
</div>

Основные моменты:

В создание уведомления важная часть - ссылка на создание ответного письма, где указывается почтовый ящик, на которое будет отправлено сообщение с вердиктом и тема письма, которая должна быть написана по шаблону Prefix-TaskId-Outcome-TaskToken. (Outcome должен быть таким же как и в задаче).

Переменные, используемые в уведомлениях:

../../_images/LA_03.png
  • task_id - ключ задачи, по которому будет осуществляться поиск нужной задачи в системе;

  • task_token - ключ, прописанный к задаче, по которому будет осуществляться проверка возможности согласования;

  • default_comment - комментарий, который будет писаться по умолчанию. Задается через конфигурацию ECOS;

  • mail_for_answer - почта, на которую будет отсылаться ответное сообщение. Задается через конфигурацию ECOS. Должен быть указан email, который используется для обработки ответных сообщений.

Итоговый шаблон должен выглядеть примерно следующим образом:

../../_images/LA_04.png

../../_images/LA_05.png

Пример уведомления Lazy approval к задаче

Рассмотрим пример уведомления Lazy approval к задаче согласования со следующими вердиктами:

../../_images/sample_01.png

Тело шаблона:

<p>
Добрый день! Вам назначена задача "Согласование" по Тестовой заявке № ${registrationNumber}
</p>
<div style="width: 100%; font-family:'GE Inspira',sans-serif;">
    <fieldset>
        <p style="font-weight:bold">Вердикты:</p>
        <div>
            <p><a href="mailto:${mail_for_answer}?Subject=CA-${task_id}-Approve-${task_token}&body=Вердикт: Согласовать %0D%0A %0D%0A Поле комментарий обязательно для заполнения %0D%0A %0D%0A $[comment] %0D%0A %0D%0A ${default_comment} %0D%0A %0D%0A [comment]" target="_top">Согласовать / Approve</a></p>
        </div>
        <div>
            <p><a href="mailto:${mail_for_answer}?Subject=CA-${task_id}-Rework-${task_token}&body=Вердикт: На доработку %0D%0A %0D%0A Поле комментарий обязательно для заполнения %0D%0A %0D%0A $[comment] %0D%0A %0D%0A ${default_comment} %0D%0A %0D%0A [comment]" target="_top">На доработку / On rework</a></p>
        </div>
    </fieldset>
</div>

Помимо описанных выше задана дополнительная переменная registrationNumber- номер тестовой заявки, который берется из карточки.

../../_images/sample_02.png

Уведомление

Ответ с вердиктом

../../_images/sample_03.png ../../_images/sample_04.png

../../_images/sample_05.png

Сообщения с отчетами об обработке сообщений с Lazy approval

В системе предусмотрены ответные сообщения пользователю об успешно выполненных задачах через Lazy approval или о неудачных выполнениях.

Они делятся на 3 типа:

  • Базовые шаблоны об ошибке (задается в конфигурации);

  • Уведомление об успешном выполнении задачи (задается у задачи, либо через конфигурацию);

  • Уведомление о неудачном выполнении задачи (задается у задачи, либо через конфигурацию).

Базовое сообщение об ошибке отличаются от уведомлений о неудачном согласовании тем, что базовые отправляются всегда (если шаблон задан в конфигурации), а уведомление о неудачном согласовании можно отключить через свойство в задаче. Базовые сообщения об ошибке отправляются ответным письмом, на сообщение пользователя и обрабатывает такие ошибки, которые возникли раньше, чем система смогла добраться до самой задачи и посмотреть конфигурации задачи (Например: не удалось распарсить тему письма).

Уведомления об успешном или неудачном выполнении задачи можно задать у самой задачи. В таком случае в качестве ответного сообщения будет сгенерировано письмо на основе данных шаблонов. Если в задаче не указывать шаблоны, то шаблон будет взять базовый из конфигурации ECOS.

Установление шаблонов по умолчанию для ответных сообщений Lazy approval.

Через конфигурацию ECOS устанавливаются базовые версии шаблонов для отправки ответных сообщений пользователям о результатах обработки их сообщений, отправленных через Lazy Approval.

../../_images/LA_message_01.png

../../_images/LA_message_02.png

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

В случае, если шаблон нигде не указан (ни в конфигурации, ни в задаче), то сообщение отправлено не будет.

Дополнительные параметры для шаблонов

  • Базовый шаблон об ошибке:

Переменная

Описание

subject

Тема сообщения от пользователя с префиксом «Re: » (для формирования письма как ответного сообщения)

error_code

Код сообщения об ошибке. Возможные варианты:

INCORRECT_DATA, USER_NOT_FOUND, TASK_NOT_FOUND
  • Уведомление об успешном выполнении задачи:

Переменная

Описание

task_name

Название задачи

  • Уведомление о неудачном выполнении задачи:

Переменная

Описание

task_name

Название задачи

error_code

Код сообщения об ошибке. Возможные варианты:

TASK_ALREADY_COMPLETED, OUTCOME_NOT_FOUND, TOKEN_NOT_FOUND, EXCEPTION

error_message

Текст сообщения об ошибке