Uso del servicio GetPropertyVTQCount
El servicio GetPropertyVTQCount devuelve un recuento de propiedades de cosa definidas en una cosa, una plantilla de cosa o una definición de cosa que se han ingerido o definido en ThingWorx en tiempo de ejecución. El servicio consulta un recuento de selección en la tabla de la base de datos del proveedor de persistencia de propiedades property_vtq de ThingWorx Platform. Este resultado de recuento puede ayudar a determinar cómo optimizar el rendimiento de las consultas o la ingesta de valores de propiedad debido al número total de valores de propiedad indexados de un nombre determinado, tipo base de ThingWorx, en un nombre de entidad determinado, etc. en tiempo de ejecución. La consulta y la ingesta pueden verse afectadas por la indexación de estos valores de property_vtq.
Detalles del servicio
Detalles
Descripción
Devuelve el recuento de propiedades especificadas por los criterios de la consulta.
Parámetros
query
Tipo base QUERY
Consulte Elementos de tupla de filtro de consulta soportados para obtener los valores aceptados.
Resultado (parámetro de consulta no válido)
Mensaje de error que indica que la consulta no es válida.
Resultado (parámetro de consulta válido)
Número
Elementos de tupla de filtro de consulta soportados
El servicio GetPropertyVTQCount soporta cinco tipos de elemento: entityNameMask, entityTypeMask, propertyNameMask, propertyBaseType y propertyIsIndexed en sus filtros de consulta.
* 
Estos tipos de elemento distinguen entre mayúsculas y minúsculas.
Se puede pasar una combinación de los cinco tipos de elemento al servicio GetPropertyVTQCount y se denomina tuplas de filtro. Se implementan como una recopilación de filtros de ThingWorx de la siguiente manera:
{ "filters": [ {...}, {...}], "type": "AND" }
Donde {...} es un filtro de tipo de elemento. En este ejemplo, hay dos filtros de tipo de elemento dentro de una tupla de filtro que se deben definir como una recopilación de filtros AND de ThingWorx.
En la siguiente tabla,
Cada uno de los siguientes filtros de tipo de elemento solo puede existir 0 o 1 veces por tupla de filtro.
Dentro de un filtro de tipo de elemento, uno define tres campos (por ejemplo, fieldName, type, value).
Para cualquier campo que tenga un sufijo Mask, los valores pueden contener caracteres comodín o asteriscos.
Nombre de campo (tipo de elemento)
Tipo
ValueType
Descripción
Valores de ejemplo
Ejemplos de JSON
entityNameMask
LIKE
STRING
Campo opcional. entityNameMask es un nombre de un campo implícito.
El tipo de valor debe ser STRING y contiene el nombre de la entidad como valor para seleccionar solo los registros de property_vtq que sean similares (LIKE) al elemento value especificado.
*
Thing1
*hing1*
{ "fieldName": "entityNameMask", "type": "LIKE", "value", "*" }
{ "fieldName": "entityNameMask", "type": "LIKE", "value", "Thing1" }
{ "fieldName": "entityNameMask", "type": "LIKE", "value", "*hing1*" }
entityTypeMask
LIKE
STRING
Campo opcional. entityTypeMask es un nombre de un campo implícito.
El tipo de valor debe ser STRING y contiene el tipo de la entidad como valor para seleccionar solo los registros de property_vtq que sean similares (LIKE) al elemento value especificado.
* 
Aunque muchos tipos de entidad solo pueden especificar un tipo, una cosa o la versión comodín de dicha cadena producirá datos de recuento. Para otros tipos de entidad, no se encontrará ninguna coincidencia y es probable que haya un recuento de cero.
*
Cosa
*hin*
{ "fieldName": "entityTypeMask", "type": "LIKE", "value", "*" }
{ "fieldName": "entityTypeMask", "type": "LIKE", "value", "Thing" }
{ "fieldName": "entityTypeMask", "type": "LIKE", "value", "*Thin*" }
propertyNameMask
LIKE
STRING
Campo opcional. propertyNameMask es un nombre de un campo implícito.
El tipo de valor debe ser STRING y contiene la propiedad como valor para seleccionar solo los registros de property_vtq que sean similares (LIKE) al elemento value especificado.
*
prop1
*rop1*
*erialNumber
model*umbe*
{ "fieldName": "propertyNameMask", "type": "LIKE", "value", "*" }
{ "fieldName": "propertyNameMask", "type": "LIKE", "value", "prop1" }
{ "fieldName": "propertyNameMask", "type": "LIKE", "value", "*rop1*" }
{ "fieldName": "propertyNameMask", "type": "LIKE", "value", "*erialNumber" }
{ "fieldName": "propertyNameMask", "type": "LIKE", "value", "model*umbe" }
propertyBaseType
LIKE
STRING
Campo opcional. propertyBasetype es un nombre de un campo implícito.
* 
No es un valor permitido para NameMask.
El tipo de valor debe ser STRING y contiene el nombre de un tipo base válido como valor para seleccionar solo los registros de property_vtq que sean similares (LIKE) al valor especificado.
Si propertyIsIndexed es verdadero, el valor de propertyBaseType debe ser un nombre descriptivo de tipo base indexable válido de uno de los tipos siguientes:
STRING
NUMBER
INTEGER
LONG
BOOLEAN
DATETIME
THINGNAME
USERNAME
GROUPNAME
HYPERLINK
MASHUPNAME
MENUNAME
DASHBOARDNAME
TEXTO
GUID
NOTIFICATIONCONTENTNAME
NOTIFICATIONDEFINITIONNAME
STYLETHEMENAME
THINGGROUPNAME
Si propertyIsIndexed es falso, se puede especificar uno de los siguientes elementos:
PASSWORD
INFOTABLE
LOCATION
IMAGE
XML
JSON
QUERY
HTML
BLOB
VEC2
VEC3
VEC4
THINGCODE
thingname
thingNaMe
THINGNAME
THINGNamE
Cadena
STRING
BOOLean
Boolean
veC2
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "thingname" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "thingNaMe" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "THINGNAME" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "THINGNamE" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "String" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "STRING" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "BOOLean" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "Boolean" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "veC2" }
propertyIsIndexed
EQ
BOOLEAN
Campo opcional. propertyIsIndexed es un nombre de un campo implícito.
* 
No es un valor permitido para NameMask.
El tipo de valor debe ser un valor BOOLEAN válido que se utilice para filtrar las propiedades indexadas y no indexadas en property_vtq que es igual (EQ) al elemento value especificado.
Los valores válidos son true y false.
true
false
{ "fieldName": "propertyIsIndexed", "type": "EQ", "value", true}
{ "fieldName": "propertyIsIndexed", "type": "EQ", "value", false}
Casos de uso de consulta
Qué
Por qué
Ejemplo de JSON de consulta GetPropertyVTQCount
Determine el número de propiedades de tiempo de ejecución de ThingWorx Platform que contienen un valor indexado de ThingName.
Se busca el número de veces que se ha especificado una cosa (Thing1) en cualquier propiedad de cosa (*) para determinar cuántas veces se utiliza en el modelo de aplicación personalizada dentro de la plataforma. Puede ser el caso para una consulta Utilizaciones más optimizada en la funcionalidad de las propiedades que se puede proporcionar como entrada del parámetro de consulta en el servicio QueryImplementingThingOptimized:
{
"filters": {
"fieldName": "*",
"type": "LIKE",
"value": "Thing1"
}
}
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "ThingName"
},
{
"fieldName": "propertyIsIndexed",
"type": "EQ",
"value": true
}
],
"type": "AND"
},
"type": "SELF"
}
Determine el número de propiedades (y, por lo tanto, las cosas) en el tiempo de ejecución de ThingWorx Platform que contienen un número de modelo de B-X42 que no está indexado y tiene un tipo base STRING.
Desea saber cuántas baterías que se modelan como cosas en la plataforma son del nuevo tipo de batería B-X42 en función del número de modelo.
{
"filters": {
"fieldName": "modelNumber",
"type": "LIKE",
"value": "B-X42"
}
}
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "String"
},
{
"fieldName": "propertyIsIndexed",
"type": "EQ",
"value": false
},
{
"fieldName": "propertyNameMask",
"type": "LIKE",
"value": "B-X42"
}
],
"type": "AND"
},
"type": "SELF"
}
Determine el número de propiedades (y, por lo tanto, las cosas) en el tiempo de ejecución de ThingWorx Platform que contienen un número de modelo que es para B-X* y que está indexado y tiene un tipo base STRING.
Desea saber cuántas baterías modeladas como cosas en la plataforma son del tipo de batería, pero sin importar el número de modelo específico (por ejemplo, 1, 2, 3, 41, 43, etc.).
{
"filters": {
"fieldName": "modelNumber",
"type": "LIKE",
"value": "B-X*"
}
}
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "String"
},
{
"fieldName": "propertyIsIndexed",
"type": "EQ",
"value": true
},
{
"fieldName": "propertyNameMask",
"type": "LIKE",
"value": "B-X*"
}
],
"type": "AND"
},
"type": "SELF"
}
Tuplas de filtro no válidas
Para evitar resultados de consulta no válidos, no utilice las siguientes tuplas de filtro no válidas:
Consulta no válida
Ejemplo que producirá un resultado de error
Filtre los campos de tupla que especifican recopilaciones de filtro OR.
* 
Las tuplas de filtro deben combinarse como una recopilación de filtros AND.
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "String"
},
{
"fieldName": "propertyIsIndexed",
"type": "EQ",
"value": true
}
],
"type": "OR"
},
"type": "SELF"
}
Uno de los cinco tipos de elemento como nombres de campo aparecen más de una vez.
* 
Cada uno de los nombres de campo soportados debe aparecer un máximo de una vez por tupla de filtro.
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "String"
},
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "Long"
}
],
"type": "AND"
},
"type": "SELF"
}
Valores no válidos para propertyBaseType.
* 
Solo se debe especificar uno de los tipos base indicados en la columna de descripción de la tabla anterior para propertyBaseType, según si propertyIsIndexed se ha definido en true o false.
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "InvalidType"
},
{
"fieldName": "propertyIsIndexed",
"type": "EQ",
"value": true
}
],
"type": "AND"
},
"type": "SELF"
}
Valores no válidos para fieldName.
* 
Especifique solo uno de los elementos entityNameMask, entityTypeMask, propertyNameMask, propertyBaseType, propertyIsIndexed.
{
"filters": {
"filters": [
{
"fieldName": "invalidFieldName",
"type": "LIKE",
"value": "*"
}
],
"type": "AND"
},
"type": "SELF"
}
¿Fue esto útil?