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":<uint>
},
"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: 1 para usar la lógica O, 0 para usar la lógica Y (vea la sección Búsqueda por varias propiedades). Si el parámetro no está especificado o no es un número entero, se usa 0. |
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. Si el valor es mayor que el índice del último objeto encontrado, o mayor que to cuando to no es 0, se devuelve el error 4. Si no se encuentra ningún objeto, la matriz items está vacía ([]) y no se devuelve ningún error. |
to |
Índice del último objeto devuelto. Si está especificado 0 o el valor es mayor que el índice del último objeto encontrado, se devuelven todos los objetos que comienzan a partir del índice especificado en el parámetro from. |
La solicitud no comprueba si existen los valores de itemsType, propName, propType y sortType. Un valor desconocido no provoca ningún error. Por ejemplo, si itemsType contiene un tipo de objeto desconocido o ningún objeto encontrado tiene la propiedad especificada en propName, la matriz items está vacía. Un valor desconocido de propType se procesa como property.
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 del objeto;rel_customfield_value: valor del campo personalizado del objeto;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 del objeto;rel_adminfield_value: valor del campo administrativo del objeto;rel_customfield_name_value: nombre y valor del campo personalizado del objeto, separados por:;rel_profilefield_name_value: nombre y valor del campo de perfil de la unidad, separados por:;rel_adminfield_name_value: nombre y valor del campo administrativo del objeto, separados por:.
Los campos personalizados y administrativos están disponibles para unidades, grupos de unidades, usuarios y recursos. Los campos de perfil solo están disponibles para unidades.
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.
Si el parámetro propType no está especificado o tiene un valor desconocido, se usa property.
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 subordinado (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 del repetidor. |
avl_unitavl_unit_groupuseravl_resource |
custom_fields |
Campos personalizados. |
avl_unitavl_unit_groupuseravl_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, y así sucesivamente:"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. El sistema no lo comprueba: si las cantidades son diferentes, no se devuelve ningún error, pero el resultado de la búsqueda puede ser diferente del esperado.
Por defecto, el parámetro propName funciona con la lógica Y. En el ejemplo anterior, el sistema encuentra todas las cuentas (rel_is_account es 1) que tienen un campo personalizado con el nombre o el valor qwe.
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 muestra 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 muestra 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 muestra 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 */
"or_logic": "<text>" /* flag de la lógica O: "0" o "1" */
},
"dataFlags": <uint>, /* flags aplicados con propiedades */
"totalItemsCount": <uint>, /* cantidad de objetos encontrados */
"indexFrom": <uint>, /* índice inicial */
"indexTo": <uint>, /* índice final */
"items": [ { ... } ] /* objetos encontrados */
}
El valor indexTo es el valor to de la solicitud, limitado al índice del último objeto encontrado. Si en la solicitud to es 0 o no se encuentra ningún objeto, indexTo es 0.
El formato de la matriz items depende del tipo del objeto. Todos los formatos se describen en la sección Formato de datos.
Los códigos de errores posibles son:
| Código | Descripción |
|---|---|
| 4 | Parámetros de entrada incorrectos. Por ejemplo, falta un parámetro obligatorio, o el valor from es mayor que el índice del último objeto encontrado o mayor que to cuando to no es 0. |