StarFlow说明文档

上传人:痛*** 文档编号:120751552 上传时间:2022-07-18 格式:DOC 页数:36 大小:946.50KB
收藏 版权申诉 举报 下载
StarFlow说明文档_第1页
第1页 / 共36页
StarFlow说明文档_第2页
第2页 / 共36页
StarFlow说明文档_第3页
第3页 / 共36页
资源描述:

《StarFlow说明文档》由会员分享,可在线阅读,更多相关《StarFlow说明文档(36页珍藏版)》请在装配图网上搜索。

1、精心整理StarFlow协助文档2011年2月精心整理变更限制单版本号作者变更日期变更缘由变更内容V0.1melin2011-2-11目 录1. 产品介绍1.1 产品简介StarFlow是具有中国特色的流程平台产品。它融入了国内电子政务与电信等行业的特别要求,供应了敏捷的工作任务分派策略、业务流程版本管理策略、丰富的流程模式、敏捷的组织模型等特性,使得它能够沉着应对困难的中国特色流程模式和人工流程的处理。StarFlow采纳了多种方式以保证流程引擎高效稳定的运行,满意大型流程应用建立需求,比方良好的事务驱动式系统架构、优化的数据库、集群高速缓存等等。1.2 业务概念1.2.1 流程版本流程版本

2、是为了便利管理同一流程名称下的多个业务流程,而进展区分的标记。在StarFlow中为一个数字和点的序列,如1.1.1。在具有一样流程名称的多个版本当中,默认状况下,版本号最大的一个称为最新版本,当前发布有效的版本称为发布版本。发布版本和最新版本可以不是同一个版本。对于一个流程来说,发布版本最多有一个,最新版本有且只有一个。1.2.2 触发事务触发事务是流程实例运行过程中插入的一些用户自定义的动作,类似于数据库中的触发器。触发事务包括触发时机和触发动作两局部含义:1. 触发时机指启动、完毕等可插入点; 2. 触发动作指在插入点可以插入的操作; StarFlow包含流程级、环节级两个层次的触发事务

3、。1.2.3 回退回退是流程运行过程中遵照某种规那么回到流程以前某种状态的操作,StarFlow支持单步、按路径、回退到上一人工环节等多种回退方式。1.2.4 自由流所谓自由流是指当一个环节运行完成后,将被启动、运行的后继环节不是由引擎依据流程图元间连接线上的条件判定确定的,而是由当前环节的参加者依据流程定义时的设置,在可选择的环节范围内动态指定,可以是一个也可以是多个。1.2.5 多子流程多子流程是BPS处理困难的业务嵌套场景的一种解决方案。有两种场景须要运用多子流程l 明确型:主业务流程在某个环节点须要产生多个子流程实例。 l 模糊型:业务须要在局部环节间流转的需求时。如下列图:实例B1、

4、B2、B3和实例C1、C2、C3分别存在着依靠关系:B1-C1、B2-C2、B3-C3。此时可以把B和C组装成单独的子流程,在主流程中运用多子流程的方式调用该子流程。如下列图:1.2.6 聚合模式聚合模式,表示一个流程中某环节得以触发的方式。它包括全部聚合AND、单一聚合XOR以及多路聚合OR三种状况:l 全部聚合型聚合模式表示该环节必需等到它的全部前驱环节全部完成才可以触发。 l 单一聚合型聚合模式表示当该环节的假设干前驱环节中只要有一个满意条件的环节完成,该环节即可被触发。 l 多路聚合型聚合模式表示该环节必需等到它的全部满意条件的前驱环节全部完成才可以触发。满意条件的前驱环节包括: u

5、它与该环节的连线是默认值。 u 它与该环节连线上的条件为true。1.2.7 分支模式分支模式,表示该环节完毕后,它的后继环节的触发状况。它包括全局部支AND、单一分支XOR以及多路分支OR三种状况:l 全局部支型分支模式表示该环节完毕后它的全部后继环节将同时被触发。 l 单一分支型分支模式假设该环节的分支模式为单一分支,那么引擎会依据由该环节射出的连接线上的条件进展判定,确定该触发哪个后继环节。详细分为下面三种状况: u 满意条件的连接线所指的环节被触发; u 假设有假设干个连接线上的条件都满意,那么比拟连接线上的优先级,优先级高的那条连接线所指的环节将被触发; u 假设连接线上的条件都不满

