activiti 源码笔记之startProcess



rumtimeService.startProcessInstanceByXX方法将启动流程的任务委派给StartProcessInstanceCmd,此时会根据rumtimeService.startProcessInstanceByXX的XX来用不同的变量构造StartProcessInstanceCmd实例然后执行execute方法,StartProcessInstanceCmd的构造器如下.


(1) processDefinitionKey
         在bpmn20.xml中定义流程元素的id
       < process id ="loanReuqest" name ="Process to handle a loan request">

(2)processDefinitionId
        对应流程数据库中act_re_procdef中的主键


(3)businessKey
        关联的业务主键,用于自定义扩展,引擎本身没有用到.

(4)variables
        流程变量

execute的执行逻辑如下
(1) 根据processDefinitionKey或proceeDefinitionId在已发布的流程定义中查找,它是先查找缓冲中的流程定义然后再去数据库中查找以便提高效率,如果找不到或找到的流程定义被挂起将抛出运行时异常ActivitiException.
deploymentCache.findDeployedProcessDefinitionById?Key(  processDefinition Id?Key );
(2)创建流程实例
ExecutionEntity processInstance = processDefinition.createProcessInstance(businessKey);
创建流程实例的过程是比较复杂的。

首先流程在创建时必须有一个类型为ActivityImpl的initial变量.

这里为了方便理解暂且可以把ActivityImpl理解为流程中的每个节点元素(除
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值