我有一个应用程序,允许不同的用户更新一些数据,然后发布到网站。该应用程序使用JPA作为持久层。我现在想要为此方案添加一些工作流管理,以便当具有初级角色的用户更新数据时,它不会直接发布,而是等待高级用户出现并批准更新。虽然更新未获批准,但原始数据应保持可见。
理想情况下,高级用户应该能够拒绝更新,初级用户将看到被拒绝并相应地编辑更新。
问题是,创建这种情景的好模式是什么?
我无法理解的部分是如何在不重复我拥有的每个实体的情况下表示已更改的数据。那么在批准之前对数据进行多次更改呢?
我考虑了command模式,因为它允许一种撤消。我想知道是否有人有类似情况的经验,并有任何建议提供?
我应该指出,我知道一些工具,例如JBPM这是一个工作流引擎,但我希望避免将这些工具集成到现有架构中的复杂性。如果有人指出使用这样的工具最终会提高生产力,我将不胜感激。
由于
答案 0 :(得分:1)
是的,我绝对认为您在该方案中所做的是启动不同的业务流程。使用像JBPM或drools-flow这样的工具(您应该看一下)不仅可以准确表达您的问题,还可以让您通过他们提供的设计人员直观地了解应用程序的流程。您可以使用什么使您的应用程序直接作为文档。