名称
|
类型
|
多样性
|
描述
|
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..*]
|
一个异常处理器列表,用于这个流程定义中的委托类所抛出的所有异常。
|
名称
|
类型
|
多样性
|
描述
|
{action|script|create-timer|cancel-timer}
|
事件
|
1
|
用于表示这个节点行为的定制动作。
|
普通节点元素
|
|
|
请参考
普通节点元素
。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
必需的
|
节点的名称。
|
async
|
属性
|
{true|false}
,默认是
false
|
如果设置为
true
,这个节点将会异步执行。请参考“
第13章异步继续
”。
|
transition
|
元素
|
[0..*]
|
离开转换。每个离开节点的转换必须有一个不同的名称,最多只允许所有离开转换中的一个没有名称。第一个转换被指定为默认转换,当离开节点而没有指定转换时,默认转换发生。
|
event
|
元素
|
[0..*]
|
支持的事件类型:{
node-enter|node-leave
}。
|
exception-handler
|
元素
|
[0..*]
|
一个异常处理器列表,用于这个流程节点中的委托类所抛出的所有异常。
|
timer
|
元素
|
[0..*]
|
指定一个定时器,用来监视节点中的一个执行所持续的时间。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
可选的
|
节点的名称。
|
task
|
元素
|
[0..1]
|
起始一个流程实例的任务,或者用来捕获流程发起者,请参考“
第11.7节开始任务中的泳道
”。
|
event
|
元素
|
[0..*]
|
支持的事件类型:{
node-leave
}。
|
transition
|
元素
|
[0..*]
|
离开转换,每个离开节点的转换必须有一个不同的名称。
|
exception-handler
|
元素
|
[0..*]
|
一个异常处理器列表,用于这个流程节点中的委托类所抛出的所有异常。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
必需的
|
结束状态的名称。
|
event
|
元素
|
[0..*]
|
支持的事件类型:{
node-enter
}。
|
exception-handler
|
元素
|
[0..*]
|
一个异常处理器列表,用于这个流程节点中的委托类所抛出的所有异常。
|
名称
|
类型
|
多样性
|
描述
|
普通节点元素
|
|
|
请参考
普通节点元素
。
|
名称
|
类型
|
多样性
|
描述
|
signal
|
属性
|
可选的
|
{unsynchronized|never|first|first-wait|last|last-wait}
,默认是
last
。
signal
指定了任务的完成对流程执行继续的影响。
|
create-tasks
|
属性
|
可选的
|
{yes|no|true|false}
,默认是
true
。当需要在运行时通过计算来决定哪个任务将被创建时,可以设置为
false
,如果这样的话,在
node-enter
事件上加一个动作,在动作中创建任务,并且把
create-tasks
设置为
false
。
|
end-tasks
|
属性
|
可选的
|
{yes|no|true|false}
,默认是
false
。如果设置
end-tasks
为
true
,在离开节点时,所有打开的任务将被结束。
|
task
|
元素
|
[0..*]
|
当执行到达本节点时所应被创建的任务。
|
普通节点元素
|
|
|
请参考
普通节点元素
。
|
名称
|
类型
|
多样性
|
描述
|
sub-process
|
元素
|
1
|
与被节点相关联的子流程。
|
variable
|
元素
|
[0..*]
|
指定在子流程发起时数据如何从超流程拷贝到子流程,以及在子流程结束时数据如何从子流程拷贝到超流程。
|
普通节点元素
|
|
|
请参考
普通节点元素
。
|
名称
|
类型
|
多样性
|
描述
|
{end-state|state|node|task-node|process-state|super-state|fork|join|decision}
|
元素
|
[0..*]
|
超状态节点,超状态可以嵌套。
|
普通节点元素
|
|
|
请参考
普通节点元素
。
|
名称
|
类型
|
多样性
|
描述
|
普通节点元素
|
|
|
请参考
普通节点元素
。
|
名称
|
类型
|
多样性
|
描述
|
普通节点元素
|
|
|
请参考
普通节点元素
。
|
名称
|
类型
|
多样性
|
描述
|
handler
|
元素
|
要么指定“
handler
”元素,或者在转换上指定条件。
|
一个
org.jbpm.jpdl.Def.DecisionHandler
的实现名称。
|
transition
|
元素
|
[0..*]
|
离开转换。决策的离开转换可以被扩展为拥有一个条件,决策会查找条件计算为
true
的第一个转换,没有条件的转换被认为计算为
true
(为了建模“
otherwise
”分支)。请参考
condition元素
。
|
普通节点元素
|
|
|
请参考
普通节点元素
。
|
名称
|
类型
|
多样性
|
描述
|
type
|
属性
|
必需的
|
表示相对于事件要放置的元素事件类型。
|
{action|script|create-timer|cancel-timer}
|
元素
|
[0..*]
|
在这个事件上将要执行的动作列表。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
可选的
|
转换的名称。注意,每个节点的离开转换必须有一个不同的名称。
|
to
|
属性
|
必需的
|
目标节点的分级名称,有关分级名称的更多信息请参考“
第9.6.3节分级命名
”。
|
{action|script|create-timer|cancel-timer}
|
元素
|
[0..*]
|
发生转换时将要执行的动作。注意,转换的动作无需放入事件(因为只有一个事件)。
|
exception-handler
|
元素
|
[0..*]
|
一个异常处理器列表,用于这个流程节点中的委托类所抛出的所有异常。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
必需的
|
动作的名称。当动作被指定名称后,它们可以在流程定义中被查出,这对于运行时动作以及仅一次声明动作是有用的。
|
class
|
属性
|
或者用
ref-name
,或者用
expression
。
|
实现
org.jbpm.graph.def.ActionHandler
接口的类的全名。
|
ref-name
|
属性
|
或者用
class
。
|
所引用动作的名称。如果指定一个引用动作,则本动作不需要再做处理。
|
expression
|
属性
|
或者指定一个
class
,或者
ref-name
。
|
一个解决一个方法的
jPDL
表达式。请参考“
第16.3节表达式
”。
|
accept-propagated-events
|
属性
|
可选的
|
{yes|no|true|false}
,默认是
yes|true
。如果设置为
false
,则动作仅在本动作元素的触发事件上被执行。更多信息,请参考“
第9.5.4 事件传播
”。
|
config-type
|
属性
|
可选的
|
{field|bean|constructor|configuration-property}
。指定动作对象将被怎样创建以及本元素的内容怎样象配置信息那样被动作对象所使用。
|
async
|
属性
|
{true|false}
|
默认
false
,这意味着动作将在当前执行的线程中被执行。如果设置为
true
,一个消息将被发送到命令执行器,并且执行器组件将在一个独立的事务中同步执行动作。
|
|
{
内容
}
|
可选的
|
action
的内容可以被作为你定制动作实现的配置信息,这是考虑到可重用的委托类的创建。有关委托配置的更多信息,请参考“
第16.2.3节委托配置
”。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
可选的
|
脚本动作的名称。当动作被指定名称后,它们可以在流程定义中被查出,这对于运行时动作以及仅一次声明动作是有用的。
|
accept-propagated-events
|
属性
|
可选的
[0..*]
|
{yes|no|true|false}
,默认是
yes|true
。如果设置为
false
,则动作仅在本动作元素的触发事件上被执行。更多信息,请参考“
第9.5.4 事件传播
”。
|
expression
|
元素
|
[0..1]
|
beanshell
脚本。如果你没有指定
variable
元素,可以写表达式作为脚本元素的内容(忽略
expression
元素标签)。
|
variable
|
元素
|
[0..*]
|
脚本所需变量。如果没有指定变量,则当前令牌的所有变量将被装载到脚本,当你想要限制装载到脚本中的变量数量时使用
variable
。
|
名称
|
类型
|
多样性
|
描述
|
|
{
内容
}
|
|
一个
beanshell
脚本。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
必需的
|
流程变量的名称。
|
access
|
属性
|
可选的
|
默认是
read,write
,用逗号分割的一个访问列表。迄今为止,使用的访问仅为
read
,
write
和
required
。
|
mapped-name
|
属性
|
可选的
|
默认是变量的名称。用来指定变量名称被映射的名称,
mapped-name
的含义依赖于这个元素所被使用的上下文。对于一个脚本,将是一个脚本变量名称;对于一个任务控制器,将是任务表单参数的标签;对于一个
process-state
,将是在子流程中使用的变量名称。
|
名称
|
类型
|
多样性
|
描述
|
expression
|
属性
|
或者用
class
|
一个
jPDL
表达式,返回结果被用
toString()
方法转换为字符串,结果字符串应该与某个离开转换匹配。请参考“
第16.3 表达式
”。
|
class
|
属性
|
或者用
ref-name
|
实现了
org.jbpm.graph.node.DecisionHandler
接口的类的全名。
|
config-type
|
属性
|
可选的
|
{field|bean|constructor|configuration-property}
。指定动作对象将被怎样创建以及本元素的内容怎样象配置信息那样被动作对象所使用。
|
|
{
内容
}
|
可选的
|
action
的内容可以被作为你定制动作实现的配置信息,这是考虑到可重用的委托类的创建。有关委托配置的更多信息,请参考“
第16.2.3节委托配置
”。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
可选的
|
定时器的名称。如果没有指定名称,则采用外部的节点名称。注意,每个定时器应该有一个唯一的名称。
|
duedate
|
属性
|
必需的
|
所指定的定时器创建到定时器执行之间的期限(可以用业务时间来表示)。请参考“
第14.1节期限
”中的语法。
|
repeat
|
属性
|
可选的
|
{duration|’yes’|’true’}
当一个定时器在预期时间执行后,“
repeat
”可选项指定了在离开节点之前重复的执行定时器之间的期限。如果指定为
true
或
yese
,则与
duedate
相同的期限被使用。请参考“
第14.1节期限
”的语法。
|
transition
|
属性
|
可选的
|
当定时器执行、定时器事件触发后以及执行动作时时所使用的转换名称。
|
cancel-event
|
属性
|
可选的
|
这个属性只用在任务的定时器中,它指定了定时器将被取消的事件。默认是
task-end
事件,但是也可以被设置为如
task-assign
或
task-start
。
cancel-event
的类型也可以通过指定一个用逗号分割的列表被组合。
|
{action|script|create-timer|cancel-timer}
|
元素
|
[0..*]
|
当定时器被触发时所应被执行的动作。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
可选的
|
定时器的名称。这个名称可被用于用一个
cancel-timer
动作取消定时器。
|
duedate
|
属性
|
必需的
|
所指定的定时器创建到定时器执行之间的期限(可以用业务时间来表示)。请参考“
第14.1节期限
”中的语法。
|
repeat
|
属性
|
可选的
|
{duration|’yes’|’true’}
当一个定时器在预期时间执行后,“
repeat
”可选项指定了在离开节点之前重复的执行定时器之间的期限。如果指定为
true
或
yese
,则与
duedate
相同的期限被使用。请参考“
第14.1节期限
”的语法。
|
transition
|
属性
|
可选的
|
当定时器执行、定时器事件触发后以及执行动作时时(如果要)所获取的转换名称。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
可选的
|
要被取消的定时器的名称。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
可选的
|
任务的名称。命名的任可以被引用并且可以通过
TaskMgmtDefinition
被查出。
|
blocking
|
属性
|
可选的
|
{yes|no|true|false}
,默认是
false
。如果
blocking
设置为
true
,当任务没有结束时节点不能被离开;如果设置为
false
(默认),令牌上的一个新号被用来继续执行并离开节点。默认设置为
false
,因为通常是由用户接口来强制阻塞。
|
signalling
|
属性
|
可选的
|
{yes|no|true|false}
,默认是
true
。如果设置
signalling
为
false
,则本任务将没有触发令牌继续的能力。
|
duedate
|
属性
|
可选的
|
一个绝对的期限表达式或象“
第14章业务日历
”中解释的业务时间。
|
swimlane
|
属性
|
可选的
|
引用一个
swimlane
,如果在任务上指定了一个
swimlane
,则
assignment
将被忽略。
|
priority
|
属性
|
可选的
|
{highest,high,normal,low,lowest}
之一。作为选择,可以为
priority
指定任何整数,供参考:
(highest=1,lowest=5)
。
|
assignment
|
元素
|
可选的
|
描写一个
委托
,该委托将在任务被创建时把任务分配给一个参与者。
|
event
|
元素
|
[0..*]
|
支持的事件类型:{
task-create|task-start|task-assign|task-end
}。为了任务分配,我们特别的为
TaskInstance
添加了一个非持久化的属性
previousActorId
。
|
exception-handler
|
元素
|
[0..*]
|
一个异常处理器列表,用于这个流程节点中的委托类所抛出的所有异常。
|
timer
|
元素
|
[0..*]
|
指定一个监视本任务执行期限的一个定时器。对于任务定时器特殊的是可以指定
cancel-event
,
cancel-event
默认是
task-end
,但是它可以被自定义如
task-assign
或
task-start
。
|
controller
|
元素
|
[0..1]
|
指定流程变量怎样被转换为任务表单参数。任务表单参数有用户界面使用,用力向用户表现一个任务表单。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
必需的
|
泳道的名称。泳道可以被引用并且可以通过
TaskMgmtDefinition
被查出。
|
assignment
|
元素
|
[1..1]
|
指定泳道的分配。这个分配在本泳道中的第一个任务实例被创建时完成。
|
名称
|
类型
|
多样性
|
描述
|
expression
|
属性
|
可选的
|
由于历史原因,这个属性的表达式不是
jPDL表达式
,而是对
jBPM
身份组件的一个分配表达式。有关怎样写
jBPM
身份组件表达式的更多信息,请参考“
第11.11.2节分配表达式
”。注意,这个依赖于
jbpm
身份组件。
|
actor-id
|
属性
|
可选的
|
一个
actorId
,可以与
pooled-actors
协同使用。
actor-id
被作为
一个表达式
,因此你可以引用一个固定的
actorId
,如
actor-id=”bobthebuiler”
;或者你可以引用一个可以返回一个字符串的属性或方法,如
actor-id=”myVar.actorId”
,这将调用任务实例变量“
myVar
”上的
getActorId
方法。
|
pooled-actors
|
属性
|
可选的
|
一个逗号分割的
actorId
列表,可以与
actor-id
协同使用。一个固定的参与者池可以指定如下:
pooled-actors=”chicagobulls,pointersisters”
。
pooled-actors
被作为
一个表达式
,因此你可以引用一个返回
String[]
、
Collection
、或一个逗号分割的池中的参与者列表的属性或方法。
|
class
|
属性
|
可选的
|
一个实现
org.jbpm.taskmgmt.def.AssignmentHandler
接口的类的全名称。
|
config-type
|
属性
|
可选的
|
{field|bean|constructor|configuration-property}
。指定分配处理器对象(
assignment-handler-object
)对象将被怎样创建以及本元素的内容怎样象配置信息那样被分配处理器对象所使用。
|
|
{
内容
}
|
可选的
|
assignment
元素的内容可以被作为分配处理器(
AssignmentHandler
)实现的配置信息,这是考虑到可重用的委托类的创建。有关委托配置的更多信息,请参考“
第16.2.3节委托配置
”。
|
名称
|
类型
|
多样性
|
描述
|
class
|
属性
|
可选的
|
一个实现
org.jbpm.taskmgmt.def.TaskControllerHandler
接口的类的全名称。
|
config-type
|
属性
|
可选的
|
{field|bean|constructor|configuration-property}
。指定分配处理器对象(
assignment-handler-object
)对象将被怎样创建以及本元素的内容怎样象配置信息那样被分配处理器对象所使用。
|
|
{
内容
}
|
|
controller
元素的内容要么是指定的任务控制处理器的配置信息(如果指定了
class
属性),要么必须是一个
variable
元素列表(如果没有指定任务控制器)。
|
variable
|
元素
|
[0..*]
|
如果没有通过
class
属性指定任务控制处理器,则
controller
元素的内容必须是变量列表。
|
名称
|
类型
|
多样性
|
描述
|
name
|
属性
|
必需的
|
子流程的名称。要知道怎样测试字流程,请参考“
第18.3节测试子流程
”。
|
version
|
属性
|
可选的
|
子流程的版本。如果没有指定版本,则给定流程的最新版本将被使用。
|
名称
|
类型
|
多样性
|
描述
|
|
{
内容
}
或属性
表达式
|
必需的
|
condition
元素的内容是一个计算结果为布尔值的
jPDL表达式
。决策采用第一个表达式处理结果为
true
的转换(按在
processdefinition.xml
中的顺序),如果没有条件处理结果为
true
,则采用默认离开转换(也及时第一个)。
|
名称
|
类型
|
多样性
|
描述
|
exception-class
|
属性
|
可选的
|
指定与本异常处理器所匹配的
java throwable
类,如果这个没有指定这个属性,则它匹配所有异常(
java.lang.Throwable
)。
|
action
|
元素
|
[1..*]
|
当异常被异常处理器捕获时将要执行的动作列表。
|