Definiciones de datos
Las definiciones de datos representan los datos en el modelo. Una definición de datos es un conjunto con nombre de definiciones de campo y metadatos relacionados. Cada campo de una definición de datos tiene un tipo de datos. ThingWorx tiene un conjunto definido de tipos base.
* 
En ThingWorx, algunos nombres reservados no se pueden utilizar como nombres de campo de definiciones de datos. Por ejemplo, ThingShape.
Las definiciones de datos ayudan a crear aplicaciones, ya que cuando una aplicación consume datos, con la descripción de la definición de datos, la aplicación tiene conocimientos integrados sobre cómo representar el conjunto de datos. Por ejemplo, si se colocan datos en una rejilla de un mashup, la rejilla conoce cómo son los datos debido a la definición de datos. La rejilla sabe qué campos son números, cadenas o fechas. Cuando se configura cómo la rejilla debe representar los datos, este conocimiento del conjunto de datos facilita la configuración.
Hay cosas específicas que se crean para almacenar datos: flujos, flujos de valor y tablas de datos. Al definir una cosa de almacenamiento de datos, se debe definir una definición de datos (excepto en los flujos de valor).
Las definiciones de datos se utilizan en más casos que solo como definiciones para flujos, flujos de valor y tablas de datos. Las definiciones de datos también se utilizan cuando se necesita describir un conjunto de datos. Por ejemplo, si se define una salida de infotable para una implementación de servicio, se utiliza una definición de datos para describir el conjunto de resultados de salida. Se puede tener una propiedad de cosa de tipo infotable y también se puede especificar la definición de datos en la que se describe la propiedad.
Al definir los campos de una definición de datos, al menos uno de los campos debe marcarse como clave principal. Si se utiliza MSSQL como proveedor de persistencia, la longitud del valor de la clave principal (longitud combinada de los valores de claves principales, si se ha marcado más de una como clave principal) se limita a 128 caracteres. Si la longitud del valor que se está definiendo es superior a 128 caracteres, se muestra uno de los siguientes mensajes de error, en función de la versión de MSSQL que se utilice:
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.
Tipos base de definición de campo
Tipo base
Descripción
BASETYPENAME
Un nombre de tipo base válido.
BLOB
Un objeto binario de gran tamaño.
BOOLEAN
Un valor verdadero o falso.
DASHBOARDNAME
El nombre de un tablero.
DATASHAPENAME
Una referencia a una definición de datos en el modelo que, por consiguiente, tiene una gestión especial.
DATETIME
Fecha y hora con formato.
GUID
Identificador único global.
* 
Si se utiliza GUID como tipo base, se recomienda definir el valor de GUID. No se debe dejar en blanco (por defecto).
GROUPNAME
Un nombre de grupo de usuarios.
HTML
Contenido HTML.
HYPERLINK
Un URL estándar (p. ej., www.ptc.com).
IMAGE
Datos binarios que se pueden representar como imagen.
IMAGELINK
Un vínculo URL a una imagen.
INFOTABLE
Una representación estándar de datos en ThingWorx que son similares a un conjunto de resultados de SQL. Hay varios servicios integrados para generar, consumir y analizar una infotable.
INTEGER
Un número que se puede escribir sin un componente fraccionario.
JSON
Un objeto de Javascript Object Notation.
LOCATION
Coordenada del Sistema Geodésico Mundial (WGS) 84, expresada como [longitud, latitud], elevación.
LONG
El tipo LONG se debe utilizar cuando se requiere un rango más largo del que se proporciona en el tipo base INTEGER.
MASHUPNAME
Una referencia a un mashup de ThingWorx y que, por consiguiente, tiene una gestión especial.
MENUNAME
El nombre de un menú.
NOTHING
No contiene nada (nulo).
NUMBER
Un número.
* 
Se permiten valores exponenciales. Por ejemplo, 123e45.
PASSWORD
Un valor de contraseña con máscara. Consulte Contraseñas para obtener más información. Para obtener información sobre métodos de codificación, consulte Codificación.
QUERY
Un objeto JSON en el que se incluye una matriz de "filtros". En cada filtro se debe incluir los parámetros value, type y fieldname.
SCHEDULE
Una programación basada en notaciones CRON (configurada mediante el editor de programaciones).
STRING
Cualquier cantidad de caracteres alfanuméricos.
STYLETHEMENAME
Una referencia a un tema de estilo y que, por consiguiente, tiene una gestión especial.
TAGS
Valores de etiqueta de ThingWorx.
TEXT
Cualquier cantidad de caracteres alfanuméricos. La diferencia con STRING es que TEXT está indexado.
THINGCODE
Una representación numérica de una cosa en la que se incluye un objeto DomainID y un objeto InstanceID. Por ejemplo, 2:1.
THINGNAME
Una referencia a una cosa y que, por consiguiente, tiene una gestión especial.
THINGSHAPENAME
Una referencia a una definición de cosa en el modelo y que, por consiguiente, tiene una gestión especial.
THINGTEMPLATENAME
El nombre de una plantilla de cosa.
TIMESPAN
Un objeto TimeSpan representa un intervalo de tiempo (duración o tiempo transcurrido) que se mide como un número (positivo o negativo) de días, horas, minutos, segundos.
USERNAME
Una referencia a un usuario de ThingWorx definido en el sistema.
VEC2
Una recopilación de dos números. Por ejemplo, las coordenadas 2D X e Y.
VEC3
Una recopilación de tres números. Por ejemplo, las coordenadas 3D X, Y y Z.
VEC4
Una recopilación de cuatro números. Por ejemplo, las coordenadas 4D X, Y, Z y W.
XML
Un fragmento o un documento XML.
Actualización de una definición de datos existente
Se deben tener en cuenta las siguientes implicaciones si desea actualizar una definición de datos existente (cambiando las definiciones, los tipos o la clave principal de campo) después de que se haya definido:
La inserción de datos después de cambiar la definición de datos funcionará. Sin embargo, las nuevas filas se asignarán a la definición de la nueva definición de datos.
Al insertar datos después de cambiar la definición de datos, la clave principal funcionará, pero aún se verificará la integridad de las claves existentes. Al realizar una inserción, el valor de clave se genera mediante la concatenación de todos los valores de campo marcados como clave principal (en el orden de las definiciones de campo) en un campo denominado key.
La consulta de las filas después de cambiar la definición de datos intentará, de la mejor manera posible, asignar nombres y tipos de campo al conjunto de resultados. Si las filas existentes no coinciden con los tipos o los nombres de campo, las filas se incluirán en el conjunto, pero sin ningún valor.
¿Fue esto útil?