Resolver conflitos de esquema que estão ocorrendo no data warehouse
Os conflitos de esquema ocorrem quando um conjunto de atributos de campos reportáveis é diferente nas coleções de projetos da equipe. Quando ocorre um conflito de esquema, campos que não estão em conflito são processados como de costume, mas os campos que estão em conflito são atribuídos valores nulos até que você resolva os conflitos e, em seguida, processar como de costume. Além disso, o sistema gera um evento de notificação para cada conflito detectado. Assinando o evento, você pode receber alertas quando ocorrem conflitos de esquema para os projetos de equipe definidos para uma coleção. Você deve corrigir todos os conflitos de esquema para desbloquear o processamento dos dados associados para o depósito e habilitar os relatórios associados exibir os dados atuais.
Todos os dados reportáveis de todos os projetos de equipe definidos em todas as coleções de projeto para uma implantação do Visual Studio Team Foundation Server é gravado em um único data warehouse relacional. Dados do depósito são processados e gravados no cubo. Coletar dados em um único data warehouse oferece suporte aos relatórios em coleções de projetos de equipe No entanto, como os campos são gerenciados diferenciada para cada coleção de projetos, conflitos de esquema podem ocorrer quando diferentes definições são atribuídas a um ou mais atributos de um campo que tem o mesmo nome de referência de emissão de relatórios.
Neste tópico
Mensagens de erro que alertá-lo sobre conflitos de esquema
Fontes de conflitos de esquema
Resolver conflitos de esquema
Verificar se os conflitos de esquema são resolvidos
Mensagens de erro que alertá-lo sobre conflitos de esquema
Quando ocorre um conflito de esquema, uma mensagem de erro aparecerá nos seguintes locais:
O log de eventos para o servidor de camada de aplicativo.
Dica
Team Foundation Server registra uma mensagem de erro no log de eventos por dia até que o conflito de dados seja resolvido.
Um relatório que é fornecido com o processo do MSF modelos e que você exibir por meio do Gerenciador de relatórios.
Um painel que é fornecido com o processo do MSF modelos e que você exibir por meio do portal do projeto.
Dica
Você pode determinar quando um relatório ou painel foi atualizado mais recentemente se você encontrar o Data da última atualização carimbo de hora, que aparece no canto inferior direito de cada relatório e o painel de controle.O carimbo de hora corresponde à última vez que todos os trabalhos de adaptador de depósito que está agendado para conclusão para cada coleção de projeto concluída com êxito processamento.O cálculo de carimbo de data / hora inclui trabalhos do adaptador personalizado e ignora os trabalhos de adaptador que são impedidos de executar o serviço da Web de controle de depósito.
Se um conflito de esquema está bloqueando dados de inserir o data warehouse para um relatório, o carimbo de hora para o relatório não será atualizado.
Além das mensagens anteriores, você pode obter mais informações usando o GetProcessingStatus operação do serviço Web de controle de depósito. Para obter mais informações, consulte processar manualmente o Data Warehouse e o cubo do Analysis Services para o Team Foundation Server.
Fontes de conflitos de esquema
Conflitos de esquema ocorrem quando um administrador do projeto executa uma das seguintes ações:
Adiciona um campo reportable a um tipo de item de trabalho em uma coleção de projetos e os atributos que são atribuídos a esse campo não coincidem com aqueles em outras coleções de projeto.
Altera um atributo que é atribuído a um campo de item de trabalho que é usado em mais de uma coleção de projetos, mesmo que essas alterações entrem em conflito com as atribuições de outras coleções.
Dica
Um administrador do projeto pode evitar os erros na lista anterior revisando as atribuições de atributo para os campos que são definidos entre várias coleções de projetos em uma implantação.
Erros de resultam quando um campo tiver o mesmo nome de referência ou o mesmo nome de referência de emissão de relatórios em várias coleções de projetos e um ou mais dos seguintes atributos de campo não correspondem em dois ou mais coleções:
name: O nome amigável do campo, que aparece como uma opção quando você cria uma consulta de item de trabalho.
reportingname: O nome que aparece em relatórios. Se você não especificar um valor, o valor atribuído para a name atributo será usado.
reportable/reportingtype: Se os dados do campo estão disponíveis para inclusão em relatórios e, nesse caso, o tipo de relatório (por exemplo, None, Detail, Dimension, ou Measure).
Dica
O FIELD elemento usado o reportable atributo e o witadmin changefield comando usa o reportingtype atributo.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 de referência de relatório e o nome do relatório não são atribuídos.
Atributo |
Coleção de projetos 1 |
Coleção de projetos 2 |
Conflito de esquema |
---|---|---|---|
Tipo |
Cadeia de Caracteres |
Inteiro |
Tipos de dados não coincidem. |
ReportingName |
Atividade |
Atividades comuns |
Nomes de relatório não coincidem. |
Reportable |
Detalhe |
Dimensão |
Tipos de relatórios não correspondem. |
Resolver conflitos de esquema
Você pode examinar o log de eventos no servidor de camada de aplicativo para obter mais informações sobre o campo que está causando um conflito de esquema. Depois de determinar o campo ou campos que estão causando o conflito, você deve seguir estas etapas:
Revise os atributos que são atribuídos ao campo em todas as coleções de projeto. Você pode usar o witadmin listfields comando, 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].
Determine em qual das seguintes maneiras resolver o conflito:
Altere o atributo para o campo em uma coleção de projetos para corresponder as atribuições feitas em outras coleções de projetos. Essa ação deve ser executada quando as equipes usam o campo da mesma maneira em relatórios semelhantes ou para relatórios de projetos cruzados.
Rotular novamente o nome de referência de relatório do campo em conflito. Essa ação deve ser executada quando os campos são usados de maneiras diferentes, ou você deve manter um campo diferente. Nesse caso, o campo não é usado por equipes que trabalham em coleções de projetos diferentes para relatórios de projetos cruzados.
Para obter mais informações, consulte Adicionar ou modificar campos de itens de trabalho para oferecer suporte a relatórios.
Marca um campo como esses para uma ou mais coleções. Essa ação deve ser executada quando o campo não é usado para relatórios sobre as coleções de projetos.
Remova o campo da coleção de projetos de equipe. Você deve executar esta ação se o campo não é usado por todos os projetos de equipe ou relatórios.
Dica
Se você remover um campo que é usado em um relatório, o relatório não será exibido corretamente.
Altere o atributo que é atribuído a um campo, com base nas decisões que você fez na etapa anterior. Você pode usar o witadmin changefield comando, 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]
Para excluir um campo de uma coleção de projetos, você pode usar o witadmin deletefield comando, que tem a seguinte sintaxe:
witadmin deletefield /collection:CollectionURL /n:RefName
Importante
Se você excluir permanentemente um campo, você remove o campo e todos os dados que ele armazena do armazenamento de dados.
Verificar se os conflitos de esquema são resolvidos
Você pode verificar os conflitos de esquema foram resolvidos os data warehouses sob demanda de processamento e, em seguida, verificando os relatórios para determinar se eles são atualizados. Ou você pode aguardar até que os trabalhos de adaptador de depósito executar, de acordo com o cronograma padrão. Por padrão, o banco de dados relacional é processado a cada poucos minutos. No entanto, o cubo do Analysis Services é processado a cada duas horas por padrão.
Dica
Para obter mais informações sobre o serviço Web de controle de depósito, consulte Processar manualmente o cubo de serviços de análise e o data warehouse para o Team Foundation Server.
Processar o data warehouse relacional sob demanda usando o ProcessWarehouse operação do WarehouseControlService.
Processar o cubo sob demanda usando o ProcessAnalysisDatabase operação do WarehouseControlService.
Abrir um painel de controle ou o Gerenciador de relatórios e verificar que os relatórios sejam atualizados. Para obter mais informações, consulte Painéis de portal do projeto ou Relatórios (SQL Server Reporting Services).
Se as mensagens de erro continuarem a aparecer, você pode obter mais informações sobre o conflito de dados e adaptadores bloqueados afetados executando o GetProcessingStatus operação do 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
Gráficos, painéis e relatórios para o Visual Studio ALM
Outros recursos
Processar manualmente o cubo de serviços de análise e o data warehouse para o Team Foundation Server