0

我有一个要求

  • 如果某些验证失败,我必须询问用户是否继续
  • 如果用户说,我必须persist the data in DB
  • 如果用户说不那么data won't be persisted in DB
  • 验证在validate.drl中执行。
  • 执行完这些验证后,我必须询问用户是否要继续。工艺流程如下:

    开始 -> input.drl -> validate.drl -> takeUserConfirmation.drl -> persistData.drl

在上面的流程中,我必须添加一些逻辑,takeUserConfirmation.drl以便用户确认是否要继续。根据给出的答案,我将限制规则persistData.drl。这样它只有在用户确认持久性时才会执行。我怎样才能做到这一点?人工任务(即工作项处理程序)对这种情况有用吗?如何暂停流口水,接受用户确认并再次启动相同的流程?

4

1 回答 1

0

问题是你为什么要在 Drools 中完成这一切。规则文件似乎不是用户交互的正确位置。我宁愿返回应用程序代码,其中包含验证失败的对象集合(您可以标记它们),然后如果它们将被确认,则为它们执行 presistData.drl。

因此,在最终版本中,您将有两个独立的流程:

  • 输入 -> 验证 -> 持久化(您可以在验证的对象上添加额外的标志,这些标志将在持久化中检查)
  • 确认后再次执行持久化

另外我想知道 input.drl 的目的是什么?

这应该是评论而不是帖子,但我不需要 50 个代表。

于 2013-07-31T11:21:29.317 回答