StarFlow帮助文档
20112
变更控制单
版本号
作者
变更日期
变更原因
变更内容
V0.1
melin
2011-2-11
 
1. 产品介绍
产品简介
StarFlow是具有中国特的流程平台产品。它融入了国内电子政务与电信等行业的特殊要求,提供了灵活的工作任务分派策略、业务流程版本管理策略、丰富的流程模式、灵活的组织模型等特性,使得它能够从容应对复杂的中国特流程模式和人工流程的处理。
StarFlow采取了多种方式以保证流程引擎高效稳定的运行,满足大型流程应用建设需求,比如良好的事件驱动式系统架构、优化的数据库、集高速缓存等等。
业务概念
流程版本
流程版本是为了方便管理同一流程名称下的多个业务流程,而进行区分的标志。在StarFlow中为一个数字和点的序列,如1.1.1。在具有相同流程名称的多个版本当中,默认情况下,版本号最大的一个称为最新版本,当前发布有效的版本称为发布版本。发布版本和最新版本可以不是同一个版本。对于一个流程来说,发布版本最多有一个,最新版本有且只有一个。
触发事件
触发事件是流程实例运行过程中插入的一些用户自定义的动作,类似于数据库中的触发器。
触发事件包括触发时机和触发动作两部分含义:
1. 触发时机指启动、结束等可插入点;
2. 触发动作指在插入点可以插入的操作;
StarFlow包含流程级、环节级两个层次的触发事件。
回退
回退是流程运行过程中按照某种规则回到流程以前某种状态的操作,StarFlow支持"单步""按路径""回退到上一人工环节"等多种回退方式。
自由流
所谓"自由流"是指当一个环节运行完成后,将被启动、运行的后继环节不是由引擎根据流程图元间连接线上的条件判断决定的,而是由当前环节的参与者根据流程定义时的设置,在"可选择的环节范围内"动态指定,可以是一个也可以是多个。
多子流程
多子流程是BPS处理复杂的业务嵌套场景的一种解决方案。有两种场景需要使用多子流程
明确型:主业务流程在某个环节点需要产生多个子流程实例。
模糊型:业务需要"在部分环节间流转"的需求时。如下图:
实例B1B2B3和实例C1C2C3分别存在着依赖关系:B1->C1B2->C2B3->C3。此时可以把BC组装成单独的子流程,在主流程中使用多子流程的方式调用该子流程。如下图:
聚合模式
聚合模式,表示一个流程中某环节得以触发的方式。它包括"全部聚合(AND""单一聚合(XOR"以及"多路聚合(OR"三种情况:
"全部聚合"型聚合模式
表示该环节必须等到它的所有前驱环节全部完成才可以触发。
"单一聚合"型聚合模式
表示当该环节的若干前驱环节中只要有一个满足条件的环节完成,该环节即可被触发。
"多路聚合"型聚合模式
表示该环节必须等到它的所有满足条件的前驱环节全部完成才可以触发。满足条件的前驱环节包括:
它与该环节的连线是"默认值"
它与该环节连线上的条件为"true"
分支模式
分支模式,表示该环节结束后,它的后继环节的触发情况。它包括"全部分支(AND""单一分支(XOR"以及"多路分支(jsp帮助文档OR"三种情况:
"全部分支"型分支模式
表示该环节结束后它的所有后继环节将同时被触发。
"单一分支"型分支模式
如果该环节的分支模式为"单一分支",那么引擎会根据由该环节"射出"的连接线上的条件进行判断,决定该触发哪个后继环节。具体分为下面三种情况:
满足条件的连接线所指的环节被触发;
如果有若干个连接线上的条件都满足,那么比较连接线上的优先级,优先级高的那条连接线所指的环节将被触发;
如果连接线上的条件都不满足,那么取"默认值"的那条连接线所指的环节将被触发;
"多路分支"型分支模式
如果该环节的分支模式为"多路分支",那么引擎会根据由该环节"射出"的连接线上的条件进行判断,决定触发哪个或哪些后继环节。具体分为下面二种情况:
如果连接线上取"默认值",那么由此连接线所指的后继环节会被触发;
如果连接线上的条件满足,那么由此连接线所指的后继环节会被触发;
人工环节
    人工环节是对业务流程中需要人工干预环节的业务化包装,其通常指向一个与用户交互的表单。用户可以把人工任务组装成人工环节。一个人工任务的技术实现可以是一个JSP、一般的URL
