教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

工作流开发sharepoint(VS2008)(8)

来源:网络收集 时间:2026-07-22
导读: Step1 添加第一级审批。从左边工具栏上拖曳TaskActivity到工作流设计器中,处理TaskActivity的TaskCreating事件,代码如下。 /// ///分配一级审批任务 /// /// private void taskActivity1_TaskCreating(object sen

Step1 添加第一级审批。从左边工具栏上拖曳TaskActivity到工作流设计器中,处理TaskActivity的TaskCreating事件,代码如下。

///

///分配一级审批任务 ///

///

private void taskActivity1_TaskCreating(object sender, TaskEventArgs e) {

e.TaskProperties.AssignedTo = \ e.TaskProperties.TaskType = 0;

e.TaskProperties.Title = \第一级用户审批\ }

以上代码指定了第一级的审批人为user1。处理TaskActivity的TaskCompleted事件,代码如下。 public bool task1ApprovalResult = false; public string task1Comments = \ ///

///一级审批任务完成后的处理 ///

///

private void taskActivity1_TaskCompleted(object sender, TaskEventArgs e) {

//一级审批任务完成后,将是否通过信息记录到task1ApprovalResult变量中 task1ApprovalResult = Convert.ToBoolean(e.TaskProperties.

ExtendedProperties[\

task1Comments = \ }

以上代码将第一级审批的结果和审批意见分别记录到task1ApprovalResult和task1Comments两个全局私有变量。

Step2 添加第二级审批。先拖曳IfElse活动到工作流设计器中,设置ifElseBranchActivity1的类型为“Declarative Rule Condition”,ConditionName为“task1Approved”,Expression为:

this.task1ApprovalResult == True

设计器如图7-124所示。

图7-124 ifElseBranchActivity1的条件设置

拖曳TaskActivity到ifElseBranchActivity1内,处理TaskCreating事件,代码如下。

///

///分配二级审批任务 ///

///

private void taskActivity2_TaskCreating(object sender, TaskEventArgs e) {

e.TaskProperties.AssignedTo = \ e.TaskProperties.TaskType = 0; e.TaskProperties.Title = \二级用户审批\ }

以上代码指定了第二级的审批人为user2。处理TaskActivity的TaskCompleted事件,代码如下。 public bool task2ApprovalResult = false; public string task2Comments =\ ///

///二级审批任务完成后的处理 ///

///

private void taskActivity2_TaskCompleted(object sender, TaskEventArgs e) {

//二级审批任务完成后,将是否通过信息记录到task2ApprovalResult变量中 task2ApprovalResult = Convert.ToBoolean(

e.TaskProperties.ExtendedProperties[\

string task2Comments = \

[\

string totalComments = \审批意见:\

审批意见:\

//更新内容审批状态

this.UpdateModerationStatus( task2ApprovalResult , totalComments ) ; }

以上代码按照审批结果修改文档的内容审核状态,UpdateModerationStatus用来更新文档状态,代码如下。

///

///改变内容审批状态 ///

///

private void UpdateModerationStatus(bool approval, string comments) {

SPModerationStatusType approvalState = approval ? SPModerationStatusType.Approved : SPModerationStatusType.Denied;

SPListItem item = this.workflowProperties.Item;

item[\修改审批状态字段 item[\修改审批批注字段 item.Update(); }

Step3 若第一级审批未通过,则需要设置文档状态为“已拒绝”。拖曳code活动到IfElse活动的第2个分支,处理其ExecuteCode事件,代码如下。

private void codeActivity1_ExecuteCode(object sender, EventArgs e) {

UpdateModerationStatus(false, this.task1Comments); //更新审批状态 }

以上代码直接设置文档审批状态为“已拒绝”。

编译项目后TaskActivity已经出现在左边的工具栏上,但是这时拖曳TaskActivity可能会出

错,遇到这种情况时首先部署工作流项目,确保将最新的DLL部署到GAC中,然后重启Visual Studio即可。

7.4.10 会签审批的实现

会签审批指的是多个人参与审批的,当审批通过数满足一定条件时,审批才

算通过。本节我们继续扩展文档审批流程,使其支持多个用户同时审批,只有所有用户都批准后才发布文档,只要有一个用户拒绝,则将文档状态改为“已拒绝”,并且结束会签。

使用replicator活动可以动态创建多个子活动。为简化代码,直接使用上一节开发的TaskActivity活动来实现单个任务的创建。具体操作步骤如下。

Step1 拖曳replicator活动到工作流设计器中,在replicator活动中添加一个TaskActitity活动,设计器效果如图7-125所示。

Step2 设置replicatorActivity1的“ExecutionType”属性为“Parallel”(并行审批),如图7-126所示。

replicatorActivity支持同时或顺序执行其动态创建的子活动,这里我们选择同时执行。

图7-125 添加replicator 图7-126 设置属性

Step3 在replicatorActivity 的Initialized事件中,可给其CurrentChildData集合属性添加多个数据,每个数据表示子活动。replicatorActivity的Initialized事件处理代码如下。

///

///设置子活动数据 ///

///

private void replicatorActivity1_Initialized(object sender, EventArgs e) {

foreach (Person person in this.GetConfigurationData().ApprovalUser) {

this.replicatorActivity1.CurrentChildData.Add(person.AccountId); } }

GetConfigurationData()方法用于从初始化表单中获取配置数据,为了避免序列化问题,这里没有用属性,而是用方法,代码如下。

//获取工作流配置数据,来自关联表单或初始化表单 private ConfigurationData GetConfigurationData() { //将配置数据反序列化为相应对象

XmlSerializer serializer = new XmlSerializer(typeof(ConfigurationData)); XmlTextReader reader = new XmlTextReader(new System.IO.StringReader(

this.workflowProperties.InitiationData)); …… 此处隐藏:3259字,全部文档内容请下载后查看。喜欢就下载吧 ……

工作流开发sharepoint(VS2008)(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/413329.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)