1

Отчёт по нескольким объектам с помощью startBatch

Тема: Отчёт по нескольким объектам с помощью startBatch

Добрый день.
Очень нужна консультация по построению отчёта, буду рад любой помощи.
Нужно построить отчёт по нескольким объектам, соответственно на выбор два пути - либо отчёт по группе, либо методом startBatch.
Из всей информации что смог найти, понял только то, что этот метод позволяет выполнить сразу несколько запросов, но каким именно образом непонятно. Может у кого-нибудь есть наглядный пример или описание?

2

Отчёт по нескольким объектам с помощью startBatch

Re: Отчёт по нескольким объектам с помощью startBatch

var remote = wialon.core.Remote.getInstance();

remote.startBatch();

resource.execReport(...);
remote.remoteCall('report/get_result_rows', { ... }, function(error, data) { ... });

resource.execReport(...);
remote.remoteCall('report/get_result_rows', { ... }, function(error, data) { ... });

...

remote.finishBatch(function onFinish(code, combinedCode, errors, codes) { ... });

remote.startBatch начинает сбор методов для группового выполнения, remote.finishBatch оканчивает и отправляет запрос.

Все запросы внутри batch'а выполняются на сервере последовательно. Поэтому можно выполнить метод построения отчёта, затем метод получения строк таблиц этого отчёта. Поскольку результат отчёта единственный на всю сессию — в результате будут строки последнего выполненного отчёта.

При использовании пакетного выполнения не получится использовать методы ReportResult который обычно приходит в коллбек execReport, поскольку коллбеки методов внутри batch'а будут вызваны только по окончанию всего batch'а. Поэтому придётся использовать remote.remoteCall и явные Remote API методы.