6、意,那么取默认值的那条连接线所指的环节将被触发;l 多路分支型分支模式假设该环节的分支模式为多路分支,那么引擎会依据由该环节射出的连接线上的条件进展判定,确定触发哪个或哪些后继环节。详细分为下面二种状况: u 假设连接线上取默认值,那么由此连接线所指的后继环节会被触发; u 假设连接线上的条件满意,那么由此连接线所指的后继环节会被触发;1.2.8 人工环节人工环节是对业务流程中须要人工干预环节的业务化包装,其通常指向一个与用户交互的表单。用户可以把人工任务组装成人工环节。一个人工任务的技术实现可以是一个JSP、一般的URL。1.2.9 Web Service环节Web Service环节是对业

7、务流程中须要调用web service自动化调用的包装,简化效劳的调用,效劳须要的参数可以与相关数据区中的数据关联。2. 运用指南2.1 根底学问2.1.1 业务概念对象在运用StarFlow产品的开发过程中,需理解和驾驭5个业务概念对象-业务流程流程定义、环节定义、流程实例、环节实例、工作项。在您接着学习之前,我们首先来相识一下这5个贯穿BPS始终的对象。1. 业务流程也称流程定义。描述一个完整的业务过程,它由假设干环节组成。包括流程的根本信息、起先和完毕条件、组成的环节、环节间流转的规那么、须要用户执行的工作任务 工作项、可能调用的应用程序以及流程相关数据等信息。提交到流程定义库后会包含流

8、程定义ID流程定义的唯一标识、流程定义名称、版本号、流程定义 描述以及提交时间等描述。2. 环节定义包含在流程定义之中,代表了一个相对独立的逻辑工作单元。一个环节代表一个须要由相关资源处理,或者由计算机处理的任务。其中定义了该环节的根本信息、执行该环节的参加者、时间限制、工作项信息、触发事务、启动策略等信息。 3. 流程实例当流程定义提交、发布到效劳器以后,就可以启动该流程,启动时会创立流程定义的一个实例,称为流程实例。同一个流程定义可以有多个流程实例。每一个流程实 例会被保存在流程实例库ProcessInstance中,包括流程实例ID唯一标识、流程实例名称、流程定义ID、流程实例的状态、该

9、实例的启动 者、启动时间等信息。例如:当流程定义请假流程提交、发布后。张三启动该流程,名为张三的请假流程。那么张三的请假流程即为流程定义请假流程的一个流程实例。 同理,假设李四也想请假,启动该流程,名为李四的请假流程。那么流程定义请假流程同时包含张三的请假流程和李四的请假流程两个流程实例。 4. 环节实例流程实例中的每个环节称为环节实例。每一个环节实例会被保存在环节实例库WFActivityInst中,包括环节实例ID唯一标识、环节实例的状态、所属的环节定义ID以及流程实例ID、时间限制、是否超时、创立时间等信息。 5. 工作项表示流程实例在流转过程中为完成某个环节实例须要参加者做的工作。一个

10、环节实例可以对应一个或多个工作项。每个工作项会被保存在工作项库WorkItem中,包括工作项ID唯一标识、参加者ID、工作项的状态、所属的环节实例ID,流程实例ID等信息。2.1.2 各对象间的主要关系开发阶段的数据对象包括流程定义和环节定义;在运行阶段的数据对象包括流程实例、环节实例和工作项。l 一个流程定义由多个环节定义组成; l 一个流程定义可以创立多个流程实例; l 一个流程实例包含多个环节实例,每个环节实例可以包含一个或多个工作项。 在一些特定的状况下如一个环节要循环执行屡次,对应一个环节定义会存在多个环节实例。关系如下列图所示:2.1.3 流程实例运行的根本过程BPS中,在一个流程

