Compartir a través de


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:

  1. 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].

  2. 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.

  3. 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]
    
  4. 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.

  1. Procese el almacenamiento de datos relacionales a petición usando la operación ProcessWarehouse de WarehouseControlService.

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

  3. 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

Otros recursos

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