Fleetrun
Hecterra
NimBus
Другие приложения
Wialon для Android/iOS
Logistics
Wialon Local
Wialon Hosting
WiaTag
Configurator
LeaseControl
Содержание
Введение в SDK: выполнение отчетов
  • technical_consulting

В данной статье будет рассмотрена работа с шаблонами отчетов при помощи Remote API. Выполнение отчетов через SDK подразумевает последовательность обязательных действий, которые не заметны при работе в веб-интерфейсе. Для полноты картины будут приведены примеры работы с отчетами с группировкой и без группировки.

Также вам могут быть полезны:

Создание отчетов

В большинстве случаев пользователи создают шаблоны отчетов в веб-интерфейсе и потом выполняют их с помощью API-запросов. Далее мы будем рассматривать именно такие случаи.

Однако создание шаблонов отчетов доступно и через SDK, для чего нужно использовать запрос report/update_report.

Последовательность действий

Для получения результатов отчетов с помощью Remote API необходимо отправить несколько запросов подряд. Использование некоторых из них зависит от наличия группировки в отчете и количества анализируемых данных. Приведем самый общий список действий:

  1. Авторизация через запрос token/login и настройка локализации через запрос render/set_locale.

  2. Получение необходимых системных ID для:
    • элемента, для которого необходимо выполнить отчет;

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

    • ресурса, в котором содержится шаблон отчета;
    • самого шаблона отчета.

  3. Выполнение отчета через запрос report/exec_report.

    В общем случае мы рекомендуем выполнять отчет в фоновом режиме на сервере. Несмотря на увеличение количества шагов, это бывает полезно, если отчет может выполняться долго из-за большого количества объектов, интервала выполнения отчета, количества таблиц и графиков и т. д. Далее в статье будет рассмотрено именно выполнение отчета в фоновом режиме.

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

  4. Проверка статуса выполнения отчета через запрос report/get_report_status.
    После подтверждения готовности отчета можно будет продолжать движение по инструкции.

  5. Получение результата отчета через запрос report/apply_report_result.
    Результат данного запроса предоставит количество строк, столбцов и уровней вложенности при наличии группировки.

  6. Получение строк таблицы через запрос report/get_result_rows для отчета без группировки или через запрос report/select_result_rows для отчета с группировкой.
    Выбор таблицы, уровней вложенности и отображаемых строк осуществляется на основе данных из ответа на предыдущий запрос.

  7. Экспорт в файл через запрос report/export_result.
    Данный шаг является необязательным, но достаточно несложным и полезным, поэтому мы рассмотрим и его.

  8. Удаление результата предыдущего отчета через запрос report/cleanup_result.
    Данный шаг является обязательным, если в одной сессии необходимо выполнить несколько отчетов.


Далее рассмотрим два примера работы с отчетами (без группировки и с группировкой).

Работа с отчетом без группировки

Необходимо получить результаты выполнения отчета Список поездок, доступного авторизованному по токену пользователю, для объекта Грузовик 0769 (системный ID 55555) за интервал времени с 2023 Июнь 30 20:00 до 2023 Июль 01 03:59 (GMT+0) в виде ответа на API-запрос и PDF-файла.

В веб-интерфейсе результат выглядит следующим образом:

1. Авторизация и настройка локализации

Используем запрос token/login.

https://hst-api.wialon.com/wialon/ajax.html?svc=token/login&params={"token":"ЗНАЧЕНИЕ_ТОКЕНА"}

Более подробно авторизация описана в одной из предыдущих статей.

Настройка локализации включает в себя установку часового пояса (она также была рассмотрена ранее), формата даты и других параметров.

Если настройка часового пояса выполнена в рамках сессии, то далее при выполнении отчета время задается в GMT+0.

Используем запрос render/set_locale.

