2012-03-07 130 views
4

爲了解釋我正在嘗試做什麼,請參閱經典的銀行業務示例。我應該使用報告框架嗎?

我有一個從一個銀行賬戶進入另一個銀行賬戶的流。我希望我的網絡應用的用戶能夠創建他們自己的謂詞來篩選將構成某些報表的輸入數據的付款。我正在計劃手動編寫報告,而不是使用現有的報告框架。

在優先順序,我希望用戶能夠與網絡前端創建謂詞的類型有:

  1. payment.amount > 100.0
  2. payment.amount > 100.0 || payment.dayOfWeek = TUESDAY
  3. (payment.amount > 100.0 && payment.description.contains("foo")) || payment.dayOfWeek = TUESDAY

我也希望能夠堅持這些謂詞在以後重用。

我覺得這必須是一個共同的要求,至少有一些必須已經開發出來,但我很難確定它是什麼,我試圖搜索谷歌。有沒有人遇到過基於Web的框架來生成謂詞和/或什麼東西來保存這些數據?

回答

2

我認爲您可以使用Drools來創建和重新使用業務規則。

+0

我要去看看drools。前一段時間我使用了jrules,它有決策樹/表/規則;我覺得從幾個角度來看它可能是過度的 - 開發,規則集部署,用戶學習曲線以創建新的規則/數據集。我一直在尋找的是一個包含「金額」,「星期幾」,另一個組合「包含」,「等於」,「在列表中」的組合框的表單,終值域,例如文本框,組合,列表等。添加按鈕然後保存當前的「規則」,並開始另一個。它聽起來像一個規則引擎,就像這樣! – James 2012-03-07 14:44:01

0

業務規則引擎可能是一個很好的解決方案,但也可能會過大。

市場上有很多規則引擎,它們有很大的不同。例如,http://openrules.com是非常重的,因爲drools更像是一種開發者規則引擎(請參閱http://java-source.net/open-source/rule-engines瞭解大量引擎)。

即使嵌入像groovy這樣的腳本語言,也可能是一個很好的解決方案。

如果你真的只需要你描述的那三條規則,我猜這隻需要存儲這三個參數(amount,searchTerm和weekday)並且用它們建立一個DB查詢是有意義的。