SharePoint中关于文档的跟踪记录和点击率一直是个让人头疼的问题。不过wss3.0的audit功能,可以帮我们一点忙。
Audit功能说白了就是可以跟踪并记录站点集 、网站、列表或者列表项(文档)的操作记录(包括察看、下载、更新等),
并且通过对象模型来访问这些操作记录。 其实除了通过对性模型,我们也可以直接访问数据库来获取操作记录。那我们看看怎么样来做吧!
1. 通过Audit对象模型访问操作记录
在wss3.0中,有几个类和枚举与我们的Audit有关,他们所处的命名空间为Microsoft.SharePoint。
这几个类分别是:
SPAuditEntry
SPAuditQuery
枚举分别是:
SPAuditEventSource
SPAuditEventType
SPAuditItemType
SPAuditLocationType
SPAuditMaskType
其中几个类都很重要,那我们就来看看如果通过对向模型来获站点集、网站、列表或者文档的“记录”情况。
首先,我们要打开Audit开关,这样才能保证我们对网站集、文档等所做的操作会被记录下来。打开Audit开关的代码如下:
All,CheckIn,CheckOut,ChildDelete,Copy,Delete,Move,None,ProfileChange,SchemaChange,Search,SecurityChange,Undelete,Update,View,Workflow
给文档(列表)库或者文档(列表)打开开关也是同样的方法,在这里我就不重复描述了。(注意:如果要关闭该功能,只要设置SPAuditMaskType.
None就可以了)。
OK,现在我们已经打开Audit的开关了,现在我们所做的“一切”动作都会被“记录在案”了。那接下来我们就看看如何获取操作记录。
要获取操作记录,我们需要使用刚才提到的几个类
SPAudit:Audit类,相当于一个Manager的作用。
SPAuditEntry:具体的操作记录实体,代表着某一个操作。
SPAuditEntryCollection:操作记录实体集合。
SPAuditQuery:操作查询类。
获取网站集操作记录的代码如下:
如果我们要通过条件筛选操作记录,可以在注解2处加上以下代码:
其中Event =3 表示统计查看(下载),Itemtype = 1表示统计文档库
当然我们会发现这样统计会把一些我们不需要的内容也统计进来,比如母版页库的访问,样式库的访问等等。
我们可以通过代码来写一些过滤的方法把我们不需要的内容过滤掉,比如我们可以写一个配置文件,把需要作统计的列表名称列出来,这样就可以把多余的统计内容过滤掉了。