代码之家  ›  专栏  ›  技术社区  ›  Dynde

sharepoint列表/列表项中的特定更改信息

  •  1
  • Dynde  · 技术社区  · 14 年前

    我正在尝试为sharepoint创建替换通知我的通知功能。

    我做了大部分的艰苦工作。我只需要知道在一个时间跨度内得到改变的最佳方法。

    我知道SPChange课程,还有list.GetChanges()方法。然而,我能从中得到的唯一信息是已经做了什么,比如“更新”/“重命名”等等。

    1 回复  |  直到 13 年前
        1
  •  1
  •   Community CDub    7 年前

    我建议在这里查看我的问题: How to create a daily summary alert for any change in a SharePoint site .

    在使用SPAudit框架时,我遵循了Mark的建议,做了一些调整。最后,我在附加到列表的事件接收器中添加了一些我自己的自定义SPAudit条目。然后,每天晚上控制台应用程序运行并读取当天的所有审计条目以发出警报。

    听起来您可能只需要一个列表的警报,因此您必须进行更多的筛选。另外请记住,如果您想知道更多的基本信息(例如:哪些字段已更改),那么您需要考虑创建自己的自定义SPAudit条目。

    对于自定义审计条目,我首先创建了一个可序列化的bean。然后可以将包含事件接收器中所有信息的bean序列化到SPAudit条目中:

    public static void AddEvent(MyCustomBeanClass e, SPSite site)
    {
        StringWriter sw = new StringWriter();
        XmlSerializer xs = new XmlSerializer(typeof(MyCustomBeanClass));
        xs.Serialize(sw, e);
        site.Audit.WriteAuditEvent(SPAuditEventType.Custom, "MyCustomAuditing", sw.ToString());
    }
    

    this post of mine 这将帮助您形象化(1)项目看起来像开箱即用的,(2)一些额外的处理,你将需要做(例如:确定一个项目是否创建)。