工作流引擎的架构建立和使用

       所谓工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。工作流引擎包括流程的节点管理、流向管理、流程样例管理等重要功能,负责流程的定义,解释和运转。一个工作流管理系统为实现流程的自动化,必须包含一个工作流引擎。工作流引擎的每一个状态 = 一个业务环节 + 业务环节的状态。

工作流引擎的架构建立和使用_第1张图片

     流程引擎对流程的描述通常是采用xml格式的文档来描述,xml文档中的每个节点都赋予了一定意义。各节点作为流程定义的基本元素,流程引擎能够定义、解释和应用它们来描述尽可能多的业务流程。xml文件中基本元素即工作流引擎的基本元素:

工作流引擎的架构建立和使用_第2张图片

1、步骤(step)
       一个step描述的是工作流所处的位置。可能从一个step transtion到另外一个step,或者也可以在同一个step内流转,一个流程里面可以有多个step。

2、状态(status)
       状态status 是用来描述工作流程中具体step状态的字符串。而工作流的状态state则是由step(步骤)+status(步骤的状态)组成的,通过工作流状态的升迁可以达到工作流实例的推进。

3、流转(transtion)
       一个工作流实例状态state到另一个状态state的转移。

4、动作(action)
       action 触发了发生在 step 内或 step 间的流转,或者说是基于 state 的流转,一个 step 里面可以有多个action。action 和step 之间的关系是,step 说明“在哪里”,action 说明“去哪里”。 一个 action 典型地由两部分组成:可以执行此action(动作)的condition(条件),以及执行此动作后的 result(结果)。   

5、任务(task)
       任务是当工作流状态发生转移的时候,产生的任务。任务可以指定为一个具体的角色,人或者群组。任务包含待办,已办,竞争办理,代理待办等多种功能。

6、结果(result)
       Result 代表执行action(动作)后的结果,指向新的 step 及其 step status,也可能进入 split 或者 join。result 分为两种:contidional-result(有条件结果),只有条件为真时才使用该结果,和 unconditional-result(无条件结果),当条件不满足或没有条件时使用该结果。

7、分支/合并(split/join)
流程的分支和合并。分支是指流程下一步可以同时分发给多个步骤,分支split 提供多个unconditional-result(无条件结果);join 则判断多个current step 的状态提供一个 result(结果)。

8、子流程(subflow)
子流程:动作的结果可以指向一个子流程。子流程是一个独立的流程,可以单独启动,也可以嵌套在另外的流程中启动,和主流程有同步或异步衔接的属性。

工作流引擎的架构建立和使用_第3张图片

工作流程引擎利用上面这些基本的元素,能够实现各种类型的路由。
 1、串行:就是一个步骤流向下一个步骤的基本路由方式。
 2、并行:一个步骤下可以执行多个动作,动作的结果可以流向不同的步骤。
 3、条件:步骤的动作结果可以设置条件,满足条件的则流向该条件结果。

 4、分支:动作结果可以流向一个分支,分支可以同时流向多个不同的结果步骤。
 5、合并:多个结果流向一个合并节点,合并节点满足一定条件后,就可以流向下一步骤。
 6、循环:动作的结果指向本步骤或上一步骤,形成循环路由。
 7、子流程嵌套:在工作流中嵌套执行另一工作流,叫子流程嵌套路由,子流程可以是同步执行和异步执行两种属性,主子流程可设置输入输出参数来达成信息的传递。
 8、自由跳转:流程实例运行当中,正常的流程是按照流程定义的节点往下执行,自由跳转就是可以跳转到任意的步骤,执行过和未执行过的步骤。
 9、回退:回退是指当流程实例运行过程中,由于某些原因回退到已经执行过的某个步骤,并辅助执行业务补偿,使得业务数据也回退到已经执行过的步骤状态。

工作流引擎的架构建立和使用_第4张图片
     

      以上便是工作流引擎的基本架构,通过构建设置这些元素,一个工作流引擎便能高效运转,并以此为基础,做出更多丰富功能的拓展与运用。下面大家就赶紧使用起来,可直接落地使用,或按需进行二次低代码快速拓展,地址JNPF工作流引擎。

你可能感兴趣的:(前端)