Adición o eliminación de campos indexados
Los campos indexados se utilizan para optimizar la búsqueda en la base de datos. Se definen como una restricción en la columna relacionada en la tabla de base de datos. Se soportan los índices único y compuesto.
Adición de un campo indexado
Para añadir un campo indexado a una tabla de base de datos existente:
1. Cree un nuevo bloque de creación que se extienda desde el bloque de creación de PTC que contiene el administrador de la entidad relacionada con la tabla de la base de datos. Estos administradores se especifican en la tabla DefaultGlobalManagerConfiguration de la página Configuración de PTC.Base.Manager. Por ejemplo, para añadir una clave indexada a una orden de trabajo, navegue hasta la cosa PTC.JobOrderImpl.Manager.
Para obtener más información, consulte Crear un nuevo bloque de creación.
2. Navegue hasta la cosa del administrador del nuevo bloque de creación.
3. En Servicios, busque y sustituya el servicio GetDBInfo para la entidad a la que se está añadiendo el campo indexado. Por ejemplo, para añadir un campo indexado a la tabla de base de datos para órdenes de trabajo, busque y sustituya el servicio GetJobOrderDBInfo.
4. En el editor de scripts, desplácese hacia abajo hasta la entrada de la definición de datos a la que desea añadir el campo indexado.
5. Añada una matriz indexedFields para la definición de datos, con las siguientes propiedades:
unique: permite especificar si la columna debe tener un valor único.
fieldnames: matriz que contiene los nombres de las columnas. Si solo se especifica una columna, se crea un índice único. Si se especifican varias columnas, se crea un índice compuesto.
* 
Se puede crear un índice único especificando name con un valor único que sea el nombre de la columna, en lugar de especificar un valor único para fieldnames. Si se especifican name y fieldnames, se desestima name y el índice se crea con los valores de fieldnames.
identifier: el nombre de la entidad en la base de datos. Si no se especifica, el sistema genera automáticamente el valor con el formato <nombre_de_tabla>_<nombre_de_columna1>_<nombre_de_columna2>_<nombre_de_columnaN>_idx. Si se especifica, el valor debe ser único para los dos valores especificados como para los valores generados automáticamente. La longitud máxima del valor es la longitud máxima permitida por la base de datos para los identificadores.
6. Pulse en Guardar para guardar los cambios realizados en el servicio.
7. Vaya a la cosa PTC.DBConnection.Manager.
8. Sincronice la información de la base de datos con el esquema de base de datos. Para obtener más información, consulte Sincronización de la información de base de datos y el esquema de base de datos.
Eliminación de un campo indexado
Para quitar un campo indexado:
* 
No quite ningún campo indexado que se defina directamente. Quite solo los campos indexados que se hayan añadido anteriormente, por ejemplo por Adición de propiedades personalizadas a entidades del modelo de datos o Adición de entidades personalizadas al modelo de datos.
1. Cree un nuevo bloque de creación que se extienda desde el bloque de creación de PTC que contiene el administrador de la entidad relacionada con la tabla de la base de datos. Estos administradores se especifican en la tabla DefaultGlobalManagerConfiguration de la página Configuración de PTC.Base.Manager. Por ejemplo, para quitar un campo indexado de una orden de trabajo, navegue hasta la cosa PTC.JobOrderImpl.Manager.
Para obtener más información, consulte Crear un nuevo bloque de creación.
2. Navegue hasta la cosa de base de datos configurada para el sistema, por ejemplo, PTC.DBConnection.MSSQLDatabase.
3. En Servicios, ejecute el servicio RemoveIndex con las entradas siguientes:
dataShapeName: definición de datos para la tabla de base de datos de la que se quita la restricción de campo indexado. Obligatorio.
fieldName: campo de la definición de datos del que se quita la restricción de campo indexado. Esta entrada solo es necesaria cuando se elimina un campo indexado único.
dbInfo: descripción JSON de la restricción de campo indexado que se va a quitar. Se debe proporcionar la misma información de identifier (si existe) y name que se especifica en el servicio GetDBInfo donde se define el campo indexado. Esta entrada es obligatoria al eliminar un índice compuesto.
4. Pulse en Ejecutar.
5. Navegue al servicio GetDBInfo en el que se ha definido el campo indexado y quite la definición de campo indexado de los servicios. Si no se quita, el campo indexado se volverá a añadir a la base de datos la próxima vez que se ejecuten los servicios de sincronización.
Por ejemplo, para quitar una restricción de campo indexado con un identifier especificado de un campo denominado WorkDefinitionUID en la definición de datos MyObject, especifique lo siguiente para los parámetros de entrada:
dataShapeNameMyObject
fieldNameWorkDefinitionUID
dbInfo
{
"identifier":"myobject_workdefinitionuid_idx"
"name":"WorkDefinitionUID",
}
¿Fue esto útil?