Office Sharepoint Server 2007 已经内置了一组最常用的工作流模板,比如串行/并行审批.反馈收集等。这些工作流模板是立即可用的,而且大部分的模板都提供了配置项,允许管理员在将它与某个列表关联起来的时候,进行一些设置的工作。
Demo:关于文档审批的一个简单工作流。
在Sharepoint 的一个站点中打开一个文档库的浏览界面,在设置中选择文档库设置,在文档库设置界面点击工作流设置。在添加工作流界面中,选择一个工作流模板(Demo为审批),并键入一个工作流名称,完成设定,点击下一步,进入文档内容审批流程,输入审批者,也就是该工作流提交给谁审批,其他选项可以默认,也可自行更改,这样,一个简单的工作流就建好了。
要执行该工作流,创建一个模拟环境,建一个低权限用户,上传一个文档,点击文档,选择工作流选项,在该文件的工作流界面中,选择你上面做好的工作流,启动工作流,该文件审批流程就开始了,要完成该工作流,需要切换登陆用户,审批后,该工作流完成。
2. 使用 Office Sharepoint Designer 2007 创建的定制工作流模板
Office Sharepoint Designer 2007 内置一个向导式的工作流设计器,不需要编写任何代码,技术人员就能使用工作流设计器,为某个列表创建一个新的工作流模板。Office Sharepoint Designer 2007 会自动将我们设计出来的工作流模板保存成XML文件的格式,实际上是符合 Workflow Foundation 标准的XOML 文件格式,同时还会自动生成运行工作流期间所需要的Web页面。
Demo:制定一个工作流,根据审批文档类别的不同,交给不同的经理审批。
打开 Sharepoint Designer 2007 ,在文件中打开站点,将你当前的Sharepoint站点地址输入,就可以在Sharepoint Designer 2007中看到这个站点中的所有内容了。在文件新建中,选择工作流,Sharepoint Designer 2007就会打开其内置的工作流设计器。
在第一个界面中,输入你所制定的工作流的名称,并指定附加到哪个列表中,设定好后点击下一步进入第二个界面中,出现步骤名称,条件,操作,变量等控件,这里是个有界面的Workflow 开发工具,需要在这编写和设计你所需求的工作流程。工作流编写完成时,Sharepoint Designer 会自动将该工作流加入到Sharepoint 站点中,上传一个文档,点击文档选择开始工作流,该工作流启动,切换为审批人用户登陆,编辑该文档,就能进入工作流的审批界面了,审批该文档,提交任务,工作流执行完成,会显示该工作流状态为完成,已审批。Sharepoint Designer 创建工作流执行完毕。
未能解决问题:上述工作流中,制定给用户返回文档是否审批状态时会出错,该问题描述为,Error updating a list item,该问题结果为,Document must be checked out。如将文档签出后再继续执行工作流,工作流依然中断,问题描述依然是Error updating a list item,但结果为 未知错误,而且还提示另一个错误发生在工作流中。该问题暂时无解,有待研究。
3. 使用 Visual Studio 2005开发的工作流模板
Office Sharepoint Server 2007 还提供了专用的 Visual Studio 2005工作流插件,允许开发人员在 Visual Studio 2005 中创建专门的 Sharepoint 工作流项目。
Demo:在Visual Studio 2005 中创建一个工作流,当然目前为简单的例子,确定一下Sharepoint 的强大功能。
打开Visual Studio 2005 ,创建一个 Workflow的项目,在该项目下编写将要实现的工作流程。完成工作流编写后,给该工作流强命名,编译该项目,接下来就是如何设置该Workflow,加载到Sharepoint 站点上。
将Visual Studio 2005 编译好的Workflow 的dll放入到 Sharepoint 存放dll的文件夹中,更改Sharepoint 的web.config,过程跟加载Webpart时的过程差不多,不过,这次需要更改web.config中的<authorizedType Assembly="Bright.workflow.test1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7e61ff5c0cf5a475" Namespace="Bright.workflow.test1" TypeName="*" Authorized="True" />,增加这样的一项,Assembly中的值由于强命名,需要借用Reflector解析。经过测试,不加强命名工作流将无法使用,该步骤不能省略。接下来,在我的电脑中找到Workflow所在的一个WSS.Actions的文件,一般目录为C:"Program Files"Common Files"Microsoft Shared"web server extensions"12"TEMPLATE"1033"Workflow 。1033表示英文操作系统,如果中文操作系统,请访问2052。打开WSS.Actions ,给该文件添加
的一个Action节点,该节点上所有属性 为你将要添加的Workflow中的属性。Action name 为该工作流事件中的名称,一个工作流由很多个Action 和条件组成。ClassName为命名空间下的类名,必须写齐。Assembly不用多说了,同Web.Config一样。Category和Appliesto 为表示该Action所属和供求对象,前者随便输入,可为自己名字,后者一般为all ,所有人可使用。RuleDesigner Sentence为Action的显示方式,创建时以Write %1 to the file again 的形式显现出来,<FieldBind Field="text" Text="text" DesignerType="TextArea" Id="1" /> 为RuleDesigner Sentence 提供数据%1 和 Id=1对应。<Parameter Name="text" Type="System.String, mscorlib" Direction="In" /> 为你为该Action输入文本时显示的值,上面所有的text 均为Vs 2005中所创建的工作流定义的属性名,如果不对应,你将在建立工作流Action时无法输入值。
设置完毕后,保存,重启IIS。打开Sharepoint Designer ,打开需要加入工作流的站点,同时,新建工作流,创建一个工作流名称,进入第二部分。在第二部分中点击Action,选择更多操作,在分类中选择自己名字,你就能看到自己所加的Action出现在下面,Add 该Action,将出现RuleDesigner Sentence 中格式类似的对象操作,在test中输入你需要输入的东西,点击完成,该工作流就执行完毕。Sharepoint Designer会自动将该工作流加载到Sharepoint 所对应的站点中。
在Sharepoint 站点中执行该工作流,请参照上述二种方法。
4. 使用 Visual Studio 2008开发的工作流模板
如果你使用的是VS 2008 ,那么恭喜你,工作流开发简单多了,2008 开发工作流,创建项目时选择 SharePoint 2007 Sequential WorkFlow,设置好发布的站点,一些对SharePoint的设置,开发方式跟2005 一样,项目创建好后,2008直接部署,就能发布到SharePoint 2007对应的站点下了,不用像2005那样修改那么多的设置!
总结:目前只做了简单的工作流,不过以目前所知,工作流使用范围很广,与数据库相连接后,会有更广泛的运用,由于Vs2008 可以编辑工作流,那么几乎大部分功能都能使用,在Sharepoint 中的应用,跟Webpart 也能结合运用。其余更多作用,有待继续研究。