2008-10-15 6 views
3

J'ai un gestionnaire d'événements simple avec un événement ItemAdding qui change une valeur de colonne que j'ai besoin dans la méthode ItemUpdated. Après avoir téléchargé un document Word 2007 (* .docx, * .pptx ou xlsx), la valeur de la colonne est modifiée, mais lorsque je protège le document, la valeur de la colonne disparaît dans la méthode ItemUpdated. Cela ne se produit que pour les documents Office 2007, les autres fichiers n'effacent pas la valeur.données après disparition ItemUpdate dans les documents Sharepoint avec Office 2007

Le gestionnaire d'événement se déroule dans une bibliothèque de documents MOSS 2007.

Merci

Répondre

4

Nous avons la même question. Il semble que les propriétés de la liste sont ajoutées au document office 2007, mais uniquement avec les valeurs par défaut pour le champ lors du téléchargement/création. Une fois l'élément modifié, nous constatons que les valeurs de documents Office remplacent les valeurs définies dans notre gestionnaire d'événements.

Nous ne rencontrez pas ce lors de l'utilisation d'un gestionnaire d'événement asynchrone, mais le gestionnaire d'événements asynchrone a des conflits avec des mises à jour sur d'autres sujets avec certains types de mises à jour.

Nous avons un appel de soutien actif avec Microsoft au sujet de cette question. Ils reconnaissent que ce n'est pas Pas encore de résultats.

Essayez d'utiliser un gestionnaire d'événements asynchrone (il court un peu plus tard que le code qui met à jour à partir du document de bureau), mais avec prudence.

MISE À JOUR:

Une solution donne le SPWeb.ParserEnabled FALSE supprime la connexion aux propriétés du document qui arrêtera le comportement ci-dessus. Cela empêche les propriétés de la liste d'être ajoutées au document Office.

0

Lorsque vous téléchargez un document Office dans SharePoint, il essaie d'extraire la colonne du document et de les promouvoir à la liste. Faites, vérifiez si votre document a un jeu d'attributs.

Si c'est le cas, cela peut expliquer ce que vous voyez.

Note: ouvrir les propriétés du document à l'avance et supprimer toutes les propriétés personnalisées pour être sûr

0

Je résoudre la question de mettre la SPWeb.ParserEnabled = false dans la méthode ItemUpdating.

code:

properties.ListItem.Web.ParserEnabled = false; 

Merci à tous pour l'aide

0

Réglage SPWeb.ParserEnabled = false fonctionne, mais il y a des effets! Un très notable est qu'il va casser les sites et les modèles de liste. Si SPWeb.ParserEnabled = false, et que vous enregistrez une liste ou un modèle de site, ses métadonnées ne sont pas définies (ID de fonctionnalité, version du produit, etc.) et ne seront pas disponibles dans la liste des modèles. Vous pourrez peut-être contourner ce problème en remettant à zéro = true SPWeb.ParserEnabled lors de l'événement itemUpdated, mais je n'ai pas entièrement testé si cela résoudra tous les problèmes encore ...

Questions connexes