2.7.4. Шаблони електронних листів
Шаблони електронних листів — це функціональність для налаштування автоматизованих повідомлень у системі без необхідності програмування. Ця функціональність прийшла на заміну застарілому механізму Шаблони звітів та пропонує більш гнучкі можливості для налаштування комунікацій.
2.7.4.1. Створити шаблон електронних листів
-
У панелі навігації, виберіть робочий стіл Студія 1.
-
Виберіть групу ярликів Форми та шаблони 2, а потім виберіть ярлик Шаблони електронних листів 3.
-
У панелі інструментів, виберіть "+" 4.
-
Заповніть поля 1, використовуючи підказки в таблиці нижче, а потім у панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити 2.
| Поле | Опис |
|---|---|
| Код* | Унікальний код шаблону електронного листа.
|
| Найменування* | Зрозуміла назва шаблону, яка відображатиметься в інтерфейсі. |
| Опис | Короткий опис призначення та особливостей використання шаблону. |
| Тип* | Оберіть одне з двох значень:
|
| Пов'язана сутність | Оберіть одне з двох значень:
|
| Тема листа* |
![]() ℹ️ Примітка: Для полів типу Дата та/або час або Число формат значення встановлюється безпосередньо у формі. |
| Тіло листа* |
ℹ️ Примітка: Для полів типу Дата та/або час або Число формат значення встановлюється безпосередньо у формі. |
| Вкладення це поле доступне якщо у полі "Пов'язана сутність" ви обрали "Документ Scriptum" | Виберіть кнопку + Вкладення, щоб додати файлові атрибути пов'язаного документа. Після додавання вкладення, виберіть піктограму для визначення параметрів завантаження вкладень. |
поля позначені символом "*" є обов'язковими до заповнення.
2.7.4.2. Налаштувати переклади шаблону електронних листів
Система дозволяє створювати багатомовні версії шаблонів електронних листів. Це забезпечує автоматичне надсилання повідомлень мовою, що відповідає локалізації платформи користувача-отримувача.
Наприклад: Якщо користувач встановив німецьку мову в налаштуваннях профілю і для шаблону електронного листа створений німецький переклад, система автоматично надішле користувачу лист німецькою мовою. Проте, якщо переклад шаблону німецькою відсутній, система надішле версію листа мовою за замовчуванням, якою зазвичай є англійська.
-
У панелі навігації, виберіть робочий стіл Студія 1.
-
Виберіть групу ярликів Форми та шаблони 2, а потім виберіть ярлик Шаблони електронних листів 3.
-
Виберіть потрібний шаблон 4.
-
В секції Шаблон електронного листа виберіть кнопку Переклади.
-
В полі Мови 1 виберіть ті мови, переклад для яких бажаєте створити, а потім виберіть кнопку Призначити 2.
Примітка:якщо залишити це поле без змін, то лист буде перекладено лише для мови, яка встановлена як мова за замовчуванням у вашій платформі.
Після цього, для кожної вибраної вами мови, з'явиться окрема вкладка, в кожній з яких, ви можете написати текст листа іншою мовою.
2.7.4.3. Додати серверний скрипт до шаблону електронного листа
-
У панелі навігації, виберіть робочий стіл Студія 1.
-
Виберіть групу ярликів Форми та шаблони 2, а потім виберіть ярлик Шаблони електронних листів 3.
-
Виберіть потрібний шаблон.
-
У панелі інструментів, виберіть піктограму .
-
В текстове поле, вставте одну з наступних функцій:
transformData — витягнути інформацію з сутності в шаблон
transformData({
data,
context,
lang
}) {
if (lang == 'en') {
data.values = JSON.stringify(context)
data.test = 'test'
data.allData = JSON.stringify(data)
}
// data.now = new Date()
// if (context.instance.ID) {
// const entityName = context.instance.$entity
// data.instance.caption = UB.Repository(entityName)
// .attrs(UB.App.domainInfo.get(entityName).getDescriptionAttribute())
// .where('ID', '=', context.instance.ID)
// .selectScalar()
// }
}
transformSubject — модифікувати тему листа.
Наприклад: у формі листа, в полі "Тема листа" ви можете задати змінну <currentYear>, тобто заповнювач для підставлення поточного року. А тоді за допомогою цього скрипта, ви можете підставити в змінну потрібне вам значення року.
/**
* Transform mail subject built by the subject template
*
* @param {object} params
* @param {string} params.subject Subject built by template
* @param {object} params.data Automatically loaded data by all used
expressions in subject/body templates
* @param {object} params.context Building email context
* @param {string} params.lang Language code in which email is building
* @returns {string}
*/
transformSubject({
subject,
data,
context,
lang
}) {
// return subject.replace('<currentYear>', new Date().getFullYear())
return subject.replace('<variable>', context.instance.attrValues.ms01)
}
transformBody — модифікувати тіло листа, наприклад, змінити його дизайн.
/**
* Transform mail body built by the subject template
*
* @param {object} params
* @param {string} params.body Body built by template
* @param {object} params.data Automatically loaded data by all used
expressions in subject/body templates
* @param {object} params.context Building email context
* @param {string} params.lang Language code in which email is building
* @returns {string}
*/
transformBody({
body,
data,
context,
lang
}) {
// return `<p style="background-color: green">${body}</p>`
return `<p><span style="background-color: #339966;">${body}</span></p>`
}
tranformAttachment — робота з вкладеннями, наприклад, додавати файлові атрибути, змінювати назви вкладень або ж задати в листі назву файлу.
/**
* Transform mail attachments built by the attachments config
*
* @param {object} params
* @param {Array<MailAttachment>} params.attachments
* @param {Array<MailAttachmentConfig>} params.attachmentsConfig
* @param {object} params.data Automatically loaded data by all used
expressions in subject/body templates
* @param {object} params.context Building email context
* @param {string} params.lang Language code in which email is building
* @returns {string}
*/
transformAttachments({
attachments,
attachmentsConfig,
data,
context,
lang
}) {
attachments.push(
...emailAttachmentLoader.loadAttribute({
documentID: context.instance.ID,
attribute: 'ms17',
signatures: 'container'
}),
{
attachName: 'myAttachment.docx',
data: 'content'
})
//attachments[0].attachName = 'Документ із скрипта.pdf'
/*
const ds = DataStore('dfx_Document')
ds.run('update', {
fieldList: [
'attrValues',
'mi_modifyDate',
'mi_modifyUser'
],
execParams: {
ID: context.instance.ID,
attrValues : JSON.stringify({
"ms02":JSON.stringify(attachments)
})
},
__skipRls: true,
__skipOptimisticLock: true
})
*/
})
- У панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити.
2.7.4.4. Увімкнути функцію шаблонів електронних листів
У старіших версіях платформи функіцонал шаблонів електронних листів вимкнена за замовчуванням. Замість неї для надсилання повідомлень використовується застарілий механізм "Шаблони звітів".
Однак ви можете активувати оновлену функціональність шаблонів, виконавши описані нижче налаштування:
-
У панелі навігації, виберіть робочий стіл Адміністрування 1.
-
Виберіть групу ярликів Налаштування 2, а потім виберіть ярлик Налаштування системи 3.
-
Відкрийте запис "bpm.notification.useEmailTemplates" 4.
-
В полі Значення 1 введіть "true", а потім у панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити 2.
це налаштування застосовуватиметься лише до поточної локалізації платформи. Щоб налаштувати таке саме значення для всіх локалізацій виберіть піктограму , а потім введіть "true" у поля всіх мов.
2.7.4.4.1. Відключення нотифікації за замовчуванням
Щоб відключити нотифікації за замовчуванням, необхідно встановити одну з наступних комбінацій системних налаштувань:
Комбінація 1. Вимкнувши стандартний шаблон для призначення завдань
-
На панелі навігації, виберіть робочий стіл Адміністрування 1.
-
Виберіть групу ярликів Налаштування 2, а потім виберіть ярлик Налаштування системи 3.
-
Відкрийте запис "bpm.notification.useEmailTemplates" 4.
-
В полі Значення 1 введіть "true", а потім у панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити 2.
Примітка:це налаштування застосовуватиметься лише до поточної локалізації платформи. Щоб налаштувати таке саме значення для всіх локалізацій виберіть піктограму , а потім введіть "true" у поля всіх мов.
-
Відкрийте запис "bpm.notification.assignee.assignment.defaultEmailTemplate" 5.
-
В полі Значення 1 очистіть значення, а потім у панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити 2.
Примітка:це налаштування застосовуватиметься лише до поточної локалізації платформи. Щоб налаштувати таке саме значення для інших мов, змініть мову платформи, а тоді повторіть всі ті самі кроки.
Комбінація 2. Вимкнувши стандартне призначення завдання
-
На панелі навігації, виберіть робочий стіл Адміністрування 1.
-
Виберіть групу ярликів Налаштування 2, а потім виберіть ярлик Налаштування системи 3.
-
Відкрийте запис "bpm.notification.useEmailTemplates" 4.
-
В полі Значення 1 введіть "false", а потім у панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити 2.
Примітка:це налаштування застосовуватиметься лише до поточної локалізації платформи. Щоб налаштувати таке саме значення для всіх локалізацій виберіть піктограму , а потім введіть "false" у поля всіх мов.
-
Відкрийте запис "bpm.notification.defaultAssignmentTask" 5.
-
В полі Значення 1 очистіть значення, а потім у панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити 2.
Примітка:це налаштування застосовуватиметься лише до поточної локалізації платформи. Щоб налаштувати таке саме значення для інших мов, змініть мову платформи, а тоді повторіть всі ті самі кроки.
2.7.4.5. Встановити шаблон зі змінної процесу
Це може бути потрібно, якщо у вас в межах одного процесу є декілька завдань, які відправляють листи, і ви бажаєте використати для них різні шаблони. Підтримуються лише нові шаблони, шаблони звіту не підтримуються.
-
Відкрийте потрібну дефініцію бізнес-процесу.
a. У панелі навігації, виберіть робочий стіл Студія 1.
b. Виберіть ярлик Бібліотека процесів 2.
c. Виберіть потрібну дефініцію 3.
-
Виберіть завдання користувача, з якого бажаєте відправити сповіщення.
-
В налаштуваннях завдання розгорніть секцію Сповіщення, а потім виберіть "+".
-
В полі Призначити з виберіть Змінна процесу.
-
В полі Змінна процесу введіть код потрібного шаблона електронних листів.
-
У панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити.
