Activiti 工作流2

原文转载:https://blog.csdn.net/c1225992531/article/details/81181017
https://blog.csdn.net/Cs_hnu_scw/article/details/79059965

一、管理流程定义

  1. 涉及的对象及表
    对象: ProcessEngine 、RepositoryService、Deployment 、ProcessDefinition
    表:
    act_re_deployment:部署对象表
    act_re_procdef:流程定义表
    act_ge_bytearray: 字节资源表
    act_ge_property:主键生成策略表,next_dbId 作为部署表的id

  2. 设置流程定义图

* 流程图设计
* bpmn与png文件
  1. 部署流程定义
* 通过bpmn和png格式加载及部署
* 通过Zip格式加载及部署
* 查看流程定义
* 删除流程定义
* 获取流程定义文档的资源(查看流程图附加)
* 查看最新版本的流程定义

二、流程实例、任务执行

  1. 涉及的对象及表
    Execution 执行对象
    按流程定义的规则执行一次的过程.
    对应的表:
    act_ru_execution: 正在执行的信息
    act_hi_procinst:已经执行完的历史流程实例信息
    ProcessInstance 流程实例
    特指流程从开始到结束的那个最大的执行分支,一个执行的流程中,流程实例只有1个。

注意
(1)如果是单例流程,执行对象ID就是流程实例ID
(2)如果一个流程有分支和聚合,那么执行对象ID和流程实例ID就不相同
(3)一个流程中,流程实例只有1个,执行对象可以存在多个。

Task 任务
执行到某任务环节时生成的任务信息。
对应的表:
act_ru_task:正在执行的任务信息
act_hi_taskinst:已经执行完的历史任务信息

  1. 启动流程实例
  2. 查看我的个人任务
  3. 办理任务(完成任务)
  4. 查询流程实例状态(判断流程正在执行,还是结束)
  5. 查询历史任务
  6. 查看历史流程实例

三、流程变量

涉及到的表
act_ru_variable:正在执行的流程变量表
act_hi_varinst:流程变量历史表

  1. 流程变量作用
- 传递业务参数(申请人、天数、事件、原因)
- 动态指定办理人
- 指定连接,完成任务(同意或者拒绝) 
  1. 设置简易的bpmn流程图
  2. 部署流程定义及启动流程实例
  3. 设置流程变量
    • 通过 TaskService 和 RuntimeService 服务设置变量
    • Execution 与 ProcessInstance 区别
      1. Execution:只一个流程实例具体要执行的过程对象
      2. ProcessInstance:流程实例 ProcessInstance(1)–>Execution(N) ,且N>=1
      3. 值等情况: act_ru_execution 的id和 proc_inst_id 相同 ,该流程没有子流程
      4. 值不等情况: 只会出现在子流程中(嵌套、引入),act_ru_execution 的id和 proc_inst_id 不相同,但parent_id 等于当前流程实例的 id 和proc_inst_id
      5. 比如一个购物流程中除了下单、出库节点,
        可能还有一个付款子流程,一般付款流程都是作为公用的流程,当任务达到子流程时,引擎会自动创建一个付款子流程
    • setValiable 与 setLocalValiable区别
  4. 获取流程变量
  5. 查询历史的流程变量
  6. 流程变量支持的类型

四、连线

  1. 设置bpmn流程图
  2. 部署和执行流程
  3. 查询和完成任务
  4. 如何设置条件变量
    连线–>main config–>condition
    表达式的结果必须是布尔型
    • #{variable==‘value’}
    • ${variable==value}
  5. 总结

    一个活动中可以指定一个或多个SequenceFlow(Start中有一个,End中没有)。

    • 开始活动中有一个SequenceFlow 。
    • 结束活动中没有SequenceFlow 。
    • 其他活动中有1条或多条SequenceFlow

    如果只有一个,则可以不使用流程变量设置codition的名称;

五、排他网关(ExclusiveGateWay)

  1. 设置bpmn流程图
  2. 部署与执行流程
  3. 查询和完成任务
  4. 总结
    1.一个排他网关对应一个以上的顺序流
    2.由排他网关流出的顺序流都有个conditionExpression元素,在内部维护返回boolean类型的决策结果。
    3.决策网关只会返回一条结果。当流程执行到排他网关时,流程引擎会自动检索网关出口,从上到下检索如果发现 第一条决策结果为true或者没有设置条件的(默认为成立),则流出。
    4.如果没有任何一个出口符合条件,则抛出异常
    5.使用流程变量,设置连线的条件,并按照连线的条件执行工作流,如果没有条件符合的条件,则以默认的连线离开,但是默认的连线不能设置条件

六、用户任务(userTask)

  1. 个人任务
    • 个人分配任务方式1:直接指定
    • 个人分配任务方式2:采用流程变量
      在bpmn 的 assignee 设置 ${userID}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值