https://hst-api.wialon.com/wialon/ajax.html?svc=render/set_locale&params={"tzOffset":134217728,"language":"ru","formatDate":"%25E.%25m.%25Y%20%25H:%25M:%25S"}&sid=ИДЕНТИФИКАТОР_СЕССИИ
Параметр и его значениеОписание
"tzOffset":134217728

Будет применен часовой пояс GMT+0 (без перехода на летнее время).

"language":"ru"

Будет использоваться русский язык.

"formatDate":"%25Y.%25m.%25E%20%25H:%25M:%25S"Будет использоваться формат даты yyyy-MM-dd и формат времени HH:mm:ss.

Невыполнение настройки локализации может приводить к различию результатов при выполнении отчета через Remote API и веб-интерфейс.

2. Получение системных ID

В одной из предыдущих статей мы уже описывали, как выполнять поиск элементов по критериям, поэтому сейчас обратим внимание только на поиск ресурса и шаблона отчета.

Получим список всех ресурсов, в которых создан шаблон отчета с именем Список поездок, доступных пользователю, для которого выполнена авторизация по токену. Используем запрос core/search_items:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&params={"spec":{"itemsType":"avl_resource","propType":"propitemname","propName":"reporttemplates","propValueMask":"Список%20поездок","sortType":"sys_name"},"force":1,"flags":8193,"from":0,"to":0}&sid=ИДЕНТИФИКАТОР_СЕССИИ
Параметр и его значениеОписание
"itemsType":"avl_resource"

Поиск будет выполнен по ресурсам.

"propType":"propitemname"Поиск будет выполнен по имени подэлемента.
"propName":"reporttemplates"

Поиск будет выполнен по имени шаблона отчета.

"propValueMask":"Список%20поездок"

В ответе будет отображен список ресурсов, в котором создан шаблон отчета с названием Список поездок.

"sortType":"sys_name"Сортировка будет выполнена по имени элемента.
"force":1Результаты предыдущих поисков не будут учитываться.
"flags":8193

В ответе будет содержаться информация об основных свойствах и о созданных шаблонах отчетов.

1 + 8192 = 8193

"from":0;"to":0Ограничения по количеству найденных элементов не будут применяться.
 Ответ
{
	"searchSpec":{
		"itemsType":"avl_resource",
		"propName":"reporttemplates",
		"propValueMask":"Список поездок",
		"sortType":"sys_name",
		propType:"propitemname",
		or_logic:"0"
		},
	"dataFlags":8193,
	"totalItemsCount":1,
	"indexFrom":0,
	"indexTo":0,
	"items":[
		{
			"nm":"sdk_account",
			"cls":3,
			"id":12345678,
			"mu":0,
			"rep":{
				1:{
					"id":1,
					"n":"Список поездок",
					"ct":"avl_unit",
					"c":59352
				},
				2:{
					"id":2,
					"n":"Поездки с группировкой",
					"ct":"avl_unit",
					"c":6883
				}
			},
			"repmax":-1,
			"uacl":-1
		}
	]
}

Обратим внимание на следующие параметры из ответа:

  • nm — имя ресурса;
  • rep — массив шаблонов отчетов, созданных в ресурсе;

    Если данный параметр отображается пустым, то это означает, что в ресурсе не создано шаблонов отчетов.

  • n — имя подэлемента;
  • id — системный ID.

В данном случае пользователю доступен ресурс sdk_account с системным ID 12345678, в котором находится шаблон отчета Список поездок с системным ID 1.

3. Выполнение отчета

Используем запрос report/exec_report.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/exec_report&params={"reportResourceId":12345678,"reportTemplateId":1,"reportObjectId":55555,"reportObjectSecId":0,"interval":{"flags":0,"from":1688144400,"to":1688173199},"remoteExec":1}&sid=ИДЕНТИФИКАТОР_СЕССИИ
Параметр и его значениеОписание
"reportResourceId":12345678

Шаблон отчета будет выбран из ресурса с системным ID 12345678.

"reportTemplateId":1

Будет выполнен шаблон отчета с системным ID 1.

"reportObjectId":55555

