Partilhar via


As colunas publicadas a partir dos campos do InfoPath são recriadas quando o mesmo modelo de formulário do InfoPath é republicado

Número original da BDC: 2554288

Sintomas

Considere o seguinte exemplo:

  • Pode criar um modelo de formulário do Office InfoPath e publicá-lo numa biblioteca de documentos no SharePoint. Durante a publicação, selecione determinados campos do InfoPath a publicar como colunas na biblioteca de documentos. Depois de publicar o modelo de formulário, decide publicar o mesmo modelo de formulário e os mesmos campos numa biblioteca de documentos diferente no mesmo site do SharePoint.

  • Mais tarde, vai implementar uma alteração no modelo de formulário do InfoPath e voltar a publicar o modelo de formulário em ambas as bibliotecas de documentos pela mesma ordem que fez durante a primeira publicação.

Neste cenário, todas as colunas nas bibliotecas de documentos que foram publicadas a partir dos campos do InfoPath são recriadas.

Durante este procedimento, o nome interno das colunas recriadas nas bibliotecas de documentos do SharePoint também é atualizado, ou seja, um início numérico com 0 é sufixo para o nome de coluna antigo. Por exemplo, uma coluna chamada LastName muda para LastName0.

A recriação das colunas é um processo de dois passos:

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

Causa

O InfoPath armazena a lista de campos publicados nas bibliotecas de documentos do SharePoint num manifesto local, juntamente com as colunas às quais estes campos estão associados. Isto é conseguido ao referenciar o ID da coluna no SharePoint (um valor GUID exclusivo) com o campo InfoPath.

Quando estiver a publicar o modelo de formulário do InfoPath atualizado numa biblioteca de documentos do SharePoint pela segunda vez, o InfoPath verifica se a coluna com o ID associado já existe. Se não encontrar a coluna correspondente, é criada uma nova coluna na biblioteca de documentos. Todas as colunas que não estejam associadas a nenhum dos campos do InfoPath são eliminadas da biblioteca de documentos.

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

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

  • Quando publica o modelo de formulário na segunda biblioteca pela primeira vez, o InfoPath não encontra as colunas associadas com os IDs armazenados e, por conseguinte, cria novas colunas. Em seguida, associa o ID da nova coluna ao campo InfoPath correspondente.

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

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

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

Nota

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

Resolução

Existem alguns métodos para evitar que isto aconteça:

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

    Uma vez que o ID das colunas do site não será alterado, o InfoPath não tem de recriar as colunas existentes.

  • Crie uma cópia separada do modelo de formulário do InfoPath, uma para cada uma das bibliotecas de documentos do SharePoint. Isto irá garantir que o InfoPath não recria as colunas existentes, uma vez que os IDs de coluna não serão alterados.

    A desvantagem desta abordagem é que tem de implementar todas as alterações em todas as cópias do modelo de formulário que estão a ser utilizadas.

Nota

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

Mais informações

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