Почему нельзя прочитать EntitySchemaQuery после отключения одного филтра?
Согласно статье https://academy.terrasoft.ru/documents/technic-sdk/7-16/klass-entityschemaquery-rabota-s-filtrami можно подключать и отключать фильтры и далее считывать уже разные отфильтрованные данные
var esqFirstFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Country.Name", "Испания"); var esqSecondFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Country.Name", "Франция"); esq.filters.logicalOperation = Terrasoft.LogicalOperatorType.OR; esq.filters.add("esqFirstFilter", esqFirstFilter); esq.filters.add("esqSecondFilter", esqSecondFilter); esq.getEntityCollection(function (result) { if (result.success) { result.collection.each(function (item) { // Обработка элементов коллекции. }); } }, this); // Для второго фильтра указывается, что он не будет участвовать в построении результирующего запроса. // При этом данный фильтр не удаляется из коллекции фильтров запроса. esqSecondFilter.isEnabled = false; esq.getEntityCollection(function (result) { if (result.success) { result.collection.each(function (item) { // Обработка элементов коллекции. }); } }, this);
Решил сделать так же
var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "KtJasperFullNumberPool" }); var requestFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "KtRequest", this.get("KtRequest").value); var productFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "KtOpportunityProductInterest", this.get("Id")); esq.filters.add("requestFilter", requestFilter); esq.filters.add("productFilter", productFilter); esq.getEntityCollection(function (result) { if (result.success) { this.set("IsVisibleKtJasperNumbersInKtRequestDetail", result.collection.getItems().length > 0 ? true : false); } }, this); productFilter.isEnabled = false; esq.getEntityCollection(function (result) { if (result.success) { this.set("NumberCounts", result.collection.getItems().length); } }, this);
Но при запуске, когда доходим до второго "esq.getEntityCollection" получаю ошибку "message: Uncaught Terrasoft.ItemAlreadyExistsException: Элемент с ключом "24f2c79e-4a52-457f-9e8e-e24009bb135b" Уже существует"
Как бы не старался, не могу сделать что бы как в примере с ак=ккадемии работало.
Подскажите, что я делаю не так, и что это за элемент что при чтении создается новый?
Нравится
Ваш же пример у меня успешно отрабатывает, только запрос в другую колонку делаю и другие значения фильтров.
Литвинко Павел,
в какую колонку? Может у меня что-то не так?
А что это за GUID «24f2c79e-4a52-457f-9e8e-e24009bb135b»?
Это запись в таблице KtJasperFullNumberPool, Id поля, фильтра или ещё что-то?