Tibco BW使用Designer工具来进行业务流程的建模, BW的process engine为这些流程定义创建实例化并执行
一、Activities
Activities是流程定义的组成单元,相对于BW,它表现为对于各个外部系统接口的操作以及内部的流转。Activities通过Designer工具中拖拽各种palettes下的各种activity节点控件来设计。
每种activity包含有两个或以上的选项卡来设置与其相关的属性
(1).Configuration 、Advanced Tab
提供包括Name、Description和基于此种activity的配置 (2).Event Tab
Event Tab适用于需要配置来源事件(incoming event)的activity,在事件发生前,这个activity将会被挂起(suspend)。 两个配置参数:
<1>.Candidate Event Key
Candidate Event Key是用于验证来源消息是否符合要求的表达式,可以使用Xpath表达式来指定,这个来源消息必须是来自于来源事件(incoming event)才可以。
<2>.Event Timeout(msec)
如果来源事件在activity之前到达,那么中间这个时间超过多久就认为这个事件失效了。
以下是需要来源事件(event tab)的activities列表
(3).Editor Tab
当ativitity不具备一个well-known的数据结构时,Editor Tab可以为activity的输入输出指定一个数据表,指定的数据表对于activity的input和output都有效
比如,在使用Publish Rendezvous Message activity时,Input Editor可以定义一个数据表来存储想要发布的消息
五个配置参数来配置数据表中的每一个数据元素(Data Item): Content:定义数据元素的内容 Name:数据元素名称
Cardinality:限定条件。包括Required、Optional、Repeating, Zero or More(*)、Repeating, One or More(+)
Type:数据类型(XML、大量数据类型table8,page 59 in bw_design_guide) Schema Name:关联XML表
(4).Input Tab
在当前activity之前所有的activities的输出将被映射到当前activity的输入 (input schema)
Input Tab为之提供了数据映射和数据转换,可以为当前activitiy input schema的每一个元素赋值 (5).Output Tab
指当前Activity的输出,这里显示output的细则,但是不可以被更改
二、Process Starter
Process Starter是一些特殊的Activities,这些Activities的启动依赖于某个事件的发生,所以Process Starter可以作为流程的Start Activity,要注意配置具有合适事件源的pocess starter作为流程的起点。一个流程定义中只能有一个Process Starter。。
我们往往可以把具有不同类型process starter的流程部署运行在不同的server上,实现业务流程的集中高效处理。
所有的Process Starter都有一个misc tab来设置参数:
<1>.Sequencing Key
这个参数使用一个Xpath表达式,指明了process instance的执行顺序。如果Sequencing Key参数值相同,那么它们会按照process instance被创建的顺序执行。 <2>CustomId
这个参数使用一个Xpath表达式,为每一个process instance指明了一个id,这个id在Administrator工具的View Service列表可以看到,同时也存在于$_processContext这个流程变量中
三、Start Activity 和 End Activity
Start Activity是流程定义中的第一个Activity,一般有两种情况:
(1) 当一个Process Starter添加到流程定义中时,start activity将会被替换掉,所以可以认为Process Starter也是一种特殊的Start Activity。
(2) 当一个流程(Subprocess)被另外一个流程调用时,这时被调用的流程的Start Activity主要被用来定义需要input到这个流程的信息
End Activity是一个流程定义的结尾。当一个流程被另一个流程调用时,主流程可能希望利用被调用流程的输出数据,那么此时可以把被调用流程的数据映射到被调用流程End Activity的输出表(out schema)上,这样主流程就可以利用子流程的输出数据了。
End Activity的Error Schema Tab还可以定义流程抛出的error data,一般我们可以定义多个error schema对应多种不同类型的errors。
四、Transtions and Conditions
流转和条件(Transtions and Conditions)控制流程图的流向。
Transtion在BW中是单向的,不可以再draw一个Transtion指向到已经通过的Activity。如果想要使用循环(Looping),需要使用Group来指定一个需要多次执行的activities群组。
可以为Transtion添加转移的条件(Condition),Condtion Type可以设置为: <1>Success 无条件转移
<2>Success with condition 条件转移
<3>Success if no matching condition 不满足条件的转移 <4>Error 异常转移
对于每个Activity出发的多分支Transition,Success和Error转移都只能有一个
五、Group
Group用来指定一些Activities的集合,它主要用于以下情况:
(1).需要为一组Activities创建一个公共的异常转移(error transition)时,类似于一个try catch block。

