会签
会签场景涉及多账号的交互应用,一般是企业账户会需要用到会签场景。会签场景一般是人工节点或会签节点的应用。
人工节点会签
默认规则
会签全部是人工节点。我们用分发节点和聚合节点包裹了三个会签节点:财务审核、设计审核和文案审核。此场景绘制完成即可运行,默认规则为:
1、提交会签后,分发节点会自动分发任务至财务审核、设计审核和文案审核三个并行节点。
2、财务审核、设计审核和文案审核三个节点中的任何一个节点执行完成,即刻流转到下一个节点:总监审核。
3、没有指定会签用户,只能在流程列表->运行->创建实例->人工任务去执行完成。或创建实例后->运行中的实例->实例管理->人工任务执行完成。

会签提交->财务审核->总监审核->流程结束。财务审核执行后,设计审核和文案审核的待办任务自动删除。

设置会签人/待办用户
set("signUser",users),函数用来设置任务接收人。
如上流程图人工节点"提交会签"或提交会签节点的输入执行线上用脚本设置接收人,代码如下:
users = "郑晴,Jone";//企业账户系统中的用户。也可以用数组:users = ["郑晴","Jone"];
set("signUser",users);//指定任务接收人。
true;
郑晴,Jone同时接收到任务,只需1人提交即可。同理我们也可以在财务审核的输入执行线(送审财务)上设置财务审核的任务接收人。设置接收人后,接收人可以登录系统,到我的->我的任务中执行。
通过自定义规则
以上流程可以自定义来完成各种复杂的会签规则定义。如财务审核、设计审核和文案审核中任何两个部门审核通过即完成会签审核,代码如下:
提交会签执行线,代码:
set("count",0);//初始化一个计数器counter
true;
财务审核通过、文案通过、设计通过三根执行线代码(相同):
count = get("count");//取出counter的值
count = parseInt(count);//转为整型
count++;//表示每执行一次累计一次
set("count",count);//累计结果重新设置到counter变量中保存。
true;
聚合节点通过逻辑代码:
count = get("count");//取出counter的值
count = parseInt(count);//转为整型
if(count == 2){//如果已执行2次就通过逻辑判定
true//往下继续执行
}else{
false//等待
}
自动节点会签
会签节点中存1个及以上的自动节点,默认规则就是会签节点全部通过后才能继续往下执行。如图是三个自动节点组合会签,那这个三个自动节点全部执行通过,同时需聚合节点逻辑为true才能通过(如果没有编写聚合节点脚本默认为true)。

会签节点
会签节点是一个专门用于会签的人工节点,可以用于不确定会签人和会签部门的会签场景,和人工节点一样,会签人和会签规则可以自定义。会签节点的输出必须连接聚合节点,会签节点输入不需要分发节点。会签节点在会签场景应用中更加灵活和便捷。

设置会签人
在会签节点或输入执行线"提交会签"上设置会签人
users = "杨明,赵磊,郑晴";
set("signUser",users);
true;
默认规则下,会签人只要其中一人执行通过,聚合节点就流转到下一节点。当前案例为全部会签人通过会签,聚合节点才启动流转。
设置计数器
执行线"提交会签"上初始化计数器
set("count",0);//初始化一个计数器count,记录会签执行通过人次
true
计数执行人次
在执行线"会签通过",累计执行人次
count = parseInt(get("count"));
count++;
set("count",count);
true
聚合规则
聚合节点上编写聚合规则
signCount = get("signCount");//获取会签总人数,string类型
count = get("count");//获取计数器,,string类型
if(count == signCount){//会签执行通过人次等于会签总人次
true
}else{
false
}
驳回
引擎规则中,驳回和执行是一样的,都是执行路由,不同在于规则脚本的编写。一般的驳回就是一条路由执行线,描述为驳回即可,不需要编写规则脚本。在审批节点上可以选择路由执行:驳回和通过。

人工节点会签驳回
在会签场景中增加一个驳回聚合节点,用来接收驳回路由的输入,根据需求编写驳回规则脚本。默认规则是只要有一人执行驳回,任务即刻被驳回至提交会签节点。当前场景案例是需要会签人都执行完成,如有人执行驳回即被驳回。

增加驳回计数器
在提交会签执行线上初始化驳回计数器
set("count",0);//通过计数器
set("rejectCount",0);//驳回计数器
true;
驳回计数
财务驳回、设计驳回、文案驳回执行线上编写驳回计数规则,三个路由规则一致。
rejectCount = get("rejectCount");
rejectCount = parseInt(rejectCount);
rejectCount++;
set("rejectCount",rejectCount);
true;
驳回聚合节点规则
rejectCount = parseInt(get("rejectCount"));//驳回执行次数
count = parseInt(get("count"));//审核通过执行次数
sum = rejectCount + count;
if(sum == 3){//驳回和通过计数为3,表示全部执行完毕并且有驳回在此规则执行
true
}else{
false
}
会签节点驳回
会签节点会签场景中增加驳回聚合节点和规则。默认规则为会签人有一人执行驳回,任务即被驳回至发起会签节点。当前场景案例是需要会签人都执行完成,如有人执行驳回即被驳回。

提交会签执行线规则
set("count",0);//通过计数器
set("rejectCount",0);//驳回计数器
users = "杨明,赵磊,郑晴";//会签名单
set("signUser",users);//指定任务接收人。
true;
驳回执行线规则
rejectCount = get("rejectCount");
rejectCount = parseInt(rejectCount);
rejectCount++;
set("rejectCount",rejectCount);
true;
会签通过执行线规则
count = parseInt(get("count"));
count++;
set("count",count);
true
驳回聚合节点规则
signCount = parseInt(get("signCount"));//获取会签人数
count = parseInt(get("count"));//获取会签通过计数
rejectCount = parseInt(get("rejectCount"));//获取驳回计数
if(signCount == rejectCount + count){//通过和驳回执行总次数等于会签人数,表示会签人全部执行完毕
true
}else{
false
}