场景:我们有Winforms和MVC代码,用于在全国范围内为许多用户提供大量物流的多用户平台上工作。每个州,甚至每个城市或县,税收规则都会发生变化。这些税收规则对我们的行业产生了巨大的影响。
另一个问题是,规则可以根据立法而改变。该系统将必须处理的情况,在日期之前,它的工作方式,然后不同的日期后。这一转换将需要输入系统,并在该日期到来之前进行测试。
建议的解决方案:使用Workflow Foundation创建一个基于时间的系统,用户可以在该系统中更改和添加更改税收计算方式的规则。
问:我还没有使用过Workflow基金会,而且searching还在阅读书籍,但并不是很多成功使用这种技术的人的例子。我的场景很好地利用了Workflow Foundation吗?(我认为是这样的)。如果你有任何经验的工作流基金会,有什么小窍门使这个工作好吗?
发布于 2012-04-11 16:01:09
就像WPF一样,Workflow基金会有一个非常陡峭的学习曲线来精通它。尽管如此,这是一个非常强大的框架,尽管有一些古怪之处。根据交付的时间框架,可以选择将一个简单的规则引擎嵌入到应用程序中。
有一种选择,我取得了一定的成功,就是创建基于条件和结果的您自己的规则引擎。基本上,我们有一个物流应用程序,需要根据不同的条件应用不同的关税(费率)、里程计算和交货时间(以及其他计算),例如货物的原产地/目的地、客户是谁、托运人是谁、装运的材料是什么种类等等。
我创建了一个“合同”系统,允许用户输入条件并将它们映射到各种术语。因此,例如,一批从芝加哥运往德克萨斯州的A客户将有五天的交货期限。当用户输入新的货件时,系统将将货物与条款相匹配,并将指定的条件自动应用于货件。
您的系统似乎也有相同的问题。根据货源、目的地和日期,税金可以适用于货件(我假设这是您正在处理的,因为您提到了物流)。你可以预先加载新的税收规则,当它们适用时,它们就会匹配。这一切都是由数据驱动的,所以你不必重新部署来适应新的税收规则。
希望这能有所帮助。
发布于 2012-04-11 15:57:30
这听起来更像是规则管理和实现问题,而不是工作流管理问题。我会考虑使用BRMS (业务规则管理系统),它的重量和复杂性各不相同。SRE是一个相当轻量级的开源规则引擎,人们喜欢它。
https://softwareengineering.stackexchange.com/questions/143953
复制相似问题