Добавление обработчика макроса в шаблоне email-сообщения
Glossary Item Box
Общие сведения
Шаблоны email-сообщений используются, например, при общении со службой поддержки. Шаблоны доступны в справочнике [Шаблоны email-сообщений] ([Email templates]). Подробнее об их настройке можно узнать из статьи "Настройка автоматической отправки email-уведомлений".
Например, в письме, уведомляющем клиента о закрытии его обращения, используется шаблон “Сообщение о закрытии обращения”. Для подстановки некоторых значений колонок объектов системы в шаблоны email-сообщений используются преднастроенные макросы, например, обращение к контакту или должность ответственного.
Bpm'online позволяет реализовать собственную логику заполнения значения, которое возвращает обработчик макросов. При этом во время обработки макроса система выполнит реализованный разработчиком алгоритм, а не базовую логику.
На специализированный обработчик класса указывает тег @Invoke. Далее через точку должно быть указано имя класса реализующего интерфейс IMacrosInvokable, который включает в себя метод GetMacrosValue(). Этот метод должен возвратить строку, которая будет подставлена вместо строки макроса.
Для реализации пользовательского обработчика макроса необходимо:
- Создать класс, реализующий интерфейс IMacrosInvokable.
- Зарегистрировать макрос в таблице EmailTemplateMacros, указав для него ParentId (базовый шаблон с тегом @Invoke) и ColumnPath (имя класса).
- Добавить макрос в шаблон email-сообщения.
Описание примера
Добавить обработчик макроса шаблона email-сообщения, который будет возвращать строку “Test”.
Исходный код
Пакет с реализацией примера можно скачать по ссылке.
Пример реализации примера
1. Создание класса, реализующего интерфейс IMacrosInvokable
Чтобы создать класс, реализующий интерфейс IMacrosInvokable, добавьте в пакет разработки схему [Исходный код] ([Source Code]). Для этого в разделе [Конфигурация] на вкладке [Схемы] ([Schemas]) выполните команду меню [Добавить] ([Add]) — [Исходный код] ([Source Code]) (рис. 1).
Рис. 1. — Создание новой схемы [Исходный код] ([Source Code])
Для созданной схемы объекта укажите:
- [Заголовок] ([Title]) — "Генератор текстовой строки" ("Text string generator").
- [Название] ([Name]) — "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-сообщений] ([Email templates]) (рис. 2).
Рис. 2. — Справочник [Шаблоны email-сообщений]
Например, для изменения содержимого сообщений, автоматически отправляемых при разрешении обращения, необходимо изменить запись [Сообщение о разрешении обращения] ([Case resolution notification]). Если в шаблон добавить макрос [#@Invoke.UsrTestStringGenerator#] (рис. 3), то при отправке сообщения пользователю вместо макроса будет подставлено значение "Test".
Рис. 3. — Макрос в шаблоне Email-сообщения