Подписаться на сообщение загрузки модуля из схемы EmailMessagePublisherPage

messages: {
			"SendListenerEmailData": {
				mode: this.Terrasoft.MessageMode.PTP,
				direction: this.Terrasoft.MessageDirectionType.PUBLISH
			},
			"EmailMessagePageLoaded": {
				mode: this.Terrasoft.MessageMode.PTP,
				direction: this.Terrasoft.MessageDirectionType.SUBSCRIBE
			},
		},
		methods: {
			init: function(){
				this.callParent(arguments);
				this.sandbox.subscribe("EmailMessagePageLoaded", this.onEmailMessagePageLoaded, this, [this.getEmailMessagePublisherModuleId()]);
			},
 
			onEmailMessagePageLoaded: function(args){
				debugger;
				if (this.$EntitySchemaName === "NrbCase") {
					Terrasoft.chain(
						function (next) {
							var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "NrbConfigurator", rowCount: 1 });
							esq.addColumn("NrbMailboxForComunicationWithClient");
							esq.getEntityCollection(function (result) {
								if (!result.success || result.collection.count == 0) {
									throw new Error("Запись конфигуратора не найдена");
								}
								var getMailFromConfigurator = result.collection.first();
								var senderEmailConfigurator = getMailFromConfigurator.values.NrbMailboxForComunicationWithClient;
								next(senderEmailConfigurator);
							}, this);
						},
						function (next, senderEmailConfigurator) {
							data = {
								entitySchemaName: this.$EntitySchemaName,
								title: this.getMasterEntityParameterValue("Number"),
								recepientEmail: this.getMasterEntityParameterValue("NrbContactEmail"),
								contact: this.getMasterEntityParameterValue("Contact"),
								nrbObject: this.getMasterEntityParameterValue("NrbServiceObject"),
								senderEmail: senderEmailConfigurator
							}
							this.sandbox.publish("SendListenerEmailData", data, [this.getEmailMessagePublisherModuleId()]);
						}, this
					);
				}
			},

И опубликовать сообщение SendListenerEmailData

Переопределить схему EmailMessagePublisherPage

define("EmailMessagePublisherPage", ["EmailMessagePublisherPageResources"],
		function(resources) {
			return {
				entitySchemaName: "Activity",
				mixins: {
				},
				messages: {},
				attributes: {},
				methods: {
                  	setListenerEmailData: function(data) {
                      	this.callParent(arguments);
                      	debugger;
                        if(data.entitySchemaName == "NrbCase"){
							this.$Title = data.title;
                          	this.$Recepient = data.recepientEmail;
                          	this.$NrbObject = data.nrbObject.value || {};
                          	this.$Sender = data.senderEmail;
                          	this.$Contact = data.contact;
 
                        }
					},
                },
				diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
			};
		});

 

Нравится

Поделиться

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

Добрый день, коллеги подскажите пожалуйста как по ролям настраивается коммуникационная панель? перестали запускать процессы по нажатию на кнопки, запускаются только под Supervisor подскажите куда капать пробовал выставлять роль системного администратора процессы так же не запускаются. Остальные бизнес процессы запускаются  

Нравится

1 комментарий

Дмитрий, не очень понятно, Вы что-то настраивали в правах и после этого перестало? О каких именно процессах и кнопках речь? Что-то при нажатии пишется в консоли браузера?

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

Коллеги, добрый день.

Столкнулся с проблемой отображения уведомлений в коммуникационной панели.

Задача: при добавлении нового участника в деталь "команда" в карточке продажи - уведомлять добавленного участника в коммуникационной панели.

Делал через бп (скриншот во вложении).



При смене NotificationType на Notification - во вкладке системных уведомлений все отображается корректно. Можно перейти в продажу по ссылке.

При значении Reminding - во вкладке напоминаний пустота (а напоминание нужно как раз именно там). При этом на счетчике самой вкладки видно, что напоминание есть.

Решаема ли задача через бп? Или все же нужно кодить? Сначала подумал что нужно создавать провайдер, но я так понял что после 7.12 схема поменялась? Вообщем буду рад подсказке как это корректнее всего сделать.

С Активностями-Участниками аналогичный бп работает нормально (уведомления в напоминаниях отображаются).

Прикрепленные файлы

Нравится

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

Возможно, при создании записи в таблице Reminding не заполнены нужными значениями все поля. Сравните в базе значения у той записи, что отображается у пользователя в этом разделе верно и у Вашей, созданной при помощи БП.

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

Александр, спасибо за подсказку. В таблице Reminding поле SourceId получает null. Не совсем пока понятно что с этим сделать, но это уже хоть что-то) Буду разбираться.

Александр, на Вашем скриншоте в элементе БП создания напоминания нет заполнения этого поля SourceId, нужно добавить. Возможные варианты значений есть в таблице справочника RemindingSource.

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

Александр, так я тоже пробовал еще в самом начале. К сожалению никакого эффекта это не дает (но кстати SourceId в таблице заполняется, это да).

