(刚好又有人邮件问我,干脆在这里记下来吧。)
目标:
在"文档中心"里面点击某个需要归档的文档,选择下拉菜单里的“发送到”,再选择“记录中心”,这个文档就会归档到记录中心里对应的文档库里了。
配置步骤:
0. 创建需要分类归档的内容类型
在根网站上点击“网站操作”,选择“网站设置”-->“修改所有网站设置”进入网站内容类型库,创建一个名为“Contract”的,继承自“文档”的自定义内容类型。
1. 创建“记录中心”网站
在根网站上点击“网站操作”,选择“创建网站”。
在创建网站界面里选择“记录中心”模板。
假设此网站的URL为http://moss/records
2. 在“记录中心”网站里创建保存归档Contract的文档库
进入记录中心网站,“网站操作”-->“创建”-->“文档库”,选择此文档库名称为“Contracts”
3. 添加路由信息
在记录中心网站中,进入“记录路由”列表(应该叫这个吧,手头没有中文版。。。),点击“新建”,标题填“Contracts”,位置也填“Contracts”,Aliases(别名?)填“Contract”(即那个内容类型的标题)

4. 设置记录中心关联
进入SharePoint管理中心-->“Web应用程序”-->“记录中心”
选择“连接到一个记录中心”,URL里填:http://moss/records/_vti_bin/officialfile.asmx
5. 使用“发送到”功能进行试用
在文档中心里,创建一个“Contract”类型的文档,点击之,在下拉选单中,可找到“发送到-->记录中心”
操作成功后,记录中心的“Contracts”文档库就会多出这条记录:

