Каким образом можно настроить шаблон письма, чтобы не было отступов (полей)?

При создании письма без шаблона посылается нормально, а шаблоны сразу добавляют отступы

Нравится

8 комментариев
Лучший ответ

Добрый день.

 

Мне в поддержке ответили следующее: начиная с версии 7.15.2 используется новый дизайнер контента и функционал регулирования расположения шаблона внутри дизайнера отсутствует. 
Шаблон располагается по центру по умолчанию. Ширина по умолчанию задана 600.

Для решения проблемы, увеличьте ширину шаблона. 
Нажмите на шестеренку в правом верхнем углу и выберите максимальную ширину страницы. (максимально допустимая 1300px).

 

Мою проблему с отступами, к сожалению, это не решило, то есть отступы остались, но письмо визуально стало выглядеть немного лучше.

Измените положение, похоже что у вас по центру стоит.

Добрый день.

 

Мне в поддержке ответили следующее: начиная с версии 7.15.2 используется новый дизайнер контента и функционал регулирования расположения шаблона внутри дизайнера отсутствует. 
Шаблон располагается по центру по умолчанию. Ширина по умолчанию задана 600.

Для решения проблемы, увеличьте ширину шаблона. 
Нажмите на шестеренку в правом верхнем углу и выберите максимальную ширину страницы. (максимально допустимая 1300px).

 

Мою проблему с отступами, к сожалению, это не решило, то есть отступы остались, но письмо визуально стало выглядеть немного лучше.

Полозюков Евгений Петрович,

это что за версия?

Владимир Соколов,

С 7.12 по текущую версию такое точно есть.

Как интересно - есть два типа шаблонов. Но непонятно, как управлять, какой тип создать

 

Владимир, да, выравнивание всего шаблона доступно только в старой версии дизайнера контента.

Определить, какая версия будет использовааться при открытии шаблона, можно по значению поля ConfigType, которое можно вытянуть в реестре.

Признак ConfigType – это тип шаблона, но этот признак – следствие того, что конфиг шаблона такого типа, его изменение ни к чему не приведёт.

Для того, чтобы открылся старый дизайнер, TemplateConfig у шаблона должен быть старого образца, этого можно достичь либо копированием старого шаблона, либо update в базе данных поля TemplateConfig на конфиг старого образца.

 

Уже заведена идея о необходимости выравнивания в новых шаблонах.

 

В качестве обходного решения предлагается подход, который предложила Алла: для того, чтобы сделать письмо, которое потенциально будет выглядеть как обычное письмо и весь контент был по левому краю, необходимо сделать ширину шаблона максимальной и все элементы шаблона выравнивать по левому краю.

Коллеги, а как поднять приоритет возвращения старого функционала с выравниванием шаблона не по центру?

Добрый день, Константин!
 

Мы добавили Ваше обращение к уже существующей проблеме на ответственной команде R&D, тем самым повысив ее приоритет.

Спасибо, что помогаете делать наш продукт лучше!

Если у вас возникли вопросы, мы с радостью на них ответим.

Спасибо за выбор наших продуктов!

С уважением,
Сидько Елена
Оператор
Группа компаний Terrasoft

Показать все комментарии

Здравствуйте, коллеги! 

 

Возможно, такие идеи уже были озвучены, но я все таки предложу.

 

1. Добавить в редактор email-шаблонов вофможность вставлять данные из системной настройки

2. Добавить в редактор возможность вставлять ссылки на записи из произвольных справочников

 

Открыть возможность написания пользовательских макросов для email не только для Customer Portal :) 

2 комментария

Лидия, спасибо за предложения. По системным настройкам в шаблоне идея уже была. По записи справочников — идею добавил. Хотя, если первую реализуют, можно будет создать системную настройку справочного типа.

По пользовательским, если речь о IMacrosInvokable, то тоже заведена идея использовать этот механизм в других продуктах, не только Service.

Зверев Александр,

Спасибо за ответ!

Показать все комментарии

В Академии есть описание как скачать шаблон для импорта объектов из Конфигурации. В предыдущих версиях часто это использовала. 

Но в версии 7,17,0 - не могу определить где находится кнопка Настройки. 

Пример на скрине

Нравится

15 комментариев

На версии 7.17.0 можно попробовать пройти по адресу yoursite/0/ViewPage.aspx?Id=c2af7f54-07df-4670-9c2b-af2497d3231f

 