11、实例启动以后,流程的各个环节实例是遵照以下规那么进展推动的:1. 起先环节总是第一个被实例化并启动的环节,起先环节存在一个瞬间状态,启动以后马上完毕; 2. 起先环节完毕以后,会依据起先环节的分支模式去实例化后面的迁移线,并触发相应的后继环节; 3. 假设被触发的后继环节满意启动条件,那么会启动; 4. 对于每一个被启动的后继环节,完毕以后,都会重复类似起先环节所完成的动作,推动后续环节的运行; 5. 当推动过程遇到完毕环节的时候,流程实例完毕; 6. 流程实例完毕时,会把流程中全部的还未完成工作项和环节实例全部终止; 下列图代表了一个很简洁的流程的执行过程,数字的递增依次代表了运行的过程。2

12、.1.4 相关数据区流程相关数据Process Relevant Data主要指与流程实例运行限制相关的数据。流程管理系统通过流程相关数据来确定流程实例状态转移条件,并选择下一个将执行的环节,这些数据可以被流程应用程序访问并修改。由于流程相关数据存放在ThreadLocal中,一旦线程执行完毕,流程相关数据就会丧失。2.2 定义流程2.2.1 创立流程StarFlow供应基于Flex版本的流程设计器,运用阅读器翻开bin-release书目下的FlowDesigner.html文件,新建流程定义。流程设计器主界面如下列图所示:由于流程有且仅有一个起先和完毕环节,流程定制区域默认包含起先和完毕环

13、节。2.2.2 添加环节翻开流程设计器,环节图元面板中陈列了可以在流程中添加的环节,包括: 自动环节、人工环节、子流程、WebService环节。一般我们要在流程中添加一个环节可按如下方式操作:在环节图元面板中点击选中须要添加的环节图元,拖动到流程定制区域中释放鼠标,图元就自动放置到流程定制区域中了。如下列图所示。2.2.3 添加连接线添加一条连接线可以分为如下步骤:1:点击流程设计器左上角连线图元,图元状态为连线状态时,可以进展连线操作2:将鼠标移入流程定制区域,单击连接线的起始节点和终止节点,完成一次连线操作2.2.4 设置流程属性2.2.4.1 设置流程根本属性点击流程设计器左上角的属性

14、按钮,弹出流程属性对话框,如下列图:参数名称参数意义流程名称创立流程的名称,引荐运用英文字符,不行编辑。流程中文名称流程流程的中文名称,不行编辑版本号流程版本号,点击新版本号,版本号往上增加流程时限流程运行实现,单位分钟描述流程描述信息2.2.4.2 设置流程流程启动者设置流程启动者是指配置哪些人有权限去启动一个流程,参加者是从组织机构模型中获得的。翻开流程属性对话框后,单击流程启动者Tab页,即显示流程启动者设置页面,如下列图所示。假设该业务流程随意人员都可以启动,那么选择随意人员启动;假设须要对启动该业务流程的人员进展限制,那么可以选择从参加者列表获得。可对参加者进展增加,删除等操作。在增

15、加流程启动者时,须要从组织机构中获得,因此必需保证已经配置好组织机构。2.2.5 设置环节属性2.2.5.1 设置起先环节属性在起先图元上点击右键菜单,选择环节属性菜单,翻开环节属性对话框,显示起先环节根本属性如下列图所示:参数名称参数意义环节ID环节定义ID,设计器自动生成唯一ID。环节名称环节定义名称,设计器默认包含值,用户可以重新编辑,不行为空分支模式起先环节分支模式,默认值单一分支描述起先环节信息描述2.2.5.2 设置人工环节属性1. 设置根本属性在人工环节图元上点击右键菜单,选择环节属性菜单,翻开环节属性对话框,选择根本属性tab页。如下列图所示。参数名称参数意义环节ID环节定义I

16、D,设计器自动生成唯一ID。环节名称环节定义名称,设计器默认包含值,用户可以重新编辑,不行为空分支模式环节分支模式,默认值单一分支聚合模式环节聚合模式,默认值单一聚合环节时限环节运行时限,时限单位:分钟描述起先环节信息描述2. 设置环节操作在人工环节图元上点击右键菜单,选择环节属性菜单,翻开环节属性对话框,选择环节操作tab页,如下列图所示。人工环节关联一个页面和环节操作,须要在页面管理和操作管理完成相应配置操作。3. 设置参加者在人工环节图元上点击右键菜单,选择环节属性菜单,翻开环节属性对话框,选择参加者tab页,如下列图所示。获得参加者有以下五种方式:n 流程启动者n 从参加者列表获得n

17、环节执行者n 相关数据n 规那么逻辑1) 流程启动者该环节的参加者即为该流程的启动者。假设流程启动者是外部系统,在组织模型中找不到,那么这个环节被启动后会报错。人工环节默认设置的参加者是流程启动者。2) 从参加者列表获得选择组织机构中的一个或者多个参加者作为人工环节的参加者。点击添加按钮,会弹出选择参加者资源对话框,如下列图所示双节选择参加者,即可添加到列表中。3) 环节执行者选择环节执行者作为环节的参加者只能选择人工环节,也就是被选中的人工环节的执行者将作为本环节的参加者,假设被选中的环节还没有被执行完成,本环节就被启动,那么会报错,因为被选中环节没有执行者。选择该流程定义中的某一个人工环节

18、的参加者作为本环节的参加者,如下列图所示。4) 相关数据环节的参加者假设设置为相关数据,是指环节的参加者会从相关数据中所定义的变量中获得。调用RelaDataManager.setNextActParticipants(List participants)方法5) 逻辑规那么环节的参加者由调用的逻辑的返回值来确定。规那么逻辑值为Spring Bean 的id值。该bean须要实现接口,接口返回值为环节参加者。4. 设置多工作项在人工环节图元上点击右键菜单,选择环节属性菜单,翻开环节属性对话框,选择多工作项tab页,如下列图所示。启动多工作项设置复选框默认是没有选中的,只有选中它,才可以设置多工

19、作项的安排策略和完成规那么。多工作项必需和参加者结合起来运用,默认状况下一个人工环节的环节实例会产生一个工作项。假设启用多工作项设置,那么流程引擎会为该环节实例创立多个工作项。用户可以设置多工作项的个数、安排方式及完成规那么。下面将对多工作项安排策略和完成规那么设定这两项设置分别加以说明。1) 多工作项安排策略指引擎依据所设置的人工环节的参加者来安排工作项的策略。共有两种策略,只能选取其中一种。 l 按参加者设置个数领取工作项依据该环节的参加者个数产生相应数量的工作项。假设参加者设置了多个,比方设置了一个人员a和设置了一个机构a作为该环节的参加者,那么参加者就是2个,假设选择了遵照参加者个数领

20、取工作项,那么该环节被启动后会产生两个工作项,一个安排给人员a,另外一个安排给机构a。 l 按操作员个数安排工作项依据参加者中的人员个数产生工作项,比方设置了一个人员a以及一个机构a作为该环节的参加者,该机构a下有5个人员并且这个5个人中不包含人员a,那么当该环节被启动时会产生6个工作项,这6个人都可以去领取任务。但是假设机构a下面包含人员a,那么只会产生5个工作项。 l 依次执行工作项当开启依次执行工作项后,流程引擎每次只会创立一个工作项,等前一个工作项完成后,才会创立下一个工作项;在未开启依次执行工作项的状况下,一次性创立全部的工作项。 2) 完成规那么设定指在同一个人工环节实例所产生的多

21、个工作项中,设置须要完成多少个工作项时该环节实例才完成的规那么。共有三种规那么,只能选取其中一种。 l 全部完成当一个人工环节实例所产生的全部工作项都完成时,该环节实例才完成。 l 完成个数当一个人工环节实例所产生的全部工作项中,有设定数目的工作项完成时,该环节实例才完成。 l 完成百分比当一个人工环节实例所产生的全部工作项中,有设定比例的工作项完成时,该环节实例才完成。 l 未完成工作项自动终止这是针对第2和第3两种完成规那么的一项配置,单项选择是或否。 是:当环节实例完毕时,流程引擎对于剩余未完成的工作项做停顿处理。 否:当环节实例完毕时,剩余未完成的工作项仍旧处于运行状态。此时无论是否处