Отчет будет выполнен для объекта с системным ID 55555.

"reportObjectSecId":0Отчет будет выполняться не для подэлемента.
"flags":0Отчет будет выполнен за указанный интервал.
"from":1688144400

Началом интервала будет 2023 Июнь 30 20:00 (GMT+0).

В запросах используется Unix-время. Для перевода даты и времени в Unix-время можно использовать общедоступные онлайн-инструменты.

"to":1688173199Концом интервала будет 2023 Июль 01 03:59 (GMT+0).
"remoteExec":1Отчет будет выполнен в фоновом режиме на сервере.
 Ответ
{
	"remoteExec":1
}

4. Проверка статуса выполнения

Так как отчет выполняется в фоновом режиме на сервере, то проверим статус его выполнения, используя запрос report/get_report_status.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/get_report_status&params={}&sid=ИДЕНТИФИКАТОР_СЕССИИ
 Ответ
{
	"status":4
}

Код статуса 4 означает, что отчет выполнен. Интерпретацию остальных значений можно найти на странице с описанием запроса.

5. Получение результата отчета

Используем запрос report/apply_report_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/apply_report_result&params={}&sid=ИДЕНТИФИКАТОР_СЕССИИ
 Ответ
{
	"reportResult":{
		"msgsRendered":0,
		"stats":[],
		"tables":[
			{
				"name":"unit_trips",
				"label":"Поездки",
				"grouping":{},
				"flags":4224,
				"rows":4,
				"level":1,
				"columns":5,
				"header":[
					"№",
					"Начало",
					"Конец",
					"Длительность",
					"Пробег"
				],
				"header_type":[
					"",
					"time_begin",
					"time_end",
					"duration",
					"mileage"
				]
			}
		],
		"attachments":[]
	}
}

Три ключевых параметра из ответа, интересующих нас, выглядят следующим образом:

  • tables — показывает количество таблиц в отчете в виде массива. В данном случае упоминается только одна таблица — Поездки, следовательно, ее индекс будет равен 0.
  • rows — количество строк в таблице, в данном случае их 4. Следовательно, их индексы лежат в диапазоне от 0 до 3.
  • level — количество уровней вложенности, в данном случае оно равно 1, так как в отчете отсутствует группировка.

Индексы таблиц, строк, столбцов и уровней вложенности отсчитываются с 0. Это стоит учитывать при последующем обращении к ним.

Также можно коротко перечислить другие параметры из ответа. Параметр columns говорит о количестве столбцов, далее их имена описаны в параметре header. Нулевое значение параметра msgsRendered говорит о том, что в шаблоне отчета не включено отображение сообщений на карте. Пустые параметры stats и attachments говорят о том, что в шаблоне отчета отсутствует Статистика и приложения (например, графики).

6. Получение строк таблицы

Зная индекс содержимого таблицы, отобразим ее, используя запрос report/get_result_rows.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/get_result_rows&params={"tableIndex":0,"indexFrom":0,"indexTo":3}&sid=ИДЕНТИФИКАТОР_СЕССИИ
Параметр и его значениеОписание
"tableIndex":0

Будет отображено содержимое таблицы с индексом 0.

"indexFrom":0

Первая отображаемая строка будет иметь индекс 0.

"indexTo":3

Последняя отображаемая строка будет иметь индекс 3.

 Ответ
