Resolver los conflictos del esquema que se producen en el almacén de datos
Se producen conflictos de esquema cuando un conjunto de atributos para campos que se pueden incluir en informes difiere en distintas colecciones de proyectos de equipo. Cuando se produce un conflicto de esquemas, los campos que no están en conflicto se procesan como de costumbre, pero se asignan valores null a los campos que están en conflicto hasta que los conflictos queden resueltos y, a continuación, se procesan como de costumbre. Además, el sistema genera un evento de notificación para cada conflicto que detecta. Si se suscribe al evento, puede recibir alertas cuando se produzcan conflictos de esquema para todos los proyectos de equipo definidos para una colección. Debe corregir todos los conflictos de esquema a fin de desbloquear el procesamiento de los datos asociados para el almacenamiento y habilitar los informes asociados para mostrar los datos actuales.
Todos los datos que se pueden incluir en los informes de todos los proyectos de equipo que están definidos en cada una de las colecciones de proyectos de una implementación de Visual Studio Team Foundation Server se escriben en un único almacenamiento de datos relacional. Los datos de dicho almacenamiento 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 alertan de conflictos de esquema
Orígenes de conflictos de esquema
Resolver conflictos de esquema
Comprobar que se resuelven los conflictos de esquema
Mensajes de error que alertan de conflictos de esquema
Cuando se produce un conflicto de esquema, un mensaje de error aparece en las siguientes ubicaciones:
El registro de eventos del servidor de capa de aplicación.
Nota
Team Foundation Server registra un mensaje de error en el registro de eventos cada día hasta que se resuelve el conflicto de datos.
Un informe que se proporciona con las plantillas de proceso MSF y que puede ver a través del Administrador de informes.
Un panel incluido en las plantillas de proceso MSF y que puede ver a través del portal del proyecto.
Nota
Puede determinar cuándo fue la última vez que se actualizó un informe o un panel si encuentra la marca de tiempo Fecha de la última actualización, que aparece en la esquina inferior derecha de cada informe y panel.La marca de tiempo se corresponde con la hora más reciente a la que se completó correctamente el procesamiento de cada uno de los trabajos de adaptador de almacén que están programados para su finalización para cada colección de proyectos.El cálculo de la marca de tiempo incluye los trabajos personalizados del adaptador y omite los trabajos de adaptador cuya ejecución bloquea que bloquean la ejecución del servicio Web Control de almacén.
Si un conflicto de esquema bloquea la entrada de datos en el almacén de datos para un informe, la marca de tiempo del informe no se actualizará.
Además de los mensajes anteriores, puede obtener más información usando la operación GetProcessingStatus del servicio Web Control de almacén. Para 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 de proyecto realiza una de las acciones siguientes:
Agrega un campo para informe a un tipo de elemento de trabajo de una colección de proyectos y los atributos que se asignan 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 y que se usa en más de una colección de proyectos, a pesar de que esos los cambios entran en conflicto con las asignaciones de otras colecciones.
Nota
Los administradores de proyectos pueden evitar los errores de la lista anterior revisando las asignaciones de atributos para los campos que se definen en varias colecciones de proyectos en una implementación.
Los errores se producen cuando un campo tiene el mismo nombre de referencia o el mismo nombre de referencia de informes en varias colecciones de proyectos y uno o varios de los siguientes atributos para ese campo no coinciden en dos o más colecciones:
name: nombre descriptivo del campo, que aparece como una opción al crear una consulta de elementos de trabajo.
reportingname: nombre que aparece en los informes. Si no especifica un valor, se usa el valor asignado al atributo name.
reportable/reportingtype: determina si los datos del campo están disponibles para su inclusión en informes y, en caso afirmativo, 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 definen la misma información.
type: tipo de datos que acepta el campo (por ejemplo, Integer, HTML, String, Double o DateTime).
En la tabla siguiente se muestran ejemplos de asignaciones de atributos que producirán conflictos de esquema. En estos ejemplos, el nombre de referencia del informe y el nombre del informe no están asignados.
Atributo |
Colección de proyectos 1 |
Colección de proyectos 2 |
Conflicto de esquema |
---|---|---|---|
Tipo |
Cadena |
Entero |
Los tipos de datos no coinciden. |
ReportingName |
Actividad |
Actividad común |
Los nombres de informe no coinciden. |
Reportable |
Detalles |
Dimensión |
Los tipos de informe no coinciden. |
Resolver conflictos de esquema
Puede revisar el registro de eventos en el servidor de capa de aplicación para obtener más información sobre el campo que está causando un conflicto de esquema. Después de determinar el campo o campos que están causando el conflicto, siga estos pasos:
Revise los atributos que se asignan al campo en todas las colecciones de proyecto. 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 elementos de trabajo [witadmin].
Decida de cuál de las siguientes maneras desea resolver el conflicto:
Cambie el atributo del campo en una colección de proyectos para que coincida con las asignaciones que se han realizado en otras colecciones de proyectos. Realice esta acción si los equipos utilizan el campo de la misma forma en informes similares o para elaborar informes entre proyectos.
Cambiar la etiqueta del nombre de referencia del informe del campo en conflicto. Realice esta acción si los campos se utilizan de maneras diferentes o si debe mantener un campo diferente. En este caso, los equipos que trabajan en colecciones de proyectos distintas no utilizan el campo para elaborar informes entre proyectos.
Para obtener más información, vea Agregar o modificar campos de elementos de trabajo para admitir la creación de informes.
Marcar un campo para que no sea incluido en informes en una o más colecciones. Realice esta acción si el campo no se utiliza para informes acerca de esas colecciones de proyectos.
Eliminar el campo de la colección de proyectos de equipo. Realice esta acción si ningún proyecto de equipo o informe utiliza el campo.
Nota
Si quita un campo que se utiliza en un informe, el informe no se mostrarán correctamente.
Cambie el atributo que se asigna a un campo en función de 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 utilizar el comando witadmin deletefield, que tiene la siguiente sintaxis:
witadmin deletefield /collection:CollectionURL /n:RefName
Importante
Al eliminar un campo de forma permanente, quita el campo y todos los datos que almacena del almacenamiento de datos.
Comprobar que se resuelven los conflictos de esquema
Puede comprobar que se han resuelto los conflictos de esquema procesando los almacenes de datos a petición y, a continuación, comprobando los informes para determinar si se actualizan. O bien puede esperar a que se ejecuten los trabajos de adaptador de almacén según su programación predeterminada. De forma predeterminada, la base de datos relacional se procesa cada pocos minutos. Sin embargo, el cubo de Analysis Services se procesa cada dos horas de forma predeterminada.
Nota
Para obtener más información acerca del servicio Web Control de almacén, vea el tema sobre cómo Procesar manualmente el almacenamiento de datos y el cubo de Analysis Services para Team Foundation Server.
Procese el almacenamiento de datos relacionales a petición usando la operación ProcessWarehouse de WarehouseControlService.
Procese el cubo a petición usando la operación ProcessAnalysisDatabase de WarehouseControlService.
Abra un panel o el Administrador de informes y compruebe que se actualizan los informes. Para obtener más información, vea Paneles del portal del proyecto o Informes (SQL Server Reporting Services).
Si siguen apareciendo mensajes de error, puede obtener más información sobre los conflictos de datos y los adaptadores bloqueados afectados ejecutando la operación GetProcessingStatus de WarehouseControlService.
Vea también
Referencia
Administrar campos de elementos de trabajo [witadmin]
Conceptos
Agregar o modificar campos de elementos de trabajo para admitir la creación de informes
Gráficos, paneles e informes para Visual Studio ALM