So erstellen Sie eine tägliche Zusammenfassung alert für jede änderung, die in einer SharePoint-Website
Vor kurzem habe ich die Anforderung für eine person erhalten Sie eine tägliche Zusammenfassung alert für jede änderung innerhalb einer SharePoint-site; jede Seite hat einen Besitzer, der verantwortlich für die Inhalte auf Ihrer Website.
Den aktuellen Weg haben wir etwas funktioniert, ist das automatische set-up-Benachrichtigungen für jede Liste/Bibliothek innerhalb der Website.
//Get the Lists on this Site
SPListCollection siteLists = currentSite.Lists;
foreach (SPList list in siteLists)
{
if (!list.ToString().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];
}
}
}
Dies schafft zwei Probleme:
- Der Benutzer hat eine Menge von verschiedenen Warnungen erstellt. Ideal: Nur EINE E-Mail mit der täglichen Zusammenfassung.
- Irgendeine Art von monitor müsste eingerichtet werden, um zu überprüfen, für neue Listen oder Bibliotheken in der Website und automatisch Warnungen für den Benutzer.
Q: Wie kann ich eine tägliche Zusammenfassung Warnung für alle änderungen in einer Website?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, die Lösung, die Sie suchen, verfügbar durch die auditing-framework. Die überwachung ist sehr robust in SP, leider ist es einfach zu überwältigt von der Leistung.
Audit ist eine Eigenschaft zur Verfügung, die auf die SPSite, SPWeb, SPList, und SPItem Eigenschaften.
Passen Sie die audit-flags (mit der .Audit.AuditFlags Eigenschaften) verwenden Sie diese Eigenschaft, um suite Ihre Bedürfnisse (die Besonderheiten, hängt davon ab, wie definieren Sie "ändern", aber fast alles, was Sie sich vorstellen können ist verfügbar).
Details über die SPAudit Objekt sind auf MSDN verfügbar.
Sobald Sie definiert haben, was/wo Sie überwachen möchten, müssen Sie diese Informationen an Ihre Benutzer.
Standardmäßig SP setzt einige schöne Berichte, die verfügbar sind auf der Ebene der Websitesammlung ([url der Websitesammlung]/_layouts/Reporting.aspx?Kategorie=Auditing). Diese können Ihre Bedürfnisse zu erfüllen.
Ihrer ersten Lösung genannten Warnungen per E-Mail für den Benutzer. Da die meisten Benutzer zentralisieren wollen Ihre Informationen in der E-Mail (wenn Ihre MySite ist ein großartiger Ort, um einen link setzen zu den berichten!) Sie haben ein wenig mehr Arbeit zu tun.
Können Sie ziehen Sie die erforderlichen überwachungsinformationen über das Objektmodell mithilfe der SPAuditQuery und SPAuditEntryCollection Objekte. Wieder, MSDN hat einige Informationen auf diese Gegenstände.
Ich würde empfehlen, einrichten einer benutzerdefinierten SPJobDefinition läuft, dass am Ende des Tages um E-Mail-Benutzern, die audit-report für Ihre Website. Andrew Connell hat eine große Erklärung wie, um das setup eine benutzerdefinierte Auftrag auf seinem blog.
Zusammenfassen:
Einer Sache zu prüfen vor der Aktivierung von überwachungsrichtlinien auf einer Website, ist der performance-overhead, die Sie hinzufügen.
Ich würde empfehlen, halten den Fußabdruck so wenig wie möglich hier!
Damit meine ich wenn Ihr nur einen bestimmten Inhaltstyp oder einer bestimmten Liste, die Sie möchten, dass diese Informationen aus, werden Sie sicher, dass nur die Informationen, die Politik auf diese CT ' s oder Listen!
Halten auch die Protokollierung auf ein minimum. ZB wenn Sie interessiert sind, nur Ansichten, nicht löschen oder wiederherstellen, nur protokollieren diese Ereignisse!
Auf großen Seiten, die ich gesehen habe auditing wirklich trash-performance!
Sich auch bewusst sein, einige Bemerkungen hier: auch wenn Sie die überwachung aktivieren, die auf Listen (wie in nicht-Dokumentbibliotheken), eine Menge von Ereignissen (z.B. Veranstaltungen) nicht angemeldet ist speziell für Elemente der Liste! Dies ist nicht beschrieben, überall (in der Tat habe ich sogar gesehen, Ted Pattison erwähnen item-level-Prüfung in einem MSDN-Artikel), aber ich habe es direkt von CSS-und Produkt team, das item-level-Prüfung ist nicht implementiert SP2007, weil der performance-Probleme. Stattdessen bekommst du nur eine Liste Ereignis in das Protokoll die Angabe, dass die Liste berührt wurde.
Dokumente verfolgt, ziemlich ok, aber ich habe gesehen, Probleme mit der überwachung von anzeigen von Ereignissen auf Seite veröffentlichen (was in der API wird als ein Dokument nicht in ein list item) je nachdem, wie und wo wurde die überwachung festzulegen (zum Beispiel, wenn audit-Richtlinien wurden umgesetzt, die geerbt CT ' s) also das ist etwas, bewusst zu sein.
[edit: habe einige Tests um dies gestern und es ist sogar noch schlimmer: In der Tat publishing Seiten ist nur verfolgt, wenn Sie auf Website-Ebene überwachungsrichtlinie! Wenn Sie eine Richtlinie festlegen, die auf einer Liste oder einem Inhaltstyp (oder sogar ein Inhalt geben, der erbt von einem content-Typ mit einer Police), erhalten Sie keine SPAuditItemType.Dokument-level-events". Legen Sie es auf eine Website und erhalten Sie zu viele Prüfungen! ZB. ein view wird ausgelöst, x2 view-Veranstaltungen, und gleichzeitig mit updates, so dass Sie am Ende mit zu viel geloggt. Es sieht definitiv aus wie ein bug, dass nichts geprüft wird, wenn Maßnahmen, die auf Listen-und CT-s...]
Die wichtigste Botschaft hier ist:
Sie vorsichtig, was Sie melden, da dies Einfluss auf den Websites der Leistung
TEST, dass das, was Sie erwarten, zu melden ist wirklich angemeldet!
hth
Anders Rask
Gut, es ist nicht ein Fall, dass es keine item-level-überwachung. Die item-level-auditing implementiert ist, aber Sie haben, um es einzuschalten für bestimmte Elemente. Wenn Listenelement vorhanden ist, erhalten Sie Ihre Instanz aus und aktivieren Sie die überwachung die gleichen, wie Sie dies tun, um Listen. Das problem ist, dass, wie, um es einzuschalten, wenn das Listenelement erstellt wird. Vielleicht workflow helfen könnte?