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:
- A coluna é adicionada novamente à biblioteca do SharePoint.
- 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.