Question

J'ai un formulaire InfoPath défini comme type de contenu principal dans une bibliothèque de formulaires qui fonctionne correctement.Le formulaire est un modèle géré téléchargé/activé via l'administration centrale et contient un certain nombre de champs promus.

Maintenant, j'ai ajouté un autre champ au formulaire dans InfoPath (et ajouté un contrôle sur le formulaire pour plus de visibilité) et défini ce champ pour qu'il soit promu dans la bibliothèque (confirmé par les deux Tools -> Form Options -> Property Promotion, et la liste lors de la publication) et publié et téléchargé le formulaire (à l'aide de l'administrateur central).

Lorsque j'ouvre le formulaire dans SharePoint (en créant un nouvel élément dans la bibliothèque de formulaires ou en ouvrant un élément existant dans cette bibliothèque), je vois le contrôle de mon nouveau champ et je peux stocker des données dans le champ.Cependant, le champ n'est PAS promu, dans la mesure où je ne peux le voir dans aucun des éléments suivants :

  • la page Propriétés de l'article (Afficher/Modifier)
  • la page Créer/Modifier une vue
  • la liste Colonnes sur la page des paramètres de la bibliothèque de formulaires
  • la liste Colonnes du type de contenu du formulaire, sur la page des paramètres de la bibliothèque de formulaires

J'ai essayé tout ce à quoi je pouvais penser pour promouvoir ce domaine sans supprimer toute la bibliothèque et recommencer.Quelqu'un d'autre a-t-il rencontré ce problème ?Comment puis-je promouvoir un nouveau domaine dans une bibliothèque existante ?

Était-ce utile?

La solution

Eh bien, j'ai en quelque sorte répondu à ma propre question...

Ce que j'ai fini par faire, c'est finalement :

  1. Supprimé toute la bibliothèque de formulaires
  2. Création d'une nouvelle copie/version de la bibliothèque de formulaires et ajout du type de contenu du formulaire à partir de la galerie des types de contenu du site.

Cela n’a rien réglé.Ne fais pas ça.

Ma prochaine étape était probablement excessive, mais j'ai :

  1. Supprimé toute la bibliothèque de formulaires
  2. Suppression du type de contenu du formulaire de la galerie des types de contenu du site
  3. Suppression complète du champ du formulaire InfoPath
  4. Publication du formulaire (champ moins) et téléchargement dans l'administration centrale
  5. J'ai ré-ajouté le champ dans InfoPath et publié, en promouvant à nouveau le champ de la même manière que je l'avais fait auparavant, et je l'ai téléchargé via l'administration centrale.
  6. J'ai essayé d'ajouter le type de contenu du formulaire à une nouvelle copie/version de la bibliothèque de formulaires (le type de contenu n'était pas disponible)
  7. Désactivation et réactivation de la fonctionnalité du formulaire dans les paramètres de la collection de sites
  8. Ajout du type de contenu du formulaire à la nouvelle bibliothèque de formulaires

Et CELA a fonctionné !

Ma théorie est que la désactivation et la réactivation de la fonctionnalité du formulaire InfoPath forceront la mise à jour des champs promus et que jusqu'à ce que vous ayez terminé, le type de contenu utilisera toujours les anciens champs (de sorte que rien de ce que vous ferez au moment où vous l'aurez fait) Le niveau de la bibliothèque de formulaires signifiera quelque chose).Mais cela resterait une opération très destructrice si vous travaillez sur des données de production, et j'espère qu'il existe toujours un moyen plus simple et « plus sûr » de mettre à jour les propriétés/champs/colonnes promus d'un formulaire InfoPath publié sur SharePoint.

Mais ce n’est probablement pas le cas.

Autres conseils

Il me suffisait de désactiver puis de réactiver la fonctionnalité.Cela ne semblait pas non plus destructeur.Cela dépendra peut-être du contenu de votre fonctionnalité, dans mon cas du formulaire InfoPath et de rien d'autre.

J'ai résolu (solution de contournement utilisée) ce problème par PowerShell.
Tu dois savoir:
1) ID de champ dans le type de contenu
2) XPath vers le champ dans le formulaire InfoPath

Ensuite, vous devez utiliser ce script PowerShell :

Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
$web = Get-SPWeb "https://intranet.company.com"
$contentTypeName = "Content Type Name"
$ct = $web.ContentTypes[$contentTypeName]

# Content Type Fields
# Field
$fieldId = "1209bb86-645b-4e56-aea2-265a325a98af"
$fieldLinks = $ct.FieldLinks | Where-Object {$_.Id -eq $fieldId}
$fieldLinks.ReadOnly = $true
$fieldLinks.XPath = "/my:Fields/my:FieldGroup/my:Field"

$ct.Update($true)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top