我的blog中的部分资源是来自于网络上,如果您认为侵犯了您的权利,请及时联系我,我会尽快删除!E-MAIL:shiwenfeng@aliyun.com和QQ:281340916,欢迎交流。
jbpm概念 1 : process definition(流程定义): 工作流的流程的完整定义,包括节点和节点之间的走向等关键信息。通常以xml格式提供。一个具体的系统往往是由许多个流程组成的。 2 : process instance(流程实例): 每个process defination生成的业务层的实例。当process instance创建以后,代表流程的执行路径,并被定义到开始节点。 3 : token(令牌): 表示了一个执行的路径,它是运行时产生的。当实例建立以后,令牌也就产生了。 4 : node: 表示流程中的一个节点。 5 : transition: 关联两个节点,用于表示节点的走向 6 : signal: 让一个token执行下一步。process instance也有signal,当用process instance的signal时,其实就是运行process instance根令牌(root token)的signal. 当token进入到一个node时,node会被执行,并产生一些事件,比如进入、离开节点等,这也是执行业务逻辑的地方。事件由action来表示。 7 : 事件Event Event反映的是流程执行中的各个时刻。在流程执行中JBPM引擎会在计算下一个状态的时候触发各种事件。一个事件通常和流程定义中的一个元素相关联,比如流程定义本身,节点或者转移。大部分的元素能够触发不同类型的事件,比如一个节点可以触发节点进入事件,节点离开事件。事件其实是和动作连接在一起的。每个事件维护一个动作列表。当JBPM引擎触发一个事件的时候,该事件维护的动作列表中的动作将被执行。
事件类型 在JBPM中事件类型是写死在事件类中的,共有16种: EVENTTYPE_TRANSITION = "transition"; // 转移 EVENTTYPE_BEFORE_SIGNAL = "before-signal"; // 发信号前 EVENTTYPE_AFTER_SIGNAL = "after-signal"; // 发信号后 EVENTTYPE_PROCESS_START = "process-start"; // 处理开始状态 EVENTTYPE_PROCESS_END = "process-end"; // 处理结束状态 EVENTTYPE_NODE_ENTER = "node-enter"; // 进入节点 EVENTTYPE_NODE_LEAVE = "node-leave"; // 离开节点 EVENTTYPE_SUPERSTATE_ENTER = "superstate-enter"; // 进入超级状态 EVENTTYPE_SUPERSTATE_LEAVE = "superstate-leave"; // 离开超级状态 EVENTTYPE_SUBPROCESS_CREATED = "subprocess-created"; // 子流程创建 EVENTTYPE_SUBPROCESS_END = "subprocess-end"; // 子流程结束 EVENTTYPE_TASK_CREATE = "task-create"; // 任务创建 EVENTTYPE_TASK_ASSIGN = "task-assign"; // 任务分派 EVENTTYPE_TASK_START = "task-start"; // 任务启动 EVENTTYPE_TASK_END = "task-end"; // 任务结束 EVENTTYPE_TIMER = "timer"; // 定时器 常用API ProcessInstance是ProcessDefinition的一个执行实例,想象一下对于订票流程,每个客户的订票动作都会根据订票流程定义而创建一个流程实例,也就是执行实例ProcessInstance.当一个ProcessInstance被创建后,负责执行主路径的token也被创建,这个token就是根token(root token),根token此时位于流程定义的开始状态start state. 创建执行实例很简单有2种方式 : 1 : 通过 ProcessDefinition 类的 createProcessInstance() 方法