Mensajes de error al intentar procesar una base de datos o un cubo en SQL Server 2005 Analysis Services: "no se puede encontrar la clave de atributo" y "el registro se omitió porque no se encontró la clave de atributo"


Síntomas


En Microsoft SQL Server 2005 Analysis Services, intenta procesar una base de datos o un cubo con SQL Server Business Intelligence Development Studio o SQL Server Management Studio. Sin embargo, se produce un error en la operación de proceso y recibe los mensajes de error siguientes:
Mensaje de error 1
Errores en el motor de almacenamiento OLAP: no se puede encontrar la clave de atributo: tabla: NombreTabla, columna: nombredecolumna1, valor: valor1. Tabla: NombreTabla, columna: nombredecolumna2, valor: valor2.
Mensaje de error 2
Errores en el motor de almacenamiento OLAP: se omitió el registro porque no se encontró la clave de atributo. Atributo: atributo generado X of Dimension: DimensionName de la base de datos: DatabaseName, cubo: CubeName, grupo de medida: MeasureGroupName, Partition: PartitionName, Record: recordNumber.

Causa


Este problema se produce porque una tabla de hechos de un cubo tiene uno o varios registros que contienen una clave de atributo, y esta clave de atributo no existe en la tabla de dimensiones correspondiente. Este comportamiento puede producirse si no ha procesado la dimensión correspondiente antes de procesar el cubo o si las tablas subyacentes realmente tienen datos no coincidentes. Si el campo "Value:" del mensaje no tiene número después de él, la tabla de hechos debe contener datos nulos.

Resolución


Para resolver este problema, debe comprobar que el origen de datos apunta a las siguientes ubicaciones:
  • La instancia de origen de datos subyacente correcta, como una instancia de SQL Server 2005
  • La base de datos correcta.
A continuación, corrija los registros subyacentes que contienen la clave de atributo problemática. Para ello, utilice uno de los métodos siguientes.

Usar una clave de atributo existente

Actualice los registros para usar una clave de atributo existente ejecutando una instrucción similar a la siguiente:
Update <TableName> set <KeyName>=<ExistingKeyValue> where <KeyName>=<BadKeyValue> or <KeyName> IS NULL

Coincidir con los valores de clave de la tabla de hechos

Inserte filas adicionales en la tabla de dimensiones para que coincidan con los valores de clave de la tabla de hechos. Si existen valores nulos, use uno de los siguientes métodos:
  • Reemplace los valores NULL por valores reales.
  • Configure la dimensión o las dimensiones para que tengan un miembro desconocido; para ello, establezca las propiedades UnknownMember y UnknownMemberName . Puede hacer que el miembro desconocido sea visible o oculto según sus necesidades. Para obtener más información sobre cómo definir el miembro desconocido, visite el siguiente sitio web de Microsoft Developer Network (MSDN):
  • Use todas las opciones siguientes en el cuadro de diálogo Cambiar configuración :
    • Establezca la propiedad KeyErrorAction en ConvertToUnknown.
    • Establezca la propiedad NullKeyNotAllowed en IgnoreError o ReportAndContinue.
    • Establezca la propiedad NullKeyConvertedtoUnknown en IgnoreError o ReportAndContinue.
    • Haga clic en omitir número de errores.
    Puede establecer esta configuración en toda la instancia o puede usar una configuración personalizada para cada dimensión.

Ignorar el error

Si desea procesar la base de datos o el cubo sin corregir los datos, puede establecer la configuración de error de la operación de proceso para ignorar el error. Solo debe realizar esta acción como una solución temporal al corregir los datos subyacentes. De lo contrario, es posible que reciba resultados inesperados en las consultas de expresiones multidimensionales (MDX). Para ignorar los errores, siga estos pasos:
  1. En el cuadro de diálogo procesar base de datos: DatabaseName o en el cuadro de diálogo procesar cubo: CubeName , haga clic en Cambiar configuración.
  2. En el cuadro de diálogo Cambiar configuración , haga clic en la pestaña errores de clave de dimensión .
  3. Haga clic en Usar configuración de error personalizada.
  4. En la lista clave no encontrada , cambie el valor predeterminado de Informe y continúeignorando error.
  5. Haga clic en omitir número de errores.
  6. Haga clic en Aceptar para cerrar el cuadro de diálogo Cambiar configuración .
  7. Haga clic en Aceptar para procesar la base de datos o el cubo.
Además, puede establecer la configuración de error del cubo o de la partición para que ignore el error. Para obtener más información, visite el siguiente sitio web de MSDN:

Estado


Este comportamiento es una característica del diseño de la aplicación.