说明:
状态标签是节点状态的显示,前台中一般显示在进入流程中表单的右上角。表单中可以根据获取到流程的状态来决定表单中某字段的值。表单通过脚本获取状态标签:
- //方法1:
- var doc = getCurrentDocument();
- var statelabel = doc.getStateLabel();
- statelabel;
-
- //方法2:
- var statelabel = getStateLabel();
- statelabel;
复制代码
示例:“软件缺陷管理系统模板”,表单中“指派给”字段是通过流程状态获取的值,其值根据状态变化而变化,这里的用户变量“users”的值是获得某个指定角色下的所有用户,是一个集合,需要通过遍历(如:var iter = users.getDatas().iterator(); iter.hasNext();)后返回选项值,因此控件使用了下拉框,脚本写在该控件属性中的选项脚本。
- /*当流程状态标签值为空和“FindBug”和“TestBug”时获取Developer角色下的所有用户,否者当值为“FixBug”状态时获取Tester角色下的所有用户,当值为“AssignBug”时获取Developer角色下的所有用户。*/
- var opts = createOptions();
- opts.add("","");
- var doc = getCurrentDocument();
- var process = createProcess("cn.myapps.core.user.ejb.UserProcess");
- var users = null;
- var statelabel = doc.getStateLabel();
- if(statelabel == null || statelabel == 'FindBug' || statelabel == 'TestBug'){
- users = process.doQueryByRoleId("11de-a80d-a8e5d7bb-b638-55c259677fcd");
- }else if(statelabel == 'FixBug'){
- users = process.doQueryByRoleId("11de-a80d-b3e7fd0d-b638-55c259677fcd");
- }else if(statelabel == "AssignBug"){
- users = process.doQueryByRoleId("11de-a80d-a8e5d7bb-b638-55c259677fcd");
- }
- if (users!=null && users.rowCount > 0){
- for(var iter = users.getDatas().iterator(); iter.hasNext();) {
- var user = iter.next();
- var userno = user.getLoginno();
- var username = user.getName();
- opts.add(username,userno);
- }
- }
- opts;
复制代码 |