2.4.1. 流程节点
通过脚本设置人工节点审批人
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
流程>审批人设置>通过>脚本 | 流程提交时触发 | WebUserCurrentDocument | 类型:用户ID、用户对象、用户ID的集合、用户对象的集合含义:审批人或审批人集合 |
示例代码:
/*根据当前文档“部门”控件值,将角色为“部门负责人”的用户设置为审批人*/
(function () {
var roleid = getRoleIdByName("部门负责人");
var dptid = getItemValueAsString("部门");
var users = getUsersByDptIdAndRoleId(dptid, roleid);
if (users != null) {
for (var iter = users.iterator(); iter.hasNext();) {
var user = iter.next();
var idd = user.getId();
var userVO = getUserById(idd);
userlist.add(userVO);
}
}
return userlist;
})()
通过脚本设置人工节点处理时限
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
流程>审批时限设置>勾选开启审批时限设置>脚本 | 设置超时时间,超时自动提交到下一节点 | WebUserCurrentDocument | 类型:XX日XX小时XX分钟含义:时长 |
示例代码:
/*根据当前文档中“日期”控件指定时间设置为审批时限*/
(function () {
var starttime = getItemValueAsDate("日期");
var day = getDay(getToday());
if (starttime != null) {
day = getDay(starttime); //取日期天
}
return day;
})()
通过脚本设置人工节点协办人
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
流程-基本信息-允许加签协办人 | 点击流程协办按钮时触发 | WebUserCurrentDocument | 类型:用户ID、用户对象、用户ID的集合、用户对象的集合含义:协办人或协办人人集合 |
示例代码:
/*根据当前文档“部门”控件值,将角色为“部门负责人”的用户设置为协办人*/
(function () {
var roleid = getRoleIdByName("部门负责人");
var dptid = getItemValueAsString("部门");
var users = getUsersByDptIdAndRoleId(dptid, roleid);
if (users != null) {
for (var iter = users.iterator(); iter.hasNext();) {
var user = iter.next();
var idd = user.getId();
var userVO = getUserById(idd);
userlist.add(userVO);
}
}
return userlist;
})()
通过脚本设置人工节点抄送人
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
流程-抄送设置 | 点击流程抄送按钮时触发 | WebUserCurrentDocument | 类型:用户ID、用户对象、用户ID的集合、用户对象的集合含义:抄送人或抄送人集合 |
示例代码:
/*根据当前文档“部门”控件值,将角色为“部门负责人”的用户设置为抄送人*/
(function () {
var roleid = getRoleIdByName("部门负责人");
var dptid = getItemValueAsString("部门");
var users = getUsersByDptIdAndRoleId(dptid, roleid);
if (users != null) {
for (var iter = users.iterator(); iter.hasNext();) {
var user = iter.next();
var idd = user.getId();
var userVO = getUserById(idd);
userlist.add(userVO);
}
}
return userlist;
})()
通过脚本判断人工节点是否可回撤
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
流程-回退回撤挂起催办 | 打开表单即触发,具体表现为按钮是否出现 | WebUserCurrentDocument | 类型:Booleantrue(可回撤)/false(不可回撤) |
示例代码:
//当用户为“张三”时,可回撤
(function () {
var userName = getWebUser().getName();
if ("张三".equals(userName)) {
return true;
}
return false;
})()
通过脚本判断人工节点是否可挂起
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
流程->流程节点->回退回撤挂起催办->脚本 | 打开表单即触发,具体表现为按钮是否出现 | WebUserCurrentDocument | 类型:Boolean含义:true(可挂起)false(不可挂起) |
示例代码:
/*当前用户为“申请人”时可挂起*/
(function () {
var userName = getWebUser().getName();
var value = getItemValueAsString("申请人");
if (value != null && value.equals(userName)) {
return true;
}
return false;
})()
通过脚本判断人工节点是否允许催办
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
流程->流程节点->催办设置->脚本 | 打开表单即触发,具体表现为按钮是否出现 | WebUserCurrentDocument | 类型:Boolean含义:true(可挂起)false(不可挂起) |
示例代码:
/*当前用户为“申请人”时可催办*/
(function () {
var userName = getWebUser().getName();
var value = getItemValueAsString("申请人");
if (value != null && value.equals(userName)) {
return true;
}
return false;
})()
通过脚本设置人工节点过期时限(仅通知,逻辑不合理需要修改)
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
流程->流程节点->开启审批时限设置->审批编辑模式->脚本 | 设置超时时间,超时自动提交到下一节点 | WebUserCurrentDocument | 类型:XX日XX小时XX分钟含义:时长 |
示例代码:
(function () {
//获取条件(以表单字段为例)
var starttime = getItemValueAsDate("日期");
//如果时间不为空,返回过期时间,否则返回当前时间
if (starttime != null) {
return starttime;
} else {
return getToday()
}
})()
通过脚本设置需要启动的子流程
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
流程->子流程节点->启动 | 启动子流程时触发 | WebUserCurrentDocument | 类型:String含义:子流程id |
示例代码:
//根据部门启动不同子流程
(function () {
var deptId = getItemValueAsString("部门");
var process = getDepartmentProcess();
var dept = process.doView(deptId);
var subFlowId = "技术子流程实例id";
var normalSubFlowId = "普通子流程实例id";
if (dept != null) {
if (dept == "技术部") {
return subFlowId;
}
}
return normalSubFlowId;
})()
通过脚本设置需要启动子流程的实例数
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
流程->子流程节点->启动 | 启动子流程时触发 | WebUserCurrentDocument | 类型:Number含义:实例数 |
示例代码:
//根据用户返回子流程实例数
(function () {
var userIds = getItemValueAsString("用户");
var userIdArr = userIds.split(";");
var num = 1;
if (userIdArr.length > 0) {
num = userIdArr.length;
}
return num;
})()
通过脚本设置需要启动的子流程输入参数
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
流程->子流程节点->参数传递 | 启动子流程时触发 | WebUserCurrentDocument | 类型:Object含义:与表单字段类型相符的值,返回值以参数形式传递给表单字段 |
示例代码:
(function () {
//获取主表数据设置子流程参数
var doc = getCurrentDocument();
var userId = doc.getItemValueAsString("用户");
var user = getUserById(userId);
if (user != null) {
//返回用户拓展字段值
var field = user.getField4();
return field;
}
return userId;
})()
通过脚本设置自动节点送出时机
位置 | 触发时机 | 可以获取的环境变量(参数) | 返回值 |
---|---|---|---|
流程->新建->自动节点->脚本 | 流程流转到自动节点时触发 | WebUserCurrentDocument | 类型:String含义:时间 |
示例代码:
//获取表单某一日期为依据,设置为自动节点提交时间
(function(){
var starttime = getItemValue("结束日期"); //获取表单日期
var startdate=null;
if(starttime!=null && starttime.trim().length()>0){
startdate= parseDate(starttime,"yyyy-MM-dd HH:mm:ss"); //将日期格式化
}
return startdate;
})()
文档更新时间: 2022-11-02 13:41 作者:admin