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.
Rimozione di un campo indicizzato
Per rimuovere un campo indicizzato, attenersi alla procedura descritta di seguito.
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.
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",
}