Servicios de tabla de datos
Hay varios servicios integrados para obtener datos en tablas de datos y fuera de ellas, que son específicos de la definición de tabla de datos. Son las siguientes:
AddDataTableEntry (TAGS tags, VALUES values): permite pasar VALUES y, opcionalmente, tags. La devolución booleana indica el éxito o el fallo.
AddDataTableEntries
: permite añadir varias entradas de tabla de datos.
AddOrUpdateDataTableEntry (TAGS tags, VALUES values): permite pasar VALUES y, opcionalmente, tags. Se devuelve un valor STRING de streamID de la entrada nueva o actualizada en la tabla de datos. Permite actualizar una fila si existe; de lo contrario se añade una fila.
AddOrUpdateDataTableEntries: permite añadir o actualizar varias entradas de tabla de datos. Permite actualizar una fila si existe; de lo contrario se añade una fila. Las claves principales deben coincidir para la actualización.
AssignDataTableEntries: permite reemplazar entradas de tabla de datos existentes.
DeleteDataTableEntry (STRING keyvalue): permite borrar una entrada única en función del valor de clave. La devolución booleana indica el éxito o el fallo.
* 
Se requiere una clave principal para borrar una entrada.
DeleteDataTableEntries: permite borrar varias entradas que coinciden con la primera fila de valores especificados en el parámetro de entrada de infotable. Por ejemplo, si una tabla de datos tiene un campo denominado Int01 y tres entradas tienen Int01 definido en 10. Cuando se ejecute, DeleteDataTableEntries borrará las tres entradas si 10 se especifica como criterio de borrado.
* 
Un error que indica "Invalid Number of values provided to DeleteDataTableEntries in thingName" se muestra si se especifica más de una fila de valores en el parámetro de entrada de infotable.
FindDataTableEntries: permite buscar índices solo, por lo que puede ser más rápido de utilizar que el servicio QueryDataTableEntries.
* 
Si se define más de un índice en la configuración para la tabla de datos, el índice que se utiliza para la búsqueda se pondera en función de lo que se ha indicado como campos en los que buscar en el parámetro Valores que se pasa en FindDataTableEntries. Por ejemplo, si hay cuatro propiedades (INTEGER, BOOLEAN, STRING y TEXT) y se han creado dos índices (uno en BOOLEAN y STRING y otro en STRING), si solo se especifica un valor en el que buscar para la propiedad TEXT, dicho índice se ponderará más que el índice de BOOLEAN/STRING porque se ha proporcionado un valor para buscar en ese índice.
GetDataTableEntries (NUMBER maxItems): permite devolver las últimas entradas hasta el número máximo de elementos solicitados.
GetDataTableEntry (STRING keyvalue): permite devolver una infotable de una fila con la entrada coincidente.
GetFieldNames: permite devolver una lista de nombres de campos asociados con esta tabla de datos.
PurgeDataTableEntries: permite eliminar todas las entradas para esta tabla de datos. La devolución booleana indica el éxito o el fallo.
QueryDataTableEntries (NUMBER maxItems, STRING queryExpression, TAGS tags, VALUES query): permite devolver una infotable de registros que coinciden con los parámetros de la solicitud.
SearchDataTableEntries: permite devolver todas las entradas de tabla de datos que coincidan con los parámetros de la consulta de búsqueda. searchExpression es la clave para este servicio y en ella se incluye la búsqueda de texto completo para los campos STRING y TEXT solo. Los siguientes archivadores se pueden utilizar para searchExpression: + (signo más), con distinción entre mayúsculas y minúsculas, ? (signo de interrogación), % (signo de porcentaje), AND y OR.
UpdateDataTableEntry (TAGS tags, VALUES values): permite pasar values y, opcionalmente, tags. La devolución booleana indica el éxito o el fallo. Permite actualizar una fila, si existe.
Definición de distinción entre mayúsculas y minúsculas en búsquedas de tabla de datos
La distinción entre mayúsculas y minúsculas en las búsquedas de tabla de datos se puede definir mediante un filtro en el parámetro query.
Por ejemplo, si se utiliza el servicio SearchDataTableEntries con las siguientes entradas:
Se puede definir un filtro para el parámetro query de manera que se devuelvan resultados con distinción entre mayúsculas y minúsculas. Por ejemplo:
{"filters":{"type":"EQ", "fieldName":"Field1","isCaseSensitive":true, "value":"AA"}}
Al utilizar la consulta anterior, se devuelven los siguientes resultados:
En otro ejemplo en que se utiliza el mismo servicio, mediante el siguiente filtro en el parámetro query:
{"filters":{"type":"EQ", "fieldName":"Field1","isCaseSensitive":true, "value":"aa"}}
.
Se devuelven los resultados siguientes: