• 节点流转条件中引入用户变量,简化条件设置


    相信做过工作流的朋友大部分做过像以下图片中类似的请假流程。

    流程有五个节点

    第一节点:开始,参与者是所有人;

    第二节点:上级领导审批,参与者是提交人的部门负责人,部门负责人可审批的天数为1天;

    第二节点有两个流转分支,条件分别是:1、请假天数小于 2 ;2请假天数大于等于 2。(见图二)

    流程引擎会根据请假天数进行路由:1、请假天数小于 2 交人事备案;2请假天数大于等于 需要提交人领导的上级(总监)审核,然后再交人事备案。

    第三节点:总监审批,总监可审批的天数为10天;

    第四节点:人事备案;

    第五节点:结束。

    (图一)

    (图二)

    对于这样的设置很明显的一个问题是:如果提交人本身是部门负责人,那么在第二节点路由时,所找到的任务处理者就是总监,但总监拥有10天的权限。

    此处的解决方案有两个:

    1:在第三节点的处理策略中,使用处理者是本人即跳过,但是这样会产生一个自动完成的任务,在请假流程中不推荐使用这种方式;

    2:在第二节点的两个流转条中,引入用户变量,将 return <% day %> > 2; 修改为 return <% day %> > <% user.Day %>;

    这样在进行条件解析时,脚本解析器会将<% user.Day %>替换为当前用户所拥有的权限天数。

     用户变量可设置在角色、组、岗位或用户上,推荐使用岗位进行设置,这样有两点好处:

    1:岗位是根据公司的实际架构进行设置,上下级关系明显;

    2:岗位拥有基本信息描述物理数据表,只需要对基本信息进行设置,实际机构的岗位进行映射或直接使用即可,减少维护成本。

    (图三)

    根据以上表结构,只需设置岗位默认变量,机构岗位如果没有特殊设置,可直接使用默认变量,无需重新设置。

    用户变量的使用场景还有很多,如报销流程中,用户的审批金额。

    http://www.cnblogs.com/zdming/archive/2012/04/17/2453938.html

  • 相关阅读:
    Core Expression
    Linux基础
    express
    C#程序模拟登录批量获取各种邮件内容信息
    Windows Phone 执行模型概述
    Wp8—LongListSelector控件使用
    网页背景图片自然缩放
    Unix sed实用教程系列目录[已完成]
    Unix sed实用教程开篇
    《SpringMVC从入门到放肆》十五、SpringMVC之上传文件
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2454325.html
Copyright © 2020-2023  润新知