文档详情

工作流开发sharepoint(VS2008)..docx

发布:2017-01-08约4.05万字共55页下载文档
文本预览下载声明
Sharepoint工作流开发(vs2008)7.4? 采用Visual Studio 2008 开发工作流模板本节讲述采用Visual Studio 2008开发SharePoint工作流模板的一般步骤和方法。为了使读者更好地理解本节的内容,本节在讲述基本原理和操作的同时会附带讲解一个实例工作流的开发,这个工作流是一个文档审批工作流:提交者上传文档,然后启动工作流,最后提交给审批人审批。7.4.1 ?创建工作流项目Step1? 新建项目。打开Visual Studio 2008新建项目,选择“Workflow”中的“SharePoint 2007 Sequential Workflow”项目模板,如图7-40所示。图7-40? 新建项目Step2? 指定调试工作流所用的站点路径,如图7-41所示。图7-41? 指定调试工作流所用的站点路径Step3? 指定工作流用来调试时附加到的列表。若列表不存在,则先到站点中创建,如图7-42所示。图7-42? 制定工作流用来调试时附加到的列表Step4 ?指定工作流调试时的启动方式为手工启动,如图7-43所示。图7-43? 指定工作流调试时的启动方式以上操作完成之后,可以看到VS 2008中如图7-44所示的布局。该图中左边工具栏上是系统提供的所有活动组件,中间是工作流设计器界面,右边是项目文件。图7-44? 操作完后的布局SharePoint 2007 Sequential Workflow项目模板会自动添加一个OnWorkflowActivated活动,这个活动在工作流启动的时候执行,它的WorkflowProperties属性绑定到工作流的workflowProperties字段,workflowProperties的类型是SPWorkflowActivationProperties,存放了跟工作流相关的数据,如表7-1所示。表7-1? SPWorkflowActivationProperties属性说明属 性类 型说 明AssociationDataString工作流关联数据,通过关联表单提供 HistoryListSPList存放工作流历史记录的列表HistoryListIdGuid存放工作流历史记录的列表IDInitiationDataString工作流初始化数据,通过初始化表单提供ItemSPListItem工作流附加到的列表项对象ListSPList工作流附加到的列表OriginatorString启动工作流的用户账号OriginatorUserSPUser启动工作流的用户对象SiteSPSite工作流运行的站点集WebSPWeb工作流运行的网站TaskListSPList存储工作流任务的列表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事件处理函数中写入如下代码。private void createTask1_M
显示全部
相似文档