To search items possessing certain property, use the command core/search_items:
svc=core/search_items¶ms={"spec":{ "itemsType":<text>, "propName":<text>, "propValueMask":<text>, "sortType":<text>, "propType":<text>, "or_logic":<bool> }, "force":<uint>, "flags":<long>, "from":<uint>, "to":<uint>}
You can find an example of this request in the sample Item search.
Parameters
Name | Description |
---|---|
spec | search specification |
itemsType | item type (see the list below) |
propName | name of the property which value will be searched (see the list of possible properties below):character | can be used |
propValueMask | property value mask: characters * | , > < = can be used |
sortType | name of the property used for sorting |
propType | property type (see the list of property types below) |
or_logic | “OR”-logic flag for propName (see below) |
force | 0 – if such search has been done, then return cached result, 1 – to do a new search |
flags | data flags for the response (the value of this parameter depends on item type; data formats of all item types and their flags are described in the chapter Data format) |
from | index of the first returned item (for new search use 0) |
to | index of the last returned item (if 0 – return all elements beginning from index specified in the “from” parameter) |
Item types (field “itemsType”):
-
-
avl_hw – hardware type;
-
-
-
avl_resource – resource;
-
-
-
avl_retranslator – retranslator;
-
-
-
avl_unit – unit;
-
-
-
avl_unit_group – unit group;
-
-
-
user – user;
-
-
avl_route – route.
Properties of item (fields “propName” and “sortType”):
-
-
sys_name – item name;
-
-
-
sys_id – item ID;
-
-
-
sys_unique_id – unique unit ID (IMEI);
-
-
-
sys_phone_number – unit phone number;
-
-
-
sys_phone_number2 – unit second phone number;
-
-
-
sys_user_creator – creator ID;
-
-
-
rel_user_creator_name – creator name;
-
-
-
sys_billing_account_guid – account ID;
-
-
-
rel_billing_account_name – account name;
-
-
-
rel_billing_parent_account_name – parent account name;
-
-
-
rel_billing_plan_name – billing plan name;
-
-
-
sys_comm_state – hardware state (1 – enabled, 0 – disabled);
-
-
-
rel_hw_type_name – hardware name;
-
-
-
rel_hw_type_id – hardware ID;
-
-
-
sys_account_balance – account balance;
-
-
-
sys_account_days – account days;
-
-
-
sys_account_enable_parent – dealer rights (1 – on, 0 – off);
-
-
-
sys_account_disabled – account blocked (1 – yes, 0 – no);
-
-
-
rel_account_disabled_mod_time – last modification time for
sys_account_disabled
, UNIX-time;
-
-
-
rel_account_units_usage – number of units used in account;
-
-
-
rel_last_msg_date – last message time, UNIX-time;
-
-
-
rel_is_account – whether resource is account (1 – yes, 0 – no);
-
-
-
login_date – last login time, UNIX-time;
-
-
-
retranslator_enabled – whether retranslator enabled ( 1 – yes, 0 – no);
-
-
-
rel_creation_time – creation time;
-
-
-
rel_group_unit_count – the number of units in a group;
-
-
-
rel_customfield_name – the name of unit custom field;
-
-
-
rel_customfield_value – the value of unit custom field;
-
-
-
rel_profilefield_name – the name of unit profile field;
-
-
-
rel_profilefield_value – the value of unit profile field;
-
-
-
rel_adminfield_name – the name of unit admin field;
-
-
rel_adminfield_value – the value of unit admin field.
For more values of this parameter, please see the table below.
Property types (field “propType”):
-
-
property – property;
-
-
-
list – list;
-
-
-
propitemname – name of subitem (for example geofence is a subitem of resource);
-
-
-
creatortree – chain of creators (search of this type will return the list of items which have the user specified in “propValueMask” in their chain of creators);
-
-
-
accounttree – chain of accounts (search of this type will return the list of items which have the account specified in “propValueMask” in their chain of accounts);
-
-
-
customfield – custom fields;
-
-
-
profilefield – profile fields;
-
-
adminfield – administrative fields.
If you need to perform a search in subitems, set the value propitemname for the parameter “propType”. Then, other parameters can have any of these values:
Item (field “itemsType”) | Subitem (fields “propName” and “sortType”) |
---|---|
avl_unit | unit_sensors |
unit_commands | |
service_intervals | |
avl_resource | drivers |
driver_groups | |
jobs | |
notifications | |
pois | |
trailers | |
trailer_groups | |
zones_library | |
reporttemplates | |
avl_route | rounds |
route_schedules | |
avl_retranslator | retranslator_units |
avl_unit or user or avl_resource | custom_fields |
admin_fields |
Sorting types
By default sorting (direct) works like this:
-
-
any name spits into bits for sorting (symbols, digits);
-
-
-
digits are first, symbols are second;
-
-
-
“-” symbol treats like hyphen and sorts before digits (see
special sorting
below);
-
-
system supports decimal mark numbers (3.12), floating point nmbers (2e10; 5.1E-2).
Direct (return values by ascending):
"sortType":"<item_property>"
Reverse (return values by descending):
"sortType":"!<item_property>"
Combined (return values sorted by the 1st criterion, then in case of values equality by the 2nd criterion etc):
"sortType":"<property1>,!<property2>"
Special: according to this sorting “-” symbol treated like negative number sign (by default “-” is treated like “hyphen” – simply a symbol):
"sortType":"-<item_property>"
Multicriteria search
You may do multicriteria search.
Example:
"itemsType":"avl_resource","propName":"rel_is_account,*","propValueMask":"1,qwe","sortType":"sys_name","propType":"property,customfield"
The number of criteria in “propName”, “propType” and “propValueMask” should be the same, because they are calculated by three, respectively.
“AND”-logic is worked by default for propName
. It means that the system will find all accounts (rel_is_account:1) which name starts with “foo” (sys_name:“foo*”).
In order to enable “OR”-logic for propName
please state or_logic
:1 in request.
Using comparison operators in search
In propValueMask parameter you may use comparison operatorls like <, >, =, >=, ⇐. If search criterion is string field then the system will search for numbers in the beginning of such value only.
If search criterion is number field then all value will be analyzed.
Example 1:
"itemsType":"avl_unit","propName":"sys_name,sys_name","propValueMask":">=32,<33.5"
Units which name starts with numbers between 32 and 33.5 will be found.
Example 2:
"itemsType":"avl_resource","propName":"sys_account_balance,sys_account_balance","propValueMask":">2,<=23"
Resources and accounts which balance bigger than 2 and less or equal to 23 will be found.
You may also use “=” operator in case when value starts with “>” or “<”.
Example 3:
"itemsType":"avl_unit","propName":"sys_name","propValueMask":"=>123<,=<123>"
Search will find units with ‘>123<‘ and ‘<123>’ names (if they exist).
Response
{ "searchSpec":{ /* search specification */ "itemsType":<text>, /* items type */ "propName":<text>, /* property name */ "propValueMask":<text>, /* property value mask */ "sortType":<text>, /* property name for sorting */ "propType":<text> /* property type */ }, "dataFlags":<uint>, /* applied data flags */ "totalItemsCount":<uint>, /* quantity of found items */ "indexFrom":<uint>, /* beginning index */ "indexTo":<uint>, /* ending index */ "items":[{...}] /* found items */ }
The format of “items” array depends on item type. All formats are described in the chapter Data format.