Resolver los conflictos del esquema que se producen en el almacén de datos

Los conflictos de esquema se producen cuando un conjunto de atributos de los campos que se pueden incluir en los informes difiere entre las distintas colecciones de proyectos de equipo. Cuando se producen conflictos de esquema, los datos que están asociados a ese esquema no pueden pasar al almacén de datos y al cubo de datos de SQL Server Analysis Services. Todos los conflictos de esquema deben corregirse para desbloquear el procesamiento de los datos asociados en el almacén de datos y permitir que los informes asociados muestren los datos actuales.

Nota importanteImportante

Puede desbloquear el almacenamiento de datos cuando se produzcan conflictos de esquema al instalar Service Pack 1 para (SP1) Visual Studio Team Foundation Server 2010. Con SP1 instalado los campos que no están en conflicto se procesan de modo normal. Los campos que están en conflicto tienen asignado los valores nulos hasta que se resuelvan los conflictos y, a continuación, se procesan como de costumbre.

Además, el sistema genera un evento de notificación por cada conflicto que detecta. Suscribiéndose al evento, puede recibir alertas cuando se producen conflictos del esquema con cualquier proyecto de equipo que se defina para una colección.

Todos los datos que se pueden incluir en los informes de todos los proyectos de equipo que están definidos en cada una las colecciones de proyectos de una implementación de Visual Studio Team Foundation Server se escriben en una única base de datos relacional. Los datos de dicho almacén se procesan y escriben posteriormente en el cubo. La recopilación de datos en un único almacén es compatible con los informes entre colecciones de proyectos de equipo. Sin embargo, dado que los campos se administran de forma distinta en cada colección de proyectos, pueden producirse conflictos de esquema cuando se asignan definiciones diferentes a uno o varios atributos de un campo que tiene asignado el mismo nombre de referencia de informe.

En este tema

  • Mensajes de error que le alertan de los conflictos de esquema

  • Orígenes de conflictos de esquema

  • Resolver conflictos de esquema

  • Comprobar que los conflictos de esquema están resueltos

Mensajes de error que le alertan de los conflictos de esquema

Cuando se producen conflictos de esquema, aparece un mensaje de error en las siguientes ubicaciones:

  • El registro de eventos del servidor de capa de aplicación.

    Nota

    Team Foundation Server inserta diariamente un mensaje de error en el registro de eventos hasta que se resuelve el conflicto con los datos.

  • Un informe que se proporciona con las plantillas de procesos de MSF y que puede ver mediante el Administrador de informes.

  • Un panel que se proporciona con las plantillas de procesos de MSF y que puede ver a través del portal del proyecto.

    Nota

    Para determinar cuándo se realizó la última actualización de un informe o panel, busque la marca de tiempo Fecha de última actualización que se muestra en la esquina inferior derecha de cada informe y cada panel. La marca de tiempo corresponde al momento más reciente en el que el procesamiento de cada trabajo del adaptador del almacén programado para su finalización en cada colección de proyectos se completa correctamente. En el cálculo de la marca de tiempo se incluyen los trabajos del adaptador personalizados y se omiten los trabajos del adaptador que no pueden ejecutar el servicio Web Control de almacén.

    Si un conflicto de esquema está impidiendo que los datos de un informe se escriban en el almacén de datos, la marca de tiempo del informe no se actualizará.

Además de los mensajes anteriores, puede obtener más información utilizando la operación GetProcessingStatus del servicio Web Control de almacén. Para obtener más información, vea Procesar manualmente el almacenamiento de datos y el cubo de Analysis Services para Team Foundation Server.

Orígenes de conflictos de esquema

Los conflictos de esquema se producen cuando un administrador del proyecto realiza una de las siguientes acciones:

  • Agrega un campo para informes a un tipo de elemento de trabajo de una colección de proyectos y los atributos que están asignados a ese campo no coinciden con los de otras colecciones de proyectos.

  • Cambia un atributo que está asignado a un campo de elemento de trabajo que se usa en varias colecciones de proyectos, aunque esos cambios estén en conflicto con las asignaciones de otras colecciones.

    Nota

    Un administrador del proyecto solo puede evitar los errores mencionados anteriormente revisando las asignaciones de atributos de los campos que están definidos en las diversas colecciones de proyectos de una implementación.

Los errores se producen cuando un campo tiene el mismo nombre de referencia o el mismo nombre de referencia de informe en varias colecciones de proyectos y uno o varios de los siguientes atributos de ese campo no coinciden en dos o más colecciones:

  • name: el nombre descriptivo del campo, que aparece como opción al crear una consulta de elementos de trabajo.

  • reportingname: el nombre que aparece en los informes. Si no especifica un valor, se usa el valor asignado al atributo name.

  • reportable/reportingtype: si los datos del campo están disponibles para incluirse en los informes; de ser así, el tipo para informes (por ejemplo, None, Detail, Dimension o Measure).

    Nota

    El elemento FIELD usa el atributo reportable y el comando witadmin changefield usa el atributo reportingtype. Estos atributos establecen la misma información.

  • type: el tipo de datos que el campo acepta (por ejemplo, Integer, HTML, String, Double, o DateTime).

