Share via


Resolver conflitos de esquema que estão ocorrendo no data warehouse

Conflitos de esquema ocorrem quando um conjunto de atributos para campos reportáveis difere entre as coleções de projeto de equipe. Quando um conflito de esquema ocorre, os campos que não são conflito são processados em como de costume mas os campos que estão em conflito são atribuídos valores nulos até que você resolva os conflitos e processe-os como de costume. Além disso, o sistema gerencie um evento de notificação para cada conflito que detecta. A assinatura do evento, você pode receber alertas quando os conflitos de esquema ocorrem para todos os projetos da equipe de serem definidos para uma coleção. Você deve corrigir todos os conflitos de esquema para desbloquear o processamento de dados associados para o warehouse e habilitar os relatórios associados para exibir dados atuais.

Todos os dados reportáveis de todos os projetos de equipe são definidos em todas as coleções de projeto para uma implantação do Visual Studio Team Foundation Server ser gravada em um único depósito de dados relacional. Em seguida, os dados desse depósito são processados e gravados no cubo. Coletar dados em um único depósito de dados oferece suporte aos relatórios em coleções de projetos da equipe No entanto, como os campos são gerenciados distintamente a coleção de projeto, os conflitos de esquema podem ocorrer quando as diferentes definições são atribuídas a um ou mais atributos de um campo que é atribuído o mesmo nome da referência de relatório.

Neste tópico

  • As mensagens de erro de alerta do esquema conflitos

  • Fontes de conflitos de esquema

  • Conflitos do esquema de resolução

  • Verifique se os conflitos de esquema sejam resolvidos

As mensagens de erro de alerta do esquema conflitos

Quando um conflito de esquema ocorre, será exibida uma mensagem de erro nos seguintes locais:

  • O log de eventos do servidor de aplicativo da camada.

    Dica

    Team Foundation Server registra em log uma mensagem de erro no log de eventos cada dia até que o conflito seja resolvido de dados.

  • Um relatório que são fornecidos com os modelos de processamento de MSF e que você exiba com o Gerenciador de Relatórios.

  • Um painel que sejam fornecidos com os modelos de processamento de MSF e que você exiba pelo portal do projeto.

    Dica

    Você pode determinar quando um relatório ou painel foram atualizados mais recentemente se você considerar o carimbo de data/hora de Data da última atualização , que é exibido no canto direito inferior de cada relatório e do painel.O carimbo de data/hora corresponde à hora mais recente que cada trabalho do adaptador do warehouse que estão agendados para a conclusão, a coleção de projeto, com êxito a conclusão do processamento.O cálculo de carimbo de data/hora inclui trabalho personalizados do adaptador e ignora os trabalhos do adaptador que estão bloqueados de execução do serviço Web de controle do warehouse.

    Se um conflito de esquema está bloqueando dados para fazer logon no data warehouse de um relatório, o carimbo de data/hora do relatório não será atualizado.

Além das mensagens anteriores, você poderá obter mais informações usando a operação de GetProcessingStatus do serviço Web de controle do warehouse. Para obter mais informações, consulte Processar manualmente o data warehouse e o cubo do Analysis Services para Team Foundation Server.

Fontes de conflitos de esquema

Conflitos de esquema ocorrem quando um administrador do projeto executar uma das seguintes ações:

  • Adiciona um campo reportável a um item de trabalho em uma coleção de projeto, e atributos que são atribuídos a esse campo não correspondam a aqueles em outras coleções de projeto.

  • Altera um atributo que é atribuído a um campo do item de trabalho que é usado em mais de uma coleção de projeto, mesmo que as alterações entrem em conflito com as atribuições em outras coleções.

    Dica

    Um administrador de projeto pode evitar os erros na lista anterior somente revisando as atribuições de atributo para os campos que são definidos por meio de várias coleções de projeto em uma implantação do.

Os erros resultam quando um campo tem o mesmo referência ao nome ou o mesmo nome da referência de relatório em várias coleções de projeto e um ou mais dos seguintes atributos desse campo não correspondem em dois ou mais conjuntos:

  • name: O nome amigável do campo, que aparece como uma opção ao criar uma consulta do item de trabalho.

  • reportingname: O nome que aparece em relatórios. Se você não especificar um valor, o valor designado ao atributo name será usado.

  • reportable/reportingtype: Se os dados do campo estão disponíveis para inclusão em relatórios e, nesse caso, o tipo reportável (por exemplo, None, Detail, Dimension, ou Measure).

    Dica

    O elemento de FIELD usou o atributo de reportable , e o comando de witadmin changefield usa o atributo de reportingtype .Esses atributos definem as mesmas informações.

  • type: O tipo de dados que aceita o campo (por exemplo, Integer, HTML, String, Double, ou DateTime).

A tabela a seguir fornece exemplos de atribuições de atributo que causarão conflitos de esquema. Nestes exemplos, o nome da referência de relatório e o nome do relatório não são atribuídos.

Atributo

Coleção do projeto 1

Coleção do projeto 2

Conflito de esquema

Tipo

Cadeia de caracteres

Integer

Os tipos de dados não coincidem.

ReportingName

Atividade

Atividades comuns

Os nomes de relatório não coincidem.

Reportável

Detalhes

Dimensão

Para tipos não correspondem.

Conflitos do esquema de resolução

Você pode examinar o log de eventos do servidor de aplicativo da camada para obter mais informações sobre o campo que está causando um conflito de esquema. Após determinar o campo ou os campos que estão causando o conflito, siga estas etapas:

  1. Verifique os atributos que são atribuídos ao campo em todas as coleções de projeto. Você pode usar o comando de witadmin listfields , que tem a seguinte sintaxe:

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

    Para obter mais informações, consulte Gerenciar campos de item de trabalho [witadmin].

  2. Determinar em quais das seguintes maneiras deseja resolver o conflito:

    • Alterar o atributo para o campo em uma coleção de projeto para corresponder as atribuições feitas em outras coleções de projeto. Você deve executar essa ação quando as equipes usam o campo nas mesmas modos em relatórios semelhantes ou para o relatório de vários projeto.

    • Rotular novamente o nome da referência de relatório do campo em conflito. Você deve executar essa ação quando os campos serão usados de diferentes maneiras ou você deve manter um campo diferente. Nesse caso, o campo não é usado pela equipe que trabalham em coleções diferentes de projeto para o relatório de vários projeto.

      Para obter mais informações, consulte Adicionar ou modificar campos de itens de trabalho para oferecer suporte a relatórios.

    • Marcar um campo como não reportável para uma ou várias coleções. Você deve executar essa ação quando o campo não é usado para relatórios sobre essas coleções de projeto.

    • Solte o campo da coleção de projeto de equipe. Você deve executar essa ação se o campo não é usada por nenhum projeto ou relatórios de equipe.

      Dica

      Se você remover um campo usado em um relatório, o relatório não será exibido corretamente.

  3. Alterar o atributo que é atribuído a um campo, com base nas decisões feitas na etapa anterior. Você pode usar o comando de witadmin changefield , que tem a seguinte sintaxe:

    witadmin changefield /collection:CollectionURL /n:RefName [/name:NewName] [/syncnamechanges:true | false] [/reportingname:ReportingName] [/reportingrefname:ReportingRefName] [/reportingtype:Type] [/reportingformula:Formula] [/noprompt]
    
  4. Para excluir um campo de uma coleção de projeto, você pode usar o comando de witadmin deletefield , que tem a seguinte sintaxe:

    witadmin deletefield /collection:CollectionURL /n:RefName
    

    Importante

    Se você excluir um campo, você remove permanentemente campo e de todos os dados que armazena de armazenamento de dados.

Verifique se os conflitos de esquema sejam resolvidos

É possível verificar se os conflitos de esquema sejam resolvidos processando os data warehouses sob demanda e depois verificando os relatórios para determinar se elas estão atualizados. Ou você pode esperar até a execução do trabalho do adaptador do warehouse, de acordo com sua agenda padrão. Por padrão, a base de dados relacional é processada a cada poucos minutos. Porém, o cubo do Analysis Services é processado cada duas horas por padrão.

Dica

Para obter mais informações sobre o serviço Web de controle do warehouse, consulte Processar manualmente o cubo do Analysis Services e o data warehouse de TFS.

  1. Processar o data warehouse relacional sob demanda usando a operação de ProcessWarehouse de WarehouseControlService.

  2. Processar o cubo sob demanda usando a operação de ProcessAnalysisDatabase de WarehouseControlService.

  3. Abrir um painel ou o Gerenciador de Relatórios, e verifique se os relatórios estão sendo atualizados. Para obter mais informações, consulte Painéis ou Relatórios (SQL Server Reporting Services).

Se as mensagens de erro continuará a aparecer, você poderá obter mais informações sobre o conflito de dados e os adaptadores bloqueados afetados executando a operação de GetProcessingStatus de WarehouseControlService.

Consulte também

Referência

Gerenciar campos de item de trabalho [witadmin]

Conceitos

Adicionar ou modificar campos de itens de trabalho para oferecer suporte a relatórios

Criar, personalizar e gerenciar relatórios para o Visual Studio ALM

Outros recursos

Processar manualmente o cubo do Analysis Services e o data warehouse de TFS