STSDEV
http://www.codeplex.com/stsdev
CodePlex上有视频使用介绍,在某些方面比微软的VS Extensions好用的多……
快速生成各种SharePoint解决方案项目,比如Feature啊,WebPart啊。生成的VS工程是包含着WSP的,而且支持各种build选项。
赶快下载一个用吧。
这个工具应该是支持VS2008,但我的虚里没装2008,没求证。
<update>
刚刚在虚机里装了个VS2008,STSDEV支持的很好:)
</update>
在使用SharePoint的时候我们常常需要做这样一个操作:把某个列表(或文档库)从一个网站转移到另一个网站上去。
比较常见的做法是,把这个列表存为模板文件,然后再在新的网站位置创建一遍。但这种方法比较麻烦,步骤繁琐,而且还受网站模板类型的限制。
SharePoint的对象模型里提供了导入导出内容的功能,其粒度可达列表条目级。
stsadm命令中内置的“import/export”操作就是使用的这套API,但只能操作网站级别的内容。
为了能够便捷的移动列表内容,或者对某个指定的列表进行归档,我开发了两个stsadm命令的扩展操作。
举例:我想把“http://site1”网站里的列表“ABCList”导出并导入到“http://site2”网站里,就可以用以下的命令完成:
stsadm -o exportlist -siteurl http://site1 -listname ABCList -filename d:\abclist.cmp (导出列表到一个文件)
stsadm -o importlist -siteurl http://site2 -filename d:\abclist.cmp (把一个文件导入到SharePoint网站里,恢复成一个列表)
语法说明:
列表导出操作(exportlist)
stsadm -o exportlist
-siteurl <SharePoint Site URL>
-listname <List Display Name>
-filename <Content Migration Package File Name>
[-overwrite]
[-nocontent]
注:-nocontent:只导出列表结构,不包含列表内容。
列表导入操作(importlist)
stsadm -o importlist
-siteurl <SharePoint Site URL>
-filename <Content Migration Package File Name>
[-retainobjectid]
[-originalinfo <all|none|systemaccount>]
注:-retainobjectid:导入回导出位置,可用在类似备份还原的场景下。
-originalinfo :"all"为保留一切原始信息,即导入的数据保持原修改时间和创建者信息。"none"为不保留上述信息。"systemaccount"为修改创建者信息为系统帐户。此选项默认为"all"。
此扩展命令以wsp解决方案包的形式安装部署,下载地址:
http://www.live-share.com/files/302411/xc_stsadmextension.zip.html
KNOWN ISSUE:我不知道怎么通过这套API把条目权限设置也保存下来,谁能给些建议么?(我尝试了IncludeSecurity属性,可是貌似不起作用。)
相关阅读:
如何扩展stsadm命令
Dive in SharePoint Content Deployment/Migration API
如何制作SharePoint解决方案包
SharePoint解决方案包生成工具WSPBuilder
SharePoint在存放用户信息(显示名称、邮箱地址等)的时候采用了分散存储的方法,即在不同的网站集分别存放用户的信息。这在之前的版本里就造成了一些不同网站用户信息不统一的麻烦。
在MOSS2007里,该信息存储的方式仍然是分布式的,但SharePoint通过一个定时程序使各个网站集里的该信息与用户配置文件保持同步。而用户配置文件里的信息又是和AD同步的。
这个用来同步用户信息的timer job就是:
"Profile Synchronization",每小时运行一次。
用户信息从AD导入到SharePoint用户配置文件,再由上述TimerJob同步到各个网站集。
所以不要担心各网站集里的用户信息不统一了。
如果您的这个timer job运行失败,请参看这两个文章,可能会有所帮助:
http://www.sharepointblogs.com/rlangley/archive/2007/10/10/failure-trying-to-sync.aspx
http://blogs.technet.com/corybu/archive/2007/06/01/detaching-databases-in-moss-2007-environments.aspx
BTW,从后面的这个文章里,我又得到一个宝贵的教训,就是在deletecontentdb之前,要记得运行preparetomove。
<update>
@momo:
这个timer job不需要管理员做任何操作,它是SharePoint预先设置好的,每小时运行的。如果你等不及1小时,需要马上测试这个(或者其他的某个)job的运行结果,那得通过stsadm或者对象模型临时改变这个job的运行周期。参考如下链接:
http://www.codeguru.com/cpp/misc/misc/microsoftofficeoutlook/article.php/c14133/
http://mindsharpblogs.com/ben/archive/2007/09/25/2965.aspx
</update>
曾经向很多人推荐这本可能无法在国内买到的Ted Pattison和Daniel Larson合著的SharePoint大作《Inside Microsoft Windows SharePoint Services 3.0》,里面对WSS的基本概念有非常清晰的解释。
而且,我在CollaDec的SharePoint课程上通常会花很多的时间介绍SharePoint的站点架构以及Site Provisioning(站点供应)机制,许多SharePoint中似乎蒙着某些烟雾的困顿都可在这个知识点上迎刃而解。甚至,我正在打算分几篇博客文章来简单阐述这些概念。
但是,这本书最关键也是最基本的两个章节现在可以免费下载了,希望所有还没读过的SharePoint同仁都花时间看一看,真的会有很大帮助。
下载地址:
http://msdn2.microsoft.com/en-us/library/bb892186.aspx
今年迟来的Tech-Ed2007已经结束了上海和广州站,北京站将在本周三开幕。虽然今年有些缩水,而且日程安排有些怪异(比如周三清晨Steve Ballmer的Keynote在人民大会堂举行,周四最后一个session要持续到6点45),但仍然有许多很棒的课程不容错过。
我会在周四下午的最后一个Session上(OFC200 Office Business Application 实践:SharePoint 在企业SOA 环境中的应用 17:30-18:45 分会场3)与杜伟和李昕海介绍我们在SINOAIR(中外运空运集团,国内最大的物流集团之一)服务中总结出的一些对SharePoint Server与SOA结合的认识。当然,我必须说明,这个伟大构想的原创者是沈晔先生,SINOAIR工程部的IT总监。由于美国之行的推迟,他也将在会场出现,如果大家对这个Session的内容有何问题或探讨的话题,都可以在课程结束后与我们进行讨论。
此课程的几个特点是:
1. 我们通过一个SOA应用的思维方式推导出使用SharePoint Server的必要性和合理性,而不是简单的从SharePoint的特性推导出其应用范围。这将非常具有说服力,而且很清楚的勾画出SharePoint的应用场景。
2. 我们会提出一个“P/S”概念,即“Portal/SOA”架构。这是个崭新的、多态的、仍在发展中的概念。课程中会有许多演示来说明这种概念,而且我们已经开始在生产环境使用这个概念来指导实践,但这个概念的具体化、实施化将是仁者见仁的问题,更需要诸位IT同行集思广益。
3. 此课程是一个Level200的课程,所以不要担心会有很复杂的概念或开发细节,这个课程适合所有对SharePoint应用感兴趣的听众。
另外,我会在周五下午的第一个Session上(OFC301 AJAX 风格的SharePoint Web 部件 13:00-14:10 分会场9)协助Todd Bleeker介绍如何在Web部件开发中使用AJAX技术。Todd已经无需太多介绍了,作为MindSharp(北美最好的SharePoint培训/咨询公司)的首席软件架构师,Todd拥有丰富的开发经验,也同时是享誉全球的SharePoint讲师。
这节课上不仅内容十分精彩,而且Todd带来了他的巨著《Developer's Guide to Windows SharePoint Services 3.0》,如果你想了解SharePoint开发的各个方面,你一定不能错过这本书。我们会考虑用其中两册作为奖品发给参加者。所以,如果你对SharePoint上的开发,尤其是Web部件的开发,尤其尤其是AJAX应用感兴趣,千万不要错过。
嗯。Tech-Ed见!
微软实际上发布了一个免费的MOSS2007的最终用户培训教程,可以在connect网站上下载。我装上试了试,内容还是挺丰富的(虽然是英文的)。至少可参考一下主题模板,挺漂亮的…………
而且,除了我们经常浏览的各个产品组和社区的网站,微软其实还有一个面向最终用户使用的官方博客:“Get the point”
需要说明的是,这个教程需要安装在SLK(SharePoint Learning Kit)基础之上。这个SLK可以从CodePlex下载。
SLK是一个elearning基础平台,符合SCORM2004标准。不过,在已有的语言补丁中没有找到简体中文……手很痒可是最近实在太忙……有没有热心的同志来翻译一把啊?
另外,有没有想做些SharePoint开发兼职工作的同学?请联系我:jobs[at]CollaDec.com
(如果想全职的话我也有一些工作机会可以推荐)
我们知道MOSS2007企业版提供了Excel Service,通过ES,我们可以通过一个网页浏览一个Excel文件,甚至通过这个页面输入一些数据进去以获得不同的计算结果。
如果我们需要在某些页面上通过Web部件来展现一个Excel文件,则可以通过一个叫“Excel Web Access”的内置Web部件。这个部件功能很全面,支持与其他筛选Web部件进行连接,来展现不同的内容。
这个Web部件可在激活了企业版功能的网站集中找到,位置是在“企业数据”分类下。
使用方法可参考这几个链接:
在 Excel Services 中查看已命名项目
http://office.microsoft.com/zh-cn/sharepointserver/HA101054732052.aspx
在 Excel Web Access 中显示 Excel 工作簿
http://office.microsoft.com/zh-cn/sharepointserver/HA101054592052.aspx?pid=CH101768472052
将筛选 Web 部件连接到 Excel Web Access
http://office.microsoft.com/zh-cn/sharepointserver/HA101054702052.aspx?pid=CH101768492052
Excel Services 和 Excel Web Access 简介
将 Excel 工作簿作为“一个事实版本”发布的指南
此外,这个Excel Web Access和内容查询web部件一样,必须在激活了企业功能的SharePoint网站集中才能使用。并且,不能用在“我的网站”里:
<quotation url = "http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1826230&SiteID=1">
今天凌晨加班的时候偶然翻到Stefan Gossner的这几篇文章,强烈推荐给大家:
WSS3.0提供了一套完整的内容部署与迁移的API,MOSS2007中的内容部署、网站管理中的数据内容复制/移动功能、变体、以及MCMS的数据库迁移服务、还有stsadm命令行中的export/import选项,都是应用的这套API。同时,我们还可以开发自己的程序(web部件、事件处理程序等等)直接调用这些API。

