Utilizzo del servizio GetPropertyVTQCount
Il servizio GetPropertyVTQCount restituisce un numero di proprietà oggetto definite per un oggetto, un modello di oggetto o una thing shape che sono stati inseriti o impostati in ThingWorx in fase di esecuzione. Il servizio interroga un numero selezionato dalla tabella di database del provider di persistenza proprietà property_vtq della piattaforma ThingWorx. Il risultato può aiutare a stabilire come ottimizzare le prestazioni delle interrogazioni o l'inserimento di valori di proprietà a causa del numero totale di valori di proprietà indicizzate di un determinato nome, un tipo di base ThingWorx specifico, su un determinato nome di entità e così via in fase di esecuzione. L'interrogazione e l'inserimento possono essere influenzati dall'indicizzazione del database di questi valori property_vtq.
Dettagli del servizio
Dettagli
Descrizione
Restituisce il numero di proprietà specificato dai criteri di interrogazione.
Parametri
query
Tipo di base QUERY
Per i valori accettabili, vedere Elementi tupla dei filtri di interrogazione supportati.
Risultato (parametro di interrogazione non valido)
Messaggio di errore che indica che l'interrogazione non è valida.
Risultato (parametro di interrogazione valido)
Numero
Elementi tupla dei filtri di interrogazione supportati
Il servizio GetPropertyVTQCount supporta cinque tipi di elemento: entityNameMask, entityTypeMask, propertyNameMask, propertyBaseType e propertyIsIndexed all'interno dei relativi filtri di interrogazione.
* 
Per questi tipi di elemento viene rilevata la distinzione tra maiuscole e minuscole.
È possibile passare una combinazione dei cinque tipi di elemento al servizio GetPropertyVTQCount. Le combinazioni sono denominate tuple dei filtri. Vengono implementate come una raccolta di filtri di ThingWorx simile alla seguente:
{ "filters": [ {...}, {...}], "type": "AND" }
Dove { ... } è un filtro di un solo tipo di elemento. In questo esempio sono presenti filtri di due tipi di elemento all'interno di una tupla di filtro, che viene definita come raccolta di filtri ThingWorx AND.
Nella tabella seguente
Ciascuno dei seguenti filtri di tipi di elemento può essere presente solo 0 o 1 volta per tupla di filtro.
All'interno di un filtro di un solo tipo di elemento si definiscono tre campi (ad esempio fieldName, type, value).
Per qualsiasi campo con un suffisso Mask, i valori possono contenere caratteri jolly/asterischi.
Nome campo (tipo di elemento)
Tipo
ValueType
Descrizione
Valori di esempio
Esempi JSON
entityNameMask
LIKE
STRING
Campo facoltativo. entityNameMask è un nome di un campo implicito.
Il rispettivo tipo di valore deve essere una stringa che include come valore il nome dell'entità, per selezionare solo i record della tabella property_vtq che siano simili all'elemento value specificato.
*
Thing1
*hing1*
{ "fieldName": "entityNameMask", "type": "LIKE", "value", "*" }
{ "fieldName": "entityNameMask", "type": "LIKE", "value", "Thing1" }
{ "fieldName": "entityNameMask", "type": "LIKE", "value", "*hing1*" }
entityTypeMask
LIKE
STRING
Campo facoltativo. entityTypeMask è un nome di un campo implicito.
Il rispettivo tipo di valore deve essere una stringa che include come valore il tipo dell'entità, per selezionare solo i record della tabella property_vtq che siano simili all'elemento value specificato.
* 
Sebbene molti tipi di entità possano specificare un solo tipo, il risultato di Thing o della versione carattere jolly di tale stringa può essere qualsiasi numero. Per altri tipi di entità, non viene trovata alcuna corrispondenza ed è probabile che il risultato sia zero.
*
Thing
*hin*
{ "fieldName": "entityTypeMask", "type": "LIKE", "value", "*" }
{ "fieldName": "entityTypeMask", "type": "LIKE", "value", "Thing" }
{ "fieldName": "entityTypeMask", "type": "LIKE", "value", "*Thin*" }
propertyNameMask
LIKE
STRING
Campo facoltativo. propertyNameMask è un nome di un campo implicito.
Il rispettivo tipo di valore deve essere una stringa che include come valore il nome della proprietà, per selezionare solo i record della tabella property_vtq che siano simili all'elemento value specificato.
*
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 facoltativo. propertyBasetype è un nome di un campo implicito.
* 
Non è un valore NameMask consentito.
Il rispettivo tipo di valore deve essere una stringa che include come valore il nome di un tipo di base valido, per selezionare solo i record della tabella property_vtq che siano simili al valore specificato.
Se propertyIsIndexed è true, il valore di propertyBaseType deve essere un nome descrittivo del tipo base indicizzabile valido di uno degli elementi seguenti:
STRING
NUMBER
INTEGER
LONG
BOOLEAN
DATETIME
THINGNAME
USERNAME
GROUPNAME
HYPERLINK
MASHUPNAME
MENUNAME
DASHBOARDNAME
TEXT
GUID
NOTIFICATIONCONTENTNAME
NOTIFICATIONDEFINITIONNAME
STYLETHEMENAME
THINGGROUPNAME
Se propertyIsIndexed è false, è possibile specificare uno dei tipi seguenti:
PASSWORD
INFOTABLE
LOCATION
IMAGE
XML
JSON
QUERY
HTML
BLOB
VEC2
VEC3
VEC4
THINGCODE
thingname
thingNaMe
THINGNAME
THINGNamE
String
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 facoltativo. propertyIsIndexed è un nome di un campo implicito.
* 
Non è un valore NameMask consentito.
Il tipo di valore deve essere un valore BOOLEAN valido che viene utilizzato per filtrare le proprietà indicizzate e non indicizzate della tabella property_vtq che siano uguali all'elemento value specificato.
I valori validi sono true e false.
true
false
{ "fieldName": "propertyIsIndexed", "type": "EQ", "value", true}
{ "fieldName": "propertyIsIndexed", "type": "EQ", "value", false}
Casi di utilizzo delle interrogazioni
Cosa fare
Perché
Esempio JSON interrogazione GetPropertyVTQCount
Determinare il numero di proprietà nella fase di esecuzione della piattaforma ThingWorx contenenti un valore ThingName indicizzato.
Si vuole conoscere quante volte un oggetto (Thing1) è specificato in qualsiasi (*) proprietà per determinare il numero di volte in cui viene utilizzato nel modello di applicazione personalizzato all'interno della piattaforma. Potrebbe essere il caso di un'interrogazione Where Used ottimizzata per le funzionalità delle proprietà che potrebbero essere fornite come input dei parametri di interrogazione al servizio 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"
}
Determinare il numero di proprietà (e quindi di oggetti) nella fase di esecuzione della piattaforma ThingWorx contenenti il numero di modello B-X42 non indicizzato e con un tipo di base STRING.
Si vuole conoscere il numero di batterie modellate come oggetti nella piattaforma che appartengono al nuovo tipo B-X42 in base al numero di modello.
{
"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"
}
Determinare il numero di proprietà (e quindi di oggetti) nella fase di esecuzione della piattaforma ThingWorx contenenti il numero di modello B-X * indicizzato e con un tipo di base STRING.
Si desidera sapere quante batterie modellate come oggetti nella piattaforma appartengono a quel tipo di batteria ma non interessa il numero di modello specifico (ad esempio 1, 2, 3, 41, 43 e così via).
{
"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"
}
Tuple di filtro non valide
Per evitare risultati di interrogazione non validi, non utilizzare le tuple di filtro non valide seguenti:
Interrogazione non valida
Esempio che restituisce un errore
Filtrare i campi di tupla che specificano raccolte di filtro OR.
* 
Le tuple di filtro devono essere combinate come raccolta di filtri AND.
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "String"
},
{
"fieldName": "propertyIsIndexed",
"type": "EQ",
"value": true
}
],
"type": "OR"
},
"type": "SELF"
}
Uno dei cinque tipi di elemento, come i nomi di campo, si presenta più di una volta.
* 
Ciascuno dei nomi di campo supportati deve verificarsi al massimo una volta per ogni tupla di filtro.
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "String"
},
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "Long"
}
],
"type": "AND"
},
"type": "SELF"
}
Valori non validi per propertyBaseType.
* 
Specificare solo uno dei tipi di base indicati nella colonna Descrizione della tabella precedente per propertyBaseType, in base all'impostazione di propertyIsIndexed su true o false.
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "InvalidType"
},
{
"fieldName": "propertyIsIndexed",
"type": "EQ",
"value": true
}
],
"type": "AND"
},
"type": "SELF"
}
Valori non validi per fieldName.
* 
Specificare solo un valore tra entityNameMask, entityTypeMask, propertyNameMask, propertyBaseType, propertyIsIndexed.
{
"filters": {
"filters": [
{
"fieldName": "invalidFieldName",
"type": "LIKE",
"value": "*"
}
],
"type": "AND"
},
"type": "SELF"
}
È stato utile?