На версии 7.17.1 прежде чем эту ссылку использовать надо реанимировать старый конфигуратор

 

Спасибо! Вот только клиенту это уже не объяснишь....

А клиент в старой конфигурации умел это делать сам? в этом случае дайте ему ссылку, а дальше все тоже самое осталось.

Екатерина, что Вы имеете в виду под шаблоном для импорта объектов из Конфигурации? Речь о выгрузке схем или данных в Excel? Приведите ссылку или скриншот, как раньше было.

вот тут ссылка на окошко старого интерфейса /0/ViewPage.aspx?Id=c2af7f54-07df-4670-9c2b-af2497d3231f

добраться из старой конфигурации можно так:

 

Было бы не плохо вставить эту кнопку "Скачать шаблон"  в новый мастер импорта, который по адресу /0/Nui/ViewModule.aspx?vm=FileImportWizard#FileImportModule/FileImportStartPage/f0a9cd02-5a19-4a4b-9e6e-7505bd509247

Спасибо, теперь понял, о чём Вы. В новой конфигурации нет кнопки «настройки», поскольку она была не частью старой конфигурации, а частью старого 5.Х-интерфейса вообще, была видима в любом разделе. А в 7.17 старый интерфейс окончательно убрали, а с ней и кнопку настройки, и окно старого импорта, и кнопку скачивания в нём. В новом интерфейсе свой экран настроек, «Дизайнер системы».

В академию по поводу неактуального абзаца сообщил.

Сложность в использовании функциональности импорта из Excel о том, что нет возможности скачать шаблон файла для загрузки данных объекта была зарегистрирована ещё при запуске нового UI импорта из Excel, но пока ничего не планировали. Приоритетность реализации зависит от количества запросов  по этой теме.

Новый импорт, в отличие от старого, позволяет загружать из файла с произвольными названиями колонок, вручную задавая им соответствие полям в базе.

Как обходной вариант, можно просто вывести в реестре раздела нужные колонки и скачать файл по действию «Экспорт в Excel», а затем его открыть и оставить только «шапку».

Зверев Александр,

мы тоже постоянно пользовались функциональность выгрузки файла шаблона. Это избавляет от необходимости вручную сопоставлять поля при импорте.

А зачем каждый раз его выгружать, если грузите данные одного и того же вида? Если шаблон раз скачан, его файл можно сохранить и далее использовать, наполняя данными.

Зверев Александр,

Не, идея не в этом. Шаблон выгружается согласно доработанной объектное модели.(он не статичен) Т.о. добавляем в объект все нужные поля и справочники, выгружаем шаблон и отдаем для наполнения. А так как у всех модели данных разные, то и выгрузка шаблонов - регулярна.

В таком случае, можно опять выгрузить по действию «Экспорт в Excel».

Зверев Александр,

Да, но для этого нужно опять добавлять колонки в реестр.

А зачем Вы их удаляли?

С выгрузкой по действию «Экспорт в Excel» тоже есть свои нюансы. Так например списочное представление позволяет вывести только 24 колонки. Можно конечно в плиточном вывести все необходимые колонки. Тогда Экспорт в Excel выгрузит все что надо. Но Выгрузка шаблона позволяла выгрузить сразу всю объектную модель данных без настройки реестра записей, да еще и с указанием обязательности полей

Зверев Александр,

а зачем мне в реестре весь список полей из объекта? Алексей в сообщении выше очень точно описал суть проблемы)

В таком случае ожидайте реализации идеи по добавлению скачивания шаблона в новый импорт.

Или самостоятельно сделать БП с логикой, взятой из DownloadTemplateMenuItemClickScriptTaskExecute схемы ImportSettingsPage и адаптированной под сохранение файла где-то в базе.

Или написать веб-сервис, куда параметром передают название схемы, а возвращают файл.

