您的位置:首页 > 产品设计 > UI/UE

QuickFlow-如何通过QFD and ExecuteCode获取其他列表数据

2013-05-14 09:18 302 查看
场景:有个配置列表用来配置每步的审批人,配置列表字段如下:

Title: 工作流名称

Level1Approver:第一步审批人

Level2Approver:第二步审批人



操作步骤:

请先了解ExecuteCode活动:/article/4789055.html

新建工作流,加两个string类型工作流变量:level1Approver,level2Approver

拖一个ExecuteCode活动,拖两个Task活动,task活动的User属性分别绑定到level1Approver,level2Approver。

画线连接Start->ExecuteCode-Task1->Task2.

双击ExecuteCode,写脚本如下:

QueryField titleField = new QueryField("Title");

SPList cfgList = this.Web.Lists["审批人配置"]; //获取列表

var cfgItem = ListQuery.From(cfgList).Where(titleField=="名片申请").GetItems()[0]; //获取到配置项

//获取字段值

SPFieldUserValue user1Value = cfgItem .Fields.GetField("Level1Approver").GetFieldValue(cfgItem["Level1Approver"].ToString()) as SPFieldUserValue;

var level1User = user1Value.User.LoginName;

this.Log("getLevel1Approver:" + level1User); //写调试日志

this.SetVariable("level1Approver", level1User); //设置变量

//获取字段值

SPFieldUserValue user2Value = cfgItem .Fields.GetField("Level2Approver").GetFieldValue(cfgItem["Level2Approver"].ToString()) as SPFieldUserValue;

var level2User = user2Value.User.LoginName;

this.Log("getLevel2Approver:" + level2User);

this.SetVariable("level2Approver", level2User);

工作流:



添加变量:



Code:





备注:

1) 若有能力在自定义表单中写代码,那么还是尽量把代码写的表单提交前,通过工作流变量传入需要的数据。

因为工作流内部执行代码出错,将造成整个工作流失败,并且无法挽回。只能重启流程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: