Добрый день, коллеги!
Есть задача написать бизнес правило для страницы обращения портальных пользователей. Т.е. если мы заходим по пользователем портала с типом контакта Клиент, то пользователь видит колонку Конфигурационные единицы. Если заходим по пользователем портала с типом контакта Сотрудник, то нет. Вопрос: как мне с помощью бизнес правила в 7.10 извлечь контакт текущего пользователя и отфильтровать его по типу контакта?
Нравится
Добрый день, Елена!
Можете поступить следующим образом - сравнивать значение системной переменной 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, там точно эта колонка используется.