[
	{
		"n":0,
		"i1":0,
		"i2":790,
		"t1":1688144420,
		"t2":1688154878,
		"d":0,
		"c":[
			"1",
			{
				"t":"2023-06-30 20:00:20",
				"v":1688144420,
				"y":47.2941741943,
				"x":26.4906959534,
				"u":55555
			},
			{
				"t":"2023-06-30 22:54:38",
				"v":1688154878,
				"y":43.8697662354,
				"x":26.0177116394,
				"u":55555
			},
			"2:54:18",
			"469.54 км"
		]
	},
	{
		"n":1,
		"i1":936,
		"i2":2171,
		"t1":1688155181,
		"t2":1688169690,
		"d":0,
		"c":[
			"2",
			{
				"t":"2023-06-30 22:59:41",
				"v":1688155181,
				"y":43.8698196411,
				"x":26.0177154541,
				"u":55555
			},
			{
				"t":"2023-07-01 03:01:30",
				"v":1688169690,
				"y":41.7139854431,
				"x":26.3660545349,
				"u":55555
			},
			"4:01:49",
			"343.84 км"
		]
	},
	{
		"n":2,
		"i1":2340,
		"i2":2486,
		"t1":1688170034,
		"t2":1688170841,
		"d":0,
		"c":[
			"3",
			{
				"t":"2023-07-01 03:07:14",
				"v":1688170034,
				"y":41.7140579224,
				"x":26.365901947,
				"u":55555
			},
			{
				"t":"2023-05-01 09:23:10",
				"v":1688170841,
				"y":41.7122383118,
				"x":26.3712425232,
				"u":55555
			},
			"0:13:27",
			"1.39 км"
		]
	},
	{
		"n":3,
		"i1":2833,
		"i2":2910,
		"t1":1688171565,
		"t2":1688173175,
		"d":0,
		"c":[
			"4",
			{
				"t":"2023-07-01 03:32:45",
				"v":1688171565,
				"y":41.7120819092,
				"x":26.3711204529,
				"u":55555
			},
			{
				"t":"2023-07-01 03:59:35",
				"v":1688173175,
				"y":41.5760040283,
				"x":26.9871864319,
				"u":55555
			},
			"0:26:50",
			"57.84 км"
		]
	}
]

7. Экспорт в файл

Экспортируем результат в PDF-файл, используя запрос report/export_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/export_result&params={"format":2,"compress":0,"outputFileName":"Список%20поездок"}&sid=ИДЕНТИФИКАТОР_СЕССИИ
Параметр и его значениеОписание
"format":2

Результат отчета будет экспортирован в формат PDF.

"compress":0Экспортируемый файл не будет сжат (добавлен в архив).
"outputFileName":"Список%20поездок"Экспортируемый файл будет иметь имя Список поездок.

Ответ на данный API-запрос не отображается, вместо этого автоматически начинается загрузка файла.

8. Удаление результата предыдущего отчета

Используем запрос report/cleanup_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/cleanup_result&params={}&sid=ИДЕНТИФИКАТОР_СЕССИИ
 Ответ
{
	"error":0
}

Нулевое значение означает успешное удаление.

Работа с отчетом с группировкой

Необходимо получить результаты выполнения отчета Поездки с группировкой, доступного авторизованному по токену пользователю, для объекта Грузовик 0769 (системный ID 55555) за интервал времени с 2023 Июнь 30 20:00 до 2023 Июль 01 03:59 (GMT+0) в виде ответа на API-запрос и PDF-файла.

В веб-интерфейсе результат выглядит следующим образом:

По результату выполнения в веб-интерфейсе видно, что таблица Поездки имеет группировку по месяцам и дате, то есть отчет имеет 3 уровня вложенности:

  • на 1-м уровне расположены строки с месяцами;
  • на 2-м — строки с датой в рамках месяца;
  • на 3-м — строки непосредственно с поездками в рамках даты.

1. Авторизация и настройка локализации

Используем запрос token/login.

https://hst-api.wialon.com/wialon/ajax.html?svc=token/login&params={"token":"ЗНАЧЕНИЕ_ТОКЕНА"}

Более подробно авторизация описана в одной из предыдущих статей.

Настройка локализации включает в себя установку часового пояса (она также была рассмотрена ранее), формата даты и других параметров.

Если настройка часового пояса выполнена в рамках сессии, то далее при выполнении отчета время задается в GMT+0.

Используем запрос render/set_locale.

