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.
Importante |
---|
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:
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].
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.
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]
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
Importante 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.
Procese el almacén de datos relacional a petición utilizando la operación ProcessWarehouse de WarehouseControlService.
Procese el cubo a petición utilizando la operación ProcessAnalysisDatabase de WarehouseControlService.
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