Нынешняя логика этой кнопки такая:

		public virtual bool DownloadTemplateMenuItemClickScriptTaskExecute(ProcessExecutingContext context) {
			Page.BaseMessagePanel.Clear();
			if (string.IsNullOrEmpty(SchemaName)) {
				Page.BaseMessagePanel.AddMessage(WarrningMessage, UnableSelectObjectMessage, MessageType.Warning, true);
				return true;
			}
			Page.Response.ClearHeaders();
			Page.Response.ClearContent();
			string fileName = SchemaName;
			var instance = UserConnection.EntitySchemaManager.GetInstanceByName(SchemaName);
			if (instance != null) {
				fileName = instance.Caption.ToString();
			}
			Page.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
			if (HttpContext.Current.Request.Browser.Browser == "IE") {
				string fileNameEnc = HttpUtility.UrlPathEncode(fileName);
				Page.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + fileNameEnc + ".xlsx\"");
			} else {
				Page.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx");
			}
			List<double> columnWidthsList = new List<double>();
			using (MemoryStream stream = new MemoryStream()) {
				using(SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook)) {
					// Add a WorkbookPart to the document.
					var workbookpart = spreadsheetDocument.AddWorkbookPart();
					workbookpart.Workbook = new OpenXmlSpreadsheet.Workbook();
 
					// Add a WorksheetPart to the WorkbookPart.
					var worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
					var workbookStylesPart = workbookpart.AddNewPart<WorkbookStylesPart>(); 
					worksheetPart.Worksheet = new OpenXmlSpreadsheet.Worksheet(new OpenXmlSpreadsheet.SheetData());
 
					// Add Sheets to the Workbook.
					OpenXmlSpreadsheet.Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild<OpenXmlSpreadsheet.Sheets>(new OpenXmlSpreadsheet.Sheets());
 
					// Append a new worksheet and associate it with the workbook.
					string relationshipId = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart);
					string sheetName = fileName;
					OpenXmlSpreadsheet.Sheet sheet = new OpenXmlSpreadsheet.Sheet() {
						Id = relationshipId,
						SheetId = 1, 
						Name = sheetName
					};
					sheets.Append(sheet);
 
					OpenXmlSpreadsheet.Worksheet worksheet = new OpenXmlSpreadsheet.Worksheet();
					OpenXmlSpreadsheet.SheetData sheetData = new OpenXmlSpreadsheet.SheetData();
					OpenXmlSpreadsheet.Row row = new OpenXmlSpreadsheet.Row();
 
					OpenXmlSpreadsheet.Cell currentCell;
					int columnCount = 0;
					var entitySchema = UserConnection.EntitySchemaManager.GetInstanceByName(SchemaName);
					foreach (EntitySchemaColumn column in entitySchema.Columns) {
						if (!column.DefValue.IsSystemValue &&
								(column.UsageType != EntitySchemaColumnUsageType.Advanced) && 
								(column.UsageType != EntitySchemaColumnUsageType.None) &&
								!column.Name.Equals("ProcessListeners") &&
								!(column.DataValueType is ImageDataValueType) &&
								!(column.DataValueType is ImageLookupDataValueType)) {
							currentCell = new OpenXmlSpreadsheet.Cell();
							currentCell.DataType =  OpenXmlSpreadsheet.CellValues.String;
							if (column.RequirementType == EntitySchemaColumnRequirementType.ApplicationLevel || column.RequirementType == EntitySchemaColumnRequirementType.DBLevel) {
								currentCell.StyleIndex = 3;
							} else {
								currentCell.StyleIndex = 4;
							}
							columnWidthsList.Add(CalculateWidth(column.Caption.Value));
							currentCell.CellValue = new OpenXmlSpreadsheet.CellValue(column.Caption.Value);
							row.AppendChild(currentCell);
						}
					}
					sheetData.Append(row);
					row = new OpenXmlSpreadsheet.Row();
					for (int i=0;i<columnWidthsList.Count; i++) {
						currentCell = new OpenXmlSpreadsheet.Cell();
						currentCell.DataType =  OpenXmlSpreadsheet.CellValues.String;
						currentCell.StyleIndex = 5;
						row.AppendChild(currentCell);
					}
					sheetData.Append(row);
					//Adding columns and specifeing width
					OpenXmlSpreadsheet.Columns columns = new OpenXmlSpreadsheet.Columns();
					uint j = 1;
					foreach (var w in columnWidthsList) {
						columns.Append(CreateColumnData(j, w));
						j++;
					}
					worksheet.Append(columns);
					//--
					worksheet.Append(sheetData);
 
					workbookStylesPart.Stylesheet = CreateStyleSheet();
					worksheetPart.Worksheet = worksheet;
					spreadsheetDocument.Close();
 
					stream.Seek(0, SeekOrigin.Begin);
					byte[] dataArray = stream.ToArray();
 
					Page.Response.BinaryWrite(dataArray);
					Page.Response.End();
				}
			}
			return true;
		}

 

Показать все комментарии

