Pregunta

Hace poco recibí la necesidad de una persona para recibir un resumen diario de alerta para cualquier cambio dentro de un sitio de SharePoint; cada sitio tiene un dueño que está a cargo del contenido de su sitio.

La forma actual que tenemos algo de trabajo es para configurar automáticamente alertas para cada lista / biblioteca dentro del sitio.

// 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];
        }
    }
}

Esto crea dos problemas:

  1. El usuario dispone de una gran cantidad de diferentes alertas creadas. Ideal:. Solamente UNA correo electrónico con el resumen diario
  2. Una especie de monitor de tendría que ser configurado para comprobar si hay nuevas listas o bibliotecas en el sitio y automáticamente configurar alertas para el usuario.

Q: ¿Cómo puedo crear una alerta de resumen diario de todos los cambios en un sitio

¿Fue útil?

Solución

Creo que la solución que está buscando es disponible a través del marco de auditoría. La auditoría es muy robusto en el SP, por desgracia, es fácil sentirse abrumado por la salida.

La Auditoría es una propiedad disponible en las propiedades SPSite, SPWeb, SPList y SPItem.

Ajuste las banderas de auditoría específicos (utilizando las propiedades .Audit.AuditFlags) utilizando esta propiedad a la habitación sus necesidades (los detalles dependerán de cómo se defina "cambio", pero casi cualquier cosa que se pueda imaginar está disponible).

Los detalles sobre la SPAudit objeto están disponibles en MSDN.

Una vez que haya definido qué / dónde desea auditar, usted tiene que conseguir esa información a sus usuarios.

Por defecto, SP establece algunos informes agradables que está disponible en el nivel de colección de sitios ([url de la colección de sitios] / _ layouts / Reporting.aspx? = Categoría de Auditoría). Estos pueden satisfacer sus necesidades.

Su solución inicial mencionó alertas vía e-mail para los usuarios. Teniendo en cuenta que la mayoría de los usuarios desean centralizar la información en el correo electrónico (aunque su MySite es buen lugar para poner un enlace a los informes!) Que tendrá un poco más de trabajo que hacer.

Puede tirar de la información de auditoría requerida a través del modelo de objetos usando los objetos y SPAuditQuery SPAuditEntryCollection. Una vez más, MSDN tiene alguna información sobre el uso de estos objetos.

Yo recomendaría la creación de un SPJobDefinition personalizado que se ejecuta al final del día para enviar por correo electrónico los usuarios del informe de auditoría para su sitio. Andrew Connell tiene una gran explicación de cómo configurar un trabajo personalizado en su blog.

Para resumir:

  • habilitar la auditoría de la década de SPWeb en cuestión
  • crear un informe utilizando SPAuditQuery y SPAuditEntryCollection para cada SPWeb
  • crear una SPJobDefinition que se ejecuta cada noche para enviar el informe a cada propietario SPWeb

Otros consejos

Una cosa a tener en cuenta antes de habilitar la directiva de auditoría en un sitio, es la sobrecarga de rendimiento se agrega.

Yo recomendaría mantener la huella de tan poco como sea posible aquí!

Con esto quiero decir que si su sólo un determinado tipo de contenido o una cierta lista que desea que esta información, asegúrese de habilitar sólo la política de información sobre estos CT o listas!

También hay que tener el registro a un mínimo. Por ejemplo, si usted está interesado sólo en las vistas, no la supresión o el restablecimiento, sólo se registran estos eventos!

En los sitios grandes que he visto realmente el rendimiento de auditoría basura!

También ser conscientes de algunas advertencias aquí: aunque se puede habilitar la auditoría en las listas (no como en las bibliotecas de documentos), un montón de eventos (por ejemplo, eventos Ver) no está conectado específicamente para elementos de la lista! Esto no se describe en cualquier lugar (de hecho, incluso he visto Ted Pattison mencionar auditoría nivel de posición en un artículo de MSDN) pero lo tengo directamente de CSS y el producto del equipo de auditoría que nivel de artículo no está implementado en SP2007 a causa de problemas de rendimiento. En lugar que acaba de obtener un evento en el registro de la lista que especifica que la lista ha sido tocado.

Los documentos se hace un seguimiento bastante bien, pero he visto los problemas con los auditoría eventos en la página editorial (que en la API no se considera un documento de un elemento de lista) dependiendo de cómo y dónde se estableció la auditoría (por ejemplo, si las políticas de auditoría eran implementado con CT heredada) así que eso es algo a tener en cuenta.

[editar: hizo algunas pruebas en torno a este ayer y sus aún peores: de hecho Publicación de páginas es Sólo seguimiento si se establece sobre política de auditoría a nivel de sitio! Si se establece una política en una lista o un tipo de contenido (o incluso un tipo de contenido que se hereda de un tipo de contenido con una política) obtendrá no eventos de nivel SPAuditItemType.Document en absoluto. Ponerlo en un sitio y obtendrá demasiados auditorías! P.ej. una vista desencadenará vista x2 eventos, y lo mismo con las actualizaciones, por lo que terminan con demasiado estando conectado. Es definitivamente parece un error que no es auditado cuando las políticas se ponen en listas y de CT ...]

El mensaje principal es: cuidado con lo que inicia la sesión, ya que afectará a su rendimiento de sitios PRUEBA de que lo que se espera para iniciar la sesión está realmente conectado!

hth Anders Rask

Bueno, no es un caso que no existe una auditoría de nivel de artículo. La auditoría de nivel de artículo es implementado, pero hay que darle vuelta para el elemento específico. Si existe elemento de la lista puede obtener su instancia y activar la auditoría lo mismo que lo hace a las listas. El problema es que la forma de la enciende cuando se crea el ListItem. Tal flujo de trabajo podría ayudar?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top