ThingWorx Modelldefinition in Composer > Modellierung > Code-Snippets > QueryImplementingThingsOptimized
QueryImplementingThingsOptimized
Beschreibung
Der Dienst QueryImplementingThingsOptimized wird verwendet, um Dingformen und Dingvorlagen effizient abzufragen. Er bietet zwei JavaScript-Dienste:
QueryImplementingThingsOptimized
QueryImplementingThingsOptimizedWithTotalCount
Sie können diese Dienste auf die gleiche Weise aufrufen wie den Dienst QueryImplementingThings. Beispiel: ThingShapes["shape1"].QueryImplementingThingsOptimized.
WithTotalCount gibt eine Infotable zurück, die das Ergebnis und die Gesamtanzahl der Zeilen enthält. Dabei wird ein auf die Abfrage angewendeter Versatz oder Grenzwert für die maximale Anzahl von Elementen ignoriert. Wenn Sie beispielsweise eine Abfrage durchführen, bei der maxItems auf 5festgelegt ist, werden fünf Zeilen zurückgegeben. Die Gesamtanzahl der Zeilen kann jedoch 100 betragen; dies ist die Gesamtanzahl von Zeilen, die vor dem Anwenden des Grenzwerts gefunden wurden.
Der Dienst QueryImplementingThingsOptimized sucht nicht in der Datenbank, sondern im Cache, und es gelten die folgenden Einschränkungen:
Nur Eigenschaften für die angegebene Dingform oder Dingvorlage können eingegeben werden. Eigenschaften können mit dem Parameter propertyNames angegeben werden. Wenn eine Eigenschaft für das Ding, aber nicht für die angegebene Dingform vorhanden ist, löst der Dienst eine Ausnahme aus.
Das Filtern oder Sortieren nach Passworttyp ist nicht zulässig.
Dinge mit einer Eigenschaft, die aufgrund von Berechtigungen nicht gefiltert werden kann, werden ignoriert. Wenn eine nicht gefilterte und nicht sichtbare Eigenschaft angefordert wird, wird sie für dieses Ding als NULL zurückgegeben.
Beispiel: Sie filtern nach der Eigenschaft prop1 einer bestimmten Dingform, wobei Thing1, Thing2 und Thing3 vorhanden sind. Für Thing1können Sie prop1 nicht sehen. Daher wird Thing1 ignoriert, selbst wenn sein Wert dem Filter entspricht. Es werden nur Thing2 und Thing3 zurückgegeben.
Das Filtern oder Sortieren nach den folgenden grundlegenden Eigenschaften ist nicht zulässig: homeMashup, Avatar, projectNameund isSystemObject.
Eingabe
Parametername
Beschreibung
Basistyp
networkName
Der Netzwerkname, nach dem gefiltert werden soll. Die Abfrage gibt nur Ergebnisse zurück, die für Dinge in diesem Netzwerk gefunden wurden.
STRING
networkParentNode
Der Name des obersten Knotens in dem Netzwerk, das in networkName angegeben ist. Die Abfrage gibt alle Kinder aus dem angegebenen Eltern-Knoten im Netzwerk zurück.
STRING
networkMaxDepth
Die Ebene, auf der nach Kindern des Eltern-Knotens gesucht werden soll. 1 gibt direkte Kinder zurück, und 2 gibt Kinder von Kindern zurück. Wenn der Parameter auf 0 oder "default/null" festgelegt ist, wird die vollständige Hierarchie von Kindern zurückgegeben.
INTEGER
offset
Der Versatz des Ergebnisses um den angegebenen Wert. Wenn beispielsweise 200 Ergebnisse in der Datenbank vorliegen und ein Versatz von 5 angegeben ist, werden die Ergebnisse 5 bis 200 (also insgesamt 195) zurückgegeben.
Sie können offset mit maxItems kombinieren, um Paginierung zu simulieren. Je mehr Ergebnisse Sie abfragen, desto länger kann die Abfrage dauern.
Beispiel: Die Dinge 1 bis 1000 sind vorhanden, und maxItems ist auf 5 festgelegt, d.h., auf jeder Seite werden 5 Ergebnisse angezeigt.
Seite 1: offset ist 0. Die ersten 5 Ergebnisse werden zurückgegeben, da maxItems auf 5 festgelegt ist.
Seite 2: offset ist 5. Die Ergebnisse 6 bis 10 werden zurückgegeben.
Seite 3: offset ist 10. Die Ergebnisse 11 bis 15 werden zurückgegeben.
Und so weiter.
In diesem Beispiel werden nur wenige Ergebnisse zurückgegeben, daher ist die Abfrage schnell abgeschlossen.
NUMBER
basicPropertyNames
Listet die Namen der grundlegenden Eigenschaften auf.
INFOTABLE
withPermissions
Ein Parameter vom Typ BOOLEAN ("true" oder "false"), der angibt, ob Berechtigungen berücksichtigt werden sollen. Ist er auf "true" festgelegt, prüft der Dienst auf Berechtigungen, bevor Aktionen ausgeführt werden.
BOOLEAN
nameMask
Gibt ein Muster oder eine Maske für das Filtern von Namen an.
STRING
propertyNames
Listet die Namen der Eigenschaften auf, die Sie abrufen oder bearbeiten möchten.
INFOTABLE
query
Definiert die Abfrage-Parameter zum Filtern der Ergebnisse.
QUERY
networkName
Gibt den Namen des Netzwerks an.
STRING
maxItems
Gibt die maximal erforderliche Anzahl von Elementen an, ähnlich der Seitengröße bei der Paginierung. Hilfreich, um die Anzahl der Elemente zu steuern, die auf einer einzelnen Ergebnisseite zurückgegeben werden.
NUMBER
tags
Die zu filternden Daten-Tags
TAGS
Ausgabe
Infotable.
Beispiel
// result: INFOTABLE dataShape: "RootEntityList"
let result = ThingTemplates["GenericThing"].QueryImplementingThingsOptimized({
networkParentNode: undefined /* STRING */,
networkMaxDepth: undefined /* INTEGER {"defaultValue":0} */,
maxItems: undefined /* NUMBER {"defaultValue":500} */,
basicPropertyNames: undefined /* INFOTABLE {"dataShape":"EntityList"} */,
withPermissions: undefined /* BOOLEAN {"defaultValue":false} */,
offset: undefined /* NUMBER {"defaultValue":0} */,
nameMask: undefined /* STRING */,
propertyNames: undefined /* INFOTABLE {"dataShape":"EntityList"} */,
query: undefined /* QUERY */,
networkName: undefined /* STRING */,
tags: undefined /* TAGS */
});
War dies hilfreich?