Добрый день!
 

У меня в CTI панели есть два поля:

Линия соединения и Тематика. В Тематике есть справочная колонка Линия соединения. Мне необходимо фильтровать справочник 2 по значению в поле 1.

Я попробовал сделать это тремя способами:

1. lookupListConfig. Не работает, в фильтр даже дебаггер не проваливается.

2. Бизнес правила. Тоже не работают.


3. 
И дальше я попытался написать метод, который будет вызываться по изменению колонки 1, чтобы там уже программно добавлять/удалять необходимые значения из справочника в поле 2.

В итоге и в этот метод не могу провалиться дебаггером.

Скрины по каждому варианту во вложении.
Кто сталкивался? Что происходит? В других карточках все методы работают, именно в CTI панели - нет.

 

Нравится

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

У Вас какая версия? У меня так же не работает код фильтрации в разделе активностей на поле "Ответственный" - версия Sales 7.15.2 для СУБД Oracle

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

 

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

scr_section_service_requests_buttons_on_call.png

Александр Тыра,

В обычных страницах у меня работает. Версия такая же только Service.

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

Да, на крайний случай так и сделаю

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

Всем добрый день! Столкнулся с проблемой, в замещенной схеме CtiPanel не работает UpdateQuery.

define("CtiPanel", [],
	function() {
		return {
			entitySchemaName: "Call",
			messages: {
				"WaSendCallDataToContact":{
					mode: Terrasoft.MessageMode.PTP,
					direction: Terrasoft.MessageDirectionType.PUBLISH
				},
				"WaSetDataToCall": {
					mode: Terrasoft.MessageMode.PTP,
					direction: Terrasoft.MessageDirectionType.SUBSCRIBE
				}
			},
			mixins: {},
			attributes: {
				WaRelationEntities: { dataValueType: Terrasoft.DataValueType.CUSTOM_OBJECT }
			},
			methods: {
				init: function() {
					this.callParent(arguments);
					this.processMessage();
				},
				onCallSavedEvent: function(call) {
					this.callParent(arguments);
					var relations = this.get("WaRelationEntities");
					if(relations && relations.length > 0) {
						var callId = call.databaseUId;
						this.getUpdateQueryCall(callId, relations);
						this.set("WaRelationEntities", null);
					}
					this.sandbox.publish("WaSendCallDataToContact", call, ["_WaSendCallDataToContact"]);
				},

				processMessage: function(){
					this.sandbox.subscribe("WaSetDataToCall", this.onMessageSubscribe.bind(this), this);
				},

				onMessageSubscribe: function(args) {
					this.set("WaRelationEntities", args);
					window.console.log("onMessageSubscribe(args): ", args);
				},

				getUpdateQueryCall: function (id, relations){
					debugger;
					var updateQuery = Ext.create("Terrasoft.UpdateQuery", {
						rootSchemaName: this.entitySchemaName
					});
					var filters = updateQuery.filters;
					filters.addItem(this.Terrasoft.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "Id", id));
					for(var i = 0; i < relations.length; i++) {
						updateQuery.setParameterValue(relations[i].entitySchemaName, relations[i].value, relations[i].type);
					}
					updateQuery.exequte(this.updateQueryCallBack, this);
				},
				updateQueryCallBack: function(result) {
					if(!result.success) {
						window.console.error(result);
						return;
					}
				}
			},
			diff: []
		};
	}
);

ошибки следующие - http://prntscr.com/nh5uws
В чем может быть проблема?

Нравится

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

Алексей,

у Вас же в консоли все написано: 

updateQuery.exequte is not a function

Нужно написать updateQuery.exeсute

 

Алексей,

у Вас же в консоли все написано: 

updateQuery.exequte is not a function

Нужно написать updateQuery.exeсute

 

Алла Савельева,

)) Благодарю, переработал наверное, нужен отдых

странно все равно не сработало даже после изменения, http://prntscr.com/nh7lpa
http://prntscr.com/nh7opx

 

Подключены ли следующие модули "ext-base", "terrasoft", "sandbox" как Ext, Terrasoft, sandbox ?

//те в самом верху должно быть

define("CtiPanel", ["ext-base", "terrasoft", "sandbox"], function(Ext, Terrasoft, sandbox)

 

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

Добрый день.

При нажатии на кнопку у меня должна меняться иконка кнопки. Я заместила  CTI panel, добавила картинку "MyButtonIcon" такого же размера как и остальные иконки. Как передавать новую иконку в "ImageConfig" каждый раз когда я совершаю нажатие.

Нравится

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

В схеме CommunicationPanel для иконок почты, виз и прочего заведено по несколько изображений с однотипными названиями: VisaMenuIcon, VisaMenuPressedIcon, VisaMenuCounterIcon и VisaMenuPressedCounterIcon. И в функции выбирается то или иное:

/**
 * Creates menu icon image for current menu item state.
 * @private
 * @param {String} itemTag Menu item tag.
 * @return {Object} Menu item icon config.
 */
getItemImageConfig: function(itemTag) {
	var resourceName = "";
	var menuItemIconNameTemplate = this.get("MenuItemIconNameTemplate");
	if (!this.getIsFeatureEnabled("OldUI")) {
		resourceName = this.Ext.String.format(menuItemIconNameTemplate, itemTag, "", "");
		return this.get("Resources.Images." + resourceName + "SVG");
	}
	var isItemPressed = (this.get("SelectedMenuItem") === itemTag);
	var isItemCounter = this.get(itemTag + "Counter");
	var pressedSuffix = isItemPressed ? "Pressed" : Ext.emptyString;
	var counterSuffix = isItemCounter ? "Counter" : Ext.emptyString;
	resourceName = Ext.String.format(menuItemIconNameTemplate, itemTag, pressedSuffix, counterSuffix);
	return this.get("Resources.Images." + resourceName);
},

 

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

Добрый день, подскажите где можно почитать или как алгоритмический вставить в левую панель свои кнопки?
Вроде подобного:
1
Задача стоит следующая - добавить кнопку, привязать к ней метод который будет изменять системную переменную, в зависимости от значения true или false кнопка изменяет внешний вид.
Покопался в файлах нашел CTIBase.CtiLeftPanelUtilities думаю это верное направление, но никак не могу структурировать это все

Нравится

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

У Вас не корректно прикрепился скриншот. Битый файл.

Попробуйте посмотерть релазиацию в схеме "LeftPanelTopMenuModule" (Рис. 1).


Рис. 1

Это не битый файл, это временное хранилище, через сутки ссылка становится битой
Продублирую еще раз
1
В общем да, LeftPanelTopMenuModule это то что надо, но можно пояснений что там происходит?
Попробовал наследоваться от этой схемы чтобы попробовать для начала добавить туда элемент, но пропали иконки, открыл стандартную, чтобы иконки достать, в ней они есть но не отображаются

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

В модуле описан функционал верхнего меню.
А что консоль говорит? Отладку делали?

Вы правильно заместили? Так как это модуль, то необходимо его замещать полностью со всеми стрингами и методами.
Изображения в модулях недоступны для скачивания или для просмотра. Как я понял, то можно только загружать файлы в приложение.

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