用Java实现业务流程引擎

作者:Alphaflow 时间:2022-05-08 浏览 :181

在这里,我们将构建一个端到端的工作spring-boot应用程序,它在其后端使用AlphaFlow作为业务流程引擎。在深入探讨可流动部分之前,让我们讨论一下可用于使整体开发更容易、更快且不易出错的场景:

业务流程管理应用程序可以创建在线采购订单到付款的整个采购订单流程。优雅简单,并在每个重要时刻提供问责制。同样的,也可以在内容营销、入职离职、医院病患出入院流程等等各种具体的场景中实现。例如,病患出入院流程包含如下几个阶段:

1.收集患者信息

2.获取病历

3.检查保险细节

4.病房药物安排

5.支付账单

在这个流程中,流程管理通常处理各种状态,也可以根据不同的场景进行。现在让我们深入了解各种术语和实现细节,因为我们对它的用例有了基本的了解。

1652670476206594.jpg

什么是BPMN?

OMG(对象管理组)定义了一个称为业务流程模型和表示法(BPMN)的标准,供企业定义和交流他们的流程。它基本上是一种将方法映射到业务流程的方法;也就是说,创建复杂业务实践或流程的可视化表示。它为主要利益相关者提供做出明智决策所需的清晰度和视角,就像精心绘制的地图可以帮助您找出到达目的地的最佳路线一样。

业务流程相关的术语

用户任务

用户任务是典型的“工作流”任务,其中人们在软件应用程序的帮助下执行任务,并通过某种任务列表管理器进行调度。在AlphaFlow中,用户任务是在流程中与人类交互的主要方式。

服务任务

服务任务是使用某种服务的任务,它可以是Web服务或自动化应用程序。在AlphaFlow中,服务任务用于执行某种形式的不需要人工干预的技术任务。

序列流

顺序流用于显示流程或编排中流程元素的顺序。每个序列流只有一个源和一个目标。

专属网关

专属网关是发散的独占网关(决策)用于在流程流中创建替代路径。这基本上是流程的“转移点”。对于给定的流程实例,只能采用其中一条路径。

流程图

通过可视化描述一个流程,清晰界定流程的边界和流向。通常它会展示任务如何分流,去往何方,由谁决定它接下来的走向。

通过JAVA我们可以建立流程启动,然后利用流程变量与流程实例在流程的生命周期内使用。我们定义API调用的方法,以实现上述用例。之后部署流程定义,当需要BPMN2.0流程中的JAVA委托,此类可用于服务任务和事件侦听,最后定义业务逻辑相关的任务触发,实现业务流程引擎。

本文标签:流程引擎