Поиск элементов

Для поиска элементов по заданным критериям используется команда core/search_items:

svc=core/search_items&params={"spec":{
				"itemsType":<text>,	
				"propName":<text>,	
				"propValueMask":<text>,	
				"sortType":<text>,
				"propType":<text>	
			     },
			     "force":<uint>,			
			     "flags":<long>,			
		             "from":<uint>,			
			     "to":<uint>,
			     "or_logic":<bool>}

:!: Использование данного запроса рассмотрено в примере Поиск элементов.

Параметры

Название Описание
spec условия поиска
itemsType тип искомых элементов (см. список ниже), если оставить пустым, то поиск будет осуществляться по все типам
propName имя свойства, по которому будет осуществляться поиск (см. список возможных свойств ниже)
propValueMask значение свойства: может быть использован знак «*»
sortType имя свойства, по которому будет осуществляться сортировка ответа
propType тип свойства (см. список типов ниже)
force 0 - если такой поиск уже запрашивался, то вернет полученный результат, 1 - будет искать заново
flags флаги видимости для возвращаемого результата (Значение данного параметра зависит от типа элемента, который вы хотите найти. Форматы всех элементов, а так же их флаги описаны в разделе Форматы данных.)
from индекс, начиная с которого возвращать элементы результирующего списка (для нового поиска используйте значение 0)
to индекс последнего возвращаемого элемента (если 0, то вернет все элементы, начиная с указанного в параметре «from»)
or_logic флаг «ИЛИ»-логики для propName-поля (см. ниже)

Типы элементов системы Wialon (указываются в поле «itemsType»):

  • avl_resource – ресурс;
  • avl_retranslator – ретранслятор;
  • avl_unit – объект;
  • avl_unit_group – группа объектов;
  • user – пользователь;
  • avl_route – маршрут.

Свойства элементов (указываются в поле «propName» и «sortType»):

  • sys_name – имя элемента;
  • sys_id – ID элемента;
  • sys_unique_id – ID оборудования;
  • sys_phone_number – телефонный номер объекта;
  • sys_phone_number2 – второй телефонный номер объекта;
  • sys_user_creator – ID создателя;
  • rel_user_creator_name – имя создателя;
  • sys_billing_account_guid – ID учетной записи;
  • rel_billing_account_name – имя учётной записи;
  • rel_billing_parent_account_name – имя родительской учётной записи;
  • rel_billing_plan_name – имя тарифного плана;
  • sys_comm_state – состояние оборудования (1 - подключено, 0 - отключено);
  • rel_hw_type_name – имя оборудования;
  • sys_account_balance – баланс учётной записи;
  • sys_account_days – количество дней для учётной записи;
  • sys_account_enable_parent – права дилера (1 - выданы, 0 - не выданы);
  • sys_account_disabled – учётная запись блокирована (1 - да, 0 - нет);
  • rel_account_disabled_mod_time – время последнего изменения свойства sys_account_disabled, UNIX-time;
  • rel_account_units_usage – количество объектов в учётной записи;
  • rel_last_msg_date – время последнего сообщения, UNIX-time;
  • rel_is_account – является ли ресурс учётной записью (1 - да, 0 - нет);
  • login_date – время последнего входа в систему, UNIX-time;
  • retranslator_enabled – включен ли ретранслятор ( 1 - да, 0 - нет);
  • rel_creation_time – дата создания;
  • rel_group_unit_count - количество объектов в группе.

Другие возможные значения данного параметра рассмотрены ниже в таблице.

Типы свойств (указываются в поле «propType»):

  • property – свойство;
  • list – список;
  • propitemname – имя подэлемента (например геозона является подэлементом ресурса);
  • creatortree – цепочка создателей (поиск с таким типом вернет список элементов, у которых в цепочке создателей есть создатель, указанный в условии поиска);
  • accounttree – цепочка учетных записей (поиск с таким типом вернет список элементов, у которых в цепочке учетных записей есть учетная запись, указанная в условии поиска);
  • customfield – произвольные поля;
  • profilefield – характеристики объекта;
  • adminfield – административные записи.

:!: Если нужно произвести поиск в подэлементах, то для параметра «propType» устанавливается значение propitemname, а остальные параметры могут принимать следующие значения:

