search_items
La función search_items se usa para encontrar objetos por propiedades determinadas.
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>
}
Parámetros
| Nombre | Descripción |
|---|---|
spec |
Condiciones de búsqueda. |
itemsType |
Tipo de objetos (vea la lista más abajo). |
propName |
Nombre de la propiedad por el valor de que desea buscar (vea la lista de propiedades posibles más abajo). Puede usar el carácter |. |
propValueMask |
Máscara de valor de propiedad. Puede usar los siguientes caracteres: * | , > < =. |
sortType |
Nombre de la propiedad que se usa para ordenación. |
propType |
Tipo de propiedad (vea la lista más abajo). |
or_logic |
Flag de la lógica O para el parámetro propName (vea la sección Búsqueda por varias propiedades). |
force |
Dependiendo del valor:
|
flags |
Flags con propiedades para el resultado devuelto. El valor de este parámetro depende del tipo del objeto. Use la tabla de flags del tipo que solicita: Unidades, Grupos de unidades, Recursos, Repetidores, Rutas, Usuarios. |
from |
Índice del primer objeto devuelto. Para iniciar una nueva búsqueda, especifique 0. |
to |
Índice del último objeto devuelto. Si está especificado 0, se devuelven todos los elementos que comienzan a partir del índice especificado en el parámetro from. |
Los valores de los flags dependen del tipo de objeto. Los valores hasta
0x80coinciden en la mayoría de los tipos, pero a partir de0x100un mismo número selecciona datos diferentes. Por ejemplo,0x100 (256)devuelve las propiedades avanzadas paraavl_unity los conductores paraavl_resource. Un flag que no corresponde al tipo solicitado se ignora sin error y la respuesta simplemente omite esos datos.
Tipos de objetos
Tipos de objetos (parámetro itemsType):
avl_resource: recurso;avl_retranslator: repetidor;avl_unit: unidad;avl_unit_group: grupo de unidades;user: usuario;avl_route: ruta.
Para obtener la lista de tipos de dispositivos, use core/get_hw_types.
Propiedades de objetos
Propiedades de objetos (parámetros propName y sortType):
sys_name: nombre del objeto;sys_id: ID del objeto;sys_unique_id: ID único de la unidad (IMEI);sys_phone_number: número de teléfono de la unidad;sys_phone_number2: segundo número de teléfono de la unidad;sys_user_creator: ID del creador;rel_user_creator_name: nombre del creador;sys_billing_account_guid: ID de la cuenta;rel_billing_account_name: nombre de la cuenta;rel_billing_parent_account_name: nombre de la cuenta padre;rel_billing_plan_name: nombre del plan de facturación;sys_comm_state: estado del dispositivo (1: activado, 0: desactivado);rel_hw_type_name: nombre del dispositivo;rel_hw_type_id: ID del dispositivo;sys_account_balance: saldo de la cuenta;sys_account_days: días para la cuenta;sys_account_enable_parent: derechos de distribuidor (1: sí, 0: no);sys_account_disabled: cuenta bloqueada (1: sí, 0: no);rel_account_disabled_mod_time: hora de la última modificación de la propiedadsys_account_disabled, tiempo UNIX;rel_account_units_usage: cantidad de unidades en la cuenta;rel_last_msg_date: hora del último mensaje, tiempo UNIX;rel_is_account: si el recurso es una cuenta (1: sí, 0: no);login_date: última hora de inicio de sesión, tiempo UNIX;retranslator_enabled: estado del repetidor (1: iniciado, 0: parado);rel_creation_time: hora de creación;rel_group_unit_count: cantidad de unidades en el grupo;rel_customfield_name: nombre del campo personalizado de la unidad;rel_customfield_value: valor del campo personalizado de la unidad;rel_profilefield_name: nombre del campo de perfil de la unidad;rel_profilefield_value: valor del campo de perfil de la unidad;rel_adminfield_name: nombre del campo administrativo de la unidad;rel_adminfield_value: valor del campo administrativo de la unidad;rel_customfield_name: nombre y valor del campo personalizado de la unidad, separados por:;rel_profilefield_name: nombre y valor del campo de perfil de la unidad, separados por:;rel_adminfield_name: nombre y valor del campo administrativo de la unidad, separados por:.
Otros valores de este parámetro se describen en la tabla a continuación.
Tipo de propiedad
Tipos de propiedades (parámetro propType):
property: propiedad;list: lista;propitemname: nombre del objeto subordinado (por ejemplo, la geocerca es un objeto subordinado del recurso);creatortree: cadena de creadores (la búsqueda de este tipo devuelve la lista de objetos cuya cadena de creadores contiene el usuario especificado en el parámetropropValueMask);accounttree: cadena de cuentas (la búsqueda de este tipo devuelve la lista de objetos cuya cadena de cuentas contiene la cuenta especificada en el parámetropropValueMask);customfield: campos personalizados;profilefield: perfil de la unidad;adminfield: campos administrativos;servicename: servicios.
Objetos subordinados
Si desea buscar objetos subordinados, establezca el valor propitemname para el parámetro propType. Los otros parámetros pueden tener los siguientes valores:
Objeto (parámetro itemsType) |
Objeto subrdinado (parámetros propName y sortType) |
Descripción |
|---|---|---|
avl_unit |
unit_sensors |
Sensores. |
avl_unit |
unit_commands |
Comandos. |
avl_unit |
service_intervals |
Intervalos de servicio. |
avl_resource |
drivers |
Conductores. |
avl_resource |
driver_groups |
Grupos de conductores. |
avl_resource |
jobs |
Tareas. |
avl_resource |
notifications |
Notificaciones. |
avl_resource |
trailers |
Remolques. |
avl_resource |
trailer_groups |
Grupos de remolques. |
avl_resource |
zones_library |
Geocercas. |
avl_resource |
reporttemplates |
Plantillas de informes. |
avl_resource |
orders |
Pedidos. |
avl_route |
rounds |
Rutinas. |
avl_route |
route_schedules |
Horarios. |
avl_retranslator |
retranslator_units |
Unidades repetidas. |
avl_unituseravl_resource |
custom_fields |
Campos personalizados. |
avl_unituseravl_resource |
admin_fields |
Campos administrativos. |
Tipos de ordenación
Por defecto, la ordenación directa funciona de la siguiente manera:
- cualquier nombre se divide en componentes para ordenación (caracteres y números);
- primero se ordenan los números y luego los caracteres;
- el carácter
-se considera un guion y se ordena antes de números (vea la ordenación especial); - el sistema admite la ordenación de números de punto (3.12) y números de punto flotante (2e10; 5.1E-2).
Están disponibles los siguientes tipos de ordenación:
| Tipo | Descripción |
|---|---|
| Directa | Devuelve valores ordenados en orden ascendente:"sortType":"<item_property>" |
| Inversa | Devuelve valores ordenados en orden descendente:"sortType":"!<item_property>" |
| Combinada | Devuelve valores ordenados por la primera propiedad, luego, en caso de igualdad de valores, por la segunda propiedad, etc:"sortType":"<property1>,!<property2>" |
| Especial | Según este tipo de ordenación, el carácter - se considera un número negativo. Por defecto, el carácter - se considera un guion, no un signo menos."sortType":"-<item_property>" |
Búsqueda por múltiples propiedades
Puede buscar objetos por varias propiedades a la vez. Por ejemplo:
"itemsType":"avl_resource","propName":"rel_is_account,*","propValueMask":"1,qwe","sortType":"sys_name","propType":"property,customfield"
La cantidad de propiedades en los parámetros propName, propType y propValueMask debe ser la misma, dado que se toman en cuenta juntos.
Por defecto, el parámetro propName funciona con la lógica Y. Esto significa que el resultado de la búsqueda muestra una lista de todas las cuentas (rel_is_account:1) cuyos nombres comienzan con foo (sys_name:"foo*").
Para activar la lógica O para el parámetro propName, especifique ''or_logic'':1 en la solicitud.
Uso de operadores de comparación en la búsqueda
En el parámetro propValueMask, puede usar los siguientes operadores de comparación: <, >, =, >=, <=. Si el campo de búsqueda es una cadena, solo se buscan números al principio del valor. Si el campo es numérico, se analiza todo el valor.
Ejemplo 1
"itemsType":"avl_unit","propName":"sys_name,sys_name","propValueMask":">=32,<33.5"
El resultado de la búsqueda mostrará una lista de todos los objetos cuyos nombres comienzan con números entre 32 y 33.5.
Ejemplo 2
"itemsType":"avl_resource","propName":"sys_account_balance,sys_account_balance","propValueMask":">2,<=23"
El resultado de la búsqueda mostrará una lista de todos los recursos y cuentas cuyo saldo es mayor que 2, pero menor o igual a 23.
También puede usar el operador “=” si el valor del campo comienza con “>” o “<”.
Ejemplo 3
"itemsType":"avl_unit","propName":"sys_name","propValueMask":"=>123<,=<123>"
La búsqueda mostrará una lista de todos los objetos disponibles con los nombres >123< y <123>.
Resultado devuelto
{
"searchSpec": { /* condiciones de búsqueda */
"itemsType": "<text>", /* tipo de objetos */
"propName": "<text>", /* nombre de propiedad */
"propValueMask": "<text>", /* máscara de valor de propiedad */
"sortType": "<text>", /* nombre de propiedad para ordenación */
"propType": "<text>" /* tipo de propiedad */
},
"dataFlags": <uint>, /* flags aplicados con propiedades */
"totalItemsCount": <uint>, /* cantidad de objetos encontrados */
"indexFrom": <uint>, /* índice inicial */
"indexTo": <uint>, /* índice final */
"items": [ { ... } ] /* objetos encontrados */
}
El formato item depende del tipo del objeto. Todos los formatos se describen en la sección Data format.
Los códigos de errores posibles son:
| Código | Descripción |
|---|---|
| 4 | Parámetros de entrada incorrectos. |