Добрый день, коллеги!
Есть задача написать бизнес правило для страницы обращения портальных пользователей. Т.е. если мы заходим по пользователем портала с типом контакта Клиент, то пользователь видит колонку Конфигурационные единицы. Если заходим по пользователем портала с типом контакта Сотрудник, то нет. Вопрос: как мне с помощью бизнес правила в 7.10 извлечь контакт текущего пользователя и отфильтровать его по типу контакта?

Нравится

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

Добрый день, Елена!

Можете поступить следующим образом - сравнивать значение системной переменной CURRENT_USER_CONTACT.TypeId с необходимым айдишником типа пользователя. Их можно найти в таблице ContactType.

Илья,

"Мотков Илья" написал:CURRENT_USER_CONTACT.TypeId

Захожу под портальным пользователем, на странице портального обращения сделал вывод в консоли:

console.log(Terrasoft.SysValue.CURRENT_USER_CONTACT);

выводится:

Object {primaryImageValue: "00000000-0000-0000-0000-000000000000", value: "fc5a908f-b121-4538-8e87-0bf92b5be23c", displayValue: "Погорелов Геннадий"}

Типа тут нет. Более того, если я попробую сделать запрос по id данных контакта:

var currentUser = Terrasoft.SysValue.CURRENT_USER_CONTACT.value;
				var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
				    rootSchemaName: "Contact"
				});
 
				esq.addColumn("Type");
 
				esq.getEntity(currentUser, function(result) {
				    if (!result.success) {
				        console.log("Ошибка запроса данных");
				        return;
				    }
				    console.log(result)
				    console.log(result.entity.get("Type"));
				}, this);

В консоли выводится null.

Так как получить данные о типе пользователя?

Денис, добрый день.

Прошу извинить, действительно, дезинформировал. Тогда все же прийдется выполнять esq, допустим, в init`e, заносить полученное значение в аттрибут и сравнивать уже его. NULL вы получили по той причине, что колонка называется TypeId.

Илья,

"Мотков Илья" написал:колонка называется TypeId.

Колонка в Contact именно Type. TypeId - такой колонки нет. Если попробовать задать, то result.entity.get вообще выдаёт ошибку.

Object {success: true, entity: null} - вот так выглядит вывод данных по запросу. То есть явно дело не в пустых колонках.

Денис, рекомендую все же посмотреть напрямую в БД, заполнено ли это поле. Вот пример из коробки, модуль CtiPanelIdentificationUtilities:
filterGroup.add("IsEmployeeType", Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.EQUAL, "Contact.Type", ConfigurationConstants.ContactType.Employee));

Вопрос был про 7.10, там точно эта колонка используется.

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