vs开发工作流模版.docx
- 文档编号:2939148
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:67
- 大小:1.05MB
vs开发工作流模版.docx
《vs开发工作流模版.docx》由会员分享,可在线阅读,更多相关《vs开发工作流模版.docx(67页珍藏版)》请在冰豆网上搜索。
vs开发工作流模版
采用VisualStudio2008开发工作流模板
本节讲述采用VisualStudio2008开发SharePoint工作流模板的一般步骤和方法。
为了使读者更好地理解本节的内容,本节在讲述基本原理和操作的同时会附带讲解一个实例工作流的开发,这个工作流是一个文档审批工作流:
提交者上传文档,然后启动工作流,最后提交给审批人审批。
7.4.1 创建工作流项目
Step1 新建项目。
打开VisualStudio2008新建项目,选择“Workflow”中的“SharePoint2007SequentialWorkflow”项目模板,如图7-40所示。
图7-40 新建项目
Step2 指定调试工作流所用的站点路径,如图7-41所示。
图7-41 指定调试工作流所用的站点路径
Step3 指定工作流用来调试时附加到的列表。
若列表不存在,则先到站点中创建,如图7-42所示。
图7-42 制定工作流用来调试时附加到的列表
Step4 指定工作流调试时的启动方式为手工启动,如图7-43所示。
图7-43 指定工作流调试时的启动方式
以上操作完成之后,可以看到VS2008中如图7-44所示的布局。
该图中左边工具栏上是系统提供的所有活动组件,中间是工作流设计器界面,右边是项目文件。
图7-44 操作完后的布局
SharePoint2007SequentialWorkflow项目模板会自动添加一个OnWorkflowActivated活动,这个活动在工作流启动的时候执行,它的WorkflowProperties属性绑定到工作流的workflowProperties字段,workflowProperties的类型是SPWorkflowActivationProperties,存放了跟工作流相关的数据,如表7-1所示。
表7-1 SPWorkflowActivationProperties属性说明
属 性
类 型
说 明
AssociationData
String
工作流关联数据,通过关联表单提供
HistoryList
SPList
存放工作流历史记录的列表
HistoryListId
Guid
存放工作流历史记录的列表ID
InitiationData
String
工作流初始化数据,通过初始化表单提供
Item
SPListItem
工作流附加到的列表项对象
List
SPList
工作流附加到的列表
Originator
String
启动工作流的用户账号
OriginatorUser
SPUser
启动工作流的用户对象
Site
SPSite
工作流运行的站点集
Web
SPWeb
工作流运行的网站
TaskList
SPList
存储工作流任务的列表
7.4.2 任务的分配
SharePoint工作流是任务驱动的工作流,工作流按照各种逻辑分配任务给用户,用户通过完成任务跟工作流进行交互,驱动流程前进。
任务分配跟以下几个活动有关。
l createTask:
通过createTask活动创建任务,工作流代码必须处理createTask活动的MethodInvoking事件,创建任务ID,指定任务操作用户。
l onTaskChanged:
通过onTaskChanged活动,等待用户完成任务,并可以处理Invoked方法,按照用户的输入进行逻辑处理。
l completeTask:
通过completeTask活动,完成用户的任务。
一个任务的分配过程,都是需要以上3个活动进行配合的。
下面是具体分配任务的操作过程。
Step1 从工具栏中拖曳createTask到设计器中,如图7-45所示。
Step2 指定createTask活动的CorrelationToken属性为“task1Token”,OwnerActivityName为“Workflow1”,如图7-46所示。
图7-45 从工具栏中拖曳CreateTask到设计器
图7-46 指定CreateTask活动的属性
Step3 绑定createTask活动的TaskId属性到工作里的字段。
单击“TaskId”属性的设置按钮,在弹出的属性绑定窗口选择绑定到新成员标签,输入名称为“task1Id”,选择创建字段,如图7-47所示。
图7-47 绑定CreateTask活动的TaskId属性到工作里的字段
Step4 绑定createTask活动的TaskProperties属性到工作流的字段task1Properties。
Step5 处理createTask的MethodInvoking事件。
双击createTask,在自动生成的MethodInvoking事件处理函数中写入如下代码。
privatevoidcreateTask1_MethodInvoking(objectsender,EventArgse)
{
this.task1Id=Guid.NewGuid();//生成任务ID
this.task1Properties.Title="文档审批";
this.task1Properties.AssignedTo="codeart\user1";//设置任务操作人
}
Step6 拖曳onTaskChanged到工作流设计器中,如图7-48所示。
图7-48 拖曳onTaskChanged到工作流设计器
Step7 设置onTaskChanged活动的CorrelationToken属性为“task1Token”,如图7-49所示。
Step8 将onTaskChanged活动的TaskId属性绑定到已有的task1Id字段,如图7-50所示。
图7-49 CorrelationToken属性为“createTask1”
图7-50 TaskId属性绑定到已有的task1Id字段
Step9 将onTaskChanged活动的BeforeProperties和AfterProperties属性均绑定到已有task1Properties字段。
Step10拖曳completeTask活动到工作流设计器中,如图7-51所示。
图7-51 拖曳CompleteTask活动到工作流设计器
Step11设置completeTask活动的CorrelationToken属性为“task1Token”。
Step12将completeTask活动的TaskId属性绑定到已有的task1Id字段。
Step13设置completeTask活动的TaskOutcome属性为“完成”,如图7-52所示。
图7-52 设置TaskOutcome属性
以上是创建一个任务的基本过程。
在实际过程中,任务操作人的获取可能有多种情形,比如从站点的某个组内获取用户,从第三方的角色管理系统中获取用户等。
假设任务要分配给站点的部门经理组中的用户,则createTask活动的MethodInvoking事件可以如下。
privatevoidcreateTask1_MethodInvoking(objectsender,EventArgse)
{
this.task1Id=Guid.NewGuid();
this.task1Properties.Title="文档审批";
//获取到部门经理网站组
SPGroupgroup1=this.workflowProperties.Web.SiteGroups["部门经理"];
SPUseruser1=group1.Users[0];//获取部门经理网站组中的第一个用户
this.task1Properties.AssignedTo=user1.LoginName;//分配任务
}
createTask活动会在工作流对应的任务列表中创建一个任务列表项。
在默认情况下,对任务列表具有操作权限的用户都可以操作这个任务列表项,但通常情况下,希望只有特殊的用户才可以进行操作,这就要用到createTask活动的SpecialPermissions属性。
SpecialPermissions是一个集合类型,可以将有权限的用户加到它里面,实现对任务列表项的特殊权限控制。
下面是具体的操作步骤。
Step1 选中createTask活动,单击SpecialPermissions属性的“绑定”图标,绑定属性到specialPermissions1字段中,如图7-53和图7-54所示。
图7-53 SpecialPermissions属性的绑定图标
图7-54 绑定属性到specialPermissions1字段
Step2 修改createTask的MethodInvoking事件处理方法,设置specialPermissions1集合,代码如下所示。
privatevoidcreateTask1_MethodInvoking(objectsender,EventArgse)
{
this.task1Id=Guid.NewGuid();
this.task1Properties.Title="任务标题";
this.task1Properties.AssignedTo="codeart\\user1";
//设置任务权限
this.specialPermissions1.Add(this.task1Properties.AssignedTo,
SPRoleType.Contributor);
}
以上讲述的是单个任务的创建过程,重复这个过程,可以创建出多步的顺序审批流程。
7.4.3 工作流的测试和调试
上一节已经完成了任务分配的基本编码,直接按“F5”键即可部署和调试。
如果只是单纯的部署,可以通过项目右键菜单的“Deploy”菜单项进行,如图7-55所示。
图7-55 右键菜单的“Deploy”菜单项
部署完成后,访问MOSS站点测试工作流关联的文档库(本节示例为名称为文档审批的文档库),新建或上传一个文档,然后选择名称栏右键菜单的“工作流”选项,选择要测试的工作流,如图7-56和图7-57所示。
图7-56 新建一个文档
图7-57 工作流选择
启动工作流后,返回文档库,会发现文档库上多出来一栏,以工作流的名称命名,可以称这一栏为工作流状态栏,如图7-58所示。
图7-58 工作流状态栏
单击工作流状态栏链接,可以转到工作流状态页面。
在此页面,可以查看到工作流分配的所有任务情况,如图7-59所示。
图7-59 工作流状态页面
用具有编辑任务权限的用户登录站点,访问到工作流状态页面,通过任务标题栏的“编辑项目”菜单可以转到任务编辑页面,如图7-60所示。
图7-60 任务编辑页面
由于尚未定义任务操作页面,所以会看到如图7-61所示的默认任务编辑页面,单击“确定”按钮即可完成审批任务。
图7-61
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vs 开发 工作流 模版
![提示](https://static.bdocx.com/images/bang_tan.gif)