2010-04-27 5 views
0

J'ai ce problème sur plusieurs environnements de serveur.Colonne de site de recherche ne pas enregistrer/stocker des métadonnées pour les documents Office 2007?

Nous avons une liste à la racine de la collection de sites. Une colonne de site a été créée en tant que recherche à valeurs multiples dans le champ Titre de cette liste. Cette colonne de site est utilisée dans les bibliothèques de documents des sous-sites en tant que champ obligatoire. Lorsque nous téléchargeons autre chose qu'un document Office 2007, l'écran de remplissage des métadonnées du document est présenté à l'utilisateur (EditForm.aspx? Mode = Upload), l'utilisateur remplit les données appropriées (y compris le choix d'une valeur pour cette recherche).), et clique sur "archiver" - le document est archivé comme prévu, avec la valeur du champ de recherche renseignée.

Avec un document Office 2007, cela échoue. Les valeurs sélectionnées par l'utilisateur pour le champ de recherche ne parviennent jamais au serveur - aucune erreur n'est levée, mais le champ n'est pas enregistré avec le document. Nous avons un écouteur d'événements sur ces bibliothèques de documents, et si nous inspectons le SPListItem entrant sur la méthode de l'écouteur d'événements avant qu'une seule ligne de notre code ne soit exécutée, nous voyons que la valeur du champ de recherche est null.

Ça sent comme un bogue de SharePoint pour moi - mais avant que j'appelle Microsoft, quelqu'un at-il vu ce & a travaillé autour d'elle?

Edit: la seule entrée que je vois dans les journaux de suivi SP relatives au problème:

CMS/Publishing/8ztg/Medium/Got List Item Version, but item was null 

Répondre

1

Blessez avoir à ouvrir un ticket avec Microsoft pour celui-ci, et a trouvé un bogue dans le MSDN documentation pour démarrer. Pour obtenir une recherche multisélect, nous avons défini l'attribut "Mult" dans notre champ de recherche CAML sur "true" dans le code XML que nous avons passé à SPFieldCollection.AddFieldAsXml. Cependant, même si l'API ne lance aucune erreur & semble fonctionner dans l'interface utilisateur, cela se heurte à la façon dont Office 2007 & 2010 documents & leur intégration SharePoint fonctionne.

La manière officielle et prise en charge pour ajouter un champ de recherche multisélect est d'utiliser le type de champ LookupMulti dans Field CAML. En faisant cela, et en mettant l'attribut "Mult" à "true" donne le résultat que je cherchais.

Le MSDN documentation pour "Mult" n'a toujours pas été mis à jour pour la documentation du SP 2007, et peut être ignoré en toute sécurité car il est complètement faux.

Questions connexes