Нужно выгружать в excel более 5000 строк

Здравствуйте, у меня другая проблема. Нужно выгружать в excel более 5000 строк.
Я понимаю, что это внутренние установки, но не могу найти где они установлены.
Возможно ли поднять лимит вывода строк в excel файл?

Добрый день,

Действие excel выгружает ровно те данные, которые отображаются в таблице, с которой это действие связано. Поэтому вам нужно добиться того, чтобы в таблице можно было показать более 5000 строк.

Посмотрите сюда:
https://doc.cuba-platform.com/manual-7.2-ru/app_properties_reference.html#cuba.gui.genericFilterMaxResultsOptions
и
https://doc.cuba-platform.com/manual-7.2-ru/entity_statistics.html

Всё это как-то безвыходно. Получается, что через отчеты невозможно выгрузить 5000+ строк. Там в конфиге файл read-only где
@Default(“NULL, 20, 50, 100, 500, 1000, 5000”)
String getGenericFilterMaxResultsOptions();
Фишка в том, что у меня есть как образец рабочая реализация которая выгружает в excel до 100000 заказов, которые являются Entity
Вот код
TaskResult result = metadata.create(TaskResult.class);
result.setName(“Export orders to Excel”);
result.setUser(AppContext.getSecurityContext().getSession().getUser());
result.setStatus(“Preparing task”);
TaskResult taskResult = dataManager.commit(result);

    BackgroundTaskHandler<Void> taskHandler = backgroundWorker.handle(new BackgroundTask<Integer, Void>(dataExportService.getBackgroundTaskTimeout()) {
        @Override
        public Void run(TaskLifeCycle<Integer> taskLifeCycle) throws Exception {
            LoadContext<Order> context = ordersDl.createLoadContext();
            context.setView("order-id-view");
            context.getQuery().setMaxResults(100000);
            List<Entity> orders = dataManager.loadList(context).stream()
                .map(it -> (Entity)it)
                .collect(Collectors.toList())
            ;
            dataExportService.export("order_list", orders, taskResult);
            return null;
        }
    });

У меня задача выгрузить не CUBA Entity, а другую сущность, которую я готовлю из заказов. Я попробовал немного изменить этот код. Вот часть с изменениями
LoadContext context = ordersDl.createLoadContext();
context.setView(“order-id-view”);
context.getQuery().setMaxResults(100000);
List orderlist = dataManager.loadList(context).stream()
.collect(Collectors.toList());

            e2EB2CService.getE2EB2Clist(orderlist);

То есть готовлю не List а List и далее отдельно в другом классе с помощью POI готовлю excel файл и выплевываю его в папку Downloads
Но результат ещё печальнее чем в отчетах. Выплевываются только 31 строка с экрана. Плюс приходится решать кучу гемора с кубинскими view и IOException: Cannot write data, document seems to have been closed already вылетает если строк более 15

Если вам нужно выгружать большой объем данных, порядка 100 000 строк, то Excel действие для этого использовать не нужно. Это просто очень неэффективно по памяти.
Для больших выгрузок лучше подключить аддон Reports. И создать отдельный отчет, с параметрами, если нужно задавать параметры выборки. Загрузку данных в отчете делать не через JPQL, а написать SQL запрос самостоятельно.
Формат - XLSX или даже CSV. CSV будет самый легковесный.

Кнопку для запуска отчета можно добавить в этот же экран, где была кнопка Excel.

Я может быть изначально это не описал, но реализация в отчетах (SQL) у меня есть. Именно она обрезает результат на 5000 строк. И, как я понимаю, это системное ограничение. Если его можно обойти, подскажите как. По крайней мере в разделе где готовятся отчеты на такую возможность нет указаний. Поэтому я и попытался написать код, имея другой такой отчет, как пример. Но понял, что он реализован на существующем CUBA Entity, а делать новый Entity только под отчет не разумно и такое на прод никто не пропустит.

При выполнении SQL полос в отчетах нет ограничения на 5000 строк, и вообще нет никаких ограничений. Я не понимаю, откуда у вас может обрезаться результат.

Можете включить SQL логгирование eclipselink.sql, чтобы понять, какие реально запросы идут к БД.
см. Полезные логгеры - Платформа CUBA. Руководство по разработке приложений

P. S. вы точно говорите об SQL полосе в отчетах? Обычно когда говорят о “выгружать в excel”, то имеют ввиду ExcelAction - Платформа CUBA. Руководство по разработке приложений

Я имею ввиду Add-on Reporting, в который грузится excel template, sql script, и после настроек он поверх отобранных сущностей делает файл и выплевывает в Downloads. Что касается Excel Action, то я видел его в материалах, но примеры там не рабочие. Из них не видно что он цепляет, что делает, где вообще эти классы располагаются в чудесной структуре Cuba. Без рабочего примера сделать что-то работающее непонятно как.

Может я неправильно понял как работает Action, но как я понял, в excel можно скачать то, что выведено на экран. Тогда этот путь не подходит. Мне нужно выгружать в excel не CUBA Entity, а сущность, которой в базе нет и которую я могу приготовить из Order, который является CUBA Entity. О создании новой CUBA Entity специально для отчета речь идти не может.