今天是JBPM开源工作流管理系统课程的第二天,也是最后一天,希望所有传智播客的同学都能持之以恒的坚持下去。
1. start-state 节点:开始节点,标识流程开始边界。开始状态有且只有一个,就是说流程中不能有任何transition指向开始节点;在流程实例被创建后(启动),RootToken(根令牌)就指向start-state,并且处于等待状态,需要给Token发信号(signal)才能使流程继续执行
2. end-state 节点:结束节点,标识流程的结束边界。不需要transition元素
3. task-node 节点:任务节点,可以包含任意数量的Task(任务)。当执行到一个任务节点的时候,将会根据这个task-node中的task的定义,创建相同数量的TaskInstance(为每一
个Task都创建一个任务实例,并且分配给任务定义中指定的参与者)。然后,这
个task-node一直处于等待状态,等到这些任务实例都被完成后,才会离开当前的
节点,到达下一个节点
4. decision 节点:决策节点,用于计算流向: 在decision中使用DecisionHandler,或使用一个表达式
5. state节点:状态节点,这是一个等待节点。当执行到达这个节点的时候,就会等于等待状态,须给token发一个信号(signal)才能流程继续执行。此节点一般在与外部系统交互时使用
6. create-tasks属性:指定在进入task-node时是否创建任务实例(默认为true)通常在做会签等需要动态的创建多个任务实例的的情况下使用,(可以与signal="last-wait"配合使用)
7. expression(表达式):和jsp中使用的el表达式相似,只是${}改为#{}
8. fork / join节点:fork(分支节点)的作用是将单个执行流程分裂成多个并发的执行流程。默认的行为是为每个分支生成一个子令牌,并建立子令牌和主流程令牌之间的父子关系。此时,父令牌指向fork节点,子令牌指向各个分支节点;join(合并节点)将分支收拢。当从同一个fork中出来的所有的分支都到达该节点的时候,join节点将结束这些分支上的token,并给他们的父Token发一个信号离开join节点(从fork节点直接到join节点的下一个节点,不会经过join节点)。如果只有分支中的部分token到达时,join结点将处于等待状态
9. node 节点:可定制的节点。可以在node元素中指定一个Action子元素,可以指定一个实现了ActionHandler接口的类,用这个类可定制这个节点的行为。这时,如是果想让流
程继续执行,需要给token发一个信号
10. Action:动作,是一段代码,在指定的情况下被执行,属性有class,name,ref_name
11. event:事件,每个事件有一个动作(action)清单。当jBPM引擎产生一个事件,动作(action)清单就会被执行. 不同的节点支持的事件类型不同,是由event元素所在的节点的类型决定的,例如transition只有一个事件
12. 任务分派有两种模式,分别是推(push)模式和拉(pull)模式