22、理这些工作项,对运行的流程实例都不会造成任何影响,只有当流程实例完毕时,引擎才会将这些工作项终止 。5. 设置自由流在人工环节图元上点击右键菜单,选择环节属性菜单,翻开环节属性对话框,选择自由流tab下列图所示。自由流是指当一个环节完成后,不遵照流程定义中的执行依次启动后面的环节,而是依据定义为自由流的环节中定义的环节范围内指定随意的一个或多个环节执行。l 自由范围设置策略指定该环节在自由流转时的后继环节范围的策略。共有三种策略,只能选取其中的一种。现以如下的一个流程图例如来说明这三种配置的区分如在C上设置了在该流程范围内随意自由即表示在流程运行到C时,执行者可以从流程中选择除起先和C之外的全

23、部环节中的一个或假设干个作为环节C的后继环节。详细包括A、B、D、E、F,以及完毕。 在指定环节列表范围内自由例如在C上设置了在指定环节列表范围内自由,点击增加按钮即可以选择C的后继环节,可供选择的范围是除起先和C之外的全部环节,如下列图所示:假设选择了A、B、D这3个环节,即说明流程运行到C时,执行者可以从A、B、D三个环节中选定一个或假设干作为C的后继环节。 在后继环节范围内自由例如在C上设置了在后继环节范围内自由,即说明流程运行到C时,执行者可以从D、E、F和完毕这4个环节中选定一个或假设干作为C的后继环节。l 自由流设置规那么自由流设置规那么中有一个流向的目标环节仅限于人工环节复选框,

24、假设选中,说明后继环节自由范围只能是人工环节,否那么就包括人工环节、自动环节以及完毕环节。假设在某个人工环节上设置了自由流,并在运行时为其指定了后继环节,那么引擎将不再按分支模式及连接线条件来确定此环节的后继环节; 假设在某个人工环节上设置了自由流,但在运行时该环节的执行者并没有为其指定后继环节,那么引擎仍旧按分支模式及连线上的条件确定此环节的后继环节。2.2.5.3 设置自动环节属性1. 设置根本属性在自动环节图元上点击右键菜单,选择环节属性菜单,翻开环节属性对话框,选择根本属性tab页。如下列图所示。参数名称参数意义环节ID环节定义ID,设计器自动生成唯一ID。环节名称环节定义名称,设计器

25、默认包含值,用户可以重新编辑,不行为空分支模式环节分支模式,默认值单一分支聚合模式环节聚合模式,默认值单一聚合描述起先环节信息描述2. 设置高级属性在自动环节图元上点击右键菜单,选择环节属性菜单,翻开环节属性对话框,选择根本属性tab页。如下列图所示。l 执行逻辑:Spring Bean id的名称,该bean须要实现接口,默认调用execute方法,为幸免过多的执行逻辑创立类,也可以在实现类中添加方法,方法参数与execute方法参数一样,这时执行逻辑值格式为:beanName#methodNamel 完毕方式:自动环节运行后,自动启动完毕,启动下一个环节,假设选择人工,须要人工手动完毕。默

26、认值为自动。l 调用方式:值执行逻辑的调用方式,同步为环节执行必需等待执行逻辑执行完毕,才可以往下运行,与流程运行在同一个线程中,异步为执行逻辑提交到线程池中执行。l 事务策略:Join执行逻辑事务与运行环节线程属于同一个事物,Suspend执行逻辑执行时创立一个新事物l 异样处理策略:在执行逻辑运行的过程中发生异样时,所采纳的一种处理策略。共分5种策略,依据业务须要选择其中的一种。n 回滚异样自动活动配置的逻辑出错干脆回滚异样,回滚到上个事务分割点。 n 忽视异样自动活动配置的逻辑出错忽视异样,自动活动完成,接着执行后继动作。默认配置。 n 进入异样状态,等待人工干预自动活动出错进入异样状态

