JBPM中的流程定义中主要不外乎两个东西,1:Node(节点),2,Transition(线),下面主要说明JBPM流程定义中的的基本概念,假如我们有如下需求:
一个请假单提交流程,提交一个请假单交给张三审批,张三审批完毕可以交给李四或赵六审批,依次类推,那么这样的流程在JBPM中是怎样表示的呢?刚说了流程定义包括Node和Transition,通过上面的状态图的节点在JBPM中表示为StateNode(开始),StateNode上图已经表示得很明显了,就是表示开始,endState(结束)表示结束,在,JBPM中强制任何流程实例中必须要有StateNode,EndNode一般都有,但是JBPM没作强制要求,而且任何节点都可以作为起始节点,所以起始节点和结束节点是一种伪节点,TaskNode(任务节点),任务节点在JBPM中主要完成分配任务的定义,比如上面张三审批,表示给张三分配了一个审批的任务等待张三来审批,Transition(线)即箭头指向从上图可看出线与节点的关系,
从线的角度出发,线来自哪一个节点,在JBPM中表示为from,到达哪一个节点,表示为to,从节点的角度出发,可看出一个节点可由多条线到达,JBPM中表示为arrivingTransitions,一个节点可有多条线出发到另一个节点,JBPM中表示为leavingTransitions,JBPM中规定起点不允许有arriving Transition,终点不允许有leaving Transition,这些都是JBPM中的概念,仔细观察会发现其实跟UML表示的差不多,名字不太一样
再看下图
UML中的类似条件判断,经过同步杆的方式怎样用JBPM表示呢?
没错,JBPM中表示方式类似,在JBPM中有一个叫Decision的节点类型用于表示上述的条件判断, JBPM中称条件流转定义,这种节点比较特殊,因为他是根据条件判断自动流转(其他节点都需要手动点击流转),所以称为自动流转节点,同步杆一般是成对出现,这点JBPM也跟UML一样,BPM中使用Fork跟Join分别表示两个同步杆Fork跟Join是两种节点类型
下面的UML图表示出了上面描述的所有关系: