2

你好!

我对CamundaFlowable BPMS 有疑问。我需要根据业务流程更改我的 UI。

例如:

  1. 我有一个进程 A(用户任务)和 camunda(可流动)应该在 Vaadin 中生成一个表单。然后它应该等待用户活动并继续......(或者 camunda 只需要调用 vaadin 表单并等待后端处理结束并得到一些响应)
  2. 如果我有另一个进程,camunda 应该生成另一个表单,等等。

这种方法有意义吗?或者更适合使用 camunda 等 bpm仅用于业务流程(不适用于用户界面)?

提前致谢!

4

2 回答 2

1

流程引擎的工作原理是只有当前任务才重要,并且引擎知道(通过 bpmn 模型)下一步该做什么。您放弃了对流程的完全控制,从而获得了简化的更新和修改。引擎异步工作,完成任务的用户不知道(也不需要)接下来将进行哪些活动。

话虽如此,流程引擎通常不适合 UI 流之类的“向导”。引擎将“TaskA”视为单个任务,将其持久化,然后在任务列表中创建一个未签名的“TaskB”,然后可以再次被用户(不一定是同一用户)声明和处理。

但是,如果您想坚持自己的方法,请查看UI 中介者模式,它是一种行为模式,对“向导”用户隐藏了底层异步延续。

有一篇较旧但仍然有用的博客文章描述了如何使该模式适应 camunda 流程引擎。基本上,您在用户完成任务后阻止并等待,如果后续任务再次由用户处理,您将重定向到它。

于 2019-04-16T12:03:01.300 回答
0

我找到了一些解决方案。只需在 Camunda 一侧使用“FormKey”即可。并在 Vaadin 应用程序中创建 FormFactory(工厂方法模式),通过 id 返回所需的表单。

public CustomForm getForm(Task task) {
   String formKey = task.getFormKey();

   if(formKey.equalsIgnoreCase("formId1") {
      return new Form1(...);
   }


etc

这种方法将允许您使用额外的按钮、自定义表单等。

于 2019-07-02T08:24:35.823 回答