如果我们使用一个SharePoint网站来存储部门/团队的文档,通常会按照我们想要的结构,预先在网站中建立好相应的文档库和文件夹。比如,我们会创建一个“技术文档库”,来存放技术类别的文档,同时创建一个“业务文档库”存放业务类别的文档,在“技术文档库”中,还可能按照编程语言的种类,建立诸如“CSharp”、“C++”、“Java”之类的文件夹,将技术文档按照它们所属的类别,再放置到相应的文件夹中。
但是,无论管理员将结构建立得多么好、多么完整,用户很可能并不会按照文档实际的类别,将文档上载到正确的文档库和文件夹中。SharePoint 2010的内容管理器,能帮助网站管理员实现自动化的文档路由和存储。在用户将文档上载到网站之后,网站的内容管理器会按照事先设置的规则,自动将文档移动到正确的地方。
内容管理器的规则,基本上基于两种判断条件:
1、文档的内容类型。例如,属于“技术文档”内容类型的文件,移动到哪里哪里,而属于“业务文档”内容类型的文件,又是移动到哪里哪里。内容管理器规则只能处理继承自“文档”内容类型的内容类型,这意味着内容管理器只能管理文件类型的内容,而不能处理其他列表项内容类型。
2、属性的值。基于第1种判断条件,管理员还可以再基于文档的属性,设置判断条件。比如,“技术类别”属性的值等于“Web程序”的文档,移动到哪里哪里。第2种判断条件不能独立于第1种存在。
内容管理器是一项网站级别的功能,而并非网站集级别。所以,首先需要在网站功能管理中,启用“内容管理器”功能:
在网站中启用了内容管理器功能之后,网站中会多出来一个“放置库”文档库。这个“放置库”是内容管理器的核心之一,实际上,所有内容管理器规则都是应用到“放置库”。
然后在网站管理页面中,会多出来“内容管理器设置”和“内容管理器规则”链接:
内容管理器设置界面中,是对整个网站的内容管理器功能,进行全局的设置。
如果选择了“将新内容提交到库”选项,那么无论用户是将文档上载到网站的什么地方,这个文档都会被自动移动到“放置库”中,以对其应用规则。但是我发现Beta2中似乎有Bug,即使管理员选中了这个选项,用户上传到其他地方的文档也不会自动移动到“放置库”,这样只有上载到“放置库”中的文档,才会被应用规则。
如果选中了“允许规则将其他网站指定为目标位置”选项,那么在规则中,就能将上载的文档移动到其他网站。但是其他网站的目标位置,必须事先由管理员在“管理中心 - 一般应用程序设置 - 配置发送到连接”设置之后,才能使用。
自动创建子文件夹的选项非常有用,这样可以避免在一个文件夹中,存放太多的内容。不建议在一个文件夹中,存放超过5000个文件。
如果目标位置已经存在同名文件,那么下面的选项将决定内容管理器如何处理这种情况。但是如果管理员选择了使用版本控制,但目标文档库又并未启用版本控制功能,那么内容管理器仍然是使用自动在文件名后面添加唯一字符的方式,来进行处理。
保留文档的审核日志和属性,有助于在记录管理中对文档进行持续管理。
“规则管理员”可以让管理员指定哪些人可以设置内容管理器规则。如果一个用户是网站管理员,但是并非规则管理员,他也不能管理内容管理器规则。如果一个用户是规则管理员,但并非网站管理员,他仍然不能管理内容管理器规则。
接下来,就是为内容管理器创建规则。每个规则都有优先级,优先级高的规则会先被执行,这样如果一个文档符合多个规则的条件,那么只有优先级最高的规则会被应用到文档。
下面的截图就是按照提交的文档的内容类型,进行条件筛选。“替换名称”可以用于同时处理多个相关的内容类型(比如有父子继承关系的内容类型)的情况。
“基于属性的条件”可以让管理员再基于选中的内容类型的必填属性,来设置过滤条件。
下面是在添加了2条规则之后的情景,两条规则实际上都是针对一种“技术文档”内容类型,但是第1条规则还加上了额外的属性条件过滤,来将“技术文档”中设置的是C#与Web类别的技术文档,单独存放到一个专门的地方。由于第1条规则所匹配的文档实际上是第2条规则所匹配的子集,也就是说,第2条规则覆盖了第1条规则,所以为了避免文档被应用第2条规则,管理员需要将第1条规则的优先级设置得比第2条规则高:
配置好了内容管理器之后,当用户在网站中上载了文档之后,系统会自动提示它,内容管理器已经将文档自动转移到了新的地方,并且会显示出文档所在位置的URL路径:
有了内容管理器,用户在上载文档时,就不再需要考虑到底将文档上载到哪个地方才合适。文档所在位置的选择,被交给了内容管理器,按照管理员所设置的规则,对文档进行自动的路由和分类。