`
NIIT_zhu
  • 浏览: 49447 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在流程和节点中引入规则引擎

阅读更多

 

规则引擎的功能和特点是在不改变流程,不重新部署工程的情况下,动态的配置策略信息,修改策略逻辑.达到动态的业务配置目的。

 

举一个简单的例子.一个销售机构销售一种商品,当该商品的数量小于100的时候不需要运输部门负责运输,则不需要通知运输部门。但是当大于100的时候则需要运输部门负责运输,但有的时候这个100的数量是可变的,有的时候是150,有的时候甚至是200。但是这个数量如果写在了Code里,就写死了。这个时候我们就可以通过业务规则引擎来帮助我们在流程外配置这个属性

 

实现业务规则引擎DEMO

 

 

这里的schValue代表的是货物的数量, 业务规则引擎会根据这个数量来判transportDEP的动作,确认该订单是否达到了需要运输部门运输的标准。然后建立订单计划这个规则包以供其他外部程序调用。

 

在这个例子中我们需要用到的规则元素就是schValuetransportDEP,规则元素添加完成后,我们就可以进行业务规则的配置了。

 

设置以下3中情况:

 

1:当schValue(货物数量)为90时,发送给运输部门的信息。

 

2:当schValue(货物数量)为200时,发送给运输部门的信息。

 

2:当schValue(货物数量)为300时,发送给运输部门的信息。

 

 

 

 

当决策变为:货物数量大于200的时候,那么需要运输部门参与,规则配置如下

 

 

当决策变为:货物数量大于300的时候,那么需要运输部门参与,规则配置如下

 

 

 

 

 

 

从上面的规则配置中我们可以看出,如果在某个流程的节点上,我们的决策发生了变化,那我们只需要灵活调整相应的业务规则即可,而不需要去改Code

 

 

 

 

使用Java类调用规则包

 

首先在eclipsejava工程中,点击属性设置其路径。在其属性窗口的Java Build Path中设置Libraries,通过Add External JARs…加入VisualRules安装目录的lib下的engine.jarjakarta.jar,在通过Add External Class Folder…加入VisualRules安装目录下的rules目录。如下所示:

添加Java测试类

 

         java工程中添加一个java类,名为TestHello.java,其内容编辑如下:

 

import com.flagleader.engine.RuleEngine;

 

import com.flagleader.engine.RuleEngineFactory;

 

public class TestHello {

 

         public static void main(String[] args) {

 

                   try {

 

                            RuleEngine engine = RuleEngineFactory.newInstance().getRuleEngine();

 

                            engine.put("schValue", "200");传入参数

 

                            engine.excute("订单计划");   //规则包名称           System.out.println(engine.getString("transportDEP"));传出参数

 

                   } catch (Exception e) {

 

                            e.printStackTrace() ;

 

                   }

 

         }

 

}

 

从上述代码中可以看出,只需加入上述的代码,即可完成调用规则包的工作。而流程和节点中的业务人员只需要维护业务规则即可,任何业务决策的改变都不需要来改动代码

 

分享到:
评论

相关推荐

    一个基于动态规划的规则引擎构件技术研究

    综上所述,基于动态规划的规则引擎构件技术研究提供了一种创新的方法,用于优化规则引擎的推理机制和条件匹配效率,特别是在规则集频繁变动的环境中。这种方法不仅缩短了系统的响应时间,还提高了资源利用率,为构建...

    规则引擎drools-jboss rules

    JBoss jBPM 是一个业务流程管理工具,在它的判断节点上使用表达式和代理引用来控制工作流中的事务。通过在每个节点上求值以决定分支的流向—这同样是一个规则引擎。 规则引擎的优点有: * 能够处理大量规则和事实...

    使用WEBLOGICPORTAL规则引擎中实现动态业务逻辑.docx

    《使用WEBLOGICPORTAL规则引擎中实现动态业务逻辑》 在现代企业级应用中,业务逻辑的灵活性和可扩展性至关重要。随着市场环境的快速变化,传统的开发和部署模式往往无法满足这种需求,因为它们通常需要开发人员手动...

    liteFlow规则引擎框架 v2.11.4.zip

    12. **计算机案例**:liteFlow可以作为计算机科学教学案例,让学生了解如何构建和使用规则引擎,以及如何设计和实现业务流程。 13. **建站模板**:虽然liteFlow主要是针对业务流程的,但其组件化的设计和可扩展性也...

    前后端分离项目中引入activiti工作流引擎步骤

    下面我们将详细探讨在前后端分离项目中如何引入和配置Activiti工作流引擎。 1. **了解Activiti** Activiti是基于BPMN 2.0标准的轻量级工作流引擎,它提供了一整套流程定义、执行、监控和管理的工具。通过Activiti...

    Spring Boot与LiteFlow:轻量级流程引擎的集成与应用

    - **易扩展**:用户可以根据业务需求自定义流程节点(Component),轻松扩展流程功能。 - **高性能**:LiteFlow内部采用高效的算法来解析流程定义文件,并在运行时快速调度节点执行。 LiteFlow通过将复杂的业务逻辑...

    万字+28张图带你探秘小而美的规则引擎框架LiteFlow.doc

    LiteFlow 是一个轻量、快速、稳定的组件式规则引擎框架,旨在解耦复杂业务逻辑,帮助开发者更好地管理和维护业务流程。下面是 LiteFlow 的一些重要知识点: 1. LiteFlow 的设计原则:LiteFlow 是基于工作台模式设计...

    php工作流引擎,可视化设计,兼容PHP8

    在PHP工作流引擎中,开发者可以利用拖放方式创建节点、连接线,定义流程走向,使得非技术人员也能参与流程设计。这种设计方式降低了工作流的实施难度,提高了效率。 四、PHP8兼容性 PHP8作为PHP语言的最新版本,...

    工作流引擎详解

    在整个流程中,工作流引擎负责任务的调度和状态的跟踪,确保流程按预期执行。 #### 3. 流程优化 工作流引擎还支持流程的动态调整。例如,如果公司政策变更,要求增加或减少审批层级,只需在工作流定义中进行相应...

    Camunda开源流程引擎快速入门文档

    - 在流程图中添加一个人工任务节点。 - 配置人工任务的名称、描述等属性。 - 设置人工任务的表单属性,如表单类型(自定义HTML表单或内置表单)。 - **配置表单** - 使用 **Camunda Form Editor** 设计表单界面...

    drools flow分析报告

    规则可以单独存在,也可以与其他流程节点结合,共同决定流程的走向。 **第二章 Drools Flow 的使用** **1. 安装说明** 安装Drools Flow通常涉及下载最新版本的Drools发行版,配置相关的Maven依赖,并在项目中引用...

    工作流引擎核心调度算法

    4. 决策逻辑:工作流中可能包含复杂的决策分支,如条件判断、业务规则应用等,这些都需要在引擎中得以实现。 5. 用户界面:与用户交互的接口,允许用户启动流程、提交任务、查看进度等。 6. 集成能力:工作流引擎...

    jbpm4.4+s2sh请假流程例子

    在4.4版本中,jbpm引入了更加强大的流程设计、执行和监控功能,支持复杂的业务逻辑和规则集成。 Struts2是一个基于MVC设计模式的Web应用框架,它简化了Java Web开发,提供了一种组织应用结构和处理HTTP请求的方式。...

    jbpm5/droolflow

    - **规则与过程的集成**:Drools Flow将规则引擎和工作流引擎紧密结合在一起,使得在工作流过程中可以直接调用规则进行决策。 - **集成的方法**:Drools Flow通过在过程中嵌入规则执行节点来实现规则与过程的集成。 ...

    jbpm工作流程小例子

    6. **规则引擎(Drools)**:jbpm集成了Drools规则引擎,使得流程中的决策可以根据预定义的规则动态变化。 7. **事件处理(Event Handling)**:jbpm支持事件驱动的编程模型,允许在特定事件发生时触发流程行为。 ...

    基于工作流引擎的系统框架设计开发

    本文首先引入了工作流引擎的概念,强调其在自动化和协调业务流程中的作用,同时概述了选用Visual C#作为开发语言的原因,主要是因为C#的强大功能、易用性和与.NET框架的良好集成。 2. 开发概述 2.1 Visual C#语言...

    驰骋BPM新功能-发送自动返回给发送人与发送节点.docx

    "发送返回节点"是驰骋BPM中的一个重要概念,它是指在流程执行过程中,一旦某个特定节点完成任务并触发特定条件,系统会自动将相关信息回传给任务的初始发起人和前序处理过的节点。例如,当一个文档经过各部门审批后...

    通用风控决策引擎设计-度小满

    为了进一步提高决策效率,度小满还特别设计并实现了并行流程引擎,其核心在于解决流程节点间的依赖关系,确保决策结果的准确性和时效性。 1. **运行时并行** - **目的**:通过并行执行决策节点,减少决策过程中的...

    土制状态机在工作流引擎中的应用

    在工作流引擎中,每个状态可能代表一个任务或者流程节点,而状态之间的转移则反映了任务的执行顺序和条件。 工作流引擎的核心功能包括流程定义、流程实例的创建与执行、任务分配与审批等。状态机的引入能够帮助我们...

Global site tag (gtag.js) - Google Analytics