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
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
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 = {
"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
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": "TaggedWith",
"fieldName": "tags",
"tags": "MaintenanceIssues: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 query3 = {
"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": "TaggedWith",
"fieldName": "tags",
"tags": "MaintenanceIssues: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?