如何执行基于DMN规则的Camunda BPMN工作流



我想使用Camunda DMN和BPMN创建一个基于规则的自动化系统。我希望这个系统建立在以下基本原则之上:
a(让业务事件流经Kafkab( 让一个独立的服务检查每个事件的数据c( 根据Camunda DMN中编码的一个或多个规则评估每个事件的数据d( 根据DMN规则评估的结果执行Camunda BPMN工作流

示例:a( 卡夫卡主题包含外部客户要求购买某些物品的按摩b( 独立服务检查每条消息,并根据DMN规则对其进行评估,DMN规则要求每个请求都包含所请求的项目数量c( Camunda任务检查每条消息的";请求项目数量;领域d( 如果";请求项目数量;字段不包含有效值;向客户请求所需的项目数量";BPMN工作流已执行e( ";向客户请求所需的项目数量";BPMN工作流自动向客户发送电子邮件,请求指定所需的物料数量f( 当客户收到回复时,它被放在相应的Kafka主题上,并由独立服务进行检查g( 当顾客的回答与最初的"回答"相匹配时;挂起";请求,一个相应的Camunda BPMN";满足客户要求";执行工作流并满足原始请求。

问题:在DMN规则评估结果触发BPMN工作流的情况下,整个场景是否有可能利用Camunda DMN来定义规则和Camunda BPMN?

目前我正在使用以下工具堆栈:

  • Apache Camel作为REST端点和REST客户端
  • Camunda BPMN发动机

使用Camel,因为可以在没有任何复杂情况的情况下为事件做出路由决策。计划在我们的项目中添加另一个来自Kafka的输入通道。Camel的优点是,新接口不会显示给业务流程部分。我总是使用发送消息事件的可能性来启动进程或继续已经运行的进程。

Camel使用可以配备插件的队列来执行操作。我会使用这个功能在DMN引擎的帮助下做出决定。根据结果,您可以在Camel内做出路线决定,并将您的活动提交给适当的流程。

请记住,还可以对使用DMN实现的业务规则任务来制定决策的流程进行建模。在这种情况下,您可以将事件转发到适当的流程。

因此,请检查需求并选择适合您需求的解决方案。问候

最新更新