BPS对象(浅结)

来源:互联网 发布:鹰扬拜占庭 知乎 编辑:程序博客网 时间:2024/06/05 12:42

对于初学BPS,其实最重要的是入门,因为其本质编程思想和myeclipse+tomcat一样,只不过是在学习初期的其特有的业务流程搞明白。

业务流程:也叫流程定义,对于BPS其最核心的就是业务流程,因为每一个业务流程记述项目里的每个功能模块的实现,以及其所执行的每一步骤,如其中:开始、结束、自动活动、人工活动、路由活动、子流程。然后通过java来实现其功能。每一个流程都要有唯一标示id,流程定义名称,版本号,描述等。业务流程分为两种形式:一个是WFPprocessdefine(某个版本定义的流程),一个是WFPprocessCatalog(相同名称多个版本的流程),后者有多个其他流程与其对应,但只有一个流程处于发布状态。

流程实例:当流程定义提交、发布到服务器以后,就可以启动该流程,启动时会创建流程定义的一个实例,称为流程实例。同一个流程定义可以有多个流程实例。每一个流程实 例会被保存在流程实例库(WFProcessInst)中,包括流程实例ID(唯一标识)、流程实例名称、流程定义ID、流程实例的状态、该实例的启动 者、启动时间、相关数据等信息。例如:当流程定义"请假流程"提交、发布后。张三启动该流程,名为"张三的请假流程"。那么"张三的请假流程"即为流程定义"请假流程"的一个流程实例。 同理,如果李四也想请假,启动该流程,名为"李四的请假流程"。那么流程定义"请假流程"同时包含"张三的请假流程"和"李四的请假流程"两个流程实例。

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

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

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

其关系如下:

一个流程定义由多个活动定义组成;

一个流程定义可以创建多个流程实例;

一个流程实例包含多个活动实例,每个活动实例可以包含一个或多个工作项。 

BPS实例对象运行的基本过程:

  1. 开始活动总是第一个被实例化并启动的活动,开始活动存在一个瞬间状态,启动以后立即结束;
  2. 开始活动结束以后,会根据开始活动的分支模式去实例化后面的迁移线,并触发相应的后继活动;
  3. 如果被触发的后继活动满足启动条件,则会启动;
  4. 对于每一个被启动的后继活动,结束以后,都会重复类似开始活动所完成的动作,推动后续活动的运行;
  5. 当推进过程遇到结束活动的时候,流程实例结束;
  6. 流程实例结束时,会把流程中所有的还未完成工作项和活动实例全部终止; 

BPS中的相关数据

BPS将每一个流程实例有且仅有的一份相关数据存放在相关数据区中,该流程下的所有活动实例共享该区域,该区域中放置了流程的内部数据即内部变量,还可以放置用户自定义的数据。这些数据可以用来进行路由判断,也可以在不同的活动之间进行数据传递。



原创粉丝点击