这套API提供给我们的功能,说白了就是把SharePoint网站中的某一部分数据(大到整个网站集,小到一个文件夹,一个列表条目或一个文件)转移到另外一个位置。并且,这种转移是支持增量转移的。
这样,我们就可以开发自己所需要的网站数据归档功能或是把某个第三方的应用系统数据直接迁移到SharePoint环境里。
感兴趣的朋友可以从网站管理中的“拷贝/移动”功能或stsadm中的export/import开始尝试SharePoint内容迁移。
我和杜伟开发的MOSS2007预定义搜索结果功能包已发布到开源社区CodePlex上了,访问地址如下:
http://www.codeplex.com/MOSSPredefinedSearch/
安装用的wsp包文件和Web部件源码、Feature文件都可在此下载。
利用这个功能,管理员可以预设一些搜索关键词(或者是高级搜索查询)的快捷链接,普通用户可以很方便的直接进入这些常用的搜索结果中。
同时,每个用户也可以添加自己的搜索结果收藏夹。
界面看上去像这样:

欢迎大家到CodePlex上讨论更新。
我好像很久之前就说要写一篇专门介绍新的SharePoint权限系统的博客文章……今天就给大家尽量详细的介绍一把,我也争取把这个“补习班”系列继续下去……
说到权限控制,其实包含了这样几个内容:“谁”对“什么内容”有“什么权限”。
在SharePoint里,“谁”用“User Token”来代表,“什么内容”其实就是权限控制范围“Scope”,而“什么权限”(权限级别,Role Definitions)则是一组对网站内容的具体操作(比如,读取、新建、修改、管理等等)。
看看这张图:

