0.workflow标记:
Osworkflow流程定义xml文件的最外层结构:
<!ELEMENT workflow (meta*, registers?, trigger-functions?, global-conditions?, initial-actions, global-actions?, common-actions?, steps, splits?, joins?)>
1.action标记:
1.1 id属性:要求在整个流程定义文件内都是全局唯一的,而不仅仅是在包含它的steps标记中唯一。
1.2 name属性:action名称。
1.3 auto属性:当流程进入包含该action的step时,所有的条件(conditions)和约束(restrictions)都满足时action将自动执行。注意:在一个step内,每次的工作流变迁最多只有一个auto的action有效,当多个action同时满足上面条件时,在流程定义xml文件中,第一个匹配到的action将会自动执行。
1.4 finished属性:标示该action是否是终极action。一个终极action将使当前所有的steps结束并转移到历史表中,整个流程实例状态将被改为COMPLETED。
<!ELEMENT action (meta*, restrict-to? , validators?, pre-functions?, results, post-functions?)>
<!ATTLIST action
id CDATA #REQUIRED
name CDATA #REQUIRED
view CDATA #IMPLIED
auto (TRUE | FALSE | true | false) #IMPLIED
finish (TRUE | FALSE | true | false) #IMPLIED
>
2.common-action标记
一个公共(共享)的action
<!ELEMENT common-action (#PCDATA)>
<!ATTLIST common-action
id CDATA #REQUIRED
>
3.actions标记
一组common-action标记(0个或多个)或action标记(0个或多个),注意:必须有两者之一,否则非法。用在step标记中。
<!ELEMENT actions (common-action*, action*)>
4.arg标记:
标示一个函数的参数,参数的值将被解析,例如,如果变量foo值为”bar”,则”test ${foo}”将会被解析为”test bar”。该标记作为function的子标记。
<!ELEMENT arg (#PCDATA)>
<!ATTLIST arg
name CDATA #REQUIRED
>
5.conditions标记:
包含了一个或多个condition或嵌套conditions标记,用来标示AND和OR逻辑
该标记用在join、restrict-to、result标记中。
<!ELEMENT conditions (conditions | condition)*>
<!ATTLIST conditions
type (AND | OR) #IMPLIED
>
6.condition标记:
该标记的属性包括type,id,negate,name,主要用到的属性为type,表示condition的类型,一般的取值为class或beanshell。
<!ELEMENT condition (arg*)>
<!ATTLIST condition
type CDATA #REQUIRED
id CDATA #IMPLIED
negate CDATA #IMPLIED
name CDATA #IMPLIED
>
7.external-permissions标记:
工作流外部的一组许可,但是与工作流的实体相关。
在step标记中使用。
<!ELEMENT external-permissions (permission+)>
8.function标记:
function表示一个OSWorkflow中自动执行的函数代码块。
可以的属性包括type,id,name。常用的属性为type,可能的取值有class,beanshell。
<!ELEMENT function (arg*)>
<!ATTLIST function
type CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED
>
9. global-actions标记:
定义一系列的全局action,可以在任何step中执行。
使用在workflow标记中。
<!ELEMENT global-actions (action+)>
10.initial-actions标记:
在定义工作流实例状态前的一些初始化action。
使用在workflow标记中
<!ELEMENT initial-actions (action+)>
11.common-actions标记:
一组公用(共享)的action,可以被包含在任何step中,此时只需要声明一个带有id属性,但是没有body的action标记。
<!ELEMENT common-actions (action+)>
12.join标记:
表示两个或两个以上当前状态转变为一个新的状态。join的unconditional-result只能是一个step,而不能是另一个join或split。join只有当conditions为true时才会发生。
<!ELEMENT join (conditions, unconditional-result)>
<!ATTLIST join
id CDATA #REQUIRED
>
13.joins标记
一系列的join
用在wokflow标记中
<!ELEMENT joins (join*)>
14.meta标记
workflow,step,action的一些静态的元属性,用在workflow,step,action中。
<!ELEMENT meta (#PCDATA)>
<!ATTLIST meta
name CDATA #REQUIRED
>
15.permission标记:
一个外部许可,用在external-permissions标记中。
<!ELEMENT permission (restrict-to)>
<!ATTLIST permission
name CDATA #REQUIRED
id CDATA #IMPLIED
>
16.post-functions标记:
一组可以工作流实例状态变迁后执行的function,用在action,result,unconditional-result标记中。
<!ELEMENT post-functions (function+)>
17.pre-functions标记:
一组可以工作流实例状态变迁后执行的function,用在action,result,unconditional-result标记中。
<!ELEMENT pre-functions (function+)>
18.register标记:(看代码时好好研究,看怎么用)
一个可以在所有的function和validator作用域内容纳一个变量的类,用在registers标记中。
<!ELEMENT register (arg*)>
<!ATTLIST register
type CDATA #REQUIRED
variable-name CDATA #REQUIRED
id CDATA #IMPLIED
>
19.registers标记:
一组register标记,用在workflow标记中。
<!ELEMENT registers (register+)>
20.restrict-to标记:
一个对action和permission的约束,用在action和permission标记中。
<!ELEMENT restrict-to (conditions?)>
21.result标记:
表示一个条件结果,只有党conditions为true时,这个条件结果才会发生。用在results标记中。
<!ELEMENT result (conditions, validators?, pre-functions?, post-functions?)>
<!ATTLIST result
old-status CDATA #REQUIRED
status CDATA #IMPLIED
step CDATA #IMPLIED
owner CDATA #IMPLIED
split CDATA #IMPLIED
join CDATA #IMPLIED
due-date CDATA #IMPLIED
id CDATA #IMPLIED
display-name CDATA #IMPLIED
>
22.results标记:
一组条件结果(result)的集合和一个无条件结果(unconditional-result),用在action标记中。
<!ELEMENT results (result*, unconditional-result)>
23.split标记:
一个状态转变为一个或多个状态,所有的无条件结果都是step,而不是其它的split或join,用在splits标记中。
<!ELEMENT split (unconditional-result+)>
<!ATTLIST split
id CDATA #REQUIRED
>
24.splits标记:
一组split标记,用在workflow标记中。
<!ELEMENT splits (split+)>
25.step标记:
一个workflow的steps中只有一个唯一的step,用在steps标记中。
<!ELEMENT step (meta*, pre-functions?, external-permissions?, actions?, post-functions?)>
<!ATTLIST step
id CDATA #REQUIRED
name CDATA #REQUIRED
>
26.steps标记:
用在workflow标记中,一组step。
<!ELEMENT steps (step+)>
27.unconditional-result标记:
当所有的有条件结果(result)都不满足时,则会执行无条件结果(unconditional-result)。
<!ELEMENT unconditional-result (validators?, pre-functions?, post-functions?)>
<!ATTLIST unconditional-result
old-status CDATA #REQUIRED
status CDATA #IMPLIED
step CDATA #IMPLIED
owner CDATA #IMPLIED
split CDATA #IMPLIED
join CDATA #IMPLIED
due-date CDATA #IMPLIED
id CDATA #IMPLIED
display-name CDATA #IMPLIED
>
28.trigger-function标记:
一个有唯一Id,并且可以被外部任务调度程序调用的function。用在trigger-functions中。
<!ELEMENT trigger-function (function)>
<!ATTLIST trigger-function
id CDATA #REQUIRED
>
29.trigger-functions标记:
一组trigger-function,用在workflow标记中。
<!ELEMENT trigger-functions (trigger-function+)>
30.validator标记:
一个用来验证用户输入的类(class)或脚本(script)。用在validators标记中。
<!ELEMENT validator (arg*)>
<!ATTLIST validator
type CDATA #REQUIRED
name CDATA #IMPLIED
id CDATA #IMPLIED
>
31.validators标记:
一组validator标记,用在workflow标记中。用在action, initial-step, result, unconditional-result标记中。
<!ELEMENT validators (validator+)>
32.global-conditions标记:
一组conditions,会被每一个action检查,用在workflow标记中。
<!ELEMENT global-conditions (conditions?)>