Les colonnes publiées à partir de champs InfoPath sont recréées lorsque le même modèle de formulaire InfoPath est republié

Numéro de la ko d’origine :   2554288

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous créez un Office de formulaire InfoPath et le publiez dans une bibliothèque de documents dans SharePoint. Lors de la publication, vous sélectionnez certains champs InfoPath à publier en tant que colonnes dans la bibliothèque de documents. Après avoir publié le modèle de formulaire, vous décidez de publier le même modèle de formulaire et les mêmes champs dans une autre bibliothèque de documents sur SharePoint site.

  • Par la suite, vous implémentez une modification dans le modèle de formulaire InfoPath et repupuyez le modèle de formulaire dans les deux bibliothèques de documents dans le même ordre que lors de la première publication.

Dans ce scénario, toutes les colonnes des bibliothèques de documents qui ont été publiées à partir de champs InfoPath sont recréées.

Au cours de cette procédure, le nom interne des colonnes recréées dans les bibliothèques de documents SharePoint est également mis à jour, autrement dit, un nombre commençant par 0 est suffixe à l’ancien nom de colonne. Par exemple, une colonne appelée LastName est changée en LastName0.

La recréation des colonnes est un processus en deux étapes :

  1. La colonne est de nouveau ajoutée à la SharePoint bibliothèque.
  2. Les colonnes qui ne sont pas associées aux champs InfoPath sont supprimées.

Cause

InfoPath stocke la liste des champs publiés dans SharePoint bibliothèques de documents dans un manifeste local, ainsi que les colonnes à laquelle ces champs sont associés. Pour ce faire, référencez l’ID de colonne SharePoint (une valeur GUID unique) avec le champ InfoPath.

Lorsque vous publiez le modèle de formulaire InfoPath mis à jour dans une bibliothèque de documents SharePoint la deuxième fois, InfoPath vérifie si la colonne avec l’ID associé existe déjà. Si elle ne trouve pas la colonne correspondante, une nouvelle colonne est créée dans la bibliothèque de documents. Toutes les colonnes qui ne sont associées à aucun des champs InfoPath sont supprimées de la bibliothèque de documents.

Les opérations suivantes sont effectuées en arrière-plan lorsque vous publiez le même modèle de formulaire dans SharePoint bibliothèques :

  • Lorsque vous publiez le modèle de formulaire dans la première bibliothèque la première fois, chaque colonne publiée est créée et associée au champ InfoPath correspondant.

  • Lorsque vous publiez le modèle de formulaire dans la deuxième bibliothèque la première fois, InfoPath ne trouve pas les colonnes associées avec les ID stockés et crée donc de nouvelles colonnes. Il associe ensuite le nouvel ID de colonne au champ InfoPath correspondant.

  • Lorsque vous publiez le modèle de formulaire dans la première bibliothèque la deuxième fois, InfoPath ne trouve pas les colonnes associées aux ID stockés, car les GUID de la deuxième bibliothèque sont actuellement associés aux champs. InfoPath crée donc de nouvelles colonnes qui, à leur tour, obtiennent de nouveaux ID et sont associées aux champs InfoPath.

  • Dans ce processus, de nombreuses colonnes créées ne sont associées à aucun des champs InfoPath et sont supprimées de la bibliothèque de documents.

  • Ce comportement est répété lorsque vous publiez le modèle de formulaire dans la deuxième bibliothèque la deuxième fois.

Notes

This issue doesn’t occur if the InfoPath form template is being published as a site content type or InfoPath fields are being published as site columns in SharePoint.

Résolution

Il existe quelques méthodes pour éviter que cela ne se produise :

  • Créez une colonne de site pour chaque champ InfoPath à publier sur le site SharePoint et sélectionnez les colonnes de site pré-créées lors de la publication du modèle de formulaire InfoPath dans les deux bibliothèques.

    Comme l’ID des colonnes de site ne change pas, InfoPath n’a pas besoin de re-créer les colonnes existantes.

  • Créez une copie distincte du modèle de formulaire InfoPath, une pour chacune des SharePoint de documents. Cela permet de s’assurer qu’InfoPath ne re-crée pas les colonnes existantes, car les ID de colonne ne changent pas.

    L’inconvénient de cette approche est que vous devez implémenter toutes les modifications dans toutes les copies de modèle de formulaire en cours d’utilisation.

Notes

En règle générale, au lieu de publier le modèle de formulaire InfoPath deux fois, l’approche recommandée consiste à publier le modèle de formulaire en tant que type de contenu de site et à associer le type de contenu de site aux deux bibliothèques de documents SharePoint.

Plus d’informations

Ajouter, supprimer ou modifier des colonnes SharePoint bibliothèque ou des colonnes de site