资源描述
一 JPDL
步骤定义
1.1 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..*]
一个异常处理器列表,用于这个步骤定义中委托类所抛出全部异常。
1.2 node(自动节点)
这种节点和State相反,也称自动节点。当业务程序实例实施到这个节点,不会停止实施。而是会继续往下实施。假如该节点存在多个离开转向。那么,就会实施其中第一个离开转向,在Node状态中,不需要外部参与者参与,业务步骤这个部分是自动、即时完成。
名称
类型
数量
描述
action|script|create-timer|cancel-timer
事件
1
用于表示这个节点行为定制动作。
一般节点元素
请参考一般节点元素。
1.3 start-state(开始状态)
start-state是我们整个步骤开始节点,全部步骤实例从这里开始。
名称
类型
数量
描述
Name
属性
可选
节点名称。
Task
元素
[0..1]
起始一个步骤实例任务,或用来捕捉步骤提议者
Event
元素
[0..*]
支持事件类型:{node-leave}。
transition
元素
[0..*]
离开转换,每个离开节点转换必需有一个不一样名称。
exception-handler
元素
[0..*]
一个异常处理器列表,用于这个步骤节点中委托类所抛出全部异常。
1.4 end-state(结束节点)
对于每一个步骤定义全部会有一个结束节点,和开始节点对应
名称
类型
数量
描述
Name
属性
必需
结束状态名称。
event
元素
[0..*]
支持事件类型:{node-enter}。
exception-handler
元素
[0..*]
一个异常处理器列表,用于这个步骤节点中委托类所抛出全部异常。
1.5 state(状态)
State节点也叫手工节点,进入到这种节点,整个步骤实施就会中止。直到系统外参与者提议继续实施命令,即调用signal或end方法,业务程序实例实施才能够继续下去。
名称
类型
数量
描述
name
属性
必需
节点名称。
async
属性
{true|false},默认是false
假如设置为true,这个节点将会异步实施。请参考”异步实施”章节。
transition
元素
[0..*]
离开转换。每个离开节点转换必需有一个不一样名称,最多只许可全部离开转换中一个没有名称。第一个转换被指定为默认转换,当离开节点而没有指定转换时,默认转换发生。
event
元素
[0..*]
支持事件类型:{node-enter|node-leave}。
exception-handler
元素
[0..*]
一个异常处理器列表,用于这个步骤节点中委托类所抛出全部异常。
timer
元素
[0..*]
指定一个定时器,用来监视节点中一个实施所连续时间。
1.6 task-node (任务节点)
其性质和node节点一样,在没有task时候,也全部是自动实施,不等候。task-node被归类为一个等候节点,是指在task-node中task列表中task没有全部实施完之前,它会一直等候。Task能够在task-node节点下定义,也能够挂在process-definition节点下。最普遍方法是在task-node节点下定义一个或多个任务。默认情况下,步骤在task-node节点会处于等候状态,直到全部任务被实施完成。Task实施是按次序实施,任务全部完成后,token仍然不会指向后面节点;需要自己手动调用processInstance.signal()才会驱动步骤到下面节点。
名称
类型
数量
描述
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..*]
当实施抵达本节点时所应被创建任务。
一般节点元素
请参考一般节点元素。
为了帮助读者了解task-node节点signal属性,这里举例以下:
对于这么步骤定义:
<task-node name='a'>
<task name='laundry' />
<task name='dishes' />
<task name='change nappy' />
<transition to='b' />
</task-node>
a) 这里没有定义signal属性值,这就表明当节点中三个任务全部完成后,步骤才进入后面节点
b) 当<task-node name='a' signal='unsynchronized'>表明token不会在本节点停留,而是直接到后面节点
c) 当<task-node name='a' signal='never'>表明三个任务全部完成后,token仍然不会指向后面节点;需要自己手动调用processInstance.signal()才会驱动步骤到下面节点
d) 当<task-node name='a' signal='first'>表明只要有一个任务完成后,token就指向后面节点
e) 当<task-node name='a' signal='first-wait'>表明当第一个任务实例完成时继续实施;当在a节点入口处没有任务创建时,token在a任务节点处等候,直到任务被创建或完成。
f) 当<task-node name='a' signal='last'>时,这是默认值,和不设置signal属性情况相同。
g) 当<task-node name='a' signal='last-wait'>时,当最终一个任务实例完成时候继续实施下去。 当a这个任务节点没有任务被建立时,任务节点等候直到任务被建立。
1.7 fork(分支)
一个fork把一个实施路线分割成多个实施路线. 默认分支行为是为每个离开分支转换建立一个子令牌,在令牌要抵达分支之间建立一个父母-儿女关系
名称
类型
数量
描述
name
属性
必需
节点名称。
async
属性
{true|false},默认是false
假如设置为true,这个节点将会异步实施。请参考”异步实施”章节。
transition
元素
[0..*]
离开转换。每个离开节点转换必需有一个不一样名称,最多只许可全部离开转换中一个没有名称。第一个转换被指定为默认转换,当离开节点而没有指定转换时,默认转换发生。
event
元素
[0..*]
支持事件类型:{node-enter|node-leave}。
exception-handler
元素
[0..*]
一个异常处理器列表,用于这个步骤节点中委托类所抛出全部异常。
timer
元素
[0..*]
指定一个定时器,用来监视节点中一个实施所连续时间。
1.8 join(联合)
默认联合(join)假设全部来自同一个父母子令牌联合,当在上使用fork(分支)这个情形就出现了而且全部令牌分支建立,而且抵达同一个联合(join)。当全部令牌全部进入联合时候联合就结束了, 然后联合将检验父母-儿女, 当全部弟兄令牌抵达联合(join),父母令牌将传输(唯一)离开转换,当还有弟兄令牌活动时,联合行为将作为等候状态。
名称
类型
数量
描述
name
属性
必需
节点名称。
async
属性
{true|false},默认是false
假如设置为true,这个节点将会异步实施。
transition
元素
[0..*]
离开转换。每个离开节点转换必需有一个不一样名称,最多只许可全部离开转换中一个没有名称。第一个转换被指定为默认转换,当离开节点而没有指定转换时,默认转换发生。
event
元素
[0..*]
支持事件类型:{node-enter|node-leave}。
exception-handler
元素
[0..*]
一个异常处理器列表,用于这个步骤节点中委托类所抛出全部异常。
timer
元素
[0..*]
指定一个定时器,用来监视节点中一个实施所连续时间。
对于Join节点,我们知道默认是要等到全部分支全部到了步骤才能往下继续走,要改变这一情况,我们能够经过给该节点加Action方法改变该Join节点Discriminator,就能够使只要有一个分支抵达步骤就能够继续实施效果了
1.9 decision(决议)
一个decision用以决定在多个实施路径中哪个才能够被实施。假如你是一个程序员,把它能够了解成switch case结构即可,一个decision能够含有很多离开transition。
名称
类型
数量
描述
handler
元素
要么指定“handler”元素,或在转换上指定条件。
一个org.jbpm.jpdl.Def.DecisionHandler实现名称。
transition
元素
[0..*]
离开转换。决议离开转换能够被扩展为拥有一个条件,决议会查找条件计算为true第一个转换,没有条件转换被认为计算为true(为了建模“otherwise”分支)。请参考condition元素。
一般节点元素
请参考一般节点元素。
Handler所指定DecisionHandler实现类里decide方法返回一个字符串,表示要实施哪个transition
1.10 transition(转换)
转换用来指定节点之间连接。transition元素放在node里面,那么这个transition就会从这个节点出离开。
名称
类型
数量
描述
name
属性
可选
转换名称。注意,每个节点离开转换必需有一个不一样名称。
to
属性
必需
目标节点分级名称,表示将要达成那个节点名称.
action|script
|create-timer
|cancel-timer
元素
[0..*]
发生转换时将要实施动作。注意,转换动作无需放入事件(因为只有一个事件)。
exception-handler
元素
[0..*]
一个异常处理器列表,用于这个步骤节点中委托类所抛出全部异常。
1.11 event(事件)
JBPM定义了一系列和工作流节点元素相关联事件,比如,步骤实例运行过程中,能够触发节点进入(node-enter)、节点离开 (node-leave)、步骤开启(process-start)、步骤结束(process-end)、任务创建(task-create)、 任务分配(task-assign)、任务开启(task-start)等事件。
在步骤定义时,JBPM事件均和action绑定。事件触发将造成对应actions实施。
名称
类型
数量
描述
type
属性
必需
表示相对于事件要放置元素事件类型。
action|script|create-timer|
cancel-timer
元素
[0..*]
在这个事件上将要实施动作列表。
1.12 action(动作)
一个action是一段java代码。在步骤实施期间在部分事件之上定义,这么会在相关事件触发时自动在工作流引擎上实施。
名称
类型
数量
描述
name
属性
必需
动作名称。当动作被指定名称后,它们能够在步骤定义中被查出,这对于运行时动作和仅一次申明动作是有用。
class
属性
或用ref-name,或用expression。
实现org.jbpm.graph.def.ActionHandler接口类全名。
ref-name
属性
或用class。
所引用动作名称。假如指定一个引用动作,则本动作不需要再做处理。
expression
属性
或指定一个class,或ref-name。
一个处理一个方法jPDL表示式。
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节委托配置”。
1.13 script(脚本)
Script里是动作实施beanshell脚本.
名称
类型
数量
描述
name
属性
可选
脚本动作名称。当动作被指定名称后,它们能够在步骤定义中被查出,这对于运行时动作和仅一次申明动作是有用。
Accept
-propagated
-events
属性
可选[0..*]
{yes|no|true|false},默认是yes|true。假如设置为false,则动作仅在本动作元素触发事件上被实施.
expression
元素
[0..1]
beanshell脚本。假如你没有指定variable元素,能够写表示式作为脚本元素内容(忽略expression元素标签)。
variable
元素
[0..*]
脚本所需变量。假如没有指定变量,则目前令牌全部变量将被装载到脚本,当你想要限制装载到脚本中变量数量时使用variable。
1.14 expression(表示式)
Expression里可书写Beanshell脚本
名称
类型
数量
描述
{内容}
一个beanshell脚本。
1.15 variable(变量)
一个是变量是一个key-value对。它和过程实例(一次过程实施)相关联。Key是java.lang.string,value是任何java类型任何pojo。所以任何是java类型,即使不给jbpm知道也能被应用到变量中。JBPM步骤变量在尽可能模拟java.util.map语义。这一点能够经过JBPMAPI来了解。也就是说一个变量只能当它被插入时被赋值,任何java类型全部能够作为变量中value。
名称
类型
数量
描述
name
属性
必需
步骤变量名称。
access
属性
可选
默认是read,write,用逗号分割一个访问列表。迄今为止,使用访问仅为read,write和required。
mapped-name
属性
可选
默认是变量名称。用来指定变量名称被映射名称,mapped-name含义依靠于这个元素所被使用上下文。对于一个脚本,将是一个脚本变量名称;对于一个任务控制器,将是任务表单参数标签;对于一个process-state,将是在子步骤中使用变量名称。
1.16 handler(句柄)
Handler是在定义一个decision时需要为其定义一个DecisionHandler时采取。
名称
类型
数量
描述
expression
属性
或用class
一个jPDL表示式,返回结果被用toString()方法转换为字符串,结果字符串应该和某个离开转换匹配。
class
属性
或用ref-name
实现了org.jbpm.graph.node.DecisionHandler接口类全名。
Config
-type
属性
可选
{field|bean|constructor|configuration-property}。指定动作对象将被怎样创建和本元素内容怎样象配置信息那样被动作对象所使用。
{内容}
可选
Action里内容能够用来帮助结合我们业务来处理我们步骤,同时我们能够在Action里加上业务处理逻辑,以愈加好利用步骤.
1.17 timer(定时器)
定时器timer能够被用于decision fork join node process-state state super-state task-node,能够设置开始时间duedate和频率repeat,定时器动作能够是所支持任何动作元素,如action或script。
timer 还有一个很关键属性cancel-event,这个是timer和task结合时使用,任务定时器cancel-event能够被定制。默认情况 下,当任务被结束时(=完成)任务上定时器将被取消,这是经过在定时器上使用cancel-event属性,步骤开发者能够定制诸如task- assign或task-start。cancel-event支持多个事件,经过在属性中指定一个用逗号分割列表,能够组合cancel-event 类型。
名称
类型
数量
描述
name
属性
可选
定时器名称。假如没有指定名称,则采取外部节点名称。注意,每个定时器应该有一个唯一名称。
duedate
属性
必需
所指定定时器创建到定时器实施之间期限(能够用业务时间来表示)。
repeat
属性
可选
{duration|yes|true}当一个定时器在预期时间实施后,“repeat”可选项指定了在离开节点之前反复实施定时器之间期限。假如指定为true或false,则和duedate相同期限被使用。
transition
属性
可选
当定时器实施、定时器事件触发后和实施动作时时所使用转换名称。
cancel-event
属性
可选
这个属性只用在任务定时器中,它指定了定时器将被取消事件。默认是task-end事件,不过也能够被设置为如task-assign或task-start。cancel-event类型也能够经过指定一个用逗号分割列表被组合。
action|script|
create-timer|
cancel-timer
元素
[0..*]
当定时器被触发时所应被实施动作。
1.18 create-timer(创建定时器)
Create-timer是定时器创建
名称
类型
数量
描述
name
属性
可选
定时器名称。这个名称可被用于用一个cancel-timer动作取消定时器。
duedate
属性
必需
所指定定时器创建到定时器实施之间期限(能够用业务时间来表示)。请参考“第14.1节期限”中语法。
repeat
属性
可选
{duration|’yes’|’true’}当一个定时器在预期时间实施后,“repeat”可选项指定了在离开节点之前反复实施定时器之间期限。假如指定为true或yese,则和duedate相同期限被使用。请参考“第14.1节期限”语法。
transition
属性
可选
当定时器实施、定时器事件触发后和实施动作时时(假如要)所获取转换名称。
1.19 cancel-timer(取消定时器)
Cancel-timer是定时器取消
名称
类型
数量
描述
name
属性
可选
要被取消定时器名称。
1.20 task(任务)
Task 是是步骤定义里一部分,它决定了task instance创建和分配
名称
类型
数量
描述
name
属性
可选
任务名称。命名任能够被引用而且能够经过TaskMgmtDefinition被查出。
blocking
属性
可选
{yes|no|true|false} 假如blocking设置为true,当任务没有结束时节点不能被离开(必需要经过taskInstance.end()方法离开节点);假如设置为false(默认),许可用户经过signal继续实施和离开节点。默认设置为false,因为通常是由用户接口来强制阻塞。
signalling
属性
可选
{yes|no|true|false},默认是true。假如设置signalling为false,则任务没有触发令牌继续能力。
duedate
属性
可选
延迟时间(任务实施延迟时间)。请见业务日历中解释。
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]
指定步骤变量怎样被转换为任务表单参数。任务表单参数有用户界面使用,用力向用户表现一个任务表单。
1.21 swimlane(泳道)
实际应用中,一个人是一个步骤中多个Task参与者(actor)情况是很常见。在jbpm中经过创建一个swimlane而且把swimlane赋给一个task方法来设置目前task参与者(actor)。一个业务步骤中swimlane能够被看做为一个参与者参与者对象名称,当然它不一定是固定某个人,它能够是一个用户组,一个特定用户角色等。首次实施抵达一个Task,赋给该Task一个swimlane就会算出参与者(actor)。
名称
类型
数量
描述
name
属性
必需
泳道名称。泳道能够被引用而且能够经过TaskMgmtDefinition被查出。
assignment
元素
[1..1]
指定泳道分配。这个分配在本泳道中第一个任务实例被创建时完成。
1.22 assignment(委派)
当步骤实施到某个Task时候,引时步骤引挚要调用对应swimlane或assignment将目前task分配(委派)给某个参与者,外部参与者能够是一个人也能够是某个系统等。
名称
类型
数量
描述
expression
属性
可选
因为历史原因,这个属性表示式不是jPDL表示式,而是对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)实现配置信息,这是考虑到可重用委托类创建。
1.23 controller(控制器)
在任务实施时,可能需要读、写步骤变量;在任务完成并提交时,可能需要写步骤变量。为此,jBPM提供了"任务变量"概念。在一些情况下,任务变量和流 程变量并非简单一一对应关系,比如,三个步骤变量代表三个月销售额,任务变量只需要它们平均值。为实现任务和步骤实例之间信息交流,jBPM设置 了任务控制器机制。该机制也采取递进模式:首先,jBPM提供基础(默认)任务控制器;假如不敷使用,二次开发人员能够使用自定义任务控制器。 jBPM任务控制器机制在步骤变量和任务变量之间架起了一座桥梁。
名称
类型
数量
描述
class
属性
可选
一个实现org.jbpm.taskmgmt.def.TaskControllerHandler接口类全名称。
Config
-type
属性
可选
{field|bean|constructor|configuration-property}。指定分配处理器对象(assignment-handler-object)对象将被怎样创建和本元素内容怎样象配置信息那样被分配处理器对象所使用。
{内容}
controller元素内容要么是指定任务控制处理器配置信息(假如指定了class属性),要么必需是一个variable元素列表(假如没有指定任务控制器)。
variable
元素
[0..*]
假如没有经过class属性指定任务控制处理器,则controller元素内容必需是变量列表。
1.24 process-state 子步骤
process-state是JBPM提供用来处理子步骤节点,一个process-state只能对应一个子步骤,到底指到哪个子步骤能够在process-stateaction里指定,当token实施到指定子步骤时,子步骤就已经开启,不用像开启主步骤一样手工开启子步骤。其它部分处理就和一般步骤没有区分了。
名称
类型
数量
描述
name
属性
必需
名称。
Sub-process
元素
只能定义一个
子步骤
variable
变量
[0…*]
Variable是用来指定怎样把数据从父步骤copy到子步骤
1.25 sub-process 子步骤
名称
类型
数量
描述
name
属性
必需
子步骤名称
version
属性
可选
子步骤版本。假如没有指定该属性,默认将会采且该子步骤最终一个版本
1.26 condition 条件
名称
类型
数量
描述
{内容}或属性
表示式
必需
condition元素内容是一个计算结果为布尔值jPDL表示式。决议采取第一个表示式处理结果为true转换(按在processdefinition.xml中次序),假如没有条件处理结果为true,则采取默认离开转换(也就是第一个)。
1.27 exception-handler 异常处理
Jbpm异常处理机制仅仅集中于java异常,步骤定义本身实施不会造成什么异常,只有在实施委托类时才会造成异常。
在步骤定义(process-definitions)添加exception-handler对整个步骤起作用、节点(nodes)上添加异常只对目前节点起作用(同时假如在process-definitions里也设置了exception-handler那么将不会再实施process-definitions里exception-handler),和转换(transitions)添加exception-handler只对目前transitions起作用(同时假如在process-definitions里也设置了exception-handler那么将不会再实施process-definitions里exception-handler),能够指定一个异常处理(exception-handlers)清单,每个异常处理(exception-handler)有一个动作列表,当在委托类中发生异常时,会在步骤元素父层次搜索一个合适异常处理(exception-handler),当它被搜索到,则异常处理(exception-handler)动作将被实施。
注意,Jbpm异常处理机制和java异常处理不完全相同。在java中,一个捕捉异常能够影响控制流,而在Jbpm中,步骤不会被Jbpm异常处理机制所改变。异常要么被捕捉,要么不捕捉,没有被捕捉异常被抛向用户端(比如用户端调用token.signal()),而被捕捉异常则是经过Jbpmexception-handler,对于被捕捉异常,图实施仍会继续,就像没有异常发生一样。
在处理异常动作中,能够使用Token.setNode(Node node)把令牌放入图中任何节点。
名称
类型
数量
描述
exception-class
属性
可选
指定和本异常处理器所匹配java throwable类,假如这个没有指定这个属性,则它匹配全部异常(java.lang.Throwable)。
action
元素
[1..*]
当异常被异常处理器捕捉时将要实施动作列表。
二 XPDL之步骤定义元模型
XPDL元模型定义了步骤定义里所包含实体、它们关系和属性,其中属性不仅仅为了实施需要,很多属性是为了统计和监控需要。
2.1 包(Package)
步骤模型包含很多作用域大于步骤定义实体,比如参与者申明、应用程序申明和相关数据元素,它们可能被多个步骤定义所引用。为了避免每个步骤定义全部反复定义这些实体,XPDL引入包概念,包作为步骤定义容器,对步骤定义根据关联性进行分组。在包上定义实体被其包含步骤定义继承,同时,包能够为所属步骤定义申明一系列通用属性,比如作者、版本号、状态等。
XPDL里包等价于BPMN里业务步骤图(Business Process Diagram)。
2.2 泳道(Swimlanes)
泳道被用来对步骤定义和活动进行布局。我们使用泳道在步骤等级上定义参与者信息(部门、企业),在活动等级上定义实施者信息(角色、人员)。我们使用一系列非重合长方形来描述泳道,这些长方形称为池(Pool),同时,池又被细分为一系列子泳道(Lane)。以下图2-6所表示:
图 2-6泳道
一样在下图中描述了一个包含贷款应用步骤池。池中没有道。步骤能够是可重用子步骤或内嵌子步骤。
要注意迁移(次序流)能够穿越同一个池中道。迁移可能不会穿越池。
2.3 步骤定义(Process Definition)
步骤定义是对步骤建模和描述,为步骤中其它实体提供上下文信息。其属性包含创建时间、作者、初始化参数、实施优先级、时间约束、仿真信息等。
Xpdl2.1文档包含对步骤集(包)步骤定义。Xml文档不仅被模型工具、模拟工具和实施工具使用,它一样为bam报表工具提供了基础信息,尤其是为OLAP立体报表技术提供了维度和变量信息。
在这里我们描述了使用管理工具发送xpdl步骤定义到分析工具并传达能捕捉实施具体情况日志事件流企业步骤管理系统。分析工具依据步骤定义、参与者和队列信息来结构数据库和OLAP立方。分析工具处理事件来更新数据库中实际和维度上表,而且利用excel和(或)其它拥有步骤和企业智能工具立体处理事件来完成对切片和切块查看数据交互准备。
一个可供选择数据展示方法显示了步骤定义视觉环境中选择数据。这个能够由历史展示或动画实施系统或模拟运行来实现。
2.4活动(Activity)
活动是步骤中一个步骤,一个基础活动含有属性。这些属性提供了在这一步骤中谁能够实施这个活动、什么应用或Web服务会被调用、正在工作对象哪些内容被使用了和(或)被改变了等信息。参与者(资源)和应用可能会定义在一个步骤中,或被定义在企业步骤模型整个步骤集中。工作对象内容一样能够定义在一个步骤中或整个模型中。活动有部分其它属性更深入定义了它们特殊角色或它们是怎样实现一个步骤包含一个或多个活动,活动对应着步骤里一个工作单元。一个经典活动能被人力资源或计算机所实施。
XPDL活动粒度比较粗,分为四类,分别对应BPMN里任务、子步骤、网关和事件。以下图2-7所表示:
图 2-7XPDL活动和BPMN映射
2.5转移线(Transition)
活动之间经过转移线连接。转移线包含3个属性:源活动、目标活动和条件。转移线能够是有条件(设置表示式),也能够是无条件。
XPDL转移线对应于BPMN里次序流,以下图2-8所表示:
图 2-8XPDL转移线对应BPMN里次序流
2.6 参与者申
展开阅读全文