2011-06-15 1 views
2

J'ai un formulaire InfoPath défini en tant que type de contenu principal sur une bibliothèque de formulaires qui fonctionne correctement. Le formulaire est un modèle géré téléchargé/activé via l'administrateur central et contient un certain nombre de champs sponsorisés.Les champs InfoPath nouvellement promus ne se trouvent pas dans la bibliothèque de formulaires?

Maintenant j'ai ajouté un autre champ au formulaire dans InfoPath (et ajouté un contrôle sur le formulaire, pour la visibilité) et définissez ce champ à promouvoir dans la bibliothèque (confirmé par Tools -> Form Options -> Property Promotion, et la liste quand publication) et publié & téléchargé le formulaire (en utilisant Central Admin). 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 peut stocker des données dans le champ. Cependant, le champ est promu dans la mesure où je ne peux pas le voir dans une des situations suivantes:

  • la page Propriétés de l'élément (Afficher/Modifier) ​​
  • Créer/Modifier Voir la page
  • la liste Colonnes sur la liste page des paramètres de bibliothèque de formulaires
  • les colonnes du type de contenu pour la forme, sur la page des paramètres de bibliothèque de formulaires

J'ai tout essayé je peux penser pour obtenir ce domaine promu court de supprimer la bibliothèque entière ary et recommencer. Est-ce que quelqu'un d'autre a rencontré ce problème? Comment puis-je promouvoir un nouveau champ dans une bibliothèque existante?

Répondre

2

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

Ce que je fini par faire a finalement été:

  1. supprimé toute la bibliothèque de formulaires
  2. créé une nouvelle copie/Version de la bibliothèque de formulaires, et ajouté le type de contenu du formulaire à partir de la galerie de types de contenu du site

Ceci n'a rien corrigé. Ne fais pas ça.

Ma prochaine étape était sans doute excessif, mais je:

  1. supprimé Bibliothèque tout le formulaire
  2. supprimé Type de contenu de la forme des types de contenu de la site Galerie
  3. supprimé le champ du formulaire InfoPath
  4. Publié le formulaire (champ moins) et l'a téléchargé dans Admin Central
  5. Re-ajouté le champ dans InfoPath et publié, promotion de nouveau le champ de la même manière que j'avais avant, et téléchargé sur Central Admin
  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ésactivé et réactivé la fonctionnalité du formulaire dans les paramètres du site Collection
  8. Ajout type de contenu du formulaire à la nouvelle forme Bibliothèque

Et cela a fonctionné!Ma théorie est que désactiver et réactiver la fonctionnalité pour le formulaire InfoPath forcera les champs promus à être mis à jour, et que jusqu'à ce que vous avez fait que le type de contenu utilisera toujours les anciens champs (de sorte que rien vous faites au niveau de la bibliothèque de formulaire signifiera une chose). Mais ce serait encore une opération très destructrice si vous travaillez sur des données de production, et j'espère qu'il y a toujours une façon plus simple et plus sûre de mettre à jour les propriétés/champs/colonnes sponsorisés d'un formulaire InfoPath publié sur SharePoint.

Mais il n'y en a probablement pas.

2

La simple désactivation et la réactivation de la fonctionnalité m'ont suffi. Cela ne semblait pas non plus destructeur. Cela dépendrait peut-être de ce qui est dans votre fonctionnalité, dans mon cas le formulaire InfoPath et rien d'autre.

+0

Cette était assez pour moi aussi, merci! – SalientBrain

0

J'ai résolu ce problème (solution de contournement) par PowerShell.
Vous devez savoir:
1) ID de champ dans le type de contenu
2) XPath à champ sous forme InfoPath

Suivant 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) 
Questions connexes