当前位置: 首页 > 知识库问答 >
问题:

如何通过“camunda”或“可流动”bpms控制UI(例如Vaadin)?

商德泽
2023-03-14

你好!

我对Camunda或Flowable BPMS有问题。我需要根据业务流程更改UI。

例如:

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

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

提前感谢!

共有2个答案

郜联
2023-03-14

我找到了一些解决办法。用卡蒙达这边的‘form key’就行了。在Vaadin应用程序中创建FormFactory(工厂方法模式),通过id返回所需的表单。

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

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


etc

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

轩辕佑运
2023-03-14

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

也就是说,流程引擎通常不太适合像UI流这样的“向导”。引擎将“TaskA”视为单个任务,持久化它,然后在任务列表中创建一个未签名的“TaskB ”,然后用户(不一定是同一用户)可以再次申请并处理该任务。

但是,如果您想坚持您的方法,可以看看UI Mediator模式,这是一种行为模式,它对“向导”用户隐藏了底层的异步延续。

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

 类似资料:
  • 喂! 我有一个问题与卡门达或流动的BPMS。我需要根据业务流程改变我的UI。 null

  • 我想在这里做三件事: 在选定项目或其他内容之前,禁止滚动到下一个屏幕 阻止滚动到上一个屏幕(部分实现) 向用户提供反馈,以显示滚动被禁用,就像Android用渐变显示顶部和底部屏幕的方式一样。

  • 我在试着控制Android手机的震动频率。 据我所知,android API提供了一个通过开/关模式来控制振动的接口: 公共空隙振动(长[]模式,int重复) 通过DFT将这些时域加速度数据转换到频域后,我注意到无论我设置哪个振动频率,在10Hz和175Hz附近总是有一个显著的功率。 我在想为什么它不起作用?

  • 走这条路对吗?如果没有,流量控制该怎么做?

  • 我想通过在selenium webdriver中按键盘键Ctrl打开chrome浏览器控制台。我可以使用Robot类来做这个动作,但我希望没有Robot类。我使用了Actions类和Keys类,使用的是sendKeys。但我无法打开浏览器控制台。 是chrome浏览器版本问题还是操作系统问题?为什么浏览器控制台没有使用Action类和Keys类打开?

  • 我基于最初的Camunda Twitter示例创建了一个工作流原型,并进行了以下几项修改。 当直接运行时,未经修改,进程令牌: 首先在查看推特用户任务时停止: 随后会引发以下异常,这似乎不会影响任何事情(或者会影响吗?): 现在,我对原始示例进行了以下修改: a)引入了一个endpoint(),最初通过该endpoint调用进程: b) 引入了另一个endpoint(,旨在以编程方式将流从查看推文

  • 如果我把筹码拖离初始位置,它应该画一条线。当我移动筹码时,它应该总是画一条线。 这就是我所尝试的: 我将该代码放在芯片的ontouch listener中。您可以在此处下载该项目:https://www.dropbox.com/s/ggfbsbkaokj9vxi/CoachingBoard.rar?dl=0

  • 问题内容: 我发送这样的短信 html标记 JavaScript代码 symfony2控制器代码 但为空… 我已经尝试通过Firefox HTTP请求测试器进行普通的发布请求(不是Ajax)。 控制器工作并具有价值。 所以我认为php代码还可以,但是Ajax方面存在问题 成功地调用’success:function’。 您如何获取javascript数据结构的内容? 问题答案: 首先,您无需访问控