https://hst-api.wialon.com/wialon/ajax.html?svc=render/set_locale&params={"tzOffset":134217728,"language":"ru","formatDate":"%25E.%25m.%25Y%20%25H:%25M:%25S"}&sid=ИДЕНТИФИКАТОР_СЕССИИ
Параметр и его значениеОписание
"tzOffset":134217728

Будет применен часовой пояс GMT+0 (без перехода на летнее время).

"language":"ru"

Будет использоваться русский язык.

"formatDate":"%25Y.%25m.%25E%20%25H:%25M:%25S"Будет использоваться формат даты yyyy-MM-dd и формат времени HH:mm:ss.

Невыполнение настройки локализации может приводить к различию результатов при выполнении отчета через Remote API и веб-интерфейс.

2. Получение системных ID

В одной из предыдущих статей мы уже описывали, как выполнять поиск элементов по критериям, поэтому сейчас обратим внимание только на поиск ресурса и шаблона отчета.

Получим список всех ресурсов, в которых создан шаблон отчета с именем Поездки с группировкой, доступных пользователю, для которого выполнена авторизация по токену. Используем запрос core/search_items:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&params={"spec":{"itemsType":"avl_resource","propType":"propitemname","propName":"reporttemplates","propValueMask":"Поездки%20с%20группировкой","sortType":"sys_name"},"force":1,"flags":8193,"from":0,"to":0}&sid=ИДЕНТИФИКАТОР_СЕССИИ
Параметр и его значениеОписание
"itemsType":"avl_resource"

Поиск будет выполнен по ресурсам.

"propType":"propitemname"Поиск будет выполнен по имени подэлемента.
"propName":"reporttemplates"

Поиск будет выполнен по имени шаблона отчета.

"propValueMask":"Поездки%20с%20группировкой"

В ответе будет отображен список ресурсов, в котором создан шаблон отчета с названием Поездки с группировкой.

"sortType":"sys_name"Сортировка будет выполнена по имени элемента.
"force":1Результаты предыдущих поисков не будут учитываться.
"flags":8193

В ответе будет содержаться информация об основных свойствах и о созданных шаблонах отчетов.

1 + 8192 = 8193

"from":0;"to":0Ограничения по количеству найденных элементов не будут применяться.
 Ответ
{
	"searchSpec":{
		"itemsType":"avl_resource",
		"propName":"reporttemplates",
		"propValueMask":"Поездки с группировкой",
		"sortType":"sys_name",
		propType:"propitemname",
		or_logic:"0"
		},
	"dataFlags":8193,
	"totalItemsCount":1,
	"indexFrom":0,
	"indexTo":0,
	"items":[
		{
			"nm":"sdk_account",
			"cls":3,
			"id":12345678,
			"mu":0,
			"rep":{
				1:{
					"id":1,
					"n":"Список поездок",
					"ct":"avl_unit",
					"c":59352
				},
				2:{
					"id":2,
					"n":"Поездки с группировкой",
					"ct":"avl_unit",
					"c":6883
				}
			},
			"repmax":-1,
			"uacl":-1
		}
	]
}

Обратим внимание на следующие параметры из ответа:

  • nm — имя ресурса;
  • rep — массив шаблонов отчетов, созданных в ресурсе;

    Если данный параметр отображается пустым, то это означает, что в ресурсе не создано шаблонов отчетов.

  • n — имя подэлемента;
  • id — системный ID.

В данном случае пользователю доступен ресурс sdk_account с системным ID 12345678, в котором находится шаблон отчета Поездки с группировкой с системным ID 2.

3. Выполнение отчета

Используем запрос report/exec_report.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/exec_report&params={"reportResourceId":12345678,"reportTemplateId":2,"reportObjectId":55555,"reportObjectSecId":0,"interval":{"flags":0,"from":1688144400,"to":1688173199},"remoteExec":1}&sid=ИДЕНТИФИКАТОР_СЕССИИ
Параметр и его значениеОписание
"reportResourceId":12345678

