第一次接触工作流系统,可能会对一些基本的术语和名词有误解。如流程实例,流程模版,流程版本等,以及这些名词之间的关系,需要有一个学习和理解的过程。这些名词和术语也是工作流系统中的通用名词,通过学习和理解后,会对这些术语和名词有一个共同的认识和理解。

如下面的词语

工作流引擎:抽象的业务流程设计模型,负责业务流程的定义,解释和运转。

工作流模版:用工作流引擎的基本概念和路由过程表示出一个业务办理过程,这个过程通常是用xml格式的文件来记录的,这个xml文件,就是工作流模版,也可以说是流程模版。

工作流名称:就是工作流模版文件的名称。也可以叫流程名称。

工作流版本:工作流模版的版本,也可以叫流程版本。在工作流系统中,对工作流模版有个版本管理,新建一个工作流模版时候,它的工作流模版是.1。当再次做修改的时候,可以选择创建新的版本,如.2。
        因为一旦业务流程模版投入使用了,有了运行的流程实例了,再次对业务流程做的修改,就需要更新到新的版本中,原来的流程版本还需要存在,原来的流程定义信息,按版本仍然能查询到。新的修改在新的版本中。
     流程名称+流程版本 是唯一标识一个业务流程的。

工作流建模:利用流程设计器将业务处理过程用工作流的节点方式表示出来,就是工作流建模,也可以说是流程建模。

工作流节点:是工作流引擎的设计基本节点,一个节点表示一个业务处理过程,在流程设计器中,会有相应的表示方式。

流程实例:按照工作流模版定义的处理过程启动运行的业务处理过程,即流程实例。利用建立好的业务流程模版,可以 多次启动流程实例,一个流程实例即一个业务处理过程。如请假审批的流程,张三填写他的请假单,启动一个审批流程实例。李四也填写一个自己的清单单,也是启 动了一条流程实例。

流程实例id:每条启动的流程实例,在工作流引擎中,都会对应一个流程实例id,来唯一标识这条流程实例。

轨迹id: 轨迹id通常是指流程节点的运行轨迹id,当一个节点在流程实例中被反复运行的时候(如循环路由,自由流),每次到达这个节点的时候,都会产生一个轨迹 id,trace_id, 唯一标识这次的运行轨迹。

业务数据: 流程中每个节点上处理的业务记录等。通常流程数据和业务数据是有关联的。

流程设计器:利用工作流引擎的设计基本节点和概念给业务流程建模的可视化编辑工具,就是流程设计器。

当前步骤:流程实例未结束前,正运行到的当前节点,为当前步骤。

历史步骤:流程实例运行完成的节点,都认为是历史步骤。

流程实例运行轨迹:每条流程实例在工作流模版的节点上运行的轨迹。

流程实例监控:监控每个流程实例在各个节点的运行情况。

任务:每条流程实例在运行到流程的各个节点时,会产生一些待执行的任务信息。有任务名称,描述,和参与人,完成人等任务的基本信息。通过任务链接到待处理的业务过程。

任务参与人:任务信息的参与人,能够查看到任务的相关人。

任务执行人:可执行任务的操作人。

任务工单:任务派发下来的工单。

串行路由:业务建模中,节点按顺序一个一个的往后串联的方式。

并行路由:业务建模中,节点并行的方式往后链接。

条件路由:业务建模中,按设置的条件为真,链接一个路由方式,条件为false,往后链接一个路由方式。在流程实例运行时,只会执行一条路由,即条件要么=true,要么=false.

分支:业务建模中,平行分支的节点路由方式。

合并:业务建模中,将平行分支的节点路由再合并起来的路由方式。

子流程:为一个独立的业务流程,嵌入到主流程中。

循环路由:在节点间或同一个节点上循环执行的路由方式。

自由流:流程实例不按照流程模版中预定义好的节点顺序往下执行,而是可以自由的跳转。

回退流:流程实例不按照流程模版中预定义好的节点顺序往下执行,而是回退到曾经运行过的任意节点上。

业务补偿类:在流程发生自由跳转的时候,需要辅助执行一些业务处理过程来对业务数据进行修改。


这里只是列出一些常用的工作流系统中的术语,不体现流程引擎的设计基本概念。

特别是流程模版,流程实例,业务数据这之间的关联和区别:

流程模版,是将业务处理过程用工作流引擎的支持的方式表示出来的一个模版文件。
流程实例,按照工作流模版定义的处理过程启动并运行的业务处理过程,通常对应一条主业务数据。一条流程实例在流程引擎中会有一个唯一的流程实例id,通常命名为wf_id,在业务数据的主业务表中,也需要建立一个wf_id字段,来和流程实例关联上。

例如请假审批的流程,请假单,就是业务主表。报销单,报销单的主表,就是业务主表。

根据需要,可能在业务表中,还可能会增加轨迹id字段,来进一步控制业务数据与工作流数据的关联。