Propiedades de cosa
Las propiedades de cosa se utilizan para describir los puntos de datos relacionados con una cosa. Por ejemplo, supongamos que un cliente tiene una propiedad de nombre y una propiedad de dirección. Un camión puede tener las siguientes propiedades: conductor, capacidad y ubicación.
Las propiedades son una manera simple y práctica de saber las condiciones actuales de una cosa. Las propiedades pueden ser estáticas (por ejemplo, fabricante y número de modelo) o dinámicas (por ejemplo, temperatura). Se pueden configurar propiedades en función de la estructura de activos, los procesos empresariales y las soluciones que se quieren proporcionar.
Al crear una propiedad, se puede seleccionar uno de los siguientes tipos de enlaces:
My Property
Una propiedad para una cosa local. Esta es la configuración por defecto.
Local Bound
Permite vincular la propiedad con una propiedad definida en una cosa distinta del servidor de ThingWorx. Esta propiedad se puede definir para que sea de solo lectura y, además, puede recibir un valor de otra propiedad en el servidor. No se utiliza para dispositivos remotos, a menos que se cree un enlace local a una propiedad enlazada de manera remota.
Remote
Cuando un dispositivo remoto se conecta por primera vez a un servidor ThingWorx, el servidor enlaza el dispositivo remoto a su cosa correspondiente. Una vez enlazado el dispositivo remoto, se debe crear un enlace remoto entre cada propiedad definida en dicho dispositivo y la cosa remota que representa el dispositivo en ThingWorx. ThingWorx utiliza este enlace para enviar y recibir actualizaciones de cada valor de propiedad de un dispositivo remoto en una conexión de WebSocket activa.
* 
Si una cosa local y una cosa remota tienen una propiedad con el mismo nombre y otra propiedad está enlazada a la configuración de propiedad remota, la propiedad remota también define el valor de la propiedad local.
* 
Para obtener información sobre la configuración de enlaces de propiedad, ya sean locales o remotos, consulte Gestión de enlaces de propiedad.
Cada propiedad tiene un nombre, una descripción y un tipo de datos de ThingWorx denominado tipo base en ThingWorx. En función del tipo base, se pueden activar campos adicionales. Un tipo escalar sencillo, como un número o una cadena, permite añadir campos básicos como valor por defecto. Los tipos base más complejos tienen más opciones. Por ejemplo, un tipo base de INFOTABLE incluye la capacidad de definir una definición de datos para describir la estructura de datos de la infotable. Para obtener más información, consulte la siguiente tabla de tipos base.
Un valor de propiedad de cosa consta de tres características: valor, fecha y calidad (VTQ). Se pueden proporcionar o definir automáticamente valores de VTQ, y los estados de calidad aceptable se encuentran en la clase QualityStatus. Siempre que se define o se actualiza una propiedad, se actualizan todas sus características de VTQ.
En general, una propiedad se puede actualizar en Composer definiendo me.PropertyName = value, y la fecha y hora reflejarán la fecha y hora actuales del servidor. Para las actualizaciones históricas de lote, se puede utilizar el servicio UpdatePropertyValues, que permite transferir un valor, una fecha y hora y una calidad específicos. Los valores de la propiedad no se pueden definir en nulo.
* 
Al escribir servicios personalizados, se debe evitar la generación de código que puede modificar simultáneamente la misma propiedad de una entidad dada. Por ejemplo, no incremente ni reduzca simultáneamente un valor de propiedad, ya que puede provocar valores de propiedad imprevisibles. Del mismo modo, el incremento de las propiedades para que actúen como contadores dentro de las suscripciones es un uso incorrecto habitual que provocará inexactitudes.
En ThingWorx 8.3.13, 8.4.9, 8.5.5 y versiones posteriores, el evento HistoricalDataLogged se activará cuando se defina un valor de propiedad histórica. Por ejemplo, considere que la fecha y hora del conjunto actual de una propiedad VTQ en una entidad es 2020-02-04 20:16:20. Al importar una nueva versión de la entidad, se define una propiedad VTQ anterior, como 2019-12-24 19:00:45. Dicho conjunto hará que se inicie el evento HistoricalDataLogged para dicha propiedad y se utilizarán todas las suscripciones a ese evento en la propiedad.
Alertas
Para obtener información sobre alertas, consulte Alertas.
Aspectos de las propiedades
Las propiedades pueden tener la siguiente configuración de aspecto:
Persistente
Si se selecciona o se define en verdadero, cada cambio de valor persiste en la base de datos.
Las escrituras de la base de datos de propiedades persistentes se producen de manera asíncrona para evitar bloqueos. Aunque el valor de la propiedad se define inmediatamente, la escritura de la base de datos se produce de manera asíncrona posteriormente. Las siguientes validaciones tienen lugar antes de que se escriba un valor de propiedad persistente en la base de datos:
La cosa debe existir todavía.
La cosa debe tener un ID.
El ID de la cosa y el ID de escritura pendiente deben coincidir.
La cosa todavía debe definir la propiedad con el mismo nombre que la escritura pendiente.
La propiedad definida todavía debe ser persistente.
Las actualizaciones y los reinicios no afectan al procesamiento de la cola.
Solo lectura
Si se selecciona o se define en verdadero, los datos son estáticos y no se pueden escribir en tiempo de ejecución. La única manera de cambiar el valor es cambiando el valor por defecto. Esto es útil para los datos de configuración estáticos.
Registrado
Si se selecciona o se define en verdadero, el valor de la propiedad se registra automáticamente en un flujo de valor cuando cambian los datos (en función del tipo de cambio de datos).
* 
Si el evento de cambio de datos no se arranca en determinadas circunstancias, la entrada de flujo de valor no se registra, pero se conserva el valor de la propiedad definido. Es posible que las propiedades se puedan definir en una entidad, pero se puede quitar la escritura de flujo de valor correspondiente, debido a que la cola que contiene esas escrituras se está llenando y no se puede vaciar en la base de datos. Esto puede ocurrir si el volumen de escrituras entrantes es mayor que la velocidad de vaciado que tiene configurada la cola. Esto se puede ajustar en platform-settings.json por proveedor de persistencia. La pérdida de conexión de ThingWorx con la base de datos también puede provocar que la cola realice una copia de seguridad y que no se vacíe de manera eficiente.
Información de cambio de datos
Tipo de cambio de datos
Esta opción de configuración especifica cuándo un cambio de valor de propiedad desencadena un evento de cambio de datos. Se utiliza cuando otros procesos se deben iniciar según el valor de la propiedad. A cada suscriptor se le envía una notificación de cambio con una infotable en la que se incluyen los valores anterior y nuevo de la propiedad. Por ejemplo, se puede configurar una suscripción para los cambios realizados en la propiedad DeliverySchedule. Si la programación cambia, se puede avisar al conductor por SMS.
Las opciones de Tipo de cambio de datos son las siguientes:
Siempre: el evento se desencadena para suscriptores de cualquier cambio de valor de la propiedad.
Nunca: no se desencadena ningún evento de cambio.
Activado: para la mayoría de los valores, cualquier cambio desencadenará un evento. Para tipos base más complejos, como infotables, las reglas del evento pueden ser distintas.
Desactivado: el evento se desencadena si el nuevo valor se evalúa como un booleano falso.
Valor: para los valores numéricos, si el nuevo valor ha cambiado en más que el valor límite, se desencadena el evento de cambio. El valor de umbral se especifica con el aspecto dataChangeThreshold (un NÚMERO). Para los valores no numéricos, esta opción de configuración se comporta igual que Siempre.
Información de enlace remoto
En la siguiente tabla se muestran las opciones que están disponibles si la opción Enlace se define en Enlazado remotamente.
Opción
Descripción
Nombre de propiedad remota
El nombre de la propiedad, tal como existe en el servidor Edge.
* 
No es necesario que el nombre de propiedad y el nombre de propiedad de la cosa Edge enlazada sean iguales.
Método de caché
En el método de caché se proporcionan los siguientes métodos para leer valores de la propiedad de Edge enlazada.
La opción Leer de la caché del servidor prohíbe solicitudes del servidor al valor de la propiedad de Edge. Solo recupera el valor del servidor. Todas las actualizaciones del valor de la propiedad Edge almenado en caché en el servidor dependen del valor Tipo de cambio de datos de la propiedad Edge y de la velocidad de escaneado (la definición de inserción del valor de la propiedad Edge). Sin la configuración correcta en la propiedad Edge, es posible que el servidor nunca tenga el valor de la propiedad Edge y que solo devuelva el valor por defecto de la propiedad del servidor. Si el valor de Tipo de cambio de datos de la propiedad Edge a la que se va a enlazar es igual a SIEMPRE o VALOR, el tipo de caché será esta configuración por defecto.
La opción Obtener en cada lectura remota permite recuperar el valor de la propiedad Edge del servidor Edge para cada solicitud. No hay ningún almacenamiento en caché con esta opción. Si el valor de Tipo de cambio de datos de la propiedad Edge a la que se va a enlazar es igual a NUNCA, el tipo de caché se define en esta configuración por defecto.
La opción En caché durante un tiempo específico permite controlar la frecuencia de solicitudes a la propiedad Edge. Después de la primera solicitud, el servidor accede a la propiedad Edge para obtener su valor y no realiza otra solicitud a la propiedad Edge durante el número de segundos definido. Se debe tener en cuenta que la propiedad Edge puede actualizar el valor del servidor (mediante inserción) durante ese tiempo.
Intervalo de caché
Período de tiempo (en segundos) durante el que el servidor almacena en caché el valor de la propiedad Edge antes de que una solicitud lo recupere del servidor Edge. El valor siempre se recupera del servidor Edge en la primera solicitud.
Tipo de inicio
Permite especificar el valor utilizado para inicializar una propiedad enlazada de forma remota cuando se inicia o reinicia su cosa. Este valor inicializado no activa un evento de cambio de propiedad.
Utilizar valor por defecto: permite definir el valor inicial de la propiedad en el valor por defecto especificado, a pesar del valor del lado del servidor Edge. Si la propiedad se almacena, el valor inicial se definirá en el último valor almacenado en la base de datos.
Leer valor del servidor Edge: permite consultar el valor actual del servidor Edge, de modo que el valor del servidor esté siempre sincronizado con el valor del servidor Edge, incluso si la cosa se reinicia en el servidor.
Tipo de inserción
La opción Tipo de inserción solo se aplica a propiedades de cosa mejoradas del servidor Edge. Estos componentes pueden insertar sus cambios de valor en el servidor. Esta capacidad se puede configurar mediante el enlace de propiedades del servidor.
Inserción basada en cambio de valor: se puede configurar un umbral de cambio de valor. Al utilizar esta configuración, también se puede definir el valor de Umbral de inserción, que es una banda muerta que se debe superar antes de que un nuevo valor se inserte en el servidor desde el servidor Edge.
Nunca se inserta
Se inserta siempre
Umbral de inserción
Esta opción está disponible si Tipo de inserción se define en Inserción basada en cambio de valor. Permite especificar el rango (más o menos) alrededor del valor de la propiedad Edge para que se produzca la inserción del valor de la propiedad. El valor de la propiedad debe cambiar en más que el valor especificado.
Cuando se desconecta
Permite especificar cómo se debe controlar el enlace del valor de la propiedad remota si la conexión a la cosa remota se pierde temporalmente.
Desestimar valores que cambian durante la desconexión.
Reunir todos los cambios en un único valor de última modificación: permite enviar el último valor cambiado cuando se restablece la conexión.
Tiempo de espera
El tiempo de espera que se utiliza para las llamadas a cosas remotas durante una lectura o escritura de propiedades.
Utilizar valor por defecto del sistema: el valor por defecto es 30 segundos.
Tiempo de espera personalizado. Añádalo a Intervalo de tiempo de espera (s).
Tipos base de propiedades
El tipo base definido proporciona contexto alrededor de los datos almacenados en la propiedad. En la siguiente tabla se muestran los tipos base disponibles para todas las entidades de cosa:
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
Referencia a una definición de datos en el modelo. Permite utilizar la gestión especial.
DATETIME
Fecha y hora con formato.
GUID
Identificador único global. Cuando se crea una propiedad de GUID, se crea un GUID si el usuario no define un valor por defecto o un valor. El siguiente funcionamiento se sigue para propiedades de GUID persistentes y no persistentes, y también se aplica en un escenario de federación:
Si la propiedad se define en persistente o no persistente y el usuario no define un valor por defecto o valor, se genera un nuevo valor de GUID cada vez que se inicializa la cosa. Si un sistema o una cosa se reinician, se genera un nuevo valor.
Si la propiedad es persistente y el usuario define un valor por defecto o un valor, no se genera un nuevo valor cuando se reinicia una cosa o el sistema.
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 (JSON).
LOCATION
Coordenada del Sistema Geodésico Mundial (WGS) 84, expresada como [longitud, latitud], elevación.
LONG
El tipo LONG se debe utilizar cuando un rango necesario es más largo del que proporciona el tipo base INTEGER.
MASHUPNAME
Una referencia a un mashup de ThingWorx. Permite utilizar la gestión especial.
MENUNAME
El nombre de un menú.
NUMBER
Un número.
* 
Se permiten valores exponenciales. Por ejemplo, 123e45.
PASSWORD
Un valor de contraseña con máscara.
* 
Para obtener información adicional, consulte Contraseñas.
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.
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 ID de dominio y un ID de instancia. Por ejemplo, 2:1.
THINGNAME
Una referencia a una cosa en el modelo. Permite utilizar la gestión especial.
THINGSHAPENAME
Una referencia a una definición de cosa en el modelo. Permite utilizar la gestión especial.
THINGTEMPLATENAME
El nombre de una plantilla de cosa.
USERNAME
Una referencia a un usuario de ThingWorx.
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.
* 
Los valores introducidos en los campos Valor mínimo y Valor máximo son solo informativos. Se aceptan valores reales de menor que o mayor que los valores especificados.
Vínculos relacionados