2017-10-13 71 views
0

对于一个小项目,我需要创建一个简单的审批工作流程。基本上,一个点击一个按钮,应用程序将转到下一个审批者。问题是如何在没有编写任何可能的情况下在JAVA中实现这一点。我在想的是建立一个数据库表,其中一个描述工作流场景和JAVA代码查找表中的下一步。但我无法考虑细节,表格结构等。因此底线是尽可能地使用配置。用数据库和JAVA创建简单的工作流引擎

+0

嗨,你有没有读过[this](https://stackoverflow.com/help/mcve)? jk,它真的没有什么帮助,因为你只写了没有你试过的要求..你总是可以放一个状态列并从那里开始.. –

+0

我同意,一个例子会有帮助。但是创造一个例子意味着我已经有了一些架构或者想法。但我不是。我已经考虑了一段时间,但我找不到最佳的方法。之所以在这里张贴要么找到答案,要么获得可能有助于找到答案的评论。 – nomadus

+0

它会有多复杂? *其中一个描述工作流场景和JAVA代码查找此表中的下一步*。 idk,但也许人们会犹豫不决,把更多的思想放在不完整的问题上。 –

回答

0

你在找什么,是一种以人为中心的工作流引擎。正如你已经注意到的那样,在实践中可能的情况可能是多方面的。其原因是,可以有

  • 顺序流
  • 叉子和分裂
  • 为还循环或周期

的问题是如何的数据结构必须像描述所有这些场景?这里的答案是OMG standard BPMN 2.0。这是描述工作流的描述性方式。 BPMN文件是简单的XML文件,可以使用建模工具(如Eclipse BPMN)进行可视化。

如果您存储这种XML(例如,只存储到您的文件系统中),则可以编写引擎来解析此模型并以适当的方式作出反应。 有一些基于BPMN的工作流引擎可用,也作为开源项目。 看看Imixs-Workflow project,它提供了一个专注于以人为中心的wokflows的开源工作流引擎。 一个以人为中心的工作流引擎答案您已经在您的要求中提到的问题,比如:谁是企业的任务=>路由的所有者

  • 谁可以访问和修改数据=>安全
  • 谁需要通知=>信息

但是实现工作流引擎是不容易的事。最后,您需要一个XML解析器来回答“下一个任务是什么?”的问题。