Definizione del modello ThingWorx in Composer > Modellazione > Oggetti > Servizi di oggetto > Parametro di interrogazione per servizi di interrogazione
Parametro di interrogazione per servizi di interrogazione
* 
QueryDataTableEntries nella tabella dati con i valori dell'infotable restituisce
dati dei risultati con corrispondenza esatta per PostgreSQ
dati dei risultati che contengono la parola chiave di ricerca per MSSQL.
Molti servizi ThingWorx accettano un parametro di interrogazione facoltativo. Il parametro di interrogazione è un oggetto valore configurato in modo diverso a seconda del tipo di interrogazione necessaria.
I tipi disponibili sono:
Matches, NotMatches TaggedWith,
NotTaggedWith
GT, LT, GE, LE, NE, EQ, LIKE, NOTLIKE, IN, NOTIN
Between, NotBetween MissingValue,
NotMissingValue Near, NotNear
Le interrogazioni possono essere di tipo AND/OR e includere un Sort.
Il parametro di interrogazione viene utilizzato in tutti i servizi avviati con Query, tra cui:
Tutti gli oggetti
QueryThingStreamEntries
Tutti gli stream
QueryStreamData
QueryStreamEntries
QueryStreamEntriesWithData
Tutte le tabelle dati
QueryDataTableEntries
* 
QueryDataTableEntries nella tabella dati con i valori dell'infotable restituisce
dati dei risultati con corrispondenza esatta per PostgreSQ
dati dei risultati che contengono la parola chiave di ricerca per MSSQL.
Risorsa di InfoTableFunctions
Query
Tutti i modelli di oggetto
QueryImplementingThings
QueryImplementingThingsWithData
Tutte le thing shape
QueryImplementingThings
QueryImplementingThingsWithData
Sottosistema Verifica
Configurazione
Il parametro di interrogazione ha due opzioni configurabili: filtro e ordinamento. Dopo averlo definito, il parametro di interrogazione può essere passato a un servizio di interrogazione. Di seguito sono riportati alcuni esempi delle opzioni di filtro e ordinamento per il parametro di interrogazione. È consigliabile utilizzare inizialmente gli strumenti e gli snippet di creazione di script nel configuratore di script, quindi creare manualmente l'oggetto del parametro di interrogazione in base alle esigenze.
Opzioni filtro singolo
Filtro Matches o NotMatches
var query =
{
"filters": {
"type": "Matches|NotMatches",
"fieldName": "Source",
"expression": "(Kettle)|(Filler)"
}
};
Filtro TAGGED o NOTTAGGED
var query = {
"filters": {
"fieldName": "tags",
"type": "NOTTAGGED",
"tags": [
{
"vocabulary": "Applications",
"vocabularyTerm": "Testing"
},
{
"vocabulary": "Plants",
"vocabularyTerm": "Sedona"
}
]
}
};
Comparatore singolo
* 
Quando si utilizza LIKE/NOTLIKE è necessario aggiungere caratteri jolly (% o * o ? per un singolo carattere jolly). Ad esempio, per trovare ThingWorx utilizzare LIKE Th%
var query = {
"filters":{
"type": "GT, LT, GE, LE, NE, EQ, LIKE, NOTLIKE",
"fieldName": "<field_name>",
"value": "Th\\+*"
}
};
Filtro In o Not In
* 
Durante l'utilizzo del servizio QueryImplementingThingsOptimized con un parametro di interrogazione, se l'interrogazione è un filtro semplice o un filtro annidato e utilizza più filtri IN, il codice ha esito negativo quando i valori della matrice per il filtro IN sono vuoti.
var jsonArray = [12,14];
var query = {
"filters": {
"type": "IN, NOTIN",
"fieldName": "Duration",
"values": jsonArray
}
};
Filtro Between o NotBetween
var query =
{
"filters": {
"type": "Between, NotBetween",
"fieldName": "Duration",
"from": "2",
"to": "12"
}
};
Filtro MissingValue o NotMissingValue
var query =
{
"filters": {
"type": "MissingValue, NotMissingValue",
"fieldName": "OrderQuantity"
}
};
Filtro Near o NotNear
var query =
{
"filters": {
"type": "Near, NotNear",
"fieldName": "fieldName",
"distance": "50",
"units": "M(iles), K(ilometers), N(autical miles)",
"location": {
"latitude": "40.12",
"longitude": "51.24",
"elevation": "300",
"units": "WGS84"
}
}
};
Opzioni di filtro composito
È possibile combinare più filtri utilizzando il tipo di filtro And o Or. L'esempio riportato di seguito illustra l'applicazione di filtri per le righe che hanno una durata maggiore di 12 e sono contrassegnate da un problema di manutenzione per interruzione dell'alimentazione nel campo dei tag.
var query =
{
"filters": {
"type": "And",
"filters": [
{
"type": "GT",
"fieldName": "Duration",
"value": "12"
},
{
"type": "TAGGED",
"fieldName": "tags",
"tags": [
{
"vocabulary": "MaintenanceIssues",
"vocabularyTerm": "PowerOutage"
}
]
}
]
}
};
Annidamento di filtri con tipi And/Or diversi
Per annidare i filtri con tipi And/Or diversi, deve essere presente una parola chiave relativa a tipo e filtri per ogni livello dell'oggetto JSON. La seguente sintassi JSON per l'interrogazione ottiene i risultati desiderati, ad esclusione della stringa vuota che viene sostituita con empty nell'esempio riportato di seguito.
var query =
{
"filters": {
"type": "AND",
"filters": [
{
"type": "OR",
"filters": [
{
"fieldName": "status",
"type": "LIKE",
"value":"*-none-*"
},
{
"fieldName": "status",
"type": "LIKE",
"value": "empty"
}
]
},
{
"fieldName": "isDeleted",
"type": "EQ",
"value": false
}
]
}
}
Opzioni di ordinamento
L'opzione di ordinamento è una matrice di oggetti. Nella matrice sono presenti tre possibili parametri per ciascun oggetto di ordinamento: fieldName, isAscending, isCaseSensitive. Solo il nome del campo è obbligatorio. isAscending e isCaseSensitive sono impostati su true di default.
Opzione di ordinamento singolo
var query =
{
"sorts": [
{
"fieldName": "Material"
}
]
}
Opzione di ordinamento complesso
var query =
{
"sorts": [
{
"fieldName": "Material"
},
{
"fieldName": "OrderDate",
"isAscending": false
}
]
}
Ordinamento e filtro
È possibile applicare un ordinamento e un filtro allo stesso servizio di interrogazione, come nell'esempio seguente:
var query =
{
"sorts": [
{
"fieldName": "LotID",
"isAscending": false,
"isCaseSensitive": false
},
{
"fieldName": "Plant"
}
],
"filters": {
"type": "And",
"filters": [
{
"type": "GT",
"fieldName": "Duration",
"value": "12"
},
{
"type": "TAGGED",
"fieldName": "tags",
"tags": [
{
"vocabulary": "MaintenanceIssues",
"vocabularyTerm": "PowerOutage"
}
]
}
]
}
};
Tipi disponibili
I tipi disponibili sono:
EQ = uguale a
NE = diverso da
GT = maggiore di
GE = maggiore o uguale a
LT = minore di
LE = minore o uguale a
LIKE = simile a
BETWEEN
NOTBETWEEN
È stato utile?