如何通过 "camunda" 或 "flowable" bpm 来控制 UI(例如 Vaadin)?
How to control of UI (e.g. Vaadin) through "camunda" or "flowable" bpms?
您好!
我对 Camunda 或 Flowable BPMS 有疑问。我需要根据业务流程更改我的 UI。
例如:
- 我有一个 process A(用户任务),camunda(可流动)应该在 Vaadin 中生成一个表单。然后它应该等待用户 activity 并继续...(或者 camunda 只需要调用 vaadin 表单并等待后端结束处理并获得一些响应)
- 如果我有另一个进程,camunda应该生成另一个表格,等等
这种方法有意义吗? 或者使用诸如 camunda 之类的 bpm 更适合 business processes only(不用于用户界面)?
提前致谢!
流程引擎的工作原理是只有当前任务很重要,引擎知道(通过 bpmn 模型)下一步该做什么。您放弃了对流程的完全控制,从而获得了简化的更新和修改。
引擎异步工作,完成任务的用户不知道(也不需要)接下来将进行哪些活动。
也就是说,流程引擎通常不适合 "wizard" 之类的 UI 流程。引擎将 "TaskA" 视为单个任务,持久化它,然后在任务列表中创建一个未签名的 "TaskB",然后用户(不一定是同一用户)可以再次声明和处理该任务。
但是,如果您想坚持自己的方法,请查看 UI Mediator pattern,这是一种行为模式,它对 "wizard" 用户隐藏了底层异步延续。
有一个较早的但仍然 helpful blog post 描述了如何使模式适应 camunda 流程引擎。基本上,您在用户完成任务后阻塞并等待,如果后续任务再次由用户处理,您将重定向到它。
我找到了一些解决办法。只需在 Camunda 一侧使用 'FormKey'。并在 Vaadin 应用程序中创建 FormFactory(工厂方法模式),returns 需要通过 id 形成。
public CustomForm getForm(Task task) {
String formKey = task.getFormKey();
if(formKey.equalsIgnoreCase("formId1") {
return new Form1(...);
}
etc
这种方法将允许您使用额外的按钮、自定义表单等。
您好!
我对 Camunda 或 Flowable BPMS 有疑问。我需要根据业务流程更改我的 UI。
例如:
- 我有一个 process A(用户任务),camunda(可流动)应该在 Vaadin 中生成一个表单。然后它应该等待用户 activity 并继续...(或者 camunda 只需要调用 vaadin 表单并等待后端结束处理并获得一些响应)
- 如果我有另一个进程,camunda应该生成另一个表格,等等
这种方法有意义吗? 或者使用诸如 camunda 之类的 bpm 更适合 business processes only(不用于用户界面)?
提前致谢!
流程引擎的工作原理是只有当前任务很重要,引擎知道(通过 bpmn 模型)下一步该做什么。您放弃了对流程的完全控制,从而获得了简化的更新和修改。 引擎异步工作,完成任务的用户不知道(也不需要)接下来将进行哪些活动。
也就是说,流程引擎通常不适合 "wizard" 之类的 UI 流程。引擎将 "TaskA" 视为单个任务,持久化它,然后在任务列表中创建一个未签名的 "TaskB",然后用户(不一定是同一用户)可以再次声明和处理该任务。
但是,如果您想坚持自己的方法,请查看 UI Mediator pattern,这是一种行为模式,它对 "wizard" 用户隐藏了底层异步延续。
有一个较早的但仍然 helpful blog post 描述了如何使模式适应 camunda 流程引擎。基本上,您在用户完成任务后阻塞并等待,如果后续任务再次由用户处理,您将重定向到它。
我找到了一些解决办法。只需在 Camunda 一侧使用 'FormKey'。并在 Vaadin 应用程序中创建 FormFactory(工厂方法模式),returns 需要通过 id 形成。
public CustomForm getForm(Task task) {
String formKey = task.getFormKey();
if(formKey.equalsIgnoreCase("formId1") {
return new Form1(...);
}
etc
这种方法将允许您使用额外的按钮、自定义表单等。