Шаблон отчета будет выбран из ресурса с системным ID 12345678.

"reportTemplateId":2

Будет выполнен шаблон отчета с системным ID 2.

"reportObjectId":55555

Отчет будет выполнен для объекта с системным ID 55555.

"reportObjectSecId":0Отчет будет выполняться не для подэлемента.
"flags":0Отчет будет выполнен за указанный интервал.
"from":1688144400

Началом интервала будет 2023 Июнь 30 20:00 (GMT+0).

В запросах используется Unix-время. Для перевода даты и времени в Unix-время можно использовать общедоступные онлайн-инструменты.

"to":1688173199Концом интервала будет 2023 Июль 01 03:59 (GMT+0).
"remoteExec":1Отчет будет выполнен в фоновом режиме на сервере.
 Ответ
{
	"remoteExec":1
}

4. Проверка статуса выполнения

Так как отчет выполняется в фоновом режиме на сервере, то проверим статус его выполнения, используя запрос report/get_report_status.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/get_report_status&params={}&sid=ИДЕНТИФИКАТОР_СЕССИИ
 Ответ
{
	"status":4
}

Код статуса 4 означает, что отчет выполнен. Интерпретацию остальных значений можно найти на странице с описанием запроса.

5. Получение результата отчета

Используем запрос report/apply_report_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/apply_report_result&params={}&sid=ИДЕНТИФИКАТОР_СЕССИИ
 Ответ
{
	"reportResult":{
		"msgsRendered":0,
		"stats":[],
		"tables":[
			{
				"name":"unit_trips",
				"label":"Поездки",
				"grouping":{
					"nested":{
						"type":"day"
					},
					"type":"month"
				},
				"flags":4491,
				"rows":2,
				"level":3,
				"columns":6,
				"header":[
					"№",
					"Группировка",
					"Начало",
					"Конец",
					"Длительность",
					"Пробег"
				],
				"header_type":[
					"",
					"",
					"time_begin",
					"time_end",
					"duration",
					"mileage"
				]
			}
		],
		"attachments":[]
	}
}

Три ключевых параметра из ответа, интересующих нас, выглядят следующим образом:

  • tables — показывает количество таблиц в отчете в виде массива. В данном случае упоминается только одна таблица — Поездки, следовательно, ее индекс будет равен 0.
  • rows — количество строк в таблице, в данном случае их 2. Следовательно, их индексы лежат в диапазоне от 0 до 1. Речь идет только про строки на верхнем уровне вложенности, внутри их может быть больше.
  • level — количество уровней вложенности, в данном случае оно равно 3, так как в отчете присутствует группировка. Следовательно, в таблице существуют уровни с индексами от 0 до 2.

Индексы таблиц, строк, столбцов и уровней вложенности отсчитываются с 0. Это стоит учитывать при последующем обращении к ним.

Также можно коротко перечислить другие параметры из ответа. Параметр columns говорит о количестве столбцов, далее их имена описаны в параметре header. Нулевое значение параметра msgsRendered говорит о том, что в шаблоне отчета не включено отображение сообщений на карте. Пустые параметры stats и attachments говорят о том, что в шаблоне отчета отсутствует Статистика и приложения (например, графики).

6. Выбор строк в многоуровневой таблице

Зная индекс содержимого таблицы отобразим ее, используя запрос report/select_result_rows.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/select_result_rows&params={"tableIndex":0,"config":{"type":"range","data":{"from":0,"to":1,"level":2}}}&sid=ИДЕНТИФИКАТОР_СЕССИИ
Параметр и его значениеОписание
"tableIndex":0

Будет отображено содержимое таблицы с индексом 0.

"type":"range"Запрашиваться будет последовательность строк.
"from":0

Первая отображаемая строка будет иметь индекс 0.

"to":1

Последняя отображаемая строка будет иметь индекс 1.

"level":2Результат будет отображать уровни вложенности вплоть до индекса 2.
 Ответ
