1

我有一个应用程序,它允许不同的用户更新一些数据,然后将这些数据发布到网站上。该应用程序使用 JPA 作为持久层。我现在想在这个场景中添加一些工作流管理,这样当具有初级角色的用户更新数据时,它不会直接发布,而是等待高级用户出现并批准更新。当更新未获批准时,原始数据应保持可见。

理想情况下,高级用户应该能够拒绝更新,而初级用户将看到该更新被拒绝并相应地编辑更新。

问题是,创建这样一个场景的好模式是什么?

我难以理解的部分是如何在不复制我拥有的每个实体的情况下表示更改的数据。在批准之前对数据进行多次更改怎么办?

我考虑了命令模式,因为它允许某种类型的撤消。我想知道是否有人有过类似情况的经验并有什么建议可以提供?

我应该指出,我知道一些工具,例如JBPM,它是一个工作流引擎,但我希望避免将这些工具集成到现有架构中的复杂性。如果有人指出使用这样的工具最终会产生更高的生产力,我将不胜感激。

谢谢

4

1 回答 1

1

是的,我绝对认为您在这种情况下所做的是启动不同的业务流程。使用 JBPM 或drools-flow(您应该看看)等工具不仅可以准确地表达您的问题,还可以让您通过他们提供的设计器对应用程序的流程进行可视化处理。您可以使用使您的应用程序直接作为文档工作的东西。

于 2009-06-27T23:13:37.260 回答