工作流 七月 12, 2020

acitivi(三) 流程执行任务

文章字数 3.5k 阅读约需 3 mins. 阅读次数 0

流程执行任务管理

  • 流程部署+启动
  • 查看当前任务
  • 办理任务
  • 查询历史任务
  • 查询历史流程实例

查看流程状态

​ 创建流程实例时,缺省为创建2条记录,其中一条是开始事件的执行实例,这个一直存在,只到流程结束后才会自动删除,另一条是普通的节点,所以它的流程实例id和PARENT_ID_字段即主干执行实例id字段值是一样的,完成任务时,它会第二转入历史任务和历史活动表中,如果创建的下一个节点还是普通节点,则它的第二条记录会变化。

// 执行对象表 act_ru_execution
@Test
public void isProcessEnd() {
    String processInstanceId = "2501";
    long count = runtimeService.createExecutionQuery()
            .processInstanceId(processInstanceId)
            .count();
    System.out.println(count>0?"路程未结束":"流程已经结束");
}

流程变量

作用

  • 传递变量
  • 指定连线完成任务(批准/驳回)
  • 动态指定任务的办理人

使用方法

设置变量

  • runtimeService.setVariable(String taskId, String variableName, Object value)
  • runtimeService.setVariables(String taskId, Map<String, ? extends Object> variables)
  • taskService.setVariable(String taskId, String variableName, Object value)
  • taskService.setVariables(String taskId, Map<String, ? extends Object> variables)

获取变量

  • runtimeService.getVariable
  • runtimeService.getVariables
  • taskService.getVariable
  • taskService.getVariables

连线

<sequenceFlow id="flow10" name="退回" sourceRef="exclusivegateway2" targetRef="backtenant"></sequenceFlow>

主要参数:

  • id: 连线id
  • name: 图中连线名称
  • sourceRef: 连线起点
  • targetRef: 连线终点

若从网关开出来可以增加条件表达式子标签

<sequenceFlow id="flow10" name="退回" sourceRef="exclusivegateway2" targetRef="backtenant">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approved == "rejected"}]]></conditionExpression>
    </sequenceFlow>

网关

排他网关(有条件)

当满足某一条件就能通过的业务.

eg:某一家公司最近在给一个单位做一个财务审批的OA。具体需求是这样的:当部门申请的金额小于一万块的时候,财务部可以直接决策。当部分申请的金额大于一万块并且小于三十万的时候,财务部经理决策,当金额超出了或者等于三十万的时候,需要财务主管来决策。

并行网关(没条件)

并行网关是不需要设置流程变量的,并行网关不在流程变量的范围内.

eg: 在开完某个产品设计会以后,需要对会议约定一些事项进行签字画押涉及到两个部门(产品部/研发部)的主管和经理
确认的顺序:
a:产品部的主管确认然后产品部的经理确认
b:研发部的主管确认 然后研发部的经理确认
注意:以上两个处理步骤可以同时进行,都完成以后,代表流程结束

特性

  • 分支(fork):所有出口顺序流都会被计算,对于计算为true的分支都会被执行。

  • 聚合(join):所有到达包容网关的并行执行,都会在网关处等待,直到每一条具有流程标志的入口顺序流,都有一个执行到达。这是与并行网关的重要区别。换句话说,包容网关只会等待将会被执行的入口顺序流。在合并后,流程穿过合并并行网关继续

任务权限管理

  • 持有人(owner):只有一个
  • 代理人(ASSIGNEE_): 只有一个(委派)
  • 候选人(组):可能多个
0%