zoukankan      html  css  js  c++  java
  • Activiti工作流的应用示例

    Activiti工作流的应用示例

    1、新建流程模型

    模型管理->模型工作区

    image

    点击“创建”后会立即跳转到“流程在线设计器”页面,请参考下一节

    2、在线流程设计器

    模型管理->模型工作区->编辑

    image

    3、设置流程属性

    image

    l 名称:流程定义名称

    l 描述信息:流程定义描述

    l 流程标识:流程定义KEY,对应procDefKey,用来标识一个流程

    4、拖拽元素介绍

        Start event:开始事件 
        End entit:结束事件 
        User task:用户任务活动 
        Service task:服务任务活动 
        Exclusive gateway:独家网关,排它网关通道,只能有一条分支执行,如if else 
        Parallel gateway:并行网关,并行网关通道,所有分支一块执行 
    更多介绍请参考:http://www.mossle.com/docs/activiti/#bpmnConstructs

    5、流程发起人的流程变量

    image

    在开始节点的属性中设置“启动器”(流程发起人)的变量,例如:applyUserId

    设置以后,在某个任务的属性中,可以设置参与者为${applyUserId},这样可以实现【谁发起谁执行】,请参考下图:

    image

    image

    当发起人发起某个流程,在某个环节被驳回的时候,如果希望流程驳回到发起人,可使用方法。

    6、表单概念

    普通表单:每个节点的表单内容都写死在JSP或者HTML中。

    动态表单:表单内容存放在流程定义文件中(包含在启动事件以及每个用户任务中)。

    外置表单:每个用户任务对应一个单独的<b>.form</b>文件,和流程定义文件同时部署(打包为zip/bar文件)。

    综合流程:可以查询到所有的流程(普通、动态、外置固定查询某些流程的表单,为了演示所以单独分开);综合流程的目的在于可以启动用户上传或者设计后部署的流程定义。

    6、设置表单地址

    l 全局表单:新建流程时或活动元素上未设置表单标识时调用的表单,位于开始事件属性中“表单标识”字段,指定表单访问地址。

    l 活动表单:当前步骤使用的表单,使用活动节点属性“表单标识”字段。

    image

    7、设置流程参与者

    在流程节点中,设置【任务分配】

    image

    image

    l assignee:任务执行人,设置系统中的“登录名”(loginName)。

    l candidateUsers:任务执行人,可以填写多个。

    l candidateGroups:任务执行组,可以填写多个,设置系统中的“角色英文名(enname)”。

    assignee和candidateUsers的区别是:assignee不需要签收任务,直接可执行任务;candidateUsers为竞争方式分配任务,被指定人待办中都有一条任务,谁先签收谁就获得任务的执行权。

    参与者可指定流程变量(EL表达式),动态指定参与者,如:${processer}

    8、设置流程流转的条件

    选定流转线,在【流条件】中填写EL表达式,返回true或false。例如:

    image

    9、保存流程设计图

    image

    10、部署流程设计图

    模型管理->模型工作区,点击【部署】

    image

    11、导出流程设计图

    模型管理->模型工作区,可以导出BPMN、JSON、SVG格式的流程设计图

    image

    12、【请假流程】

    使用softwareuser登陆

    image

    工作流程->请假申请,填写如下:

    image

    点击【申请】后,启动请假申请流程。

    image

    此时在流程办理->运行中的流程中,可以看到:

    image

    13、leaderuser待办任务

    使用leaderuser用户登陆,它属于deptLeader用户组。deptLeader也就是【部门领导审批】任务分配的用户组。

    image

    image

    点击工作流程->待办任务。可以看到未签收任务

    image

    点击【跟踪】可以看到流程目前进展情况。

    image

    14、leaderuser任务签收

    leaderuser用户点击工作流程->流程办理->请假办理(普通),对任务进行签收。

    image

    image

    15、leaderuser任务办理

    leaderuser用户,进入流程办理->请假办理(普通),选中任务,点击【办理】

    image

    image

    任务完成。

    16、hruser待办任务

    使用hruser登陆系统,hruser属于hr角色,是请假流程人事审批的任务分配组。

    image

    image

    hruser登陆系统后,点击工作流程->待办任务,可以看到如下:

    image

    点击跟踪,可以看到目前流程进展情况。

    image

    17、hruser任务签收

    hruser进入工作流程->流程办理->请假办理(普通),对任务进行签收

    image

    image

    18、hruser任务办理

    hruser进入工作流程->流程办理->请假办理(普通),对任务进行办理

    image

    image

    同意以后,在工作流程->流程办理->运行中的流程(普通),可以看到:

    image

    19、请假最后一个环节,销假

    使用softwareuser用户登录系统,他是请假者,销假的流程在设计图中分配给他自己。

    image

    image

    注意以上2张图片applyUserId的变量。

    softwareuser用户点击工作流程->流程办理->请假办理(普通),点击【办理】

    image

    填写实际请假开始时间和结束时间。

    image

    20、任务完成。

    softwareuser用户点击工作流程->流程办理->已结束流程(普通),可以看到已完成的任务。

    image

    转载来源:http://www.cnblogs.com/hellowood23/p/5437909.html

    本文用于个人学习及方便他人技术交流,特此声明。

  • 相关阅读:
    大战设计模式【13】—— 组合模式
    大战设计模式【12】—— 迭代器模式
    大战设计模式【11】—— 模板方法模式
    大战设计模式【10】—— 外观模式
    linux命令进阶
    ansible普通用户su切换
    Ansible 进阶技巧
    ansible playbook对错误的处理
    ansible示例,离线安装etcd
    (原)centos7安装和使用greenplum4.3.12(详细版)
  • 原文地址:https://www.cnblogs.com/zzuzhenlei/p/7568815.html
Copyright © 2011-2022 走看看