Добавление обработчика макроса в шаблоне Email-сообщения
Glossary Item Box
Общие сведения
Шаблоны email-сообщений используются, например, при общении со службой поддержки. Шаблоны доступны в справочнике [Шаблоны email сообщений]. Подробнее об их настройке можно узнать из статьи "Настройка автоматической отправки email-уведомлений".
Например, в письме, уведомляющем клиента о закрытии его обращения, используется шаблон “Сообщение о закрытии обращения”. Для подстановки некоторых значений колонок объектов системы в шаблоны Email-сообщений используются преднастроенные макросы, например, обращение к контакту или должность ответственного.
Bpm'online позволяет реализовать собственную логику заполнения значения, которое возвращает обработчик макросов. При этом во время обработки макроса система выполнит реализованный разработчиком алгоритм, а не базовую логику.
На специализированный обработчик класса указывает тег @Invoke. Далее через точку должно быть указано имя класса реализующего интерфейс IMacrosInvokable, который включает в себя метод GetMacrosValue(). Этот метод должен возвратить строку, которая будет подставлена вместо строки макроса.
Для реализации пользовательского обработчика макроса необходимо:
- Создать класс, реализующий интерфейс IMacrosInvokable.
- Зарегистрировать макрос в таблице EmailTemplateMacros, указав для него ParentId (базовый шаблон с тегом @Invoke) и ColumnPath (имя класса).
- Добавить макрос в шаблон Email-сообщения.
Описание кейса
Добавить обработчик макроса шаблона Email-сообщения, который будет возвращать строку “Тестовая строка”.
Пример реализации кейса
1. Создание класса, реализующего интерфейс IMacrosInvokable
Чтобы создать новый класс, реализующий интерфейс IMacrosInvokable, необходимо в пакет, в котором выполняется разработка, добавить схему [Исходный код]. Для этого нужно в разделе [Конфигурация] выбрать пользовательский пакет и на вкладке [Схемы] выполнить команду меню [Добавить] — [Исходный код] (рис. 1). В результате откроется окно дизайнера исходного кода, в котором выполняется настройка созданной схемы.
Рис. 1. — Создание новой схемы [Исходный код]
Для созданной схемы объекта необходимо присвоить значения следующим обязательным свойствам:
- [Заголовок] — "Генератор текстовой строки".
- [Название] — "UsrTestStringGenerator".
На вкладке [Исходный код] дизайнера схемы добавить следующий исходный код:
namespace Terrasoft.Configuration { using System; using Terrasoft.Core; // Класс обработчика макроса шаблона Email-сообщения. public class UsrTestStringGenerator : IMacrosInvokable { // Пользовательское соединение. public UserConnection UserConnection { get; set; } // Метод, возвращающий подставляемое значение. public string GetMacrosValue(object arguments) { return "Тестовая строка"; } } }
Созданную схему необходимо опубликовать.
2. Регистрация макроса в таблице EmailTemplateMacros
Чтобы зарегистрировать макрос в таблице EmailTemplateMacros, необходимо выполнить следующий SQL-запрос:
INSERT INTO EmailTemplateMacros(Name, Parentid, ColumnPath) VALUES ( 'UsrTestStringGenerator', (SELECT TOP 1 Id FROM EmailTemplateMacros WHERE Name = '@Invoke'), 'Terrasoft.Configuration.UsrTestStringGenerator' )
3. Добавление макроса в шаблон Email-сообщения
После регистрации макроса его можно использовать в шаблонах Email-сообщений. Для этого необходимо изменить одну или несколько записей справочника [Шаблоны email сообщений] (рис. 2).
Рис. 2. — Справочник [Шаблоны email сообщений]
Например, для изменения содержимого сообщений, автоматически отправляемых при разрешении обращения, необходимо изменить запись [Сообщение о разрешении обращения]. Если в шаблон добавить макрос [#@Invoke.UsrTestStringGenerator#] (рис. 3), то при отправке сообщения пользователю вместо макроса будет подставлено значение "Тестовая строка".
Рис. 3. — Макрос в шаблоне Email-сообщения