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. Sono supportati sia gli indici singoli che quelli compositi.
Aggiunta di un campo indicizzato
Per aggiungere un campo indicizzato a una tabella di database esistente, attenersi alla procedura descritta di seguito.
1. Creare un nuovo building block che si estende dal building block PTC contenente il manager per l'entità correlata alla tabella di database. Questi manager sono specificati nella tabella DefaultGlobalManagerConfiguration della pagina Configurazione dell'oggetto PTC.Base.Manager. Ad esempio, per aggiungere una chiave indicizzata a una commessa, passare all'oggetto PTC.JobOrderImpl.Manager.
Per ulteriori informazioni, vedere Creare un nuovo building block.
2. Passare all'oggetto manager per il nuovo building block.
3. In Servizi, individuare e sostituire il servizio GetDBInfo 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.
4. Nell'editor dello script, scorrere verso il basso fino alla voce per la data shape a cui si desidera aggiungere il campo indicizzato.
5. Aggiungere una matrice indexedFields per la data shape, con le seguenti proprietà:
unique - Specificare se la colonna deve avere un valore univoco.
fieldnames - Matrice contenente i nomi delle colonne. Se si specifica una sola colonna, viene creato un indice singolo. Se si specificano più colonne, viene creato un indice composito.
* 
È possibile creare un indice singolo specificando name con un singolo valore corrispondente al nome della colonna anziché specificare un singolo valore per fieldnames. Se si specifica sia name che fieldnames, name viene ignorato e l'indice viene creato utilizzando i valori di fieldnames.
identifier - Nome dell'entità nel database. Se non specificato, il sistema genera automaticamente il valore nel formato <nome_tabella>_<nome_colonna1>_<nome_colonna2>_<nome_colonnaN>_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.
6. Fare clic su Salva per salvare le modifiche al servizio.
7. Passare all'oggetto PTC.DBConnection.Manager.
8. Sincronizzare le informazioni del database 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à del modello di dati o Aggiunta di entità personalizzate al modello di dati.
1. Creare un nuovo building block che si estende dal building block PTC contenente il manager per l'entità correlata alla tabella di database. Questi manager sono specificati nella tabella DefaultGlobalManagerConfiguration della pagina Configurazione dell'oggetto PTC.Base.Manager. Ad esempio, per rimuovere un campo indicizzato da una commessa, passare all'oggetto PTC.JobOrderImpl.Manager.
Per ulteriori informazioni, vedere Creare un nuovo building block.
2. Passare all'oggetto database configurato per il sistema, ad esempio PTC.DBConnection.MSSQLDatabase.
3. 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. Obbligatorio.
fieldName - Il campo della data shape da cui si sta rimuovendo il vincolo del campo indicizzato. Questo input è obbligatorio solo quando si rimuove un singolo 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 GetDBInfo in cui è definito il campo indicizzato. Questo input è obbligatorio per la rimozione di un indice composito.
4. Fare clic su Esegui.
5. Passare al servizio GetDBInfo 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",
}
È stato utile?