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 ed efficace per monitorare le condizioni correnti di un oggetto. Possono essere dei seguenti tipi:
Statiche - Valori che non cambiano, ad esempio produttore e numero di modello.
Dinamiche - Valori che cambiano nel tempo, ad esempio la temperatura.
Le proprietà sono configurate in base a struttura degli asset, processi aziendali e soluzioni da realizzare.
Tipi di associazioni di proprietà
Quando si crea una proprietà, è possibile selezionare uno dei seguenti tipi di associazioni:
Nessuno
Una proprietà per un oggetto locale. Questa è l'impostazione di default.
Associata localmente
Associa la proprietà a una proprietà definita in un oggetto diverso sul server ThingWorx. Questa proprietà può essere impostata in modalità di sola lettura, ma può comunque ricevere un valore da un'altra proprietà sul server. Questo tipo di associazione non è in genere utilizzato per i dispositivi remoti, a meno che non si crei un'associazione locale a una proprietà associata in remoto.
Associata in remoto
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.
* 
Dopo aver modificato il valore della proprietà remota nell'oggetto remoto tramite Composer, questo non viene salvato in ThingWorx e l'evento DataChange non viene attivato. Al dispositivo edge viene inviato solo l'aggiornamento della proprietà.
* 
Per informazioni sull'impostazione delle associazioni di proprietà, sia locali che remote, vedere Gestione delle associazioni di proprietà.
Dettagli delle 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 Tipi di base delle proprietà.
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.
Aggiornamento dei valori delle proprietà
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, è possibile utilizzare i servizi UpdatePropertyValues e UpdatePropertyValuesBatched, che consentono di eseguire aggiornamenti dei valori di più proprietà. I valori delle proprietà non possono essere impostati su null. Per ulteriori informazioni su questi servizi, vedere la tabella riportata di seguito.
Opzione
Descrizione
UpdatePropertyValues
Accetta un singolo parametro di infotable values composto da più righe.
Ogni riga contiene nome, valore e qualità della proprietà, accompagnati dalla data e dall'ora dell'aggiornamento.
I valori delle proprietà non possono essere impostati su null.
Per default, gli aggiornamenti del valore vengono eseguiti separatamente per ogni proprietà. Per fare in modo che i valori siano ordinati e raggruppati in base a data e ora anziché in base alla proprietà, è necessario che l'impostazione di GroupPropertyValuesByTime sia true nella sezione BasicSettings del file platform-settings.json.
Quando l'impostazione sopra indicata è true, gli avvisi e gli eventi attivati dai dati per tutte le proprietà aggiornate con la stessa data e ora vengono attivati insieme. Di conseguenza, le sottoscrizioni a più eventi registrate per alcuni o per tutti questi eventi vengono eseguite solo una volta per ogni data e ora, con gli eventi corrispondenti passati nel parametro degli eventi.
* 
Prima di utilizzare il servizio UpdatePropertyValues, assicurarsi che l'utente corrente disponga del permesso di scrittura per la proprietà. Questo servizio non utilizza i permessi utente di sistema durante l'aggiornamento dei valori VTQ.
UpdatePropertyValuesBatched
Accetta un singolo parametro di infotable batches costituito da più righe.
Ogni riga contiene un batch di valori delle proprietà e la data e l'ora dell'aggiornamento.
Il valore del campo batch è un'infotable composta da più righe. Ogni riga contiene nome, valore e qualità della proprietà.
I valori delle proprietà non possono essere impostati su null.
I valori delle proprietà vengono ordinati e raggruppati in base a data e ora dei batch, questo significa che gli avvisi e gli eventi attivati dai dati per tutte le proprietà aggiornate con la stessa data e ora vengono attivati insieme. Di conseguenza, le sottoscrizioni a più eventi registrate per alcuni o per tutti questi eventi vengono eseguite solo una volta per ogni data e ora, con gli eventi corrispondenti passati nel parametro events.
* 
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.
L'evento HistoricalDataLogged si attiva quando viene impostato un valore di proprietà cronologico. Ad esempio, se la data e l'ora correnti di una proprietà VTQ sono 2020-02-04 20:16:20 e viene importato un valore cronologico con data e ora 2019-12-24 19:00:45, l'evento viene attivato. Tutte le sottoscrizioni a questo evento vengono eseguite di conseguenza.
Avvisi
Per informazioni sugli avvisi, vedere Avvisi.
Aspetti delle proprietà
Le proprietà possono avere le impostazioni degli aspetti seguenti:
Tipo di base - Fornisce il contesto per i dati memorizzati nella proprietà. Per ulteriori informazioni, vedere Tipi di base delle proprietà.
Con valore di default - Imposta un valore di default per la proprietà quando l'oggetto viene inizializzato.
Indice - Se questa opzione è selezionata, la proprietà viene memorizzata e indicizzata nel provider di persistenza proprietà del database per migliorare la ricerca utilizzando il servizio QueryImplementingThingsOptimized. Per ulteriori informazioni, vedere Proprietà indicizzate.
Solo le proprietà che cambiano raramente devono essere indicizzate. Le proprietà dei dati di telemetria non devono essere indicizzate.
Se è selezionata l'opzione Indice, viene selezionata automaticamente l'impostazione Persistenza e la modifica dell'impostazione Persistenza è disattivata.
Se l'impostazione Indice viene successivamente disattivata, resterà selezionata l'impostazione Persistenza, ma verrà riattivata la modifica in modo da consentirne l'impostazione o la deselezione.
Solo i tipi di base seguenti supportano l'impostazione Indice: STRING, NUMBER, INTEGER, LONG, BOOLEAN, DATETIME, THINGNAME, USERNAME, GROUPNAME, HYPERLINK, IMAGELINK, MASHUPNAME, MENUNAME, DASHBOARDNAME, TEXT, GUID, NOTIFICATIONCONTENTNAME, NOTIFICATIONDEFINITIONNAME, STYLETHEMENAME e THINGGROUPNAME.
Persistenza - Se questa voce è selezionata o impostata su true, ogni modifica del valore viene resa persistente nel database. Le scritture nel database delle proprietà persistenti si verificano in modo asincrono per evitare blocchi critici. 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 relativo valore consiste nel cambiare il valore di default. Ciò è utile per i dati di configurazione statici.
Log - 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.
* 
Se un evento di modifica dei dati non viene attivato, la voce dello stream di valori non viene registrata, ma viene conservato 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. Una perdita di connessione tra ThingWorx e il database può anche causare il backup della coda e il mancato svuotamento in modo conforme.
Ambito - Selezionare l'ambito della proprietà.
Informazioni sulla modifica dati
Tipo di modifica dati
L'impostazione Tipo di modifica dati specifica quando un evento di modifica dei dati è attivato da una modifica del valore della proprietà. È utile 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 programmazione cambia, è possibile inviare un SMS di notifica all'autista.
Di seguito sono riportate le opzioni relative a Tipo di modifica dati:
Sempre - Attiva un evento di modifica dei dati ogni volta che il valore della proprietà viene modificato, indipendentemente dal valore.
Mai - Disattiva gli eventi di modifica dei dati per la proprietà. Non viene attivato alcun evento.
ON - Attiva un evento di modifica dei dati quando viene modificato il valore della proprietà. Per la maggior parte dei tipi di base, 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 un evento di modifica dei dati solo quando il nuovo valore restituisce Boolean false.
Valore - Per i tipi di base numerici, un evento di modifica dei dati viene attivato solo se il nuovo valore differisce dal valore precedente di oltre una soglia definita. Per i tipi non numerici, l'evento di modifica viene attivato ogni volta che viene modificato il valore. La registrazione del valore in uno stream di valori si verifica solo se è stato determinato che il valore è cambiato.
Deprecato
Se si seleziona la casella di controllo Deprecato, l'entità viene deprecata. Immettere la Versione a partire dalla quale l'entità deve essere deprecata nel formato major.minor.patch. Facoltativamente, aggiungere un commento.
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
Specifica 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
Definisce il modo in cui il server recupera il valore della proprietà edge associata. Di seguito sono elencate le opzioni disponibili.
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
Specifica la durata (in secondi) in cui il server memorizza 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
Determina 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
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
Disponibile quando l'opzione Tipo di push è impostata 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.
* 
Se In assenza di connessione è configurato tramite un servizio per impostare Combina tutte le modifiche in un ultimo valore modificato, definire foldType: FOLD.
Se In assenza di connessione è configurato tramite un servizio per impostare Ignora valori modificati, definirefoldType: NONE.
Timeout
Specifica 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).
Link correlati
È stato utile?