从nodejs中缓慢触发Camunda流程定义

时间:2018-03-23 13:08:30

标签: events restful-architecture bpmn camunda

我是Camunda / BPMN的初学者,我想用它来控制nodejs中发生的事情,主要是使用REST API,至少目前是这样。 (除非人们更好地了解nodejs应该如何与Camunda交谈。)我的目标是提供非程序员可以非常实际的方式更新业务逻辑的系统。

我想通过发送一条REST消息来启动可能超过一个的流程,比如反映“已经出售了一个新的保险单”,这可能会触发周一说2个流程的实例化但也许在星期二我们添加第三个,现在相同的REST API调用现在应该在星期三触发更多活动。 (我认为nodejs更了解事件但不了解流程定义。毕竟,我的目标是将Camunda用作我的应用程序的一种业务逻辑服务器.todejs代码需要知道的越多越好。)

  • 我应该使用哪个REST API来表达“新的保险单已售出”的消息?当我看到:

https://docs.camunda.org/manual/develop/reference/rest/signal/post-signal/

我觉得很困惑。在商业流程定义中,“名称”应该匹配什么?我假设我不需要executionId?我想我可以省略tenantId?

  • 消息中的某些字符串是否与一个或多个流程定义中的起始事件的ID匹配(或者哪些必须与之匹配)?
  • 当我查看一个过程时,是否有一种简单的方法可以告诉我需要提供哪些变量才能启动该过程?
  • 我是否应该避免使用这种面向事件的方式来启动进程并只使用POST / process-definition / key / {key} / start?在我看来,更好的形式是触发事件或信号或类似事件的活动,而不是让我的nodejs代码通过名称了解特定的流程定义。
  • 在这种情况下我应该使用事件或信号吗?
  • 我认为开始事件不应该是“无启动事件”但是如果我想根据事件或信号或其他东西自动触发,我不清楚要使用什么类型的启动事件? “非中断 - 消息启动事件”是否适合排序?我发现这令人困惑。
  • 一旦我触发了启动过程,nodejs需要发送什么来将进程从该实例中的一个任务转发到下一个任务?

谢谢!

1 个答案:

答案 0 :(得分:1)

为了实例化新的工作流实例,您有以下可能性:

只启动一个实例:

启动多个实例 - 通过BPMN信号事件启动工作流实例:https://docs.camunda.org/manual/develop/reference/bpmn20/events/message-events/。信号名称可以一次启动多个实例。

将在BPMN模型中配置消息名称或信号名称。两者都适用于您的用例。

启动流程实例后,它将自动执行后续步骤。 可能一步一步地遵循这个例子(https://docs.camunda.org/manual/develop/reference/rest/signal/post-signal/)可以给你一些更好的想法吗?