流程定义语言.doc
文本预览下载声明
一 JPDL
流程定义
process-definition(流程定义)流程定义的根节点,是所有节点的父节点
名称 类型 数量 描述 name 属性 可选的 流程的名称。 swimlane 元素 [0..*] 流程中使用的泳道。泳道表示流程角色,它们被用于任务分配。 start-state 元素 [0..1] 流程起始状态。注意,没有起始状态的流程是合法的,但是不能被执行。 end-state|state|node|task-node|process-state|super-state|fork|join|decision 元素 [0..*] 流程定义的节点。注意,没有节点的流程是合法的,但是不能被执行。 event 元素 [0..*] 作为一个容器服务于动作的流程事件。 action|script|create-timer|cancel-timer 元素 [0..*] 全局定义的的动作,可以在事件和转换中引用。注意,为了被引用,这些动作必须指定名称。 task 元素 [0..*] 全局定义的任务,可以在动作中使用。 exception-handler 元素 [0..*] 一个异常处理器列表,用于这个流程定义中的委托类所抛出的所有异常。 node(自动节点)这种节点和State相反,也称自动节点。当业务程序实例执行到这个节点,不会停止执行。而是会继续往下执行。如果该节点存在多个离开转向。那么,就会执行其中的第一个离开转向,在Node状态中,不需要外部参与者的参与,业务流程的这个部分是自动的、即时完成的。
名称 类型 数量 描述 action|script|create-timer|cancel-timer 事件 1 用于表示这个节点行为的定制动作。 普通节点元素 ? ? 请参考普通节点元素。 ?
start-state(开始状态)
start-state是我们整个流程的开始节点,所有的流程实例从这里开始。
名称 类型 数量 描述 Name 属性 可选的 节点的名称。 Task 元素 [0..1] 起始一个流程实例的任务,或者用来捕获流程发起者 Event 元素 [0..*] 支持的事件类型:{node-leave}。 transition 元素 [0..*] 离开转换,每个离开节点的转换必须有一个不同的名称。 exception-handler 元素 [0..*] 一个异常处理器列表,用于这个流程节点中的委托类所抛出的所有异常。 ?
end-state(结束节点)
对于每一个流程定义都会有一个结束节点,与开始节点对应
名称 类型 数量 描述 Name 属性 必需的 结束状态的名称。 event 元素 [0..*] 支持的事件类型:{node-enter}。 exception-handler 元素 [0..*] 一个异常处理器列表,用于这个流程节点中的委托类所抛出的所有异常。 ?
state(状态)
State节点也叫手工节点,进入到这种节点,整个流程的执行就会中断。直到系统外参与者发起继续执行的命令,即调用signal或end方法,业务程序实例的执行才能够继续下去。
名称 类型 数量 描述 name 属性 必需的 节点的名称。 async 属性 {true|false},默认是false 如果设置为true,这个节点将会异步执行。请参考”异步执行”章节。 transition 元素 [0..*] 离开转换。每个离开节点的转换必须有一个不同的名称,最多只允许所有离开转换中的一个没有名称。第一个转换被指定为默认转换,当离开节点而没有指定转换时,默认转换发生。 event 元素 [0..*] 支持的事件类型:{node-enter|node-leave}。 exception-handler 元素 [0..*] 一个异常处理器列表,用于这个流程节点中的委托类所抛出的所有异常。 timer 元素 [0..*] 指定一个定时器,用来监视节点中的一个执行所持续的时间。 ?
task-node (任务节点)
其性质和node节点一样,在没有task的时候,也都是自动执行,不等待。task-node被归类为一个等待节点,是指在task-node中的task列表中的task没有全部执行完之前,它会一直等待。Task可以在task-node节点下定义,也可以挂在process-definition节点下。最普遍的方式是在task-node节点下定义一个或多个任务。默认情况下,流程在task-node节点会处于等待状态,直到所有的任务被执行完毕。Task的执行是按顺序执行的,任务都完成后,token仍然不会指向后面的节点;需要自己手动调用processInstance.signal()
显示全部