Всем привет!
В карточке договора у меня есть поле выбора контраента. Хочу в списке для выбора показывать не
всех контрагентов, а только, принадлежащих одной заранее определенной отрасли.
Создал замещающий объект, добавил бизнес-правило:
"UsrOSAGOPolicyEnsCompany": {
"FiltrationEnsCompanyByIndustry": {
"ruleType": BusinessRuleModule.enums.RuleType.FILTRATION,
"autocomplete": false,
"baseAttributePath": "Industry",
"comparisonType": this.Terrasoft.ComparisonType.EQUAL,
"type": BusinessRuleModule.enums.ValueType.CONSTANT,
"value": "ffbf1e56-f36b-1410-c493-00155d043205"
}
}
}
Проверяю. Правило не работает (пустой список). В консоли браузера обнаружил сообщение об ошибке:
При выполнении запроса возникла ошибка
статус ответа: 500 (ArgumentNullOrEmptyException)
url запроса: ../DataService/json/SyncReply/SelectQuery
метод: POST
данные запроса: {"rootSchemaName":"Account","operationType":0,"filters":{"items":{"searchFilter":{"items":{"94caf548-a573-4404-84df-4e20f3ae94cd":{"items":{"undefined...
Uncaught Значение аргумента "columnPath" не может быть пустым или неопределенным
Где допустил ошибку?
Нравится
Здравствуйте!
Вы некорректно используете бизнес правила. Ваш код должен быть приблизительно следующим:
rules: { "UsrOSAGOPolicyEnsCompany": { FiltrationEnsCompanyByIndustry: { ruleType: BusinessRuleModule.enums.RuleType.FILTRATION, autocomplete: true, autoClean: true, baseAttributePatch: "Industry", comparisonType: Terrasoft.ComparisonType.EQUAL, type: BusinessRuleModule.enums.ValueType.ATTRIBUTE, attribute: "Id" }
В случае использования этого кода, значение поля Industry объекта UsrOSAGOPolicyEnsCompany будет сравниваться с значением поля Id объекта Industry.
Более подробно об использовании бизнес правил Вы можете прочитать здесь.
"Демьяник Алексей Олегович" написал:
В случае использования этого кода, значение поля Industry объекта UsrOSAGOPolicyEnsCompany будет сравниваться с значением поля Id объекта Industry.
Дело в том, что мне не нужен биндинг к объекту Industry. Мне просто нужно сделать доступными для выбора только записи с определенным значениемм поля IndustryId.
Попробуйте сделать так:
rules: { "UsrOSAGOPolicyEnsCompany": { FiltrationEnsCompanyByIndustry: { ruleType: BusinessRuleModule.enums.RuleType.FILTRATION, autocomplete: false, baseAttributePatсh: "Industry", /*здесь пропущена буква*/ comparisonType: this.Terrasoft.ComparisonType.EQUAL, type: BusinessRuleModule.enums.ValueType.CONSTANT, value: "ffbf1e56-f36b-1410-c493-00155d043205" } } }
Точно!
Алексей, спасибо большое! Теперь все получилось (ох, уж эти опечатки) :)