Aggiunta o rimozione di campi indicizzati
I campi indicizzati vengono utilizzati per ottimizzare la ricerca nel database. Vengono definiti come un vincolo nella colonna correlata della tabella di database.
Aggiunta di un campo indicizzato
Per aggiungere un campo indicizzato a una tabella di database esistente, attenersi alla procedura descritta di seguito.
1. Passare al manager appropriato per l'entità ThingWorx correlata alla tabella di database. I manager sono specificati nella tabella ManagerConfigurationSettings della pagina Configurazione dell'oggetto di configurazione dei punti di avvio (PTC.Factory.C_LaunchPointConfigurationThing_[VersioneRelease]). Ad esempio, il manager per le entità di Operator Advisor è PTC.SCA.SCO.DefaultProductionOrderManager.
2. In Servizi, individuare e sostituire il servizio Get<entity>DBInfo per l'entità a cui si aggiunge il campo indicizzato. Ad esempio, per aggiungere un campo indicizzato alla tabella di database per le commesse, individuare e sostituire il servizio GetJobOrderDBInfo.
3. Nell'editor dello script, scorrere verso il basso fino alla voce per la data shape a cui si desidera aggiungere il campo indicizzato.
4. Aggiungere una matrice indexedFields per la data shape, con le seguenti proprietà:
name (obbligatorio) - Nome della colonna.
unique - Specificare se la colonna deve avere un valore univoco.
identifier - Nome dell'entità nel database. Se non viene specificato, il sistema genera automaticamente il valore nel formato <nome_tabella>_<nome_colonna>_idx. Se specificato, il valore deve essere univoco sia per i valori specificati che per tutti i valori generati automaticamente. La lunghezza massima per il valore è la lunghezza massima consentita dal database per gli identificatori.
5. Fare clic su Salva per salvare le modifiche al servizio.
6. Accedere all'oggetto PTC.SCA.SCO.DatabaseManager.
7. Sincronizzare le informazioni del database in Operator Advisor con lo schema del database. Per ulteriori informazioni, vedere Sincronizzazione delle informazioni del database e dello schema del database.
Rimozione di un campo indicizzato
Per rimuovere un campo indicizzato, attenersi alla procedura descritta di seguito.
* 
Non rimuovere i campi indicizzati predefiniti. Rimuovere solo i campi indicizzati precedentemente aggiunti, ad esempio tramite Aggiunta di proprietà personalizzate alle entità di Operator Advisor o Aggiunta di entità personalizzate al modello di dati di Operator Advisor.
1. Passare all'oggetto database configurato per il sistema, ad esempio PTC.SCA.SCO.PostgresDatabase o PTC.SCA.SCO.MSSQLDatabase.
2. In Servizi, eseguire il servizio RemoveIndex con i seguenti input:
dataShapeName - La data shape per la tabella di database da cui si sta rimuovendo il vincolo del campo indicizzato.
fieldName - Il campo della data shape da cui si sta rimuovendo il vincolo del campo indicizzato.
dbInfo - La descrizione JSON del vincolo del campo indicizzato da rimuovere. È necessario fornire le stesse informazioni relative a identifier (se presente) e name specificate nel servizio Get<entity>DBInfo in cui è definito il campo indicizzato.
3. Fare clic su Esegui.
4. Passare al servizio Get<entity>DBInfo in cui è definito il campo indicizzato e rimuovere la definizione di campo indicizzato dai servizi. Se non viene rimosso, il campo indicizzato viene nuovamente aggiunto al database alla successiva esecuzione dei servizi di sincronizzazione.
Ad esempio, per rimuovere un vincolo del campo indicizzato con identifier specificato da un campo denominato WorkDefinitionUID nella data shape MyObject, specificare quanto segue per i parametri di input:
dataShapeName - MyObject
fieldName - WorkDefinitionUID
dbInfo -
{
"identifier":"myobject_workdefinitionuid_idx"
"name":"WorkDefinitionUID",
}