На данный момент оставил уведомления как NotificationType = Notification. Но хотелось бы конечно разобраться.

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

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

Добрый день!

Почему при добавлении комментария к сообщению ленты само сообщение не поднимается вверх в коммуникационной панели?  Можно ли исправить данную логику?

1 комментарий

Здравствуйте, Александр!

Передали данное пожелание команде разработки для анализа возможности внедрения данного функционала в будущих версиях системы.

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

Добрый день, коллеги.

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

Нравится

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

"Гольфельд Елена Андреевна" написал:где отображаются все эти письма?

По-сути коммуникационная панель и есть раздел для писем. Все письма хранятся как активности с типом "email". Так что можно в теории можно:
а) убрать/подредактировать фильтр в активностях, чтобы выводились письма
б) создать доп раздел, забиндить его на "Activity", установить фильтры: активности с типом email и для, допустим, текущего контакта

"Варфоломеев Данила" написал:По-сути коммуникационная панель и есть раздел для писем.

Согласна с вами, но хотелось бы иметь именно раздел в панели слева.

"Варфоломеев Данила" написал:а) убрать/подредактировать фильтр в активностях, чтобы выводились письма

Пробовала делать фильтр в активностях, в котором указывала Тип = Email, система ничего не находит по данному фильтру. Хотя письма в системе есть.

"Варфоломеев Данила" написал:б) создать доп раздел, забиндить его на "Activity", установить фильтры: активности с типом email и для, допустим, текущего контакта

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

"Варфоломеев Данила" написал:забиндить его на "Activity"

Не подскажите, как это сделать?

"Гольфельд Елена Андреевна" написал:Пробовала делать фильтр в активностях, в котором указывала Тип = Email

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

getFilters: function() {
	//гора кода
	filters.add("NotEmailFilter", Terrasoft.createColumnFilterWithParameter(
		Terrasoft.ComparisonType.NOT_EQUAL, 
		"Type", 
		ConfigurationConstants.Activity.Type.Email));
	//...еще хуже
},

"Гольфельд Елена Андреевна" написал:как-то стандартными средствами.

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

Ну вот как-то так. На скорую руку, получилось на удивление быстро. Однако всё равно требуется полазить по конфигурации, написать совсем немного кода)
scr

"Варфоломеев Данила" написал:Ну вот как-то так. На скорую руку, получилось на удивление быстро. Однако всё равно требуется полазить по конфигурации, написать совсем немного кода)

Вы молодец! Это новый раздел? Не поделитесь как вы реализовали данный функционал?

"Гольфельд Елена Андреевна" написал:Не поделитесь как вы реализовали данный функционал?

1) Создать через мастер разделов новый раздел (заполняете заголовок, код, рабочее место, сохраняете). Вкладку "страница" трогать не нужно
2) Зайти в конфигурацию, найти 2 только что созданных схемы. У меня раздел назывался Emails, соответственно и названия у схем похожие
pic
3) Поменять код схемы раздела на

define("TmEmails1Section" /*вместо TmEmails1Section название схемы раздела*/, ["ConfigurationConstants"], function(ConfigurationConstants) {
	return {
		entitySchemaName: "Activity",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		methods: {
			getFilters: function() {
				var filters = this.callParent(arguments);
				filters.add("NotEmailFilter", this.Terrasoft.createColumnFilterWithParameter(
						this.Terrasoft.ComparisonType.EQUAL, "Type", ConfigurationConstants.Activity.Type.Email
					));
				return filters;
			}
		}
	};
});

4) Поменять код схемы страницы на

define("TmEmails1Page" /*вместо TmEmails1Page название схемы страницы*/, [], function() {
	return {
		entitySchemaName: "Activity",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		methods: {},
		rules: {}
	};
});

Важный момент: справа внизу в свойствах надо указать родительский объект "Страница редактирования активности ( UIv2 )"
5) все. почистить кеш, перезайти, появится развел в указанном ранее рабочем месте. Осталось только настроить колонки

Вроде получилось быстро. Но при этом находясь в новом разделе, все равно выделение слева происходит на раздел Activity.
И фильтры у разделов получаются общие.

"Владимир Соколов" написал:Вроде получилось быстро. Но при этом находясь в новом разделе, все равно выделение слева происходит на раздел Activity.

Ну можно создать представление VwActivity и на основании представления сделать уже раздел. Если в разделе нужно создавать/редактировать/удалять записи - повесьте на представление триггеры.

"Владимир Соколов" написал:И фильтры у разделов получаются общие.

Вполне логично - группы объекта Activity хранятся в объекте ActivityFolder.

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

Начиная с версии bpm’online 7.6 работа с почтой ведется в коммуникационной панели.

О том как настроить правила связывания писем с другими записями системы автоматически, создать письмо, загрузить и обработать email-сообщение, а также запустить бизнес-процесс по email-сообщению читайте в серии обучающих статей на сайте Terrasoft Academy.

Нравится

Поделиться

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