Proprietà degli oggetti
Le proprietà degli oggetti sono utilizzate per descrivere i punti di dati correlati a un oggetto. Ad esempio, un cliente può avere una proprietà nome e una proprietà indirizzo. Un camion può avere le seguenti proprietà: autista, capacità e posizione.
Le proprietà sono un modo pratico e semplice per conoscere le condizioni correnti di un oggetto. Le proprietà possono essere statiche, ad esempio produttore e numero di modello, o dinamiche, ad esempio temperatura. Le proprietà sono configurate in base a struttura degli asset, processi aziendali e soluzioni da realizzare.
Quando si crea una proprietà, è possibile selezionare una delle tipologie di associazione seguenti:
My Property
Una proprietà per un oggetto locale. Questa è l'impostazione di default.
Local Bound
Collega la proprietà a una proprietà definita in un oggetto diverso sul server ThingWorx. È possibile impostare questa proprietà in modalità di sola lettura, ma può comunque ricevere un valore da un'altra proprietà sul server. Questa impostazione non è utilizzata per i dispositivi remoti, a meno che non si crei un'associazione locale a una proprietà associata in remoto.
Remote
Quando un dispositivo remoto si connette per la prima volta a un server ThingWorx, il server associa il dispositivo remoto all'oggetto corrispondente. Una volta associato il dispositivo remoto, è necessario creare un'associazione remota tra ciascuna proprietà definita nel dispositivo remoto e l'oggetto remoto che rappresenta il dispositivo in ThingWorx. ThingWorx utilizza questa associazione per inviare e ricevere aggiornamenti per ogni valore di proprietà di un dispositivo remoto tramite una connessione WebSocket attiva.
* 
Se un oggetto locale e un oggetto remoto hanno una proprietà con lo stesso nome e un'altra proprietà è associata all'impostazione della proprietà remota, la proprietà remota imposta anche il valore della proprietà locale.
* 
Per informazioni sull'impostazione delle associazioni di proprietà, sia locali che remote, vedere Gestione delle associazioni di proprietà.
Ogni proprietà ha un nome, una descrizione e un tipo di dati ThingWorx, denominato tipo di base in ThingWorx. A seconda del tipo di base, possono essere attivati altri campi. Un semplice tipo scalare, come un numero o una stringa, aggiunge campi di base come valore di default. I tipi di base più complessi presentano più opzioni. Un tipo di base INFOTABLE, ad esempio, offre la possibilità di definire una data shape per descrivere la struttura dati della infotable. Per ulteriori informazioni, vedere la tabella Tipi di base riportata di seguito.
Il valore di una proprietà dell'oggetto è costituito da tre caratteristiche: valore, timestamp e qualità (VTQ). I valori di VTQ possono essere specificati o impostati automaticamente e gli stati di qualità accettabili si trovano nella classe QualityStatus. Ogni volta che una proprietà viene impostata o aggiornata, vengono aggiornate tutte le relative caratteristiche VTQ.
In generale, è possibile aggiornare una proprietà in Composer impostando me.PropertyName = value e il valore di timestamp rifletterà la data e l'ora correnti del server. Per gli aggiornamenti cronologici in batch, è possibile utilizzare il servizio UpdatePropertyValues, che consente di trasmettere specifici valori per valore, timestamp e qualità. I valori delle proprietà non possono essere impostati su null.
* 
Quando si scrivono servizi personalizzati, evitare di generare codice che allo stesso tempo potrebbe modificare la stessa proprietà di una determinata entità. Ad esempio non incrementare o decrementare contemporaneamente un valore della proprietà in quanto può generare valori di proprietà imprevedibili. Allo stesso modo l'incremento delle proprietà in modo che si comportino come contatori nelle sottoscrizioni è un uso improprio comune che determina un'inesattezza.
In ThingWorx 8.3.13, 8.4.9, 8.5.5 e versioni successive, l'evento HistoricalDataLogged viene attivato quando si imposta un valore di proprietà precedente. Si considerino, ad esempio, la data e l'ora dell'insieme corrente di una proprietà VTQ per un'entità: 2020-02-04 20:16:20. Durante l'importazione di una nuova versione di questa entità viene impostata una proprietà VTQ precedente, ad esempio 2019-12-24 19:00:45. Questo insieme causerà l'attivazione dell'evento HistoricalDataLogged per la proprietà e verrà utilizzata qualsiasi sottoscrizione all'evento per la proprietà.
Avvisi
Per informazioni sugli avvisi, vedere Avvisi.
Aspetti delle proprietà
Le proprietà possono avere le impostazioni degli aspetti seguenti:
Persistente
Se questa voce è selezionata o impostata su true, ogni modifica del valore è resa persistente nel database.
Le scritture nel database delle proprietà persistenti si verificano in modo asincrono per evitare deadlock. Mentre il valore della proprietà viene impostato immediatamente, la scrittura nel database avviene in modo asincrono in un momento successivo. Le convalide seguenti si verificano prima della scrittura di un valore di proprietà persistente nel database.
L'oggetto deve essere ancora esistente.
L'oggetto deve avere un ID.
L'ID dell'oggetto e l'ID della scrittura in attesa devono corrispondere.
L'oggetto deve comunque definire la proprietà con lo stesso nome della scrittura in attesa.
La proprietà definita deve comunque essere persistente.
Gli aggiornamenti e i riavvii non influiscono sull'elaborazione della coda.
Sola lettura
Se questa voce è selezionata o impostata su true, i dati sono statici e non possono essere scritti in fase di esecuzione. L'unico modo per modificare il valore consiste nel cambiare il valore di default. Ciò è utile per i dati di configurazione statici.
Registrata
Se questa voce è selezionata o impostata su true, il valore della proprietà viene registrato automaticamente in uno stream di valori alla modifica dei dati, in base al tipo di modifica dati.
* 
Se l'evento di modifica dei dati non viene attivato in determinate circostanze, la voce dello stream di valori non viene registrata, ma viene mantenuto l'insieme di valori della proprietà. È possibile che vengano impostate le proprietà per un'entità, ma che venga eliminata la scrittura dello stream di valori corrispondente a causa del riempimento della coda che contiene queste scritture e dell'impossibilità di svuotarla nel database. Questa operazione può verificarsi se il volume delle scritture in arrivo è maggiore della velocità con cui viene configurato lo svuotamento della coda. Questa impostazione può essere ottimizzata in platform-settings.json per ogni provider di persistenza. La perdita di connessione tra ThingWorx e il database può anche causare il backup della coda e il mancato svuotamento in modo conforme.
Informazioni sulla modifica dati
Tipo di modifica dati
Questa impostazione specifica quando un evento modifica dati è attivato da una modifica del valore della proprietà. Si utilizza quando devono essere avviati altri processi in base al valore della proprietà. Ogni sottoscrittore riceve una notifica di modifica con una infotable contenente i valori della proprietà precedenti e nuovi. Ad esempio è possibile configurare una sottoscrizione per le modifiche alla proprietà DeliverySchedule. Se la pianificazione cambia, è possibile inviare un SMS di notifica all'autista.
Di seguito sono riportate le opzioni relative a Tipo di modifica dati:
Sempre: attiva l'evento ai sottoscrittori per qualsiasi modifica del valore della proprietà.
Mai: non attiva un evento di modifica.
ON: per la maggior parte dei valori, qualsiasi modifica attiva un evento. Per i tipi di base più complessi, ad esempio le infotable, le regole degli eventi possono essere diverse.
OFF: attiva l'evento se il nuovo valore restituisce un valore booleano false.
Valore: per i valori numerici, se il nuovo valore è stato modificato oltre il valore di soglia, attiva l'evento di modifica. Il valore di soglia viene specificato con l'aspetto dataChangeThreshold (di tipo NUMBER). Per i valori non numerici, questa impostazione si comporta come Sempre.
Informazioni sull'associazione remota
Nella tabella seguente sono elencate le opzioni disponibili se l'opzione Associazione è impostata su Associata in remoto:
Opzione
Descrizione
Nome proprietà remota
Il nome della proprietà nell'edge.
* 
Non è necessario che il nome della proprietà e il nome della proprietà dell'oggetto edge associato siano uguali.
Metodo memorizzazione nella cache
Il metodo di memorizzazione nella cache fornisce i metodi seguenti per leggere i valori delle proprietà edge associate:
Leggi da cache server vieta le richieste del server per il valore della proprietà edge. L'opzione recupera solo il valore dal server. Eventuali aggiornamenti del valore della proprietà edge nella cache del server dipendono dal Tipo di modifica dati della proprietà edge e dalla frequenza di analisi (definizione push del valore della proprietà edge). Senza le impostazioni corrette nella proprietà edge, è possibile che il server non disponga mai del valore della proprietà edge e restituisca solo il valore di default della proprietà del server. Se il Tipo di modifica dati della proprietà edge a cui si sta eseguendo l'associazione è uguale a SEMPRE o VALORE, per default verrà utilizzata questa impostazione per il tipo di cache.
Recupera da remoto a ogni lettura recupera il valore della proprietà edge dal server edge per ogni richiesta. Questa opzione non implica alcuna memorizzazione nella cache. Se il Tipo di modifica dati della proprietà edge a cui si sta eseguendo l'associazione è uguale a MAI, per default verrà utilizzata questa impostazione per il tipo di cache.
Memorizzazione nella cache per un periodo specifico controlla la frequenza delle richieste alla proprietà edge. Dopo la prima richiesta, il server accede alla proprietà edge per il relativo valore e non effettua un'altra richiesta alla proprietà edge per il numero definito di secondi. Durante questo intervallo di tempo, la proprietà edge può aggiornare il valore del server (tramite push).
Intervallo cache
La quantità di tempo (in secondi) in cui il server memorizzerà nella cache il valore della proprietà edge prima che una richiesta per il valore della proprietà lo recuperi dall'edge. Il valore viene sempre recuperato dall'edge alla prima richiesta.
Tipo di avvio
Specifica il valore utilizzato per inizializzare una proprietà associata in remoto quando il rispettivo oggetto viene avviato o riavviato. Questo valore inizializzato non attiva un evento di modifica della proprietà.
Utilizza valore di default: imposta il valore iniziale della proprietà sul valore di default specificato, nonostante il valore lato edge. Se la proprietà viene resa persistente, il valore iniziale sarà impostato sull'ultimo valore persistente nel database.
Leggi valore Edge: interroga il dispositivo edge per il relativo valore corrente in modo che il valore sul server sia sempre sincronizzato con il valore sul dispositivo edge, anche quando l'oggetto viene riavviato sul server.
Tipo di push
Tipo di push si applica solo a proprietà di oggetti ottimizzate per il dispositivo edge. Questi componenti possono effettuare il push delle modifiche del proprio valore al server. Questa possibilità è configurabile tramite l'associazione delle proprietà server.
Push in base alla modifica del valore: è possibile configurare una soglia di modifica del valore. Quando si utilizza questa impostazione, è inoltre possibile impostare il valore Soglia push, ovvero una banda inutilizzata che deve essere superata affinché possa essere eseguito il push di un nuovo valore sul server dal dispositivo edge.
Nessun push
Sempre push
Soglia push
Questa opzione è disponibile se Tipo di push è impostato su Push in base alla modifica del valore. Specifica l'intervallo (più o meno) attorno al valore della proprietà edge per l'esecuzione del push del valore della proprietà. Il valore della proprietà deve cambiare superando il valore specificato.
In assenza di connessione
Specifica come deve essere gestita l'associazione del valore della proprietà remota se la connessione all'oggetto remoto viene temporaneamente persa.
Ignora valori modificati mentre è disconnesso.
Combina tutte le modifiche in un ultimo valore modificato: invia l'ultimo valore modificato quando la connessione viene ripristinata.
Timeout
Il timeout utilizzato per chiamate a oggetti remoti durante un'operazione di lettura o scrittura della proprietà.
Utilizza default di sistema: il valore di default è 30 secondi.
Timeout personalizzato. Da aggiungere a Intervallo timeout (sec).
Tipi di base delle proprietà
Il tipo di base definito fornisce il contesto per i dati memorizzati nella proprietà. Nella tabella seguente sono elencati i tipi di base disponibili per tutte le entità oggetto:
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. Utilizza una gestione speciale.
DATETIME
Data e ora formattate.
GUID
Identificatore univoco globale. Quando si crea una proprietà GUID, se l'utente non ha impostato un valore di default o un altro valore viene automaticamente creato un GUID. I comportamenti seguenti sono eseguiti per le proprietà GUID persistenti e non persistenti e sono inoltre applicabili a uno scenario di ambiente federato.
Se la proprietà è impostata come persistente o non persistente e l'utente non imposta un valore di default o un altro valore, viene generato un nuovo valore GUID ogni volta che l'oggetto è inizializzato. In caso di riavvio del sistema o dell'oggetto, viene generato un nuovo valore.
Se la proprietà è persistente e l'utente ha impostato un valore di default o un altro valore, al riavvio dell'oggetto o del sistema non viene generato un nuovo valore.
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 (JSON).
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. Utilizza una gestione speciale.
MENUNAME
Nome di un menu.
NUMBER
Numero.
* 
Sono consentiti i valori esponenziali, ad esempio 123e45.
PASSWORD
Valore password mascherato.
* 
Per ulteriori informazioni, vedere Password.
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.
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 nel modello. Utilizza una gestione speciale.
THINGSHAPENAME
Riferimento a una thing shape nel modello. Utilizza una gestione speciale.
THINGTEMPLATENAME
Nome di un modello di oggetto.
USERNAME
Riferimento a un utente ThingWorx.
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.
* 
I valori immessi nei campi Valore min e Valore max sono solo a scopo informativo. Sono accettati valori effettivi minori o maggiori di quelli specificati.
Link correlati