27、不接着流转。n 自动执行单步回退,活动终止自动活动出错,干脆执行单步回退,回退到上个节点,当前自动活动终止。 n 自动执行规那么逻辑自动活动出错后,自动执行设定的一个规那么逻辑,当规那么逻辑执行完后,活动完毕,接着执行后继活动。规那么逻辑值Spring Bean id,bean须要实现接口2.2.5.4 设置子流程属性1. 设置根本属性在子流程图元上点击右键菜单,选择环节属性菜单,翻开环节属性对话框,选择根本属性tab页。如下列图所示。参数名称参数意义环节ID环节定义ID,设计器自动生成唯一ID。环节名称环节定义名称,设计器默认包含值,用户可以重新编辑,不行为空分支模式环节分支模式,默认值单一

28、分支聚合模式环节聚合模式,默认值单一聚合描述起先环节信息描述2. 高级属性在子流程图元上点击右键菜单,选择环节属性菜单,翻开环节属性对话框,选择高级属性tab页。如下列图所示。参数名称参数意义调用方式子流程的调用方式分为同步和异步方式,默认为同步,依据实际业务须要来选择。它们各自的含义如下: 同步:以同步的方式调用子流程,等待子流程运行完成后,该子流程活动才完毕; 异步:以异步的方式调用子流程,当前活动在子流程启动后就完毕,而无需等待子流程运行完成。子流程通过点击按钮所弹出的对话框来设置子流程。2.2.5.5 设置WebService环节属性1. 设置根本属性在WebService环节图元上点

29、击右键菜单,选择环节属性菜单,翻开环节属性对话框,选择根本属性tab页。如下列图所示。参数名称参数意义环节ID环节定义ID,设计器自动生成唯一ID。环节名称环节定义名称,设计器默认包含值,用户可以重新编辑,不行为空分支模式环节分支模式,默认值单一分支聚合模式环节聚合模式,默认值单一聚合描述起先环节信息描述2.2.5.6 设置完毕环节属性在完毕图元上点击右键菜单,选择环节属性菜单,翻开环节属性对话框,显示完毕环节根本属性如下列图所示参数名称参数意义环节ID环节定义ID,设计器自动生成唯一ID。环节名称环节定义名称,设计器默认包含值,用户可以重新编辑,不行为空聚合模式起先环节聚合模式,默认值单一聚

30、合描述起先环节信息描述2.2.6 设置连接线属性双击流程编辑器中的一根连接线,弹出连接线的属性窗口,如下列图所示。参数名称参数意义显示名称连接线在流程图中显示的名称。优先级该连接线被实例化的优先级别,从高到低依次分为高、次高、中、次中、低、次低6个级别。当环节的分支模式为单一分支,而该环节引出的假设干分支的判定条件都满意的状况下,系统将以连接线的优先级级别的凹凸来判定该执行哪个环节。默认连线选中此项即说明该连接线是默认连接线,表达式不行编辑。一个环节后假设引出多条连接线,那么只能有一条为默认,其它均是有判定条件的连接线。非默认连接线用*标注。当全部的判定条件均不满意时,业务流程会走默认连接线。

31、简洁表达式利用一些常用的比拟操作来进展条件判定的表达式。左值支持xpath,相应格式值为:xp:变量:/Users/User/name困难表达式困难表达式运用aviator 表达式解析殷勤boolean表达式,困难表达式中可以运用相关数据中的任何变量。 描述连线信息的描述2.2.7 流程/环节通用属性1. 设置触发事务触发事务分为流程的触发事务和活动的触发事务,流程和活动的触发事务除了触发时机不同之外,其余设置都是一样的。设置界面如下列图:流程的触发事务流程触发事务表示遵照流程定义中的设置,流程实例在运行到某个阶段所须要流程引擎做某种类型的动作。某个阶段即为事务的触发时机,某种类型的动作即为事

32、务动作。事务触发的依次遵照事务设置时候的依次执行。触发时机包括流程级别的触发时机,如下列图下拉框所示:l 流程启动前:表示指定的事务在流程创立后启动前触发,此时流程实例处于待启动状态; l 流程启动后:表示指定的事务在流程启动后触发,即流程状态设置为启动后进展事务的触发; l 流程完成前:表示指定的事务在流程实例完成前触发,即流程实例状态在完成之前进展事务的触发; l 流程完成后:表示指定的事务在流程实例完成后触发,即流程实例状态在完成之后进展事务的触发;事务动作事务触发时执行的动作。值为Spring Bean id,bean实现接口为:,接口包含四个方法,每一个触发时机对应一个方法。调用方式

33、l 同步:业务流程引擎等待触发事务调用的操作执行完之后再运行。 l 异步:业务流程引擎无需等待触发事务调用的操作执行完就可以干脆运行。事务策略业务流程引擎触发事务动作时有两种事务策略,Suspend和Join。n Suspend:被触发的事务与业务流程引擎是分开的事务。事务由触发事务动作单独限制。 n Join:被触发的事务与业务流程引擎是一个事务,事务由业务流程引擎限制。异样处理n 忽视异样:当事务动作执行过程中产生异样时,业务流程引擎接着执行后面的操作,不把事务回滚,异样在日志中进展记录。 n 回滚异样:当事务动作执行过程中产生异样时,业务流程引擎回滚事务,异样在日志中进展记录。描述对该事

34、务动作的描述,为中/英文字符串,可以为空。环节的触发事务环节触发事务表示遵照流程定义的设置在环节实例运行到某个阶段所须要流程引擎做某种类型的动作。某个阶段即为事务的触发时机,某种类型的动作即为事务动作。bean实现接口为:com.starflow.wf.service.spi.IActivityTriggerEvent,接口包含四个方法,每一个触发时机对应一个方法。除了触发时机外,环节触发事务中的事务动作、调用方式、事务策略,以及异样处理都和流程的触发事务中的含义、操作一样,此处不再赘述,如需查看请参考流程的触发事务中的相关描述。l 环节启动前:表示指定的事务在环节实例启动前触发; l 环节启

35、动后:表示指定的事务在环节实例启动后触发; l 环节完成前:表示指定的事务在环节实例完成前触发; l 环节完成后:表示指定的事务在环节实例完成后触发;2. 设置启动策略在人工环节、自动环节、子流程环节、完毕环节的属性设置中均有启动策略Tab页,它们在意义和设置上是一样的,现以人工环节的启动策略设置为例进展说明。在人工环节的属性对话框中,点击启动策略Tab页,即显示如下列图所示的设置界面。启动策略表示在流程实例运行过程中,当流程实例流转至此活动时,该活动将以何种方式启动。l 激活规那么 干脆运行:只要当前活动的前驱活动执行完,并且当前活动满意启动条件,即可转入运行状态。这是启动策略的默认配置。

36、待激活:当前活动的前驱活动执行完后不管当前活动是否满意启动条件,都将转入待激活状态。直到外界调用com.starflow.wf.engine.service.IActivityInstService#IActivityInstService方法才能激活该环节。 由规那么逻辑返回值确定:在当前活动满意启动条件的前提下,由一个逻辑的返回值来确定是否启动该环节,值为Spring Bean id, bean须要实现接口l 重新启动规那么针对人工环节除了可以设置启动规那么以外,还可设置重新启动规那么,是指当环节被重新启动时会依据规那么进展的一些操作。 最初参加者:人工环节实例发生重启时,该活动实例所对应

37、的工作项以它首次被启动时的参加者作为新的参加者。 最终参加者:人工环节实例发生重启时,该活动实例所对应的工作项以最近一次执行该环节的执行者作为本次重启的参加者。3. 设置扩展属性流程设计器为用户供应了编辑流程和环节的扩展属性功能,编辑流程和环节时可以依据须要添加用户自定义的扩展属性,扩展属性以键值对方式存在。编辑页面如下列图3. 开发参考3.1 部署指南3.1.1 部署环境要求JDK:要求5.0或以上版本效劳器:可以部署在任何效劳器3.1.2 Jar部署干脆把StarFlow-.jarx.x.x代表版本号添加到工程依靠中,同时把StarFlow依靠的相关jar也添加进来。依靠jar存放在Sta

38、rFlow lib书目中。假设不运用WebService环节,lib书目下fm和ws两个子书目,包含的jar可以不添加。3.1.3 配置文件设置StarFlow依靠Spring,有一个spring配置文件resource/applicationContext.xml,在工程整合时,须要把配置文件中bean添加到工程的配置文件中。resource/starflow.properties存放StarFlow参数,假设修改参数值,须要把修改后的参数值放入工程classpath书目中。starflow.properties包含的参数设置为:#主键缓存数目com.starflow.core.key.ca

39、che.num = 10#运用webService环节,须要设置为truecom.starflow.wf.use.webservice = true#流程殷勤是否在事务环境下运行truecom.starflow.wf.use.transaction =true3.2 典型场景开发指南3.2.1 请假流程实例本实例是在StarFrame集成环境下的演示,模拟一个公司的请假流程。设计流程图如下:流程属性设置人工环节属性只设置参加者值,其它属性只为默认。环节参加者部门经理用户:melin总经理用户:admin申请人确认流程启动者部门经理有两条分支线,只有部门经理同意,且请假超过三天,流程才流转到总经

40、理环节。到总经理的分支线条件表达式为:days3 & status=Y。到申请人确认的分支线为默认分支线。申告页面流程发起须要有一个表单页面,填写相关业务数据。依据业务数据值查找流程,流程启动胜利后,获得流程实例ID,存入业务数据表中。申告页面如下列图:流程启动执行代码,这里为了演示,启动流程固定为:flow.51IProcessInstanceService procInstService = ProcessEnginerHolder.getInstance().getProcessInstanceService();String userId = SecurityContextUtil.g

41、etLoginUserId();/创立并启动流程ProcessInstance processInstance = procInstService.createAndStartProcess(flow.51, userId);leave.setProcessInstId(processInstance.getProcessInstId();leaveDao.create(leave);logger.info(请假流程【】创立胜利!, leave.getName();部门经理流程启动胜利后,流转到部门经理环节。运用账号melin登入系统。在我的任务查看到请假流程。工单名称链接关联环节表单,这里设

42、置了固定页面,也可以通过页面模板管理设置。当前环节链接可以查看流程运行图。点击提交按钮,跟新业务数据,并调用方法finishWorkItem。IWorkItemService workItemService = ProcessEnginerHolder.getInstance().getWorkItemService();leaveDao.update(leave);/设置请假天数到相关数据区,流程以此来判定走那个分支Map conditions = new HashMap();conditions.put(days, leave.getDays();conditions.put(status

43、, leave.getStatus(); ActivityRelaDataManager.setExpressConditions(conditions);String userId = SecurityContextUtil.getLoginUserId();workItemService.finishWorkItem(workItemId, userId);总经理部门经理环节完毕后,请假流程流转到总经理环节,执行过程与部门经理环节一样。此时流程监控图如下:3.3 引擎对外接口为了增加流程引擎扩展性,流程引擎对外供应一些接口接口接口描述IActivateRuleAction环节启动策略,由规

44、那么逻辑确定。param processInstance 流程实例param activityInst 环节实例return Boolean 是否干脆运行IActivityTriggerEvent环节触发事务接口IApplicationExecptionAction环节异样策略,执行规那么逻辑param exception param processInstance 流程实例param activityInst 环节实例IParticipantService从规那么逻辑中获得参加者param processInstance 流程实例return ListIProcessTriggerEvent流程触发事务接口IToolAppAction自动环节执行动作,须要实现此接口param processInstance 流程实例param activityInst 环节实例return ObjectIWFOMService假设多工作项策略选择遵照操作员个数完成工作项,须要供应该接口的实现param type 构造或角色organization & roleparam id 机构和角色的idreturn List3.4 附录

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!