SPS2007中的工作流
SPS2007中的工作流功能构建于 Windows Workflow Foundation (WF) 之上,它是一种 Microsoft Windows 平台组件,为开发和执行基于工作流的应用程序提供编程基础结构和工具.
sps中的工作流主要是用来将流程逻辑附加到列表项和文档,Windows SharePoint Services 为引擎提供了以下服务的实现:事务、持久性、通知、角色、跟踪和消息传送.刚开始以为他的持久化和跟踪服务都是按WF官方提供的Provide来实现的,但打开sps数据库并没有找到想象中的WorkflowPersistence和WorkflowTracking库,最后在WSS_Content库中找到了Workflow和WorkflowAssociation两张表,添加工作流测试了一下,workflow这张表是用来存放工作流实例相关信息,WorkflowAssociation用来存放工作流定义相关信息。原来sps中为WF写了自己的Provide.通知和跟踪服务都是通过自定义列表来实现。Sps把列表用的真是充分. 在sps中创建工作流从目前看来基本上都是创建的顺序工作流类型,当然也可以通过Visual Studio 2005来创建状态机工作流.这一点将在后面做详细研究. 用内置工作流模板和SharePoint Designer 2007创建工作流的过程胡涛已经做过相关介绍。我们再来看看SharePoint Designer 创建工作流的这部分。如图中在sps Designer中创建工作流的过程图中的条件选择其实就是在生成wf的RuleDefinitions,操作其实就是一系列预定义的Activiy,现在还不清楚是否可以在这个操作节点添加自定义的Activity. sps Designer在这里做的还是比较强悍的,跟列表和权限结合的很好,我想我们的 工作流结合自定义列表应该也可以做出这种效果。
下表中列出了用Visual Studio 2005 Designer和SharePoint Designer 2007创建工作流的一些比较
功能的详细比较 |
|
Visual Studio 2005 Designer for Windows Workflow Foundation | SharePoint Designer 2007 |
可为 Windows SharePoint Services 或 SharePoint Server 编写工作流 | 可为 Windows SharePoint Services 或 SharePoint Server 编写工作流 |
开发人员可通过 code-behind 文件来编写自定义 Visual C# 或 Visual Basic .NET 代码,以表示业务逻辑 | 无 code-behind 文件;工作流规则文件采用声明方式来封装业务逻辑 |
生成工作流标记文件 | 生成工作流标记文件 |
将工作流编写为可与多个站点和列表关联的模板 | 设计时针对特定列表来编写工作流和进行数据绑定 |
工作流标记文件或者标记和 code-behind 文件被编译到工作流程序集中 | 工作流标记、工作流规则和支持文件存储在站点上的特定文档库中,但未进行编译 |
工作流模板必须与该工作流模板在其上可用的每个列表相关联 | 关联在针对特定列表编写工作流时发生;不需要或不能进行后期关联 |
可以使用任何窗体技术。例如,Windows SharePoint Services 工作流的 ASP 窗体,或者 SharePoint Server 工作流的 InfoPath 窗体 | 自动生成 ASP.NET 窗体,可在随后进行自定义 |
可包括工作流修改 | 工作流修改不可用 |
可以使用自定义对称 InfoPath 窗体,该窗体可实现自定义工作流窗体的 Office 客户端集成 | InfoPath 窗体集成不可用 |
可编写自定义活动以包含在工作流中 | 必须使用所提供的活动 |
将工作流程序集和工作流定义打包为 SharePoint 功能,然后部署到站点 | 自动处理到特定列表的部署 |
启动工作流时可以使用初始化窗体收集用户信息 | 启动工作流时可以使用初始化窗体收集用户信息 |
用户与 SharePoint 任务进行交互时可以使用自定义窗体 | 用户与 SharePoint 任务进行交互时可以使用自定义窗体 |
可以进行 Visual Studio 调试 | 不能进行逐步调试 |
可以编写顺序工作流和状态工作流 | 只能编写顺序工作流 |