工作流开发sharepoint(VS2008)(8)
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




