Добавить обработчик макроса шаблона email-сообщения

Сложный

Пример реализован для продуктов линейки Service Creatio.

Описание примера 

Добавить обработчик макроса шаблона email-сообщения, который будет возвращать строку “Test”.

Исходный код 

Пакет с реализацией примера можно скачать по ссылке.

Пример реализации примера 

1. Создание класса, реализующего интерфейс IMacrosInvokable 

Чтобы создать класс, реализующий интерфейс IMacrosInvokable, добавьте в пакет разработки схему Исходный код (Source Code). Для этого в разделе Конфигурация на вкладке Схемы (Schemas) выполните команду меню Добавить (Add) — Исходный код (Source Code) (рис. 1).

Рис. 1. — Создание новой схемы Исходный код (Source Code)
scr_add_source_code.png

Для созданной схемы объекта укажите:

  • [Заголовок] ([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-сообщений
scr_lookup.png

Например, для изменения содержимого сообщений, автоматически отправляемых при разрешении обращения, необходимо изменить запись Сообщение о разрешении обращения (Case resolution notification). Если в шаблон добавить макрос #@Invoke.UsrTestStringGenerator# (рис. 3), то при отправке сообщения пользователю вместо макроса будет подставлено значение "Test".

Рис. 3. — Макрос в шаблоне Email-сообщения
scr_template.png