Элемент (значение "itemsType") Подэлемент (значение "propName" и "sortType") Описание
avl_unit unit_sensors сенсоры
unit_commands команды
service_intervals интервалы техобслуживания
avl_resource drivers водители
driver_groups группы водителей
jobs задания
notifications уведомления
pois POI
trailers прицепы
trailer_groups группы прицепов
zones_library геозоны
reporttemplates шаблоны отчетов
avl_route rounds рейсы
route_schedules расписания
avl_retranslator retranslator_units ретранслируемые объекты
avl_unit или user или avl_resource custom_fields произвольные поля
admin_fields административные поля

Типы сортировок

По-умолчанию сортировка (прямая) работает так:

  • любое имя разбивается на составляющие для сортировки (символы, числа);
  • вначале сортируются цифры, затем символы;
  • символ «-» как дефис идёт раньше чисел и символов (см. специальную сортировку ниже);
  • поддерживается сортировка чисел с точкой (3.12), чисел с плавающей точкой (2e10; 5.1E-2).

Прямая (вернет значения, отсортированные по возрастанию):

"sortType":"<свойство_элемента>"

Обратная (вернет значения, отсортированные по убыванию):

"sortType":"!<свойство_элемента>"

Комбинированная (вернет значения, отсортированные по первому признаку, в случае равенства значений – по второму и т.д.):

"sortType":"<свойство1>,!<свойство2>"

Специальная: при этой сортировке символ «-» расценивается как обозначение отрицательного числа (по-умолчанию «-» расценивается системой как «дефис», а не как «минус»; при включении опции числа с символом «-» перед ними будут расцениваться отрицательными числами при сортировке):

"sortType":"-<свойство_элемента>"

Поиск по многим критериям

В системе поддерживатся поиск по многим критериям поиска.

Пример:

"itemsType":"avl_resource","propName":"rel_is_account,*","propValueMask":"1,qwe","sortType":"sys_name","propType":"property,customfield"

Количество критериев в «propName», «propType» и «propValueMask» должно быть одинаковым, т.к. они рассматриваются по три соответственно.

По-умолчанию работает «И»-логика для «propName»-поля. Это означает, что нам найдутся все учётные записи (rel_is_account:1), имя которых в свою очередь начинается с «foo» (sys_name:«foo*»).

Для того, чтобы включить «ИЛИ»-логику для «propName», укажите «or_logic»:1 в запросе.

Использование операторов сравнения в поиске

В поле propValueMask можно использовать операторы сравнения, такие как <, >, =, >=, ⇐. Если поле для поиска строковое, то система будет искать числа лишь в начале поля (имени, произвольной строки).
Если поле числовое, то будет анализироваться всё число.

Пример 1:

"itemsType":"avl_unit","propName":"sys_name,sys_name","propValueMask":">=32,<33.5"

Найдутся все объекты, имя которых начинается с чисел в диапазоне от 32 (включительно) до 33.5 (включительно)

Пример 2:

"itemsType":"avl_resource","propName":"sys_account_balance,sys_account_balance","propValueMask":">2,<=23"

Найдутся все ресурсы и учётные записи, у которых баланс больше 2, но меньше либо равен 23.


Также можно использовать оператор «=» в случае, если значение поля начинается с «>» или «<».

Пример 3:

"itemsType":"avl_unit","propName":"sys_name","propValueMask":"=>123<,=<123>"

Поиск найдет объект с именем '>123<' и '<123>' (если они существуют).

Возвращаемый результат

{
	"searchSpec":{			/* условия поиска */
		"itemsType":<text>,		/* тип элементов*/
		"propName":<text>,		/* имя свойства */
		"propValueMask":<text>,		/* значение свойства */
		"sortType":<text>,		/* свойство для сортировки*/
		"propType":<text>		/* тип свойства */
	},
	"dataFlags":<uint>,		/* примененные флаги видимости */
	"totalItemsCount":<uint>,	/* количество найденных элементов*/
	"indexFrom":<uint>,		/* начальный индекс */
	"indexTo":<uint>,		/* конечный индекс */
	"items":[{...}]			/* найденные элементы */
}

Формат элементов массива «items» зависит от типа элементов, заданного при поиске. Форматы всех типов данных перечислены в разделе Форматы данных.

Follow us on Facebook Gurtam Wialon Twitter Gurtam Wialon info@gurtam.com   |   Copyright © 2002-2024 Gurtam