Каждый шаблон имеет Имя, Тему, Тело, Скрипт, а также свойство Использует свойства класса. В качестве значения свойства Использует свойства класса может быть установлена ссылка на один из бизнес-классов системы. В этом случае в теме и в теле сообщения можно будет обращаться к свойствам этого класса, заключая имена свойств в символы "%". Пример:
Тема сообщения: Тестовое сообщение для %Name%, сформировано %CurrentUserName% Тело сообщения: 1 Тестовое сообщение от базы данных - %Name% и GUID - %GUID%.
2
3 Значение локальной переменной local_variable = %local_variable%.
4
5 Значение глобальной переменной global_variable = %global_variable%.
6
7 %AdditionalMessageInfo%
В скрипте форматирования сообщения доступны следующие переменные: - ContextObject - контекстный объект, реализующий интерфейс IContext. Подробнее о возможностях данного интерфейса можно прочесть в Руководстве разработчика.
- ID - ID объекта класса указанного в UsesPropertiesOfClass, свойства которого будут использоваться
- Subject - текст темы сообщения
- Body - текст тела письма
- SourceClass - значение поля UsesPropertiesOfClass
- Variables - (переменная типа "Scripting.Dictionary") список локальных переменных, в которую можно добавлять переменные и их значения
Помимо форматирования темы или тела сообщения, в скрипте можно и формировать их, изменяя соответственно переменные Subject и Body. Скрипт форматирования сообщения: 01 Dim LDataSet, LTemp
02
03 ContextObject.DebugString "Hello from script!"
04
05 'добавление глобальной переменной, значение которой можно использовать не только в тексте письма
06 ContextObject.Variable("global_variable", False) = Now
07
08 'добавление локальной переменной, значение которой можно использовать в тексте письма
09 Variables.Add "CurrentUserName", ContextObject.GetName(ContextObject.ExecuteMethod("TUser", "GetCurrentUser", Null))
10
11 if Variables.Item("CurrentUserName") = "SYSDBA" then
12 Variables.Add "local_variable", "current user is SYSDBA"
13 else
14 Variables.Add "local_variable", "current user is simple user"
15 end if
16
17 ContextObject.DebugString "Test CreateDataSet"
18
19 set LDataSet = ContextObject.CreateDataSet("TDataBase")
20 LDataSet.AddQueryItem 0, "Name"
21 LDataSet.AddQueryItem 0, "Description"
22 LDataSet.AddQueryItem 0, "GUID"
23
24 LTemp = "TDataBase dataset:" & vbNewLine
25
26 while not LDataSet.Eof
27 LTemp = LTemp & _
28 LDataSet.Field("Name") & ", " & _
29 LDataSet.Field("Description") & ", " & _
30 LDataSet.Field("GUID") & vbNewLine
31
32
33 LDataSet.Next
34 wend
35
36 Variables.Add "AdditionalMessageInfo", LTemp
|