Compartilhar via


Colunas publicadas nos campos do InfoPath são recriadas quando o mesmo modelo de formulário do InfoPath é republicado

Número de KB original: 2554288

Sintomas

Considere o seguinte cenário:

  • Crie um modelo de formulário do Office InfoPath e publique-o em uma biblioteca de documentos no SharePoint. Durante a publicação, você seleciona determinados campos do InfoPath a serem publicados como colunas na biblioteca de documentos. Depois de publicar o modelo de formulário, você decide publicar o mesmo modelo de formulário e os mesmos campos em uma biblioteca de documentos diferente no mesmo site do SharePoint.

  • Posteriormente, você implementa uma alteração no modelo de formulário infopath e republica o modelo de formulário para ambas as bibliotecas de documentos na mesma ordem que você fez durante a primeira publicação.

Nesse cenário, todas as colunas nas bibliotecas de documentos que foram publicadas nos campos do InfoPath são recriadas.

Durante esse procedimento, o nome interno das colunas recriadas nas bibliotecas de documentos do SharePoint também é atualizado, ou seja, um numérico começando com 0 é sufixo para o nome da coluna antiga. Por exemplo, uma coluna chamada LastName muda para LastName0.

A recriação das colunas é um processo de duas etapas:

  1. A coluna é adicionada à biblioteca do SharePoint novamente.
  2. As colunas que não estão associadas aos campos do InfoPath são removidas.

Motivo

O InfoPath armazena a lista de campos que são publicados em bibliotecas de documentos do SharePoint em um manifesto local, juntamente com as colunas às quais esses campos estão associados. Isso é feito fazendo referência à ID da coluna no SharePoint (um valor GUID exclusivo) com o campo InfoPath.

Ao publicar o modelo de formulário infopath atualizado em uma biblioteca de documentos do SharePoint pela segunda vez, o InfoPath verifica se a coluna com a ID associada já existe. Se ele não encontrar a coluna correspondente, uma nova coluna será criada na biblioteca de documentos. Todas as colunas que não estão associadas a nenhum dos campos do InfoPath são excluídas da biblioteca de documentos.

As operações a seguir são executadas em segundo plano quando você publica o mesmo modelo de formulário em várias bibliotecas do SharePoint:

  • Quando você publica o modelo de formulário na primeira biblioteca pela primeira vez, cada coluna publicada é criada e está associada ao campo InfoPath correspondente.

  • Quando você publica o modelo de formulário na segunda biblioteca pela primeira vez, o InfoPath não encontra as colunas associadas às IDs armazenadas e, portanto, cria novas colunas. Em seguida, ele associa a nova ID da coluna ao campo InfoPath correspondente.

  • Quando você publica o modelo de formulário na primeira biblioteca pela segunda vez, o InfoPath não encontra as colunas associadas às IDs armazenadas, pois os GUIDs da segunda biblioteca estão associados atualmente aos campos. Portanto, o InfoPath cria novas colunas que, por sua vez, obtêm novas IDs e estão associadas aos campos do InfoPath.

  • Nesse processo, há muitas colunas criadas que não estão associadas a nenhum dos campos do InfoPath e são removidas da biblioteca de documentos.

  • Esse comportamento é repetido quando você publica o modelo de formulário na segunda biblioteca pela segunda vez.

Observação

Esse problema não ocorrerá se o modelo de formulário do InfoPath estiver sendo publicado como um tipo de conteúdo do site ou os campos do InfoPath estiverem sendo publicados como colunas de site no SharePoint.

Resolução

Há alguns métodos para evitar que isso aconteça:

  • Crie uma coluna de site para cada campo do InfoPath a ser publicado no site do SharePoint e selecione as colunas de site pré-criadas ao publicar o modelo de formulário InfoPath para ambas as bibliotecas.

    Como a ID das colunas do site não será alterada, o InfoPath não precisa recriar as colunas existentes.

  • Crie uma cópia separada do modelo de formulário InfoPath, uma para cada uma das bibliotecas de documentos do SharePoint. Isso garantirá que o InfoPath não crie novamente as colunas existentes, pois as IDs de coluna não serão alteradas.

    A desvantagem dessa abordagem é que você precisa implementar todas as alterações em todas as cópias de modelo de formulário que estão em uso.

Observação

Em geral, em vez de publicar o modelo de formulário infopath duas vezes, a abordagem recomendada é publicar o modelo de formulário como um tipo de conteúdo do site e associar o tipo de conteúdo do site às bibliotecas de documentos do SharePoint.

Mais informações

Para obter mais informações, consulte Adicionar, remover ou modificar colunas de biblioteca do SharePoint ou colunas do site.