jbpm名词解释

ProcessEngine流程引擎

启动流程实例

ProcessInstance processInstance =engine.getExecutionService()

上面我们了解了所谓流程实例(ProcessInstance),实质就是指得一个业务对象(比如:“小赵的请假单”、“小李的报销单”、“某某单位的某次发文”等等)。而Execution是一个执行控制对象,你必须要理解的一点就是每个Execution对象必然会指向一个节点(Activity)。Execution指向哪里,就代表它执行到了哪里。每个Activity都有自己的行为。比如TaskActivity的行为就是创建任务实例(TaskImpl),并把任务实例与参与者(assignee)相关联。这样,通过assignee就可以查找到其任务实例列表。

Execution有name、key、id、state等属性,Execution是树型结构,在fork和join流程中,将会创建子Execution对象。

子Execution对象的name属性是进入这个子Execution对象时的transition的名称。

ProcessInstance也是一种Execution类型的对象。实际上,对于ProcessInstance对象来说,它对应的ProcessInstance(因为ProcessInstance也是Execution,所以它也有对应的ProcessInstance对象)就是它自己。而对于ProcessInstance的那些子Execution对象(孙Execution对象等等等等)而言,也肯定会有指向ProcessInstance对象的一个引用!

对于根Execution对象(即ProcessInstance对象),它的ID是:流程定义的KEY.流程实例的KEY,比如上面例子中创建的流程实例的ID就是:”LEAVE.101”。

我们可以通过这个ID(或其它方法)来查询流程实例对象或Execution对象,从而得知这些Execution指向哪里。

在我们上述流程定义中,张三审批这个环节,用的是一个Task类型的Activity来定义的。这种类型的Activity的行为是:创建任务实例(TaskImpl),并把任务实例与参与者(assignee)相关联。Task是一个接口,而TaskImpl是具体的实现类。

任务实例(Task)这种概念,其实质是用来定义Execution与assignee之间的关联的。从上面我们知道流程已经执行到了张三审批这个环节了,因此,我们下一步的目标就是:通过张三,找出流转到他手上的所有的业务对象信息。下面是一个示例:

你可能感兴趣的:(jbpm名词解释)