Comment créer une alerte de résumé quotidien pour toute modification dans un site SharePoint

J’ai récemment demandé à une personne de recevoir une alerte récapitulative quotidienne pour tout changement au sein d’un site SharePoint; chaque site a un propriétaire qui est responsable du contenu de son site.

Notre méthode actuelle consiste à configurer automatiquement des alertes pour chaque liste / bibliothèque du site.

// Get the Lists on this Site SPListCollection siteLists = currentSite.Lists; foreach (SPList list in siteLists) { if (!list.ToSsortingng().Equals("Master Page Gallery")) { if (list.ReadSecurity == 1) // user has read access to all items { // Create an Alert for this List Guid alertID = currentUser.Alerts.Add(list, SPEventType.All, SPAlertFrequency.Daily); // Set any additional properties SPAlert newAlert = currentUser.Alerts[alertID]; } } } 

Cela crée deux problèmes:

  1. L’utilisateur a créé de nombreuses alertes différentes. Idéal: Un seul email avec le résumé quotidien.
  2. Une sorte de moniteur devrait être configuré pour vérifier la présence de nouvelles listes ou de nouvelles bibliothèques sur le site et configurer automatiquement des alertes pour l’utilisateur.

Q: Comment puis-je créer une alerte de résumé quotidienne pour toutes les modifications apscopes à un site?

Je pense que la solution que vous recherchez est disponible via le cadre d’audit. L’audit est très robuste dans SP, mais malheureusement, il est facile de se sentir dépassé par le résultat.

L’audit est une propriété disponible dans les propriétés SPSite, SPWeb, SPList et SPItem.

Ajustez les indicateurs d’audit spécifiques (à l’aide des propriétés .Audit.AuditFlags) en utilisant cette propriété pour répondre à vos besoins (les détails dépendront de la façon dont vous définissez le terme “changement”, mais presque tout ce que vous pouvez imaginer est disponible).

Des détails sur l’ object SPAudit sont disponibles sur MSDN.

Une fois que vous avez défini ce / où vous voulez auditer, vous devez renvoyer ces informations à vos utilisateurs.

Par défaut, SP configure certains rapports intéressants disponibles au niveau de la collection de sites ([url de la collection de sites] / _ layouts / Reporting.aspx? Category = Audit). Ceux-ci peuvent répondre à vos besoins.

Votre solution initiale mentionnait des alertes par courrier électronique pour les utilisateurs. Étant donné que la plupart des utilisateurs souhaitent centraliser leurs informations par courrier électronique (bien que leur site MySite soit l’endroit idéal pour insérer un lien vers les rapports!), Vous aurez un peu plus de travail à faire.

Vous pouvez extraire les informations d’audit requirejses via le modèle d’object à l’aide des objects SPAuditQuery et SPAuditEntryCollection. Encore une fois, MSDN possède des informations sur l’utilisation de ces objects.

Je vous recommande de configurer une définition SPJobDéfinition personnalisée qui s’exécute à la fin de la journée pour envoyer aux utilisateurs le rapport d’audit de leur site. Andrew Connell a une excellente explication sur la manière de configurer un travail personnalisé sur son blog.

Résumer:

  • activer l’audit pour les SPWeb en question
  • créer un rapport en utilisant SPAuditQuery et SPAuditEntryCollection pour chaque SPWeb
  • créer une définition SPJob qui s’exécute chaque nuit pour envoyer le rapport à chaque propriétaire de SPWeb par courrier électronique

Un élément à prendre en compte avant d’activer la stratégie d’audit sur un site est la surcharge de performances que vous ajoutez.

Je recommanderais de garder l’empreinte aussi peu que possible ici!

Je veux dire par là que si vous souhaitez obtenir ces informations uniquement à partir d’un certain type de contenu ou d’une certaine liste, assurez-vous d’activer uniquement la politique d’information sur ces CT ou ces listes!

Gardez également la journalisation au minimum. Par exemple, si vous êtes uniquement intéressé par les vues, et non par la suppression ou la restauration, enregistrez uniquement ces événements!

Sur de grands sites, j’ai constaté que les performances d’audit étaient vraiment mauvaises!

Tenez également compte de certaines mises en garde: même si vous pouvez activer l’audit sur les listes (comme dans les bibliothèques de documents non utilisées), de nombreux événements (par exemple, afficher des événements) ne sont pas consignés spécifiquement pour les éléments de liste! Cela n’est décrit nulle part (en fait, j’ai même vu Ted Pattison mentionner l’audit au niveau des articles dans un article MSDN), mais je le sais directement de CSS et de l’équipe produit que l’audit au niveau des articles n’est pas implémenté dans SP2007 en raison de problèmes de performances. Au lieu de cela, vous obtenez simplement un événement de liste dans le journal spécifiant que la liste a été touchée.

Le suivi des documents est assez correct, mais j’ai constaté des problèmes d’audit des événements d’affichage sur la page de publication (ce qui dans l’API est considéré comme un document et non comme un élément de liste) en fonction du mode et du lieu de l’audit défini (par exemple, si les stratégies d’audit ont été mises en œuvre avec une méthode héritée. CT’s) donc c’est quelque chose à être au courant.

[edit: certains tests ont été effectués hier et sont encore pires: en fait, la publication de pages n’est suivie que si vous définissez une stratégie d’audit au niveau du site! Si vous définissez une stratégie sur une liste ou un type de contenu (ou même un type de contenu héritant d’un type de contenu avec une stratégie), vous ne recevrez aucun événement de niveau SPAuditItemType.Document. Placez-le sur un site et vous obtiendrez trop d’audits! Par exemple. une vue déclenchera des événements de vue x2, et les mêmes mises à jour, de sorte que trop de journaux sont enregistrés. Cela ressemble certainement à un bogue qui dit que rien n’est audité quand des politiques sont mises sur des listes et des CT …]

Le message principal est le suivant: faites attention à ce que vous enregistrez, car cela affectera les performances de vos sites. TESTEZ que ce que vous comptez enregistrer est vraiment enregistré!

hth Anders Rask

Eh bien, il n’est pas vrai qu’il n’existe pas d’audit au niveau des articles. L’audit au niveau de l’élément est mis en œuvre, mais vous devez l’activer pour un élément spécifique. Si l’élément de liste existe, vous pouvez obtenir son instance et activer l’audit de la même manière que vous le feriez pour les listes. Le problème est que comment l’activer lorsque le ListItem est créé. Peut-être que le stream de travail pourrait aider?