Data shape
Le data shape rappresentano i dati nel modello. Una data shape è un insieme denominato di definizioni dei campi e dei metadati correlati. Ciascun campo in una data shape dispone di un tipo di dati. ThingWorx dispone di un insieme di tipi di base definito.
* 
In ThingWorx alcuni nomi riservati non possono essere utilizzati come nomi di campo delle data shape. Ad esempio, ThingShape,sourceType, location, source. key, tags, timestamp e così via.
Le data shape agevolano la creazione di applicazioni poiché, con la definizione della data shape, un'applicazione che utilizza i dati dispone di informazioni incorporate su come rappresentare l'insieme di dati. Ad esempio, se si inseriscono dati in una griglia su un mashup, la griglia dispone delle informazioni sulle caratteristiche dei dati grazie alla definizione della data shape. La griglia dispone delle informazioni su quali campi sono costituiti da numeri, stringhe o date. Quando si configura la modalità con cui la griglia deve eseguire il rendering dei dati, questa conoscenza dell'insieme di dati semplifica notevolmente la configurazione.
Gli oggetti specifici creati per l'archiviazione dei dati sono gli stream, gli stream di valori e le tabelle dati. Quando si definisce un oggetto di archiviazione dei dati, ad eccezione degli stream di valori, è necessario definire una data shape.
Le data shape vengono utilizzate non solo come definizioni per stream, stream di valori e tabelle dati, ma anche quando è necessario descrivere un insieme di dati. Ad esempio, quando si definisce un output di infotable per un'implementazione di un servizio, si utilizza una data shape per descrivere l'insieme dei risultati di output. È possibile disporre di una proprietà dell'oggetto di tipo infotable ed è inoltre possibile specificare la data shape che descrive la proprietà.
Quando si definiscono i campi di una data shape, almeno uno dei campi deve essere contrassegnato come chiave principale. Se si utilizza MSSQL come provider di persistenza, la lunghezza del valore della chiave principale (lunghezza combinata dei valori delle chiavi principali, se più di una è contrassegnata come chiave principale) è limitata a 128 caratteri. Se la lunghezza del valore impostato è maggiore di 128 caratteri, a seconda della versione di MSSQL in uso viene visualizzato uno dei messaggi di errore seguenti:
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.
Tipi di base di definizione del campo
Tipo di base
Descrizione
BASETYPENAME
Nome del tipo di base valido.
BLOB
Oggetto BLOB.
BOOLEAN
Valore true o false.
DASHBOARDNAME
Nome di un dashboard.
DATASHAPENAME
Riferimento a una data shape nel modello che ha pertanto una gestione speciale.
DATETIME
Data e ora formattate.
GUID
Identificatore univoco globale.
* 
Se si utilizza GUID come tipo di base, è consigliabile impostare il valore GUID. Non lasciare vuoto il campo (default).
GROUPNAME
Nome del gruppo utenti.
HTML
Contenuto HTML.
HYPERLINK
URL standard (ad esempio, www.ptc.com).
IMAGE
Dati binari che possono essere visualizzati come immagini.
IMAGELINK
Link URL a un'immagine.
INFOTABLE
Rappresentazione standard dei dati in ThingWorx simile a un insieme di risultati SQL. Sono disponibili alcuni servizi incorporati per creare, utilizzare e analizzare una infotable.
INTEGER
Numero che può essere scritto senza un componente frazionario.
JSON
Oggetto JavaScript Object Notation.
LOCATION
Coordinata WGS (World Geodetic System) 84 standard, espressa come [longitudine, latitudine], altitudine.
LONG
Tipo LONG da utilizzare quando è obbligatorio un intervallo più lungo di quello fornito dal tipo di base INTEGER.
MASHUPNAME
Riferimento a un mashup ThingWorx che ha pertanto una gestione speciale.
MENUNAME
Nome di un menu.
NOTHING
Non contiene nulla (vuoto).
NUMBER
Numero.
* 
Sono consentiti i valori esponenziali. Ad esempio 123e45.
PASSWORD
Valore password mascherato. Per ulteriori informazioni, vedere Password. Per informazioni sui metodi di crittografia, vedere la sezione Crittografia.
QUERY
Oggetto JSON che include una matrice di "filtri". Ogni filtro deve includere "value", "type" e "fieldname".
SCHEDULE
Programmazione basata su cron, configurata con Schedule Editor.
STRING
Qualsiasi numero di caratteri alfanumerici.
STYLETHEMENAME
Riferimento a un tema di stile che ha pertanto una gestione speciale.
TAGS
Valori dei tag di ThingWorx.
TEXT
Qualsiasi numero di caratteri alfanumerici. La differenza rispetto a STRING è che TEXT è indicizzato.
THINGCODE
Rappresentazione numerica di un oggetto contenente un ID dominio e un ID istanza, ad esempio 2:1.
THINGNAME
Riferimento a un oggetto che ha pertanto una gestione speciale.
THINGSHAPENAME
Riferimento a una thing shape nel modello che ha pertanto una gestione speciale.
THINGTEMPLATENAME
Nome di un modello di oggetto.
TIMESPAN
Un oggetto TimeSpan rappresenta un intervallo di tempo (durata o scadenza) che viene misurato come numero positivo o negativo di giorni, ore, minuti, secondi.
USERNAME
Riferimento a un utente ThingWorx definito nel sistema.
VEC2
Raccolta di due numeri, ad esempio coordinate 2D x e y.
VEC3
Raccolta di tre numeri, ad esempio coordinate 3D x, y e z.
VEC4
Raccolta di quattro numeri, ad esempio coordinate 4D x, y, z e w.
XML
Snippet o documento XML.
Aggiornamento di una data shape esistente
Se si desidera aggiornare una data shape esistente (modificando le definizioni dei campi, i tipi o la chiave principale) dopo che è stata definita, tenere in considerazione le implicazioni riportate di seguito.
L'inserimento di dati dopo la modifica della data shape funziona, ma le nuove righe vengono mappate alla nuova definizione della data shape.
Quando si inseriscono dati dopo avere modificato la data shape, la chiave principale funziona, ma l'integrità delle chiavi esistenti deve comunque essere verificata. Quando si effettua un inserimento, il valore della chiave viene creato mediante la concatenazione di tutti i valori dei campi contrassegnati come chiave principale, nell'ordine delle definizioni dei campi, in un unico campo denominato key.
Quando si esegue l'interrogazione delle righe dopo avere modificato la data shape, il sistema tenta di mappare al meglio i nomi e i tipi dei campi all'insieme di risultati. Se le righe esistenti non corrispondono ai tipi o ai nomi dei campi, le righe vengono comunque incluse nell'insieme, ma senza un valore.
È stato utile?