[
	{
		"n":0,
		"i1":0,
		"i2":1188,
		"t1":1688144420,
		"t2":1688158739,
		"d":1,
		"c":[
			"1",
			"Июнь",
			{
				"t":"20:00:20",
				"v":1688144420,
				"y":47.2941741943,
				"x":26.4906959534,
				"u":55555
			},
			{
				"t":"23:58:59",
				"v":1688158739,
				"y":43.1049079895,
				"x":25.6173667908,
				"u":55555
			},
			"3:53:36",
			"576.60 км"
		],
		"r":[
			{
				"n":0,
				"i1":0,
				"i2":1188,
				"t1":1688144420,
				"t2":1688158739,
				"d":2,
				"c":[
					"1.1",
					"2023-06-30",
					{
						"t":"20:00:20",
						"v":1688144420,
						"y":47.2941741943,
						"x":26.4906959534,
						"u":55555
					},
					{
						"t":"23:58:59",
						"v":1688158739,
						"y":43.1049079895,
						"x":25.6173667908,
						"u":55555
					},
					"3:53:36",
					"576.60 км"
				],
				"r":[
					{
						"n":0,
						"i1":0,
						"i2":790,
						"t1":1688144420,
						"t2":1688154878,
						"d":0,
						"c":[
							"1.1.1",
							"2023-06-30 20:00:20",
							{
								"t":"20:00:20",
								"v":1688144420,
								"y":47.2941741943,
								"x":26.4906959534,
								"u":55555
							},
							{
								"t":"22:54:38",
								"v":1688154878,
								"y":43.8697662354,
								"x":26.0177116394,
								"u":55555
							},
							"2:54:18",
							"469.54 км"
						]
					},
					{
						"n":1,
						"i1":936,
						"i2":1188,
						"t1":1688155181,
						"t2":1688158739,
						"d":0,
						"c":[
							"1.1.2",
							"2023-06-30 22:59:41",
							{
								"t":"22:59:41",
								"v":1688155181,
								"y":43.8698196411,
								"x":26.0177154541,
								"u":55555
							},
							{
								"t":"23:58:59",
								"v":1688158739,
								"y":43.1049079895,
								"x":25.6173667908,
								"u":55555
							},
							"0:59:18",
							"107.06 км"
						]
					}
				]
			}
		]
	},
	{
		"n":1,
		"i1":1193,
		"i2":2910,
		"t1":1688158805,
		"t2":1688173175,
		"d":1,
		"c":[
			"2",
			"Июль",
				{
					"t":"00:00:05",
					"v":1688158805,
					"y":43.0983314514,
					"x":25.6316585541,
					"u":55555
				},
				{
					"t":"03:59:35",
					"v":1688173175,
					"y":41.5760040283,
					"x":26.9871864319,
					"u":55555
				},
				"3:41:42",
				"294.55 км"
		],
		"r":[
			{
				"n":0,
				"i1":1193,
				"i2":2910,
				"t1":1688158805,
				"t2":1688173175,
				"d":3,
				"c":[
					"2.1",
					"2023-07-01",
					{
						"t":"00:00:05",
						"v":1688158805,
						"y":43.0983314514,
						"x":25.6316585541,
						"u":55555
					},
					{
						"t":"03:59:35",
						"v":1688173175,
						"y":41.5760040283,
						"x":26.9871864319,
						"u":55555
					},
					"3:41:42",
					"294.55 км"
				],
				"r":[
					{
						"n":0,
						"i1":1193,
						"i2":2171,
						"t1":1688158805,
						"t2":1688169690,
						"d":0,
						"c":[
							"2.1.1",
							"2023-07-01 00:00:05",
							{
								"t":"00:00:05",
								"v":1688158805,
								"y":43.0983314514,
								"x":25.6316585541,
								"u":55555
							},
							{
								"t":"03:01:30",
								"v":1688169690,
								"y":41.7139854431,
								"x":26.3660545349,
								"u":55555
							},
							"3:01:25",
							"235.31 км"
						]
					},
					{
						"n":1,
						"i1":2340,
						"i2":2486,
						"t1":1688170034,
						"t2":1688170841,
						"d":0,
						"c":[
							"2.1.2",
							"2023-07-01 03:07:14",
							{
								"t":"03:07:14",
								"v":1688170034,
								"y":41.7140579224,
								"x":26.365901947,
								"u":55555
							},
							{
								"t":"03:20:41",
								"v":1688170841,
								"y":41.7122383118,
								"x":26.3712425232,
								"u":55555
							},
							"0:13:27",
							"1.39 км"
						]
					},
					{
						"n":2,
						"i1":2833,
						"i2":2910,
						"t1":1688171565,
						"t2":1688173175,
						"d":0,
						"c":[
							"2.1.3",
							"2023-07-01 03:32:45",
							{
								"t":"03:32:45",
								"v":1688171565,
								"y":41.7120819092,
								"x":26.3711204529,
								"u":55555
							},
							{
								"t":"03:59:35",
								"v":1688173175,
								"y":41.5760040283,
								"x":26.9871864319,
								"u":55555
							},
							"0:26:50",
							"57.84 км"
						]
					}
				]
			}
		]
	}
]

