0

我们正在开发一个系统来处理财务报表和其他与财务相关的事情。我们正在使用 Java/Java EE 开发应用程序,特别是使用 JBoss Seam(Richfaces、a4j)+ Javascript 和其他技术。

现在我们有很多或公式来计算财务报表帐户。我们需要构建一些可用于存储公式的东西,并以简单的方式或在数据结构中使用它们,这样公式就不会在所有代码中使用固定数字/引用杀死应用程序。(可维护性问题。)

现在我们在 MS Excel 工作表中有公式。那里有 Excel 中的常用公式 (=A30+B40)。excel 中的每一行都是一个帐户,我们最终将存储在 SQL 服务器数据库表 ( account) 中,但这里的要点是如何存储/管理公式以便更好地使用而不是在某个地方硬编码。

我知道金融系统会这样做,但我找不到太多关于它的信息。

4

3 回答 3

3

如果您主要关心的是公式的可维护性,我可以想到两种不同的方法可能会有所帮助。

  • 将公式保存在 Excel 中,并使用 Apache POI 之类的东西将值写入电子表格,然后读回评估的公式。(请参阅http://poi.apache.org/spreadsheet/eval.html。)不确定扩展或执行的效果如何,但明显的优势是,如果您的客户不断调整 Excel 工作表中的公式,则更改会生效立即而不是不断追赶。

  • 将公式转换为 Java POJO,但将它们全部合并到一个纯业务逻辑类或包中,不依赖于 Java EE、Seam 或 JSF。即使每次 Excel 版本更改时您都必须重新翻译成 Java,但至少它们都在一个地方,并且原始 Excel 源之间的映射清晰。您还可以使用脚本语言让您更改公式而无需重新启动/重新部署周期。

于 2012-01-01T18:46:08.723 回答
1

我们曾经做过类似的事情,将 KPI 公式存储在 SQL 表中。我们的 C 程序将从表中读取并运行 SQL。

我们的 KPI 对有助于统计的各种因素进行加权。这样,我们可以更改权重和公式(添加或删除因子),而无需更改程序。

于 2012-01-01T18:04:10.377 回答
1

无论是在您的应用程序代码中,还是作为 sql 函数,这听起来都是一个很棒的函数应用程序。我强烈建议将您的函数存储在 java 代码与 sql 中,因为它更容易测试和更改。诚然,嵌入式 sql 函数可以更好地执行并且可以批量执行,但性能并不是一切,因为您将在调试或更改它们时知道。

于 2012-01-01T18:24:41.757 回答