2017-10-13 69 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解析器來回答「下一個任務是什麼?」的問題。