Добрый день!

 

Имеется расширение от DevLabs для создания шаблонных обращений.

Подскажите как настроить возможность создавать портальному пользователю обращение по шаблону? Настройка права чтения на шаблон не отобразила данную опцию для портального пользователя.

Нравится

2 комментария

Добрый день, Руслан, 

 

возможность создавать портальному пользователю обращение по шаблону в дополнении не реализована.

Передала вашу идею ответственной команде.

Ирина Лазоренко, благодарю, было бы полезной функцией.

Показать все комментарии

Добрый день, уважаемые коллеги! Вопрос по Excel reports builder (разработчик DevLabs). В описании пакета сказано, что данные можно выгружать в шаблон.

А можно ли настроить шаблон следующим образом: 1) на лист с данными выгружаются данные из Creatio 2) На другом листе сводная таблица, которая имеет источником выгруженную таблицу. И пользователь просто нажимает на сводной таблице Обновить и она наполняется актуальными данными.

У меня в шаблоне настроена таблица Table1,  которая присутствует в Диспетчере имен и на которую "смотрит" Сводная таблица. При выгрузке сейчас получается, что выгружаемые в шаблон данные затирают эту таблицу ( в диспетчере имен все пропадает).

Я делаю что-то не правильно или , каждый раз при построении отчета, неизбежно форматирование выгруженных данных в таблицу вручную и изменение Источника данных для сводной таблицы.

Подскажите, пожалуйста, по этой ситуации 

Нравится

4 комментария

Здравствуйте.

 

Насколько мне известно, сделать то, что Вы описали, через приложение Excel reports builder стандарными средствами нельзя.

 

В описании под выгрузкой в шаблон имеется ввиду преднастроенная последовательность колонок и некоторые их свойства, например, такие, как ширина, сортировка и формат. 

Марина, здравствуйте,

 

в настройках отчета в поле "Имя листа" вы указываете название вкладки, куда выгружаются данные. Лучше название листа для выгрузки данных переименовать и оно должно точно соответствовать названию листа в файле шаблона. Проверьте, что данные выгружаются в указанную вами вкладку. После этого можете в файл шаблона добавлять другие вкладки и там настраивать сводные таблицы, графики. По результатам настройки загрузите шаблон файла в настройках отчета.

 

Добрый день, уважаемые коллеги! Спасибо за Ваши комментарии. Ирина, я как раз так все и делаю, данные выгружаются на указанный лист. Но во время выгрузки "теряется" имя сводной таблицы. И если даже выгруженный массив назвать, как источник данных сводной таблицы (также, например, СводнаяТаблица1), они друг друга "не узнают") 

Добрый день, Марина,

 

проверьте, что названия полностью совпадают (сравнение названий регистрозависимо) и нет лишних пробелов либо в настройках отчетах, либо в шаблоне excel.

Показать все комментарии

Добрый день!

