如何控制条件审批(执行动作)

WikeFlow2.0演示地址:http://workflow2.wikesoft.com

说明:

1、执行动作=流程设计设置的连接线。

2、该文档讲解某一流程节点的执行动作的显示和隐藏。

3、应用场景:如不同的条件进入不同的审批流程,如

   3.1、如果员工提交的费用报销单超过5000,则要求部门经理提交给副总。

   3.2、如果员工提交的费用报销单没有超过5000,则直接提交给财务人员。


  条件表达式

当一个节点上有多条线路可以选择时,流程引擎会将未设置条件表达式和满足条件表达式的连接线显示出来。

规则:条件表达式里设置Key值,通过设置Key和Key对应的SQL语句。最后再通过SQL查询的结果替换条件表达式里的Key。

实际应用:

1、如果员工提交的费用报销单超过5000,则要求部门经理提交给副总。

2、如果员工提交的费用报销单没有超过5000,则直接提交给财务人员。


1、【提交副总(>5000)】设置

条件表达式 [SumAmmount]>5000
SQL Key SumAmmount
SQL语句 SELECT SUM(AMOUNT) FROM  COST_DETAIL WHERE COST_ID IN (SELECT ID FROM COST WHERE INSTANCEID= '[instanceId]')


2、【提交财务审核(不超过5000)】设置

条件表达式
[SumAmmount]<=5000
SQL Key
SumAmmount
SQL语句
SELECT SUM(AMOUNT) FROM  COST_DETAIL WHERE COST_ID IN (SELECT ID FROM COST WHERE INSTANCEID= '[instanceId]')


假如一部员工提交的费用报销单总额是6000元,在部门主管处理节点。

【提交副总(>5000)】的条件表达式最后会转换成6000>5000。

【提交财务审核(不超过5000)】的条件表达式最后会转换成6000<=5000。

最后【提交财务审核(不超过5000)】这条线则不会显示,【提交提交副总(>5000)】这条线会显示出来

条件表达式可以设置多个SQL KEY ,条件表达式支持.net if判断的所有写法。

SQL 可以传参数[instanceId]和[userId],流程引擎会自动替换[instanceId]和[userId]。

[instanceId]和[userId]两个参数不是必须,如果你的SQL语句中带有[instanceId]、[userId]会自动替换实际的值。

特别提示:SqlServer的SQL语句,有同学习惯“[字段名]”的写法,当你的字段名是instanceid时,如果你用[字段名]的写法,SQL语句在替换参数的时候出问题,SQL执行的时候会报错,下面的SQL写法黄色部分是有问题的。

错误示例:

SELECT SUM(AMOUNT) FROM  COST_DETAIL WHERE COST_ID IN (SELECT ID FROM COST WHERE    [INSTANCEID]= '[instanceId]'   )