ThingWorx Modelldefinition in Composer > Modellierung > Dinge > Dingdienste > Abfrageparameter für Abfragedienste
Abfrageparameter für Abfragedienste
Einige ThingWorx Dienste akzeptieren einen optionalen Abfrageparameter. Der Abfrageparameter ist ein Wertobjekt, das je nach Typ der angeforderten Abfrage unterschiedlich konfiguriert wird.
Mögliche Typen sind:
Matches, NotMatches TaggedWith,
NotTaggedWith
GT, LT, GE, LE, NE, EQ, LIKE, NOTLIKE, IN, NOTIN
Between, NotBetween MissingValue,
NotMissingValue Near, NotNear
Abfragen können AND/OR sein und eine Sortierung beinhalten.
Der Abfrageparameter wird in allen Diensten verwendet, die mit "Query" beginnen, darunter:
Alle Dinge
QueryThingStreamEntries
Alle Streams
QueryStreamData
QueryStreamEntries
QueryStreamEntriesWithData
Alle Datentabellen
QueryDataTableEntries
InfoTableFunctions-Ressource
Query
Alle Dingvorlagen
QueryImplementingThings
QueryImplementingThingsWithData
Alle Dingformen
QueryImplementingThings
QueryImplementingThingsWithData
Untersystem für Prüfung
Konfiguration
Der Abfrageparameter hat zwei konfigurierbare Optionen: Filter und Sortierungen. Nachdem Sie den Abfrageparameter definiert haben, kann er in einen Abfragedienst übergeben werden. Nachfolgend finden Sie Beispiele der Filter- und Sortierungsoptionen für den Abfrageparameter. Es wird empfohlen, dass Sie die Skripterstellungstools und Ausschnitte im Skriptkonfigurator als Ausgangspunkt verwenden und dann manuell das Abfrageparameterobjekt wie gewünscht erstellen.
Einzelne Filteroptionen
Matches- oder NotMatches-Filter
var query =
{
"filters": {
"type": "Matches|NotMatches",
"fieldName": "Source",
"expression": "(Kettle)|(Filler)"
}
};
Filter TAGGED oder NOTTAGGED
var query = {
"fieldName": "tags",
"type": "NOTTAGGED",
"tags": [
{
"vocabulary": "Applications",
"vocabularyTerm": "Testing"
},
{
"vocabulary": "Plants",
"vocabularyTerm": "Sedona"
}
]
};
Einzelner Komparator
* 
Wenn Sie LIKE/NOTLIKE verwenden, müssen Sie Ihre eigenen Platzhalter hinzufügen (% oder * oder ? für einen Platzhalter mit einem einzelnen Zeichen). Beispiel: Um nach ThingWorx zu suchen, verwenden Sie LIKE Th%.
var query = {
"filters":{
"type": "GT, LT, GE, LE, NE, EQ, LIKE, NOTLIKE",
"fieldName": "<field_name>",
"value": "Th\\+*"
}
};
In- oder Not In-Filter
var jsonArray = [12,14];
var query = {
"filters": {
"type": "IN, NOTIN",
"fieldName": "Duration",
"values": jsonArray
}
};
Between- oder NotBetween-Filter
var query =
{
"filters": {
"type": "Between, NotBetween",
"fieldName": "Duration",
"from": "2",
"to": "12"
}
};
MissingValue- oder NotMissingValue-Filter
var query =
{
"filters": {
"type": "MissingValue, NotMissingValue",
"fieldName": "OrderQuantity"
}
};
Near- oder NotNear-Filter
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"
}
}
};
Verbundfilteroptionen
Es ist möglich, mehrere Filter entweder mit dem Filtertyp And oder Or zu kombinieren. Das Beispiel unten filtert nach Zeilen mit einer Dauer größer als 12, die auch mit einem Tag für ein Stromausfall-Wartungsproblem im Tags-Feld versehen sind.
var query =
{
"filters": {
"type": "And",
"filters": [
{
"type": "GT",
"fieldName": "Duration",
"value": "12"
},
{
"type": "TaggedWith",
"fieldName": "tags",
"tags": "MaintenanceIssues:PowerOutage"
}
]
}
};
Filter mit verschiedenen And/Or-Typen verschachteln
Um Filter mit verschiedenen And/Or-Typen zu verschachteln, muss ein Typ- und Filterschlüsselwort für jede Ebene des JSON-Objekts vorhanden sein. Die folgende JSON-Syntax für die Abfrage erzielt die gewünschten Ergebnisse (außer leere Zeichenfolge, die durch empty im Beispiel unten ersetzt wird).
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 }
]
}
};
Sortierungsoptionen
Die Sortierungsoption ist ein Objekt-Array. Es gibt drei mögliche Parameter für jedes der Sortierungsobjekte im Sortierungs-Array: fieldName, isAscending und isCaseSensitive. Nur fieldName ist erforderlich. isAscending und isCaseSensitive sind standardmäßig auf "true" festgelegt.
Einzelne Sortierungsoption
var query =
{
"sorts": [
{
"fieldName": "Material"
}
]
}
Komplexe Sortierungsoption
var query =
{
"sorts": [
{
"fieldName": "Material"
},
{
"fieldName": "OrderDate",
"isAscending": false
}
]
}
Sortierung und Filter
Sie können eine Sortierung und einen Filter für denselben Abfragedienst anwenden, wie im nächsten Beispiel:
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"
}
]
}
};
Mögliche Typen
Mögliche Typen sind:
EQ = gleich
NE = nicht gleich
GT = größer als
GE = größer als oder gleich
LT = kleiner als
LE = kleiner als oder gleich
LIKE = wie
BETWEEN
NOTBETWEEN
War dies hilfreich?