Data Shapes
Data Shapes stellen die Daten in Ihrem Modell dar. Ein Data Shape ist ein benannter Satz Felddefinitionen und zugehöriger Metadaten. Jedes Feld in einem Data Shape hat einen Datentyp. ThingWorx verfügt über einen definierten Satz Basistypen.
* 
In ThingWorx können einige reservierte Namen nicht als Feldnamen für Data Shapes verwendet werden. Beispiel: ThingShape.
Data Shapes unterstützen Sie beim Erstellen von Anwendungen. Wenn eine Anwendung Daten mit der Data Shape-Definition verwendet, verfügt die Anwendung über integrierte Kenntnisse zur Darstellung des Datensatzes. Wenn Sie beispielsweise Daten in ein Raster in einem Mashup einfügen, weiß das Raster aufgrund der Data Shape-Definition, um welche Art von Daten es sich handelt. Das Raster weiß, welche Felder Zahlen, Zeichenfolgen oder Datumsangaben sind. Wenn Sie konfigurieren, wie das Raster die Daten rendern sollte, vereinfacht dieses Wissen des Datensatzes die Konfiguration erheblich.
Es gibt bestimmte Dinge, die zum Speichern von Daten erstellt werden: Streams, Wert-Streams und Datentabellen. Wenn Sie ein Datenspeicher-Ding definieren, müssen Sie einen Data Shape definieren (ausgenommen Wert-Streams).
Data Shapes werden nicht nur als Definitionen für Streams, Wert-Streams und Datentabellen eingesetzt. Data Shapes werden auch überall da verwendet, wo Sie einen Datensatz beschreiben müssen. Wenn Sie beispielsweise eine Infotable-Ausgabe für eine Dienstimplementierung definieren, verwenden Sie einen Data Shape, um den Ausgabe-Ergebnissatz zu beschreiben. Sie können über eine Dingeigenschaft vom Typ "Infotable" verfügen, und Sie können den Data Shape angeben, der die Eigenschaft beschreibt.
Wenn Sie die Felder eines Data Shape definieren, muss mindestens eines der Felder als primärer Schlüssel markiert sein. Wenn Sie MSSQL als Persistenzanbieter verwenden, ist die Länge des Werts für den primären Schlüssel (kombinierte Länge der Werte für primäre Schlüssel, wenn mehr als ein primärer Schlüssel markiert ist) auf 128 Zeichen begrenzt. Wenn der festgelegte Werts länger als 128 Zeichen ist, wird eine der folgenden Fehlermeldungen angezeigt, abhängig von der verwendeten MSSQL-Version:
MSSQL 2019:
Unable to Invoke Service AddDataTableEntries on testDataTable :
java.lang.RuntimeException: com.thingworx.common.exceptions.DataAccessException:
[1,018] Data store unknown error: [Error occurred while accessing the data provider.]
MSSQL 2017:
Unable to Invoke Service AddDataTableEntries on testDatatable :
java.lang.RuntimeException: com.thingworx.common.exceptions.DataAccessException:
[22,001] String or binary data would be truncated.
Basistypen für Felddefinitionen
Basistyp
Beschreibung
BASETYPENAME
Ein gültiger Basistypname.
BLOB
Ein Binary Large Object.
BOOLEAN
Der Wert "true" oder "false".
DASHBOARDNAME
Der Name eines Dashboards.
DATASHAPENAME
Ein Verweis auf einen Data Shape im Modell; erfährt daher eine spezielle Verarbeitung.
DATETIME
Eine formatierte Datums-/Zeitangabe.
GUID
Globale eindeutige ID.
* 
Wenn Sie GUID als Basistyp verwenden, wird empfohlen, den GUID-Wert festzulegen. Lassen Sie ihn nicht leer (Standard).
GROUPNAME
Ein Benutzergruppenname.
HTML
HTML-Inhalt.
HYPERLINK
Eine Standard-URL (z.B. www.ptc.com).
IMAGE
Binärdaten, die als Bild gerendert werden können.
IMAGELINK
Ein URL-Link zu einem Bild.
INFOTABLE
Eine Standarddarstellung von Daten in ThingWorx, die einem SQL-Ergebnissatz ähnelt. Es gibt eine Reihe integrierter Dienste für das Erstellen, Verwenden und Analysieren einer Infotable.
INTEGER
Eine Zahl, die ohne Nachkommastelle geschrieben werden kann.
JSON
Ein JavaScript Object Notation-Objekt.
LOCATION
Standardkoordinate des World Geodetic System 1984 (WGS 84), ausgedrückt als [Längengrad, Breitengrad], Höhe.
LONG
Der Typ LONG sollte verwendet werden, wenn ein längerer Bereich als der vom Basistyp INTEGER bereitgestellte erforderlich ist.
MASHUPNAME
Ein Verweis auf ein ThingWorx Mashup; erfährt daher eine spezielle Verarbeitung.
MENUNAME
Der Name eines Menüs.
NOTHING
Enthält nichts (ungültig).
NUMBER
Eine Zahl.
* 
Exponentialwerte sind zulässig. Beispielsweise 123e45.
PASSWORD
Ein maskierter Passwortwert. Weitere Informationen finden Sie unter Passwörter. Informationen zu Verschlüsselungsmethoden finden Sie unter Verschlüsselung.
QUERY
Ein JSON-Objekt, das ein Array von "Filtern" enthält. Jeder Filter sollte "value", "type" und "fieldname" enthalten.
SCHEDULE
Ein cron-basierter Zeitplan, mithilfe des Zeitplan-Editors konfiguriert.
STRING
Eine beliebige Anzahl alphanumerischer Zeichen.
STYLETHEMENAME
Ein Verweis auf ein Stilthema; erfährt daher eine spezielle Verarbeitung.
TAGS
ThingWorx Tag-Werte.
TEXT
Eine beliebige Anzahl alphanumerischer Zeichen. Der Unterschied zu STRING besteht darin, dass TEXT indiziert ist.
THINGCODE
Eine numerische Darstellung eines Dings, die eine Domänen-ID und eine Instanz-ID enthält. Beispiel: 2:1.
THINGNAME
Ein Verweis auf ein Ding; erfährt daher eine spezielle Verarbeitung.
THINGSHAPENAME
Ein Verweis auf eine Dingform im Modell; erfährt daher eine spezielle Verarbeitung.
THINGTEMPLATENAME
Der Name einer Dingvorlage.
TIMESPAN
Ein TimeSpan-Objekt stellt ein Zeitintervall (Dauer oder verstrichene Zeit) dar, das als positive oder negative Anzahl von Tagen, Stunden, Minuten, Sekunden gemessen wird.
USERNAME
Ein Verweis auf einen ThingWorx Benutzer, der im System definiert ist.
VEC2
Eine Sammlung von zwei Zahlen. Beispielsweise die 2D-Koordinaten x und y.
VEC3
Eine Sammlung von drei Zahlen. Beispielsweise die 3D-Koordinaten x, y und z.
VEC4
Eine Sammlung von vier Zahlen. Beispielsweise die 4D-Koordinaten x, y, z und w.
XML
Ein XML-Ausschnitt oder -Dokument.
Vorhandene Data Shapes aktualisieren
Berücksichtigen Sie die folgenden Implikationen, wenn Sie einen vorhandenen Data Shape (Ändern von Felddefinitionen, Typen oder primären Schlüsseln) aktualisieren möchten, nachdem er definiert wurde:
Das Einfügen von Daten nach dem Ändern des Data Shape ist möglich. Die neuen Zeilen werden jedoch der neuen Data Shape-Definition zugeordnet.
Beim Einfügen von Daten nach dem Ändern des Data Shape funktioniert der primäre Schlüssel, aber die Integrität vorhandener Schlüssel muss noch überprüft werden. Bei einem Einfügevorgang wird der Schlüsselwert gebildet, indem alle Feldwerte, die als primärer Schlüssel markiert sind, (in der Reihe der Felddefinitionen) zu einem Feld namens key verkettet werden.
Beim Abfragen der Zeilen nach dem Ändern des Data Shape wird versucht, Feldnamen und -typen bestmöglich dem Ergebnissatz zuzuordnen. Wenn die vorhandenen Zeilen den Typen oder Feldnamen nicht entsprechen, werden die Zeilen trotzdem in den Satz eingeschlossen, allerdings ohne Wert.
War dies hilfreich?