“谁”对“什么内容”有“什么权限”(User Token):
AD里的用户或用户组(当然也可以是你自己定义的membership provider中的用户或用户组)都可以加入到SharePoint中作为一个使用权限的实体,即上图中的“Users”。而SharePoint中的“组”(即上图中的“Groups”),并不是你在AD中的安全组,它仅仅是SharePoint为方便权限的批量设置而定义的一个快捷方式。所以你可以把AD里的用户和安全组通通加到某个SharePoint组里,统一设置SharePoint权限。
“谁”对“什么内容”有“什么权限”(Scopes):
SharePoint中,可以被单独赋予权限控制的范围为:网站、列表(文档库)、文件夹、列表条目(文档)。可以看到,最细的粒度是达到了条目级,也就是说,在一个列表(或文档库)里,不同的文件夹、不同的列表条目(或文档)可以被赋予不同的权限。
“谁”对“什么内容”有“什么权限”(Role Definitions):
在WSSv3中,我们不能直接把某一个或几个权限(Rights,即读取、新建、修改等等)直接分配出去,而必须先经由“Role Definitions”的组合。这个“Role Definitions”其实就是我们在网站中可以管理的“权限级别”。SharePoint内置了“读者”、“讨论参与者”、“网站设计者”等几个权限级别,每个级别都包含了一组权限,管理员也可以对某个网站设置自定制化的权限级别。
Role Assignments
“Role Assignments”是用来把“权限级别”、“User Token”和“权限作用范围(Scope)”关联起来的对象模型,即把“谁”、“什么内容”和“什么权限”关联起来。在通过浏览器操作SharePoint的时候是看不到这个对象的,但它隐藏在了管理员的设置权限操作里。
所以,其实在SharePoint中,角色(Role)包含两个内容,一个是权限级别(Role Definition),另一个是权限分配(Role Assignment)。
角色分配继承
Role Assignments是可以沿权限范围继承的,比如网站可以继承父网站的权限分配,列表可以继承网站的,列表条目可以继承文件夹或列表的,这种继承关系可以被断开,并设置新的独立权限设置,也可以由独立设置恢复为继承关系。
权限级别继承
权限级别是可以在网站之间继承的,一个网站可以继承顶级网站的权限级别设置,也可以断开继承,编辑其自己的权限级别。
这样讲了半天,也不知道大家能不能看懂,最后举个简单的例子说明:
一个叫“陈曦”的用户对“部门日历”有“讨论参与者”的权限,其中“讨论参与者”包含了“添加列表条目的权限”。

在新的SharePoint环境中,我们可以借助SharePoint Designer非常轻松的为某个列表设计并加载一个工作流。
这种方式的优点是快捷方便,无需任何代码,支持条件判断和多级流程,并且微软提供了丰富的操作选项,用户也可以扩展自己新的工作流操作。但缺点也十分明显:无法重用。微软没有给我们内置的方法把一个SPD设计的工作流转化成一个工作流模板,从而应用到其他列表中。
SharePoint Designer Team最近发布了一篇文章,简单介绍了如何把SPD工作流导入到VS2005的工作流工程里,这样我们就可以在这个SPD工作流的基础之上,开发所需的工作流模板了。
基本步骤为:
1、在VS里创建一个工作流工程
2、把SPD工作流生成的xoml文件和rules文件拷贝到VS工程里
3、基于XOML文件生成.cs代码文件(非必要步骤)
4、基于现有的这些文件继续开发、部署、调试工作流模板
原文链接如下:
http://blogs.msdn.com/sharepointdesigner/archive/2007/07/06/porting-sharepoint-designer-workflows-to-visual-studio.aspx
我们都知道,Excel2003是可以非常方便的与SharePoint列表进行双向同步,而到了2007版本,这个功能被取消并移植到了Access2007上。就在上周末的课程上,我还在对学员们讲,这个同步功能要到Access里面做了,而我刚刚发现微软已经发布了弥补这个功能的插件!
http://msdn2.microsoft.com/en-us/library/bb462636(office.11).aspx
这个文档描述了如何将Excel表直接发布到SharePoint网站上,或者如何将修改同步到SharePoint网站上。
点击这里下载此插件
我试用过了,让人十分兴奋!Excel2003的用户可以放心的升级了。
安装后,Ribbon中将出现这个按钮,点击可以将当前的列表发布到SharePoint网站上:
如果需要同步的话,就在当前的表格中点右键,选择“表格”-->“与SharePoint列表同步”
还不快去下载试试!
<Updated>
Thanks for your time to leave comments here, and I'll keep them as my treasure.
But sorry to block more, I would like to see more technical things, and I'll be careful next time I advertise on Joycode.
Thank you all.
</Updated>
上周末,我们度过了非常紧张的三天,通向分享MOSS2007培训的应用管理部分圆满结束。
感谢所有来参加的学员,感谢我的两位助理,也感谢杜伟的不辞辛苦。
本周末(6月30日和7月1日),MOSS2007的开发培训将隆重开始,届时,资深SharePoint开发大牛杜伟老师将全面介绍SharePoint的开发框架和实践经验,当然,还会有丰富的动手实验。
课程还有非常有限的几个空位,需要的话赶快报名,周六周日两天,价格2000元/人。
联系方式:
http://www.colladec.com/class.aspx
或发送邮件到:training@colladec.com
内容丰富的讲义: