工作流参考手册 下载本文

内容发布更新时间 : 2024/12/27 18:49:24星期一 下面是文章的全部内容请认真阅读。

第1章 总体说明

在使用EOS WorkFlow的过程中,无论是开发者在“开发环境”中定义业务流程,还是“工作流引擎”控制流程流转,或是工作流参与者使用的“客户端”,再或者管理员使用的“管理与监控工具”,在这期间都会贯穿EOS Workflow 的5个主要对象——流程定义、活动定义、流程实例、活动实例以及工作项。

1.1 EOS工作流开发过程简述

EOS的工作流开发过程可以看作是一个不断迭代的过程,如下图:

开始 流程定义 完善功能或需求变更 流程发布 流程执行

首先是分析需求,然后根据需求定义流程,在这个阶段最主要的工作任务其实是设计,根据业务需求来设计流程,这个流程要怎么走,流程相关的数据如何流动,流程的参与者如何界定,与流程相关的业务数据如何流动及保存等等。在这个阶段的工作结果是一个可以发布的流程,第一次形成的流程可能是一个比较简单的,并不完善的版本,但是随着迭代的进行,这个流程将不断地被修正和改进,直到形成一个能够使用的版本。

接下来是流程的发布,流程发布的目的是让工作流引擎能够识别该流程。在开发环境(JBoss)下可以直接在Studio中发布流程,开发阶段一般用此方法,在生产环境中一般是先打包,然后在xlocalhost:端口/eosmgr中发布。 流程发布后就可以执行了,流程在执行阶段叫流程实例,它有待启动、运行、挂起、完成、结束、中止等六种状态。

我们在设计及开发的过程中可能会犯一些错误,从而导致发布的流程执行不正确,或者还可能已经开发好的流程满足不了现在的需求,需要进行调整,这个时候迭代就开始了。

1.2 概念说明

流程定义:描述一个完整的业务过程,它由若干活动组成。包括了流程的基本信息、流程的开始和结束条件、组成的活动、活动间流转的规则、需要用户执行的工作任务(工作项)、可能调用的应用程序以及流程相关数据等信息。提交到流程定义库(WFProcessDefine)后会包含流程定义ID(流程定义的唯一标识)、流程定义名称、版本号、流程定义描述以及提交时间等描述。

活动定义:包含在流程定义之中,代表了一个相对独立的、逻辑的工作单元。一个活动代表一个需要由相关资源处理,或者由计算机处理的任务。其中定义了该活动的基本信息、执行该活动的参与者、时间限制、工作项信息、触发事件、启动策略等信息。

流程实例:当流程定义提交、发布到服务器以后,就可以启动该流程,启动时会创建流程定义的一个实例,叫流程实例。同一个流程定义可以有多个流程实例。每一个流程实例会被保存在流程实例库(WFProcessInst)中,包括流程实例ID(唯一标识)、流程实例名称、流程定义ID、流程实例的状态、该实例的启动者、启动时间、相关数据等信息。

活动实例:流程实例中的每个活动称为活动实例。每一个活动实例会被保存在活动实例库(WFActivityInst)中,包括活动实例ID(唯一标识)、活动实例的状态、所属的活动定义ID以及流程实例ID、时间限制、是否超时、创建时间等信息。

工作项:表示流程实例在流转过程中为完成某个活动实例所要参与者做的工作。一个活动实例可以对应一个或多个工作项。每个工作项会被保存在工作项库(WFWorkItem)中,包括工作项ID(唯一标识)、参与者ID、工作项的状态、所属的活动实例ID,流程实例ID等信息。

对象间的主要关系

流程定义和活动定义是在工作流开发阶段所确定;流程实例、活动实例和工作项则是在工作流运行阶段确定。

一个流程定义由多个活动定义组成。 一个流程定义可以创建多个流程实例。

一个流程实例包含多个活动实例,每个活动实例可以包含一个或多个工作项 在一些特定的情况下(比如,一个活动要循环执行多次),一个活动定义会存在多个活动实例

具体如下图所示:

其他概念

【工作流】

工作流管理联盟(WFMC)给出的“工作流”定义是:

① 全部或者部分,由计算机支持或自动处理的业务过程;

② 干预过程、业务程序的自动化处理,文档、信息或者任务按照定义好的

规则在参与者间传递,来完成整个业务目标或者对整个业务目标的完成做贡献。同时,“工作流”可能由手工组织。

【参与者】

它主要描业务流程在实例化后的运行过程中参与操作的人员、角色或组织。

【工作流相关数据】

工作流引擎根据工作流相关数据和转换条件进行推进,工作流相关数据的属性包括数据名称、数据类型和数据值等。它是工作流引擎执行任务推进的依据。

【转移条件】

主要负责为流程实例的推进提供导航依据,引擎根据转移条件实现流程的流转。

【聚合模式】

指当流程中的一个活动存在多个前驱活动时,该活动产生实例的规则将根据“聚合模式”而定。聚合模式包括:全部聚合/单一聚合/多路聚合(AND/XOR/OR);“全部聚合”模式表示只有当所有前驱活动都运行结束后才启动该活动实例,如果存在尚未运行结束的前驱活动,则该活动处于等待状态。“单一聚合”模式表示只要任何一个前驱活动运行结束,则该活动即进入运行状态。“多路聚合”模式表示满足条件的前驱活动都完成,该活动才可进入运行状态。