Подскажите, пожалуйста, возможно ли передавать дополнительные параметры в макрос, вызываемый в email-шаблоне через [#@Invoke.MyMacros#] ?

Например, нужно реализовать конвертацию значения поля типа boolean из true/false в "да"/"нет". Или преобразовать дату в специальный формат.

Метод GetMacrosValue(object arguments) интерфейса IMacrosInvokable принимает объект с аргументами, но по умолчанию в нем - только идентификатор текущей записи.

Нравится

5 комментариев

Стандартно в системе есть макрос EstimateLinksGenerator для голосования за оценку, он находится в одноимённой схеме. Но там тоже получают Id и далее работают с ним. Если дата или логическое значение находятся в полях этой записи, то к ним можно получить доступ по её Id.

Зверев Александр,

Да, можно так и сделать. Но тогда придется писать индивидуальный макрос для каждого объекта. А если нужно значения чекбоксов выводить в уведомлениях по разным объектам - это не очень удобно.

Может, есть какой-то альтернативный вариант решения проблемы?

Нужно смотреть в MacrosHelper, который это всё обрабатывает, как там устроено и есть ли возможность для расширения.

Добрый день, подскажите, может кто нашел решение данной задачи?

Можно добавить в объект дополнительные текстовые поля, куда при изменении основных (логических или дат) формировать текст нужного вида.

Показать все комментарии

Добрый день.
Возникла необходимость добавления пользовательского макроса в шаблон email и заполнять его значением параметра БП.

Прошу подсказать кейс реализации подобной задачи.

Нравится

11 комментариев

Игорь, добрый день!

Принцип реализации есть на SDK - https://academy.terrasoft.ru/documents/technic-sdk/7-11/dobavlenie-obra….

Спасибо! Второй день ищу информацию на академии.
А как быть с заполнением макросов из БП при использовании элемента "Отправить email"?

Коновалов Игорь, здравствуйте!

Не совсем понятен вопрос, Вы хотите вычитать значение параметра процесса в рамках исходного кода кастомного макроса?

Значительно проще не привязываться к созданию собственного макроса, а выполнять все необходимые действия в рамках процесса.

Возможные реализации: 

1. Формировать по ходу процесса тело письма, и вставлять с помощью формулы в это тело параметр, условно: 

 BodyText = String.Format("Parameter value {0} in my body",[#MyParameter#])
2. Либо же Вы можете с помощью элемента чтение данных получить тело шаблона (объект = Шаблон email сообщения), записать значение в параметр процесса и аналогично первому пункту записать необходимое значение в тело (например, с помощью Replace).

3. Если подстановка значений выполняется из одного объекта, можно просто создать в шаблонах собственный с указанием объекта источника данных, а в процессе просто указать в элементе Отправить email id нужной записи.

4. Самый простой способ - отправлять письмо в режиме произвольное письмо, и подставлять в тело нужный параметр - http://prntscr.com/ipagjy

Если же вопрос больше как реализовать сложную логику в кастомном макросе - можно ознакомиться с реализацией базового, например, SymptomsGenerator пакета CaseService.

Спасибо, за варианты.
Но передо мной стоит задача в шаблон письма вывести по условию 3 таблицы из деталей р.Продажи. Шаблон самого письма строго типизирован.

Игорь, здравствуйте!

Вы можете формировать тело письма, содержащее таблицы, в формате html  по процессу, подставляя необходимые параметры процесса. После чего сформированное тело передавать в параметр [Тело письма] элемента Отправить email (в расширенных свойствах элемента).

Логвин Андрей Витальевич,
Да, тоже думал об этом. Но шаблон письма строго типизирован, и должен храниться в справочнике "Шаблоны email"
Есть ли возможность работать с пользовательскими макросами шаблона email в БП?

 

Коновалов Игорь,

Есть возможность заполнять макрос с помощью элемента процесса "Обработать шаблон письма с макросами", указав запись, из которой брать значения, uid объекта записи и id шаблона. Подробнее по работе данного элемента можно посмотреть в самом действии в конфигурации. Других вариантов обрабатывать кастомный макрос в БП нет, необходимо реализовать обработку в рамках задания-сценария.

 

 

Логвин Андрей Витальевич пишет:
Есть возможность заполнять макрос с помощью элемента процесса "Обработать шаблон письма с макросами",

а где вы нашли такой User task? 

Владимир, а где Вы искали? Создаёте новое действие в БП и выбираете с этим названием.

Зверев Александр пишет:

Владимир, а где Вы искали? Создаёте новое действие в БП и выбираете с этим названием.

Уже нашёл. Он есть в Service, но его нет в остальных продуктах.
Придётся копи-пастить 

Вообще, не очень хорошо брать код из другого продукта за другую цену. Для объектов это даже проверяется автоматически механизмом лицензий, но для страниц, действий и прочих скриптов — чисто на честность.

Идея дать возможность использовать макросы в продуктах, отличных от service уже заведена.

Показать все комментарии

Часто e-mail кампания проводится на нескольких языках. Сейчас приходится создавать несколько кампаний, чтобы использовать разные шаблоны.Хотелось бы к блокам шаблона добавить условия их отображения. Тогда шаблон был бы один, кампания одна, а языков несколько. Так же это можно использовать для большей персонализации приглашений на те же вебинары - IT-специалист получит один текст, руководитель продаж - другой, финансовый директор - третий. А шаблон и кампания будут в единичном экземпляре.

3 комментария

Добрый день!

Благодарю за описание. Ваша идея передана команде разработки продукта marketing.

В 7.13.2 такое добавили, у каждого блока контента можно задать динамические группы контактов. И если получатель входит в группу, блок попадает ему в письмо.

dynamic_content.gif

 

Спасибо! Это круто  когда идеи находят воплощение! 

Показать все комментарии

Добрый день!
Хотела бы создать такой маршрут (запускающийся с определенной периодичностью),
которой бы считал кол-во обращений в группе,
и руководителю группу отправлял бы письмо по шаблону:
"В вашей группе столько-то ( кол-во) обращений"

Как запускать маршрут с определенной периодичностью понятно
Кол-во обращений в группе считать с помощью сценария на C#

А вот как в шаблон передать параметр - "кол-во обращений", и к нему потом в шаблоне обратиться?
Сейчас в шаблон можно только передать идентификатор конкретного обращения.

Можно ли сделать это средствами шаблонов в bpm?

Нравится

20 комментариев

Добрый день Дарья!!!

уточняющий вопрос. о каком шаблоне идет речь в вашем обращение. уточните пожалуйста, чтобы сформировалась полная картина. спасибо!!!

Добрый день, Михаил!
Шаблон почтового сообщения

Добрый день Дарья!!!

вопрос второй какими инструментами инициируете рассылку, или отправку сообщения? где происходит обращение к Шаблону сообщений, на уровне Бизнес-процесса, или на уровне приложения (клиента)? поясните пожалуйста еще данный вопрос. Спасибо!!!

на уровне бизнес-процесса

Вашу задачу Дарья можно решить следующим путем.

Первый способ
1. Редактируете шаблон сообщения. добавляете требуемый параметр, к примеру "#CountGroupCase#.
2. Создаете новое действие процесса, по образу и подобию как схема действия "FillEmailTemplateUserTask".
3. Редактируете "Сценарий" действия процесса. В конце добавляете строчку

UpdateConsts("#CountGroupCase#", GetCountGroupCaseString());

Функцию конечно создаете заранее внутри Нового Действия процесса или Отдельным сервисом.
4. Изменяете существующий бизнес-процесс, удаляете старое действие "Обработать шаблон письма с макросами" и добавляете на процесс новое созданное действие процесса.

Второй способ
Подсмотреть в схему "RegistrationHelper" и создать свои функции по обработке и замещению Шаблона, отправки почты.

Вот такие предложения.

Подскажите, пожалуйста, а где у самого шаблона сообщения можно добавить требуемый параметр?
Шаблон сообщения находится в Справочники-Шаблоны сообщений

Дарья, Шаблоны да находятся Справочники --> Шаблоны e-mail сообщений. Открываете данный справочник, находите требуемый шаблон и редактируете его.

Дарья, просто редактируйте текст сообщения, дополнительных действий вроде бы не требуется...

Дарья день добрый!!!

по вашей задачи, что вы публиковали ранее, у вас все получилось? остались ли еще вопросы или трудности. Дайте пожалуйста знать. Спасибо!!!

Добрый день! как раз хотела написать)

Создала новое действие процесса, по образу и подобию как схема действия "FillEmailTemplateUserTask"
Отредактировала "Сценарий" действия процесса. В конце добавила строчку
UpdateConsts("#CountGroupCase#", "5");
Вместо функции пока константа - для проверки вывода.

Отредактировала шаблон сообщения - добавилатребуемый параметр "#CountGroupCase#.
Вот так вот [#CountGroupCase#]

При формировании письма по шаблону в макрос #CountGroupCase# в итоге ничего не подставляется.
То есть он так и выглядит в результате - [#CountGroupCase#]

Более того, в самом шаблоне есть уже какие-то предустановленные макросы - хотела на них проверить подстановку таких макросов

А они оказываются тоже не работают почему-то.

"Татаровская Дарья" написал:Создала новое действие процесса, по образу и подобию как схема действия "FillEmailTemplateUserTask"

Добрый день Дарья!!!

а новое действие, что создали на бизнес-процессе разместили, т.е на бизнес-процессе вы должны были удалить старое действие "Обработать шаблон письма с макросами" и добавить свое новой действие на схему бизнес-процесса. После выполнить публикацию бизнес-процесса, и проверить работоспособность. Вы так сделали?

Добрый день!
Да, конечно, делала - процесс работает, письмо по нему отправляется.
Только вот письмо выглядит вот так

т.е. в макрос нужное значение не подставляется

Спасибо Дарья за информацию, сейчас воспроизведу вашу ситуацию на своей Базе данных, проанализирую почему не заполняется и дам вам ответ.

Спасибо. У меня 7.6

Дарья день добрый еще раз!!!

очень интересный инцидент попался :) У меня все работает, у вас нет. Мистика. Расскажу как я делал.
1. Я создал новое действие процесса FillEmailTemplateUserTask, назвал его MpoFillEmailTemplateUserTask. Имя новому действию присвоил "Обработать шаблон письма с макросами (Customer), чтобы при подборе в Бизнес-процессе можно было быстро найти и не перепутать "Действия".
В конец "сценария" нового действия добавил тестовый код:

UpdateConsts("#CountGroupCase#", "5");

2. Далее я создал Шаблон в котором просто указал один параметр "#CountGroupCase#", Сохранил его. Дал шаблону название.
3. Чтобы воспроизвести все в реальной ситуации, решил клонировать бизнес процессы "SendEmailToCaseContactProcess", "IncidentManagement".
4. в первом клонированном бизнес-процессе "SendEmailToCaseContactProcess", под названием "MpoSendEmailToCaseContactProcess" и именем "Отправка email сообщения контакту обращения (customer)", я удалил элемент бизнес процесс "FillEmailUserTask" и добавил свое
"пользовательское действие процесса", под названием "Обработать шаблон письма с макросами (Customer)", Входящие параметры действия - RecordId, TemplateId, SysEntitySchemaId, заполнил как было в исходном процессе. Соединил связи между элементами процесса и опубликовал его.
5. во втором клонированном бизнес-процессе "IncidentManagement" , под названием "Процесс управления инцидентами (customer), у элемента процесса "SubProcess4", я изменил связь подпроцесса с "Отправка email сообщения контакту обращения" на "Отправка email сообщения контакту обращения (customer)". Во входящем параметре "TemplateId" - указал ссылку на свой созданный новый шаблон с единственным параметром. Все сохранил и опубликовал

После я исполнил новый бизнес-процесс "Процесс управления инцидентами (customer)" дошел до момента отправки уведомления, и посмотрел что мне придет на почту. Пришло письмо с цифрой "5" в теле письма.

Вот теперь думаю чтобы уже голову не ломать. Поделитесь своими бизнес-процессами Дарья. Я их из MD файлов загружу себе и попробую через дебаггер найти где спотыкается бизнес-процесс и из-за чего у вас не происходит замена параметра.

Добрый день!
Да, конечно
Во вложении - действие и процесс.

Скажите, пожалуйста, а какая у вас версия bpm?
У вас отрабатывают в шаблоне вот такие вот предустановленные макросы(которые в шаблонах предлагаются во всех)

У меня Дарья как у мамонта :smile: старая версия ITIL еще первую 7.6 когда раздавали, я ее скачал и после этого не обновлял. Недавно запрашивал актуальные версии, вот обновлюсь сегодня и уже завтра с утра, посмотрю на ваши процессы. Сегодня я просто физически не осилю. Очень много было умственного процесса. Поэтому если терпит до завтра, то посмотрю на ваши процессы обязательно с самого утра.

да, конечно, спасибо вам

Добрый день, Михаил!
Подскажите, пожалуйста, у вас тоже не отображается макрос из шаблона или отображается?

Получилось решить данную задачу другим способом:
Вычислять кол-во обращений, записывать в параметр.
И уже этот параметр указывать для поля "Тело активности" в элементе добавление данных (добавление данных письма)

Показать все комментарии

Здравствуйте!

Стоит задача реализовать внесение фирменного шаблона в создаваемые письма.
Теоретически можно сделать, как предложено здесь:
https://community.terrasoft.ru/blogs/7765

Но насколько я понимаю, по предложенной схеме, шаблон невозможно будет персонифицировать, он будет фиксирован по своему содержанию.

Подскажите, кто-то решал уже задачу заполнения тела письма персонифицированным шаблоном?

Нравится

5 комментариев

Говорят, в 7.6 будет мощный движок шаблонов писем, в том числе и персонифицированных.

Послушаем завтра :-)

Фариз Эльдарович, здравствуйте!

На данный момент шаблоны E-mail сообщений могут быть настроены только через справочник "Шаблоны e-mail сообщений".

Нововведения в версии 7.6 касательно e-mail будут относиться к продуктам Service и Merketing.

Спасибо

Ок, а шаблоны email сообщений из справочника могут быть применены к любому вновь создаваемому письму?

Фариз Эльдарович,

справочник "Шаблоны e-mail сообщений" используется только при рассылках (Например в Sales + Marketing).

Существует другой способ настройки персонализации через БП - через элементы "Чтение данных" и "Отправить e-mail" (Таким образом будет некий аналог макроса).

Спасибо!

Показать все комментарии