2010-08-17 22 views
0

Je travaille avec le framework Audit dans MOSS 2007, et j'ai activé par programmation Auditing pour 2 listes spécifiques dans un ensemble de sites dans une collection de sites (ce qui signifie que les sites ont tous leur posséder deux listes). J'ai seulement activé le masque de mise à jour, car je veux seulement savoir quand quelque chose a été changé ou ajouté.Activation automatique de SPAudit pour les nouveaux fichiers de la liste

Cependant, je ne peux me connecter que lorsque quelque chose a été ajouté, avec ma configuration actuelle. Pour permettre de voir les modifications apportées aux éléments de la liste, je suis conscient que l'audit de l'élément de liste doit être activé. Mais lors de l'ajout d'un nouvel élément à la liste, comment activer automatiquement l'audit pour cet élément? Si possible, je préférerais éviter de créer un récepteur d'événement pour accomplir ceci.

* EDIT

Le code que j'utilise pour activer l'audit ressemble à quelque chose comme ceci:

foreach (SPSite site in webApp.Sites) { 
    foreach (SPWeb website in site.AllWebs) { 
     website.Lists["MyList"].Audit.AuditFlags = SPAuditMaskType.Update; 
     website.Lists["MyList"].Audit.Update(); 
    } 
} 

Et pour le lire:

SPUserToken sysAdmin = website.Site.SystemAccount.UserToken; 
using (SPSite elevatedSite = new SPSite(website.Site.ID,sysAdmin)) { 
    using (SPWeb elevatedWeb = elevatedSite.OpenWeb(website.ID)) { 
     SPAuditQuery auditQuery = new SPAuditQuery(elevatedSite); 
     auditQuery.SetRangeStart(myDatetime); 
     auditQuery.RestrictToList(elevatedWeb.Lists["MyList"]); 
     listChanges = elevatedWeb.Lists["MyList"].Audit.GetEntries(auditQuery); 
    } 
} 

Je me rends compte que je suis à restreindre énumérer ici, mais quand je n'ai pas eu j'ai eu des changements d'autres listes sur le site aussi bien. Même si logiquement je suppose que je ne suis arrivé les changements dans la liste que j'ai appelé « getEntries » sur ...

Merci

Répondre

1

Si la bibliothèque a permis la vérification, puis de nouveaux éléments seront vérifiés. Je ne suis au courant d'aucun audit spécifique à un document

+0

J'ai mis à jour mon post avec des détails sur la façon dont j'active l'audit - peut-être que je fais quelque chose de mal, et l'activer uniquement pour la liste, et ne pas lister les éléments de la liste? – Dynde

0

Un peu tard pour répondre à cette question, mais voici quelques informations supplémentaires au cas où d'autres trouveraient cet article.

Il est possible de suivre les événements d'audit au niveau du document. Ce link explique comment cela peut être fait. Ils utilisent un gestionnaire d'événements pour le faire fonctionner. Je sais que vous mentionnez que vous ne voulez pas le faire de cette façon, mais c'est ce qui est nécessaire pour suivre automatiquement les événements de documents. La définition du type de masque d'audit sur la bibliothèque de documents semble suivre uniquement les événements DL, pas les éléments individuels.