0

我试图为用户提供一种方法来生成他们自己的工作流程作为系统的一部分。这些工作流程将是订单将根据客户要求采用的自定义路径。例如:如果客户要求我们签署一组条款和条件,则除非已上传 T&C 文件,否则订单将无法获得批准。

我一直在研究将bpmn-js用于前端并在每次与工作流相关的某些更改时执行输出 BPMN2.0 文件(即,在这种情况下,当文件上传时挂钩)但它看起来不像用户将能够使用该库开箱即用地选择实际的系统功能。我应该尝试扩展该库还是可以使用其他东西来代替?

我也一直在考虑使用Camunda,但最好不要指望用户使用第二个应用程序。

4

1 回答 1

0

以业务流程将由流程引擎驱动的方式设计您的应用程序。当一个流程被启动时,它会启动一个流程实例。从那里,流程引擎(嵌入在您现有的 Java 应用程序或独立的后端服务中)确定是否需要评估业务规则 (DMN)(是否存在所有必需的数据和批准?),是否需要调用服务(调用您的 java直接代码)、自动化(外部任务模式)或用户任务需要由技术人员(任何语言)或人工流程参与者(基于引擎确定的分配)完成。

如果涉及到人,UI/客户端会在流程引擎中查询待处理的用户任务,并在人执行任务时更新这些任务。

流程引擎将根据对基于 BPMN2 标准的流程模型的解释(不生成代码)来确定接下来的步骤。ootb 提供了这些版本的版本控制。新启动的流程会在最新版本上自动启动,而正在运行的流程实例会在它们启动的版本上继续其生命周期(除非它们被迁移)。

如果用户在设计时需要访问专用的建模环境,这通常不是问题。他们只是不应该在运行时使用两个应用程序。无论如何,通过您提到的 BPMN-js 库,也可以轻松地将建模部分集成到同一个应用程序中。

“系统功能的选择”是通过选择实现类型并设置相应的属性来完成的。BPMN-JS 库在这方面是通用的。看看这是如何在 Camunda Modeler ( https://camunda.com/products/camunda-bpm/modeler/ ) 中完成的:

Java:https ://docs.camunda.org/get-started/java-process-app/service-task/ 春天:https ://docs.camunda.org/get-started/spring/service-task/ 外部:https://docs.camunda.org/manual/latest/user-guide/process-engine/external-tasks/

于 2020-11-25T03:11:07.297 回答