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

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]'   )






版权所有:本文档的任何部分,包括文字、图片、图形等均归属于成都惟科软件有限公司(以下简称“惟科软件”)。未经书面许可,任何单位或个人不得以任何方式摘录、复制、翻译、修改本手册的全部或部分。除非另有约定,惟科软件不对本手册提供任何明示或默示的声明或保证。

责任声明:在法律允许的最大范围内,本文档是“按照现状”提供,可能存在瑕疵或错误。惟科软件不对本文档提供任何形式的明示或默示保证,包括但不限于适销性、质量满意度、适合特定目的;亦不对使用或是分发本文档导致的任何特殊、附带、偶然或间接的损害进行赔偿,包括但不限于商业利润损失、系统故障、数据或文档丢失产生的损失。