7. Экспорт в файл

Экспортируем результат в PDF-файл, используя запрос report/export_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/export_result&params={"format":2,"compress":0,"outputFileName":"Поездки%20с%20группировкой"}&sid=ИДЕНТИФИКАТОР_СЕССИИ
Параметр и его значениеОписание
"format":2

Результат отчета будет экспортирован в формат PDF.

"compress":0Экспортируемый файл не будет сжат (добавлен в архив).
"outputFileName":"Поездки%20с%20группировкой"Экспортируемый файл будет иметь имя Поездки с группировкой.

Ответ на данный API-запрос не отображается, вместо этого автоматически начинается загрузка файла.

8. Удаление результата предыдущего отчета

Используем запрос report/cleanup_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/cleanup_result&params={}&sid=ИДЕНТИФИКАТОР_СЕССИИ
 Ответ
{
	"error":0
}

Нулевое значение означает успешное удаление.

Особенности получения результатов

Получение данных из таблиц может осуществляться с помощью запросов report/get_result_rows или report/select_result_rows, в которых используется параметр tableIndex, чтобы обратиться к таблице с определенным индексом. При этом необходимо учитывать, что при выполнении отчета за разные интервалы индекс одной и той же таблицы может меняться из-за наличия или отсутствия других таблиц.

Для лучшего понимания ситуации рассмотрим пример. Предположим, что в шаблон отчета добавлены таблицы Поездки, Сливы и Геозоны. При выполнении отчета за интервал с 1 по 3 июля результат будет содержать все таблицы, а потому их индексы примут следующие значения:

0 — Поездки
1 — Сливы
2 — Геозоны

А при выполнении отчета за интервал с 4 по 6 июля индексы некоторых таблиц поменяются из-за отсутствия зарегистрированных сливов и примут другие значения:

0 — Поездки
1 — Геозоны

В данном примере хорошо видно, что при выполнении отчета за разные интервалы индекс таблицы Геозоны изменяется. Следовательно, обращение к таблице с индексом 2 не всегда будет выводить информацию о посещении геозон. Для исправления подобных ситуаций рекомендуется применять дополнительные проверки, например, по названию таблицы или ее столбцов.

При использовании отчета по группе объектов можно избежать дополнительных проверок, отключив опцию Пропускать пустые строки в настройках шаблона отчета. В таком случае таблицы будут отображаться, даже если в них нет данных, и содержать пустые строки.


Екатерина Гриб,Инженер Customer Service

Если вы заметили ошибку в тексте, пожалуйста, выделите её и нажмите Ctrl+Enter.
Спасибо за ваш отзыв!
Сообщить об ошибке
Текст с ошибкой Комментарий
Максимум 500 символов