Web Service环节
Web Service环节是对业务流程中需要调用web service自动化调用的包装,简化服务的调用,服务需要的参数可以与相关数据区中的数据关联。
2. 使用指南
基础知识
业务概念对象
在使用StarFlow产品的开发过程中,需理解和掌握5个业务概念对象------业务流程(流程定义)、环节定义、流程实例、环节实例、工作项。在您继续学习之前,我们首先来认识一下这5个贯穿BPS始终的对象。
1. 业务流程
也称流程定义。描述一个完整的业务过程,它由若干环节组成。包括流程的基本信息、开始和结束条件、组成的环节、环节间流转的规则、需要用户执行的工作任务 (工作项)、可能调用的应用程序以及流程相关数据等信息。提交到流程定义库后会包含流程定义ID(流程定义的唯一标识)、流程定义名称、版本号、流程定义 描述以及提交时间等描述。
2. 环节定义
包含在流程定义之中,代表了一个相对独立的逻辑工作单元。一个环节代表一个需要由相关资源处理,或者由计算机处理的任务。其中定义了该环节的基本信息、执行该环节的参与者、时间限制、工作项信息、触发事件、启动策略等信息。
3. 流程实例
当流程定义提交、发布到服务器以后,就可以启动该流程,启动时会创建流程定义的一个实例,称为流程实例。同一个流程定义可以有多个流程实例。每一个流程实 例会被保存在流程实例库(ProcessInstance)中,包括流程实例ID(唯一标识)、流程实例名称、流程定义ID、流程实例的状态、该实例的启动 者、启动时间等信息。
例如:当流程定义"请假流程"提交、发布后。张三启动该流程,名为"张三的请假流程"。那么"张三的请假流程"即为流程定义"请假流程"的一个流程实例。 同理,如果李四也想请假,启动该流程,名为"李四的请假流程"。那么流程定义"请假流程"同时包含"张三的请假流程""李四的请假流程"两个流程实例。
4. 环节实例
流程实例中的每个环节称为环节实例。每一个环节实例会被保存在环节实例库(WFActivityInst)中,包括环节实例ID(唯一标识)、环节实例的状态、所属的环节定义ID以及流程实例ID、时间限制、是否超时、创建时间等信息。
5. 工作项
表示流程实例在流转过程中为完成某个环节实例需要参与者做的工作。一个环节实例可以对应一个或多个工作项。每个工作项会被保存在工作项库(WorkItem)中,包括工作项ID(唯一标识)、参与者ID、工作项的状态、所属的环节实例ID,流程实例ID等信息。
各对象间的主要关系
开发阶段的数据对象包括流程定义和环节定义;在运行阶段的数据对象包括流程实例、环节实例和工作项。
一个流程定义由多个环节定义组成;
一个流程定义可以创建多个流程实例;
一个流程实例包含多个环节实例,每个环节实例可以包含一个或多个工作项。
在一些特定的情况下(如一个环节要循环执行多次),对应一个环节定义会存在多个环节实例。关系如下图所示:
流程实例运行的基本过程
BPS中,在一个流程实例启动以后,流程的各个环节实例是按照以下规则进行推进的:
1. 开始环节总是第一个被实例化并启动的环节,开始环节存在一个瞬间状态,启动以后立即结束;
2. 开始环节结束以后,会根据开始环节的分支模式去实例化后面的迁移线,并触发相应的后继环节;
3. 如果被触发的后继环节满足启动条件,则会启动;
4. 对于每一个被启动的后继环节,结束以后,都会重复类似开始环节所完成的动作,推动后续环节的运行;
5. 当推进过程遇到结束环节的时候,流程实例结束;
6. 流程实例结束时,会把流程中所有的还未完成工作项和环节实例全部终止;
下图代表了一个很简单的流程的执行过程,数字的递增顺序代表了运行的过程。
相关数据区
流程相关数据(Process Relevant Data)主要指与流程实例运行控制相关的数据。流程管理系统通过流程相关数据来确定流程实例状态转移条件,并选择下一个将执行的环节,这些数据可以被流程应用程序访问并修改。由于流程相关数据存放在ThreadLocal中,一旦线程执行结束,流程相关数据就会丢失。
定义流程
创建流程
StarFlow提供基于Flex版本的流程设计器,使用浏览器打开bin-release目录下的FlowDesigner.html文件,新建流程定义。流程设计器主界面如下图所示:
由于流程有且仅有一个开始和结束环节,流程定制区域默认包含开始和结束环节。
添加环节
打开流程设计器,环节图元面板中罗列了可以在流程中添加的环节,包括: "自动环节""人工环节""子流程""WebService环节"。一般我们要在流程中添加一个环节可按如下方式操作:在环节图元面板中点击选中需要添加的环节图元,拖动到流程定制区域中
释放鼠标,图元就自动放置到流程定制区域中了。如下图所示。
添加连接线
添加一条连接线可以分为如下步骤:
1:点击流程设计器左上角连线图元,图元状态为连线状态时,可以进行连线操作
2将鼠标移入流程定制区域,单击连接线的起始节点和终止节点,完成一次连线操作
设置流程属性
设置流程基本属性
点击流程设计器左上角的属性按钮,弹出流程属性对话框,如下图:
参数名称
参数意义
流程名称
创建流程的名称,推荐使用英文字符,不可编辑。
流程中文名称
流程流程的中文名称,不可编辑
版本号
流程版本号,点击新版本号,版本号往上增加
流程时限
流程运行实现,单位分钟
描述
流程描述信息
设置流程流程启动者
设置流程启动者是指配置哪些人有权限去启动一个流程,参与者是从组织机构模型中获取的。打开流程属性对话框后,单击"流程启动者"Tab页,即显示"流程启动者"设置页面,如下图所示。
如果该业务流程任意人员都可以启动,则选择"任意人员启动";如果需要对启动该业务流程的人员进行限制,则可以选择"从参与者列表获得"。可对参与者进行增加,删除等操作。在增加流程启动者时,需要从组织机构中获取,因此必须保证已经配置好组织机构。
设置环节属性
设置开始环节属性
在开始图元上点击右键菜单,选择环节属性菜单,打开环节属性对话框,显示开始环节基本属性如下图所示:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。