BPM 概念
在下面的章节中, 我们将探讨有助于理解 Jmix BPM 中嵌入的 Flowable 流程引擎的关键概念。 这些概念包括流程模型、流程定义、执行、流程实例、部署、token 和流程上下文。 每个概念在引擎的运行过程中都扮演着重要的角色,有助于业务流程的执行和管理。
流程生命周期
Jmix BPM 中的流程生命周期包括流程实例从启动到完成的各个阶段。因此,了解生命周期对于有效管理和控制业务流程至关重要。
建模
生命周期从建模阶段开始, 其中,业务 流程模型 是使用 BPMN 2.0 表示法设计和定义的。 即,创建流程模型时需要指定模型中的业务流、任务、事件和决策点。 流程模型以 XML 格式表示。
除了 XML 模型之外,开发者还需要完成一些额外的工作才能创建真正可执行的业务流程:
-
业务逻辑的实现
-
用户界面(UI)表单的创建
-
决策表的定义
-
事件监听器以及错误处理
启动
流程定义在部署之后, 就可以启动新的 流程实例 了。 每个实例都表示流程特定的一次执行过程,并且是唯一的。 流程实例启动时可以使用任意的变量和数据。
执行
流程实例在进行过程中,会在流程引擎管理下切换路线。引擎根据定义的流程模型控制业务流的走向,在任务、事件和网关之间切换。 在执行过程中,引擎可能会创建 执行 工件来处理并行路径、多实例活动或子进程,从而确保流程的所有方面都得到有效管理。
状态管理
在执行期间,流程实例还会在不同状态间切换,例如运行(running)或挂起(suspended)。 流程引擎可以有效地对这些状态进行动态管理,从而支持根据需要挂起或恢复流程。 此功能不仅能支持对流程实例进行管理,还扩展到管理流程定义。 使两者都能够根据需要挂起和激活。
令牌
令牌(token)是 BPMN 中的一个关键概念,有助于理解和定义流程在执行过程中的行为。 令牌表示进程的当前状态, 也是流程在运行时行为的一种可视化体现。
启动流程时,会创建一个令牌,通常由启动事件启动。 该令牌随着流程流动, 按流程的顺序行进并与之遇到的流程元素进行交互。 当遇到并行网关时,令牌可以拆分为多个, 而遇到流程中的其他节点时,这些令牌还可以合并回来。 在到达结束事件时会消耗该令牌,表示流程实例的完成。
每个流程实例都有自己的令牌,用于跟踪该特定实例的状态。 多个流程实例可以同时运行,每个实例都维护自己的令牌。 当令牌遇到活动(activity)时,就开始流动, 并能与网关交互以确定接下来要走的路径。 请注意,令牌不能遍历消息流;只有消息可以沿消息流流动。
在 BPMN 执行的上下文中直接对令牌进行访问(例如跟踪或操作流程令牌)的功能并不在 Flowable API 中显式提供。 相反,流程引擎的 API 主要侧重于管理流程实例、 任务和事件,而不是将令牌作为单独的实体开放。 |
流程上下文
流程上下文是在整个流程执行过程中使用的数据的集合。 包含所有相关的信息,包括流程变量、执行状态、 用户角色,以及流程管理和分支走向所需的任何其他数据。 此上下文是流程中决策和运行的基础, 以确保所有组件都可以访问正常运行所需的信息。
这是一个概念框架, 流程引擎不提供特定的对象或类来表示流程上下文。