Formes de données
Les formes de données représentent les données de votre modèle. Une forme de données est un ensemble nommé de définitions de champ et de métadonnées associées. Chaque champ d'une forme de données possède un type de données. ThingWorx possède un ensemble défini de types de base.
* 
Dans ThingWorx, certains noms réservés ne peuvent pas être utilisés comme noms du champ Formes de données. Par exemple, ThingShape.
Les formes de données facilitent la création d'applications, car lorsqu'une application consomme des données, grâce à la définition de la forme de données, elle dispose d'une connaissance intégrée de la représentation du jeu de données. Par exemple, si vous entrez des données dans une grille sur une application composite, la grille connaît les caractéristiques des données grâce à la définition de la forme de données. La grille sait quels champs sont constitués de valeurs numériques, de chaînes ou de dates. Ces connaissances de l'ensemble de données facilitent grandement la configuration de la façon dont la grille doit représenter les données.
Il existe des objets spécifiques créés pour stocker les données : les flux, les flux de valeurs et les tables de données. Lorsque vous définissez un objet de stockage de données, vous devez définir une forme de données (sauf pour les flux de valeurs).
Les cas d'utilisation des formes de données ne se limitent pas à la création de définitions pour des flux, des flux de valeurs et des tables de données. Les formes de données sont également utilisées pour décrire un jeu de données. Par exemple, lorsque vous définissez une sortie de table d'informations pour l'implémentation d'un service, vous pouvez utiliser une forme de données pour décrire l'ensemble des résultats de sortie. Vous pouvez alors utiliser une propriété d'objet de type table d'informations et il vous est possible de spécifier la forme de données qui décrit la propriété.
Lors de la définition des champs d'une forme de données, au moins un des champs doit être marqué comme clé primaire. Si vous utilisez MSSQL en tant que fournisseur de persistance, la longueur de la valeur de la clé primaire (longueur combinée des valeurs des clés primaires, si plusieurs clés primaires) est limitée à 128 caractères. Si la longueur de la valeur définie est supérieure à 128 caractères, l'un des messages d'erreur suivants s'affiche en fonction de la version de MSSQL que vous utilisez :
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.
Types de base de définition de champ
Type de base
Description
BASETYPENAME
Nom de type de base valide.
BLOB
Objet Blob.
BOOLEAN
Valeur "vrai" ou "faux".
DASHBOARDNAME
Nom de tableau de bord.
DATASHAPENAME
Référence à une forme de données du modèle ; fait par conséquent l'objet d'un traitement spécial.
DATETIME
Date et heure formatées.
GUID
Identificateur global unique.
* 
Si vous utilisez un GUID comme type de base, il est recommandé de définir la valeur GUID. Ne laissez pas le paramètre vide (état par défaut).
GROUPNAME
Nom de groupe d'utilisateurs.
HTML
Contenu HTML.
HYPERLINK
URL standard (telle que www.ptc.com).
IMAGE
Données binaires qui peuvent être rendues sous la forme d'une image.
IMAGELINK
Lien URL vers une image.
INFOTABLE
Représentation standard de données dans ThingWorx, similaire à un jeu de résultats SQL. Un certain nombre de services intégrés sont disponibles pour la génération, la consommation et l'analyse d'une table d'informations.
INTEGER
Valeur numérique qui n'a pas de partie décimale.
JSON
Objet au format JSON (JavaScript Object Notation).
LOCATION
Coordonnées WGS (World Geodetic System) 84 standard, exprimées sous la forme [longitude, latitude], élévation.
LONG
Le type LONG s'utilise lorsqu'une valeur plus longue que celles qu'autorise le type de base INTEGER est requise.
MASHUPNAME
Référence à une application composite ThingWorx ; fait par conséquent l'objet d'un traitement spécial.
MENUNAME
Nom de menu.
NOTHING
Sans contenu (vide).
NUMBER
Valeur numérique.
* 
Les valeurs exponentielles sont autorisées. Par exemple, 123e45.
PASSWORD
Valeur de mot de passe masquée. Pour en savoir plus, consultez la rubrique Mots de passe. Pour en savoir plus sur les méthodes de chiffrement, consultez la rubrique Chiffrement.
QUERY
Objet JSON incluant un tableau de "filtres". Chaque filtre doit inclure des éléments "value", "type" et "fieldname".
SCHEDULE
Planification CRON (configurée à l'aide de l'éditeur de planification).
STRING
Chaîne de caractères alphanumériques de n'importe quelle longueur.
STYLETHEMENAME
Référence à un thème stylistique ; fait par conséquent l'objet d'un traitement spécial.
TAGS
Valeurs de tag ThingWorx.
TEXTE
Chaîne de caractères alphanumériques de n'importe quelle longueur. A la différence d'une chaîne STRING, une chaîne TEXT est indexée.
THINGCODE
Représentation numérique d'un objet contenant un ID de domaine et un ID d'instance. Par exemple, 2:1.
THINGNAME
Référence à un objet ; fait par conséquent l'objet d'un traitement spécial.
THINGSHAPENAME
Référence à une forme d'objet du modèle ; fait par conséquent l'objet d'un traitement spécial.
THINGTEMPLATENAME
Nom de modèle d'objet.
TIMESPAN
Un objet TimeSpan représente un intervalle de temps (durée ou temps écoulé) mesuré en nombre positif ou négatif de jours, heures, minutes, secondes.
USERNAME
Référence à un utilisateur ThingWorx défini dans le système.
VEC2
Suite de deux valeurs numériques. Coordonnées 2D x et y, par exemple.
VEC3
Suite de trois valeurs numériques. Coordonnées 3D x, y et z, par exemple.
VEC4
Suite de quatre valeurs numériques. Coordonnées 4D x, y, z et w, par exemple.
XML
Extrait de code ou document XML.
Mise à jour d'une forme de données existante
Tenez compte des implications suivantes si vous souhaitez mettre à jour une forme de données existante (modification des définitions de champ, des types ou de la clé primaire) après sa définition :
L'insertion de données après la modification de la forme de données fonctionnera. Toutefois, les nouvelles lignes seront mappées à la nouvelle définition de la forme de données.
Lors de l'insertion de données après modification de la forme de données, la clé primaire fonctionnera, mais l'intégrité des clés existantes sera toujours vérifiée. Lorsque vous insérez des données, la valeur clé est générée par concaténation de toutes les valeurs de champ marquées en tant que clé primaire (dans l'ordre des définitions de champ) dans un champ unique nommé key.
Toute requête effectuée pour interroger les lignes après avoir modifié la forme de données fera de son possible pour mapper les types et les noms de champ au jeu de résultat. Si les lignes existantes ne correspondent pas aux types ou aux noms de champ, les lignes seront toujours incluses dans le jeu, mais sans valeur.
Est-ce que cela a été utile ?