En la tabla siguiente se proporcionan ejemplos de asignaciones de atributos que producirán conflictos de esquema. En estos ejemplos, el nombre de referencia de informe y el nombre de informe no están asignados.

Atributo

Colección de proyectos 1

Colección de proyectos 2

Conflicto de esquema

Tipo

Cadena

Integer

Los tipos de datos no coinciden.

ReportingName

Actividad

Common Activity

Los nombres de informe no coinciden.

Reportable

Detalle

Dimensión

Los tipos de informes no coinciden.

Resolver conflictos de esquema

Puede revisar el registro de eventos del servidor de capa de aplicación para obtener más información sobre el campo que está causando conflictos de esquema. Después de determinar el campo o campos que están produciendo el conflicto, debe seguir estos pasos:

  1. Revise los atributos que están asignados al campo en todas las colecciones de proyectos. Puede utilizar el comando witadmin listfields, que tiene la siguiente sintaxis:

    witadmin listfields /collection:CollectionURL /n:RefName [/unused]
    

    Para obtener más información, vea Administrar campos de elemento de trabajo [witadmin].

  2. Determine cuál de los siguientes mecanismos desea usar para resolver el conflicto:

    • Cambie el atributo del campo de una colección de proyectos para que coincida con las asignaciones realizadas en otras colecciones de proyectos. Debería realizar esta operación cuando los equipos usen el campo del mismo modo en informes similares o en informes de distintos proyectos.

    • Asigne un nuevo nombre de referencia de informe al campo en conflicto. Debería realizar esta operación cuando los campos se usen de forma distinta y necesite mantener un campo diferente. En este caso, los equipos que trabajen en diferentes colecciones de proyectos con informes de distintos proyectos no usarán el campo.

      Para obtener más información, vea Agregar y modificar campos de elementos de trabajo para la compatibilidad con la creación de informes.

    • Marque un campo como no válido para informes en una o varias colecciones. Debería realizar esta operación cuando el campo no se use en informes relacionados con esas colecciones de proyectos.

    • Quite el campo de la colección de proyectos de equipo. Debería realizar esta operación si el campo no se usa en ningún proyecto de equipo o informe.

      Nota

      Si quita un campo que se usa en un informe, el informe ya no se mostrará correctamente.

  3. Cambie el atributo que está asignado a un campo, con arreglo a las decisiones que haya tomado en el paso anterior. Puede utilizar el comando witadmin changefield, que tiene la siguiente sintaxis:

    witadmin changefield /collection:CollectionURL /n:RefName [/name:NewName] [/syncnamechanges:true | false] [/reportingname:ReportingName] [/reportingrefname:ReportingRefName] [/reportingtype:Type] [/reportingformula:Formula] [/noprompt]
    
  4. Para eliminar un campo de una colección de proyectos, puede usar el comando witadmin deletefield, que tiene la siguiente sintaxis:

    witadmin deletefield /collection:CollectionURL /n:RefName
    
    Nota importanteImportante

    Si elimina un campo permanentemente, se quitará del almacén de datos el campo y todos los datos que contiene.

Comprobar que los conflictos de esquema están resueltos

Puede comprobar que los conflictos del esquema se han resuelto procesando los almacenes de datos a petición y comprobando después los informes para determinar si están actualizados. O puede esperar hasta que los trabajos del adaptador del almacén de datos se ejecuten con arreglo al programa predeterminado. De forma predeterminada, la base de datos relacional se procesa cada pocos minutos. Sin embargo, el cubo de Analysis Services se procesa de forma predeterminada cada dos horas.

Nota

Para obtener más información acerca del servicio Web Control de almacén, vea Procesar manualmente el almacenamiento de datos y el cubo de Analysis Services para Team Foundation Server.

  1. Procese el almacén de datos relacional a petición utilizando la operación ProcessWarehouse de WarehouseControlService.

  2. Procese el cubo a petición utilizando la operación ProcessAnalysisDatabase de WarehouseControlService.

  3. Abra un panel o el Administrador de informes y compruebe que los informes están actualizados. Para obtener más información, vea Paneles (Agile) o Informes (Agile).

Si los mensajes de error continúan apareciendo, puede obtener más información sobre el conflicto de los datos y los adaptadores bloqueados afectados ejecutando la operación GetProcessingStatus de WarehouseControlService.

Vea también

Referencia

Administrar campos de elemento de trabajo [witadmin]

Conceptos

Crear, personalizar y administrar informes para Visual Studio ALM

Otros recursos

Agregar y modificar campos de elementos de trabajo para la compatibilidad con la creación de informes

Procesar manualmente el almacenamiento de datos y el cubo de Analysis Services para Team Foundation Server