问题标签 [business-rules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12229 浏览

c# - 在具有 3 层架构的 ASP.NET MVC 应用程序中验证业务规则的更好方法是什么?

我决定所有与验证业务规则相关的逻辑都保留在 Service 类中,如果任何规则未通过,则抛出特定异常,在控制器类中,此异常将捕获并向客户端显示错误。这是代码

服务等级

控制器类

我不确定这是否是验证业务规则的最佳方式,任何人都可以帮助我提出建议或更好地解决这个问题吗?提前致谢!

0 投票
4 回答
2501 浏览

ruby-on-rails - 什么是业务逻辑?

可以用业务逻辑这个词来描述:

控制最终用户可以使用哪些数据的帐户角色(管理员、最终用户、未注册用户、版主)?

如果没有,有人可以提供一个术语来描述上述情况,并纠正我的业务逻辑的确切含义吗?它与业务规则有何不同?例子?你会把业务逻辑层放在 Rails/RoR 的控制器中吗?

0 投票
1 回答
1909 浏览

etl - 在 ETL 中应该如何实现业务规则?

我正在开发一个产品,该产品使用 SSIS 通过平面文件从大型机导入数据。SSIS 包使用阶段数据库来转换平面文件数据,然后调用 ODS 中的存储过程来加载转换后的数据。有一个潜在的计划是通过 .NET 服务层(而不是通过存储过程直接到 ODS)路由所有 ETL 数据,以集中业务规则/活动等。我正在寻找有关这种方法的输入和不同意见。

0 投票
3 回答
290 浏览

design-patterns - 应用程序设计 - 可修改的业务规则

我正在寻找有关应用程序设计的一些建议。由于我已签署 NDA,因此我无法透露太多有关实际业务的信息,但会尝试解释该要求。

本质上,我们希望开发一个应用程序,该应用程序将根据客户的信用状况做出决定。我们将从合适的提供商(例如 Experian)获取数据,并将其与业务规则相匹配。如果客户符合这些规则,他们会得到一个绿旗,以传递给下一个流程(可能还有另一个系统,但目前并不担心);如果没有,他们将获得红旗并且不会被传递。

客户表示他们希望业务规则是可修改的,即他们可以修改的东西,而不是硬编码或卡在某处的代码中。他们将一组规则定义为“模板”。系统一次只有一个活动模板,但在其生命周期内可能有许多模板。

这些规则将由检查不同数据类型的多个运算符组成。规则的每个阶段/步骤将被分配一定的权重。“模板”的一个例子是

  • 顾客是男的吗=10分
  • 客户是否为女性 = 20 分

  • 客户是否在 25 至 35 岁之间?= 20 分

  • 客户是否低于 25 岁?= 10 分

  • 客户是否每年赚取 30000 美元到 50000 美元之间 = 20 分

如您所见,有各种类型的比较/运算符(布尔值、整数等)。

我正在寻找可以构建这些“模板”的框架/建议。这是一个网络作业,所以我们知道我们肯定会使用某种数据库。该技术尚未确定,但可能介于 PHP 和 .NET 之间。我们认为在这个阶段很多这将在 SQL 中完成(并且想看看这是否是一个好主意)

有没有我可以通过的示例应用程序?以前有人做过这种性质的工作吗?

谢谢!

0 投票
1 回答
1366 浏览

.net - 规则引擎 - 如何存储规则以避免在编辑时解析?

我的 .NET 应用程序在运行时评估用户定义的规则。这些规则由用户通过 GUI 菜单输入到系统中。我生成一个与之对应的逻辑语句并将其存储在数据库中。

例如:(姓名 = 'John' AND Surname = 'Smith') OR Number > 12

但是,当用户想通过 GUI 编辑规则时,我需要进行反向操作,从存储的规则中确定菜单状态,这既昂贵又复杂。您如何建议以可以轻松反转为菜单状态的方式存储规则?

0 投票
2 回答
667 浏览

business-rules - 业务规则引擎预期性能

如何评估规则引擎?您测试什么以查看它是否执行正常?每个规则执行的毫秒数?规则的复杂性?如果是“每个规则的时间”,什么时间被认为是好/坏?谢谢!

0 投票
4 回答
320 浏览

oop - 特定时间段有效的业务规则——如何有序管理

0 投票
4 回答
1937 浏览

business-rules - 使用规则引擎来实现规则链 [复杂的业务逻辑] 是不是矫枉过正?

最近,我正在阅读 JBOSS Drools 手册 [ref - 2.2.5. 强耦合和松耦合]。下面是它的摘录“如果你的规则都是强耦合的,那么这些规则可能会在未来变得不灵活,更重要的是,规则引擎可能是矫枉过正的(因为逻辑是一个清晰的规则链 - 并且可以被硬编码。[决策树可能是有序的])。这并不是说强耦合或弱耦合本质上是不好的,但在考虑规则引擎以及如何捕获规则时要牢记这一点。“松散”耦合的规则应该产生一个允许更改、删除和添加规则的系统,而无需更改其他不相关的规则。

这是否意味着,规则引擎不适合实现复杂的业务逻辑[紧耦合规则或规则链]。

在我目前的项目中,我们有一系列规则,即一条规则的结果决定另一条规则的结果,依此类推。应用程序有许多内部变量来链接规则。我认为规则引擎可能有助于通过声明性规则和动态业务逻辑的附加优势来处理复杂性。

这方面的讨论会有所帮助......

0 投票
2 回答
725 浏览

.net - 如何处理复杂多变的业务规则

我必须想出一个关于如何透明地创建发票的想法。客户是多样化的,通常是政府类型的机构。因此,他们对创建发票及其内容有严格的规定。这些规则非常具体,并且因客户而异。例如:

  • 对于每 10 个项目,需要创建另一个发票
  • 如果特定服务进入发票,则应排除使用的材料
  • 根据合同或法律,有些项目是免费的
  • 一些非常昂贵的物品必须单独开具发票

IMO 规则过于多样化,无法以传统形式保存在关系数据库中,而且它们过于灵活,无法硬编码到系统中。所以,问题是:你将如何解决这个挑战?

0 投票
1 回答
3468 浏览

sql-server-2005 - 数据驱动的业务规则。

我正在使用 SQL SERVER 2005。

我有一张桌子

现在我有一个业务逻辑,例如:

现在我要做的是将所有这些规则存储在数据库中并使其成为数据驱动的。这样做的原因是为了给最终用户更多的灵活性。如果明天业务规则发生变化,最终用户可以灵活地通过 GUI 进行更改。例如。如果明天企业想要将比较值从 126 更改为 200,他们应该能够通过界面进行更改。我尽可能地提供灵活性,例如更改列的能力,就像业务应该能够更改规则一样,而不是 col1,他们可以将新规则更改为 col2。如果可能的话,他们也可以更改运算符而不是 >=,他们可以将其更改为 <=。

我想改变它更多的数据驱动,所以当表中的值发生变化时,我们不需要更改代码。

可以在数据库中做这件事吗?有人可以建议支持此业务规则的数据模型是数据驱动的吗?