Платформа 3V/Согласование/Настройка уведомлений: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показана 1 промежуточная версия этого же участника)
Строка 59: Строка 59:
 
             "stateId": 2,
 
             "stateId": 2,
 
             "template": {
 
             "template": {
               "title": "Тест уведомления для состояния 2 вариант 1",
+
               "title": "Default title",
               "body": "Тест"
+
               "body": "Default body",
 +
              "localizedTitle": {
 +
                "defaultValue": "Default title",
 +
                "items": [
 +
                {
 +
                  "language": "ru",
 +
                  "value": "Ru title"
 +
                },
 +
                {
 +
                  "language": "en",
 +
                  "value": "En title"
 +
                }
 +
              ]
 +
            },
 +
            "localizedBody": {
 +
              "defaultValue": "Default body",
 +
              "items": [
 +
                {
 +
                  "language": "ru",
 +
                  "value": "Ru body"
 +
                },
 +
                {
 +
                  "language": "en",
 +
                  "value": "En body"
 +
                }
 +
              ]
 
             },
 
             },
 +
            "localizedShortMessage": {
 +
              "defaultValue": "Default short message",
 +
              "items": [
 +
                {
 +
                  "language": "ru",
 +
                  "value": "Ru short message"
 +
                },
 +
              {
 +
                "language": "en",
 +
                "value": "En short message"
 +
              }
 +
            ]
 +
          },
 +
          "messageTypes": [
 +
            "Email",
 +
            "Sms"
 +
          ]
 +
        },
 
             "recipients": {
 
             "recipients": {
 
               "subjects": [
 
               "subjects": [
Строка 95: Строка 138:
 
== Настройки уведомлений ==
 
== Настройки уведомлений ==
 
'''Каждый тип уведомлений содержит один и тот же перечень настроек''':<br>
 
'''Каждый тип уведомлений содержит один и тот же перечень настроек''':<br>
'''title''' - заголовок уведомления.<br>
+
'''title''' - дефолтный заголовок уведомления.<br>
'''body''' - текст уведомления. <br>
+
'''body''' - дефолтный текст уведомления. <br>
 +
'''localizedTitle''' - локализованный заголовок уведомления. <br>
 +
'''localizedBody''' - локализованный текст уведомления. <br>
 +
'''localizedShortMessage''' - локализованный текст короткого уведомления, текст смс-уведомлений. <br>
 +
'''messageTypes''' - варианты уведомлений, которые будут отправляться. Можно задать значения: "Email", "Sms". <br>
 
О подстановках в заголовке и тексте уведомления можно узнать в описании ниже.<br>
 
О подстановках в заголовке и тексте уведомления можно узнать в описании ниже.<br>
 
'''recipients''' – настройки получателей уведомлений. Можно задать несколько получателей для уведомления. <br>
 
'''recipients''' – настройки получателей уведомлений. Можно задать несколько получателей для уведомления. <br>
Строка 219: Строка 266:
 
|-
 
|-
 
| %param<ID>.<ATTRIBUTE_ID>% || Заменяется на значение атрибута с идентификатором ATTRIBUTE_ID тех элементов справочника, чьи идентификаторы указаны в качестве значения параметра с идентификатором ID. Например, если у параметра с идентификатором 3 задано значение [1,2], то %param3.2% заменится на наименование элементов с идентификаторами 1 и 2 (склеится через ", "). Для единичных тоже, разумеется, работает. Также можно указывать транзитивные атрибуты, то есть вида %PARAM2.21.22.23.24.2%. При этом в метаданных описании параметра должен быть указан дискриминатор DictionaryParameterModel и идентификатор справочника, который связан с этим параметром. Если же дискриминатор не указан - или указан не DictionaryParameterModel - такая подстановка выродится в предыдущий пункт, т.е. просто значение параметра. Если параметр-справочник, но в подстановке указаны строки вместо чисел - заменится на пустоту.
 
| %param<ID>.<ATTRIBUTE_ID>% || Заменяется на значение атрибута с идентификатором ATTRIBUTE_ID тех элементов справочника, чьи идентификаторы указаны в качестве значения параметра с идентификатором ID. Например, если у параметра с идентификатором 3 задано значение [1,2], то %param3.2% заменится на наименование элементов с идентификаторами 1 и 2 (склеится через ", "). Для единичных тоже, разумеется, работает. Также можно указывать транзитивные атрибуты, то есть вида %PARAM2.21.22.23.24.2%. При этом в метаданных описании параметра должен быть указан дискриминатор DictionaryParameterModel и идентификатор справочника, который связан с этим параметром. Если же дискриминатор не указан - или указан не DictionaryParameterModel - такая подстановка выродится в предыдущий пункт, т.е. просто значение параметра. Если параметр-справочник, но в подстановке указаны строки вместо чисел - заменится на пустоту.
 +
|-
 +
| %recipient_displayname% || Пользователь-получатель уведомления, значение атрибута displayname из Keycloak
 +
|-
 +
| %recipient_firstname% || Имя пользователя-получателя уведомления, значение атрибута firstname из Keycloak
 +
|-
 +
| %recipient_lastname% || Фамилия пользователя-получателя уведомления, значение атрибута lastname из Keycloak
 +
|-
 +
| %changed_date% || Дата перехода в состояние, в которое совершен переход и по которому высылается уведомление
 +
|-
 +
| %regulation_date% || Регламентная дата состояния, в которое совершен переход и по которому высылается уведомление
 +
 
|}
 
|}
  

Текущая версия на 10:36, 18 апреля 2022

В рамках процесса согласования есть возможность подключить рассылку уведомлений по e-mail. Можно настроить разные типы уведомлений:

  1. Основные уведомления - при переходе из одного состояния в другое (primary)
  2. При нарушении или приближении срока регламента (regulation)
  3. При изменении настроек запущенного экземпляра процесса (changes)
  4. Дополнительные уведомления (additional)

JSON-модель настройки уведомлений объекта согласования

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

Пример JSON настройки основных уведомлений

!Важно:

  • Если требуется высылать уведомление при запуске процесса, то необходимо его добавить на первое (верхнее) состояние. Когда процесс запустится и совершится переход в первое состояние уведомление будет отправлено.
  • Можно настроить на одно и то же состояние несколько уведомлений.
Пример JSON настройки нескольких уведомлений на одно и то же состояние

Настройки уведомлений

Каждый тип уведомлений содержит один и тот же перечень настроек:
title - дефолтный заголовок уведомления.
body - дефолтный текст уведомления.
localizedTitle - локализованный заголовок уведомления.
localizedBody - локализованный текст уведомления.
localizedShortMessage - локализованный текст короткого уведомления, текст смс-уведомлений.
messageTypes - варианты уведомлений, которые будут отправляться. Можно задать значения: "Email", "Sms".
О подстановках в заголовке и тексте уведомления можно узнать в описании ниже.
recipients – настройки получателей уведомлений. Можно задать несколько получателей для уведомления.
!Важно: если установить "recipients": null, то уведомления будут направляться всем пользователям, которые ответственны за шаги текущего состояния.
Варианты настройки:

  • Через сторонний сервис
Пример JSON настройки
  • Фиксированное значение субъекта (роль, пользователь)

Получатель-пользователь задаётся в виде уникального номера (guid):

Пример JSON настройки

Получатель-роль задается в виде идентификатора роли:

Пример JSON настройки
  • Получить субъект из атрибута параметра объекта согласования
Пример JSON настройки
  • Получить субъект через формулу
Пример JSON настройки

url - url стороннего сервис, который вернет получателей уведомлений.

forceWorkflowNotificationTemplate: true/false - Возможность брать настройки уведомлений из самого объекта согласования, а не из того, что сохранено в процессе. True - настройки уведомлений при отправке будут браться из самого согласования (контейнера), False - из согласуемого процесса.

Настройки заголовка и текста уведомления

В шаблоне письма имеется возможность добавить подстановки:

Подстановка Описание
%new_state% Наименование нового статуса, в который перевели
%user_login% Логин пользователя, который совершил переход
%user_name% Имя (ФИО или подобное) пользователя, который совершил переход
%param<ID>% Заменяется на значение параметра с идентификатором ID. То есть, %param22% заменится на значение параметра с идентификатором 22
%param<ID>.<ATTRIBUTE_ID>% Заменяется на значение атрибута с идентификатором ATTRIBUTE_ID тех элементов справочника, чьи идентификаторы указаны в качестве значения параметра с идентификатором ID. Например, если у параметра с идентификатором 3 задано значение [1,2], то %param3.2% заменится на наименование элементов с идентификаторами 1 и 2 (склеится через ", "). Для единичных тоже, разумеется, работает. Также можно указывать транзитивные атрибуты, то есть вида %PARAM2.21.22.23.24.2%. При этом в метаданных описании параметра должен быть указан дискриминатор DictionaryParameterModel и идентификатор справочника, который связан с этим параметром. Если же дискриминатор не указан - или указан не DictionaryParameterModel - такая подстановка выродится в предыдущий пункт, т.е. просто значение параметра. Если параметр-справочник, но в подстановке указаны строки вместо чисел - заменится на пустоту.
%recipient_displayname% Пользователь-получатель уведомления, значение атрибута displayname из Keycloak
%recipient_firstname% Имя пользователя-получателя уведомления, значение атрибута firstname из Keycloak
%recipient_lastname% Фамилия пользователя-получателя уведомления, значение атрибута lastname из Keycloak
%changed_date% Дата перехода в состояние, в которое совершен переход и по которому высылается уведомление
%regulation_date% Регламентная дата состояния, в которое совершен переход и по которому высылается уведомление

Особенности настроек получателей уведомлений (back)

В уведомлениях можно указать получателя на 4 уровнях:

  • 1 уровень - template → notification → recepients
  • 2 уровень - template → notification → stateNotifications → в теле состояния (state) задаём recepients для отправки уведомления при наступлении данного состояния
  • 3 уровень - template → notification → primary (первостепенные получатели) или additional (опциональные) → recepients или (stateNotifications → recepients)
  • 4 уровень (бонус): если получатель не указан ни на одном из уровней, но при этом на совершение перехода (step) есть право (permissions) с указанным в нём пользователем. То уведомление отправляется тому получателю, который есть в permissions, при условии что step есть в availableSteps


Получатель задаётся в виде уникального номера (guid), внутрь recepients в свойство subjectId, коллекции subjects следующем виде:

1 "recipients": {
2       "subjects": [
3         {
4           "subjectId": "34c5a091-83b3-44d4-8616-561764a64d9b",
5           "discriminator": "FixedSubjectDescriptionModel"
6         }
7       ],
8       "discriminator": "SubjectNotificationsReceipientsModel"
9     }