1

Формирование отчета на основе шаблона созданного в ЛК - пошагово

Тема: Формирование отчета на основе шаблона созданного в ЛК - пошагово

Доброго времени суток, Коллеги!
Пытаюсь понять как сформировать отчет, шаблон которого уже сформирован в Личном Кабинете.
Как я понял из описания, для этого необходимо сделать запрос report/exec_report. Но вопросы возникают практически по каждому параметру.

Ранее на мой запрос вы мне выслали pdf файл "Wialon API. Первые шаги". Из текста исходит, что при каждом запросе нужно создавать нового пользователя и т.п.
Буду очень признателен за пошаговый ответ, тем более что он будет полезен всем кто начинает работать с вашей системой.

____://___-api.wialon.___/wialon/ajax.html?svc=report/exec_report&sid=<sid>&params={
// Идентификатор ресурса - учитывая, что шаблон отчета уже есть и он хранится на каком то сайте партнера и подключение по токену уже произведено, "sid" получен - значит и этот параметр наверное хранится где то в ответе на подключение. Или как его получить? Этот идентификатор может измениться или можно отдельным запросом один раз получить значение, сохранить его в своей Базе Данных (далее БД) и потом вызывать - это дало бы возможность написать универсальную функцию!?
"reportResourceId":<long>,
// Идентификатор шаблона - где его взять, я думаю, что он должен быть где то на экране при настройке шаблона. Или нужен отдельный запрос? Мне сейчас известно только имя отчета настроенного в личном кабинете, ну сажем "поездки.BI"
// Этот идентификатор может измениться или можно отдельным запросом один раз получить значение, сохранить его в своей БД
"reportTemplateId":<long>,
// Идентификатор элемента - что вообще имеется ввиду? У нас в шаблоне отчета есть поле "Элемент" например, там список: [Автопарк]; [Тягачи Рефы]; [Тягачи Шторы]
// мы выбираем "[Тягачи Рефы]", у него будет индекс 1 или 2 или вообще большое число - идентификатор. Если это большое число, то как его получить и опять же можно ли его сохранить в БД ?
"reportObjectId":<long>,
// ID подэлемента - здесь пока не спрашиваю, т.к. думаю, что у нас такого нет и надо сперва разобраться с reportObjectId
"reportObjectSecId":<long>,
// reportObjectIdList - здесь пока не спрашиваю, т.к. думаю, что у нас такого нет
"reportObjectIdList":[<uint>, ...]},
// Уточнение навсякий случай: Беру дату и получаю количество секунд прошедших с 01.01.1970 00:00:00
"interval":{"from":<uint>,"to":<uint>,"flags":<uint>},
// Ставим 0 чтоб дождаться ответа
"remoteExec":<uint>,
// Этот параметр вообще не ставим т.к. у нас есть шаблон
"reportTemplate":<object>}

2

Формирование отчета на основе шаблона созданного в ЛК - пошагово

Re: Формирование отчета на основе шаблона созданного в ЛК - пошагово

В телегу мне напишите, объясню. @dire77

gps-report.ru
Разработка приложений для Wialon
Мы расширяем возможности мониторинга!
Telegram: @dire77
3

Формирование отчета на основе шаблона созданного в ЛК - пошагово

Re: Формирование отчета на основе шаблона созданного в ЛК - пошагово

i051273 здравствуйте,

reportResourceId -- это идентификатор ресурса в котором создан отчет. Для работы пользователя с определенными отчетами ему необходимо предоставить права на ресурс на просмотр отчетов. Идентификатор уникален и не меняется для конкретного ресурса.
Если ресурс удален и вы затем создали новый и добавили туда отчеты, то у него уже будет другой идентификатор.

reportTemplateId -- это идентификатор отчета. Значение ID отчета уникально в рамках конкретного ресурса. Т.е. при создании отчетов им присваивается порядковый ID - 1, 2, 3, и т.д. Если отчет удаляется, то созданному потом отчету будет присвоен ID удаленного. Например, у вас было 4 отчета с ID 1, 2, 3, 4. Удалили отчет с ID 2. Остались 1, 3, 4. Создали новый и ему присваивается ID 2. Аналогичная ситуация и с другим содержимым ресурсов - геозоны, водители, прицепы и т.п.

reportObjectId -- это уже ID элемента, для которого выполняется отчет. В данный параметр указывается именно ID макроэлемента (объект, ресурс, группа объектов, маршрут). Это значение уникально и не изменяется.

reportObjectSecId -- данный параметр используется в тех случаях, если отчет выполняется по микроэлементам. Например, есть отчеты с типом Геозоны, который выполняется не по объектам, а по геозонам. В таком случае в  reportObjectId указывается ID ресурса где созданы геозоны, а в reportObjectSecId уже ID самих геозон (про ID геозон писал выше).

reportObjectIdList -- этот параметр содержит массив ID элементов. Например, если отчет выполняется для группы объектов, то можно указать ID одной группы в reportObjectId и дополнительно передать массив ID других групп в reportObjectIdList

interval -- все верно, значения интервалов передается в UNIX-time. Обратите вниманием, что часовой пояс можно задавать после логина и тогда он отразиться на результате отчета. Запрос [url=https://sdk.wialon.com/wiki/ru/sidebar/remoteapi/apiref/render/set_locale]set_locale
[/url]

Касательно поиска ID элементов. Все ID можно получить запросом search_items
В параметре itemsType указывается тип макроэлемента по которому выполняется поиск. Результат регулируется значением параметра flags. Это значение изменяется в зависимости от типа макроэлемента. Полный список описан в документации. Пример также есть по ссылке
Т.е. если вам нужно найти шаблоны отчетов, то поиск выполняется по ресурсам (avl_resource) с флагом 8193 - это комбинация флагов 8192 и 1. Первый возвращает шаблоны, а второй базовую информацию по ресурсам включая ID.

На нашем YouTube канале также есть видео туториалы с некоторыми запросами, в том числе на поиск элементов -- https://youtu.be/xvLXxop6HGk?list=PLyks … yjuW4XCUoF

Anton Zinovyev
Technical Care Engineer (L2)
Wialon