Содержание

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

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

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

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

Параметры

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

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

Типы элементов

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

Свойства

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

Тип свойства

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

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

Подэлементы

:!: Если нужно произвести поиск в подэлементах, то для параметра «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 шаблоны отчетов
orders заявки
avl_route rounds рейсы
route_schedules расписания
avl_retranslator retranslator_units ретранслируемые объекты
avl_unit или user или avl_resource custom_fields произвольные поля
admin_fields административные поля

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

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

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

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

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

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

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

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

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

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

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

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

Пример:

{"itemsType":"avl_unit","propName":"sys_name,rel_user_creator_name","propValueMask":"Volvo*,chdi_test","sortType":"sys_name","propType":"sys_name,rel_user_creator_name","or_logic":0}

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

По-умолчанию работает «И»-логика для «propName»-поля. Это означает, что в примере выше найдутся все объекты («itemsType»:«avl_unit»), имя (sys_name) которых в свою очередь начинается с «Volvo*» и которые принадлежат учетной записи (rel_user_creator_name) «chdi_test»

Для того, чтобы включить «ИЛИ»-логику для «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>' (если они существуют).

Поиск пустых свойств

При поиске пустого свойства необходимо использовать оператор «!» Например для поиска объектов, у которых отсутствует номер телефона - можно использовать следующий запрос:

"itemsType":"avl_unit","propName":"sys_phone_number,sys_phone_number2","propValueMask":"!,!","sortType":"sys_name"

В ответе будут возвращены характеристики объекта с пустыми значениями параметров «ph» и «ph2»

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

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

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