`
adamed
  • 浏览: 183890 次
社区版块
存档分类
最新评论

请问如何再drl文件中查询数据库

阅读更多
我想在一个链式结构中通过链末端结点通过规则遍历所有结点如 节点A→节点B→节点C每个箭头表示一个标识跨度,例如:每个节点都有一个告警字段。每个箭头标识告警级别加2。
#created on: 2007-12-29
package hibernateRule

#list any import classes here.
import com.yourcompany.dataModel.NodeRelationMapping;
import com.yourcompany.dataModel.Node;
import com.yourcompany.service.Service;
import java.util.List;


#declare any global variables here
global java.util.List myGlobalList;
global com.yourcompany.service.Service service;

   




rule "myRule"
	
	when
		$nodeA:Node(status=="0")
		$map:NodeRelationMapping($temp:nodeByANodeId,$alarmStep:step) from $nodeA.nodeRelationMappingsForZNodeId
	then 
		$nodeB:(getNodeById($temp.getId()));
		$nodeB.setStatus("-1");
		$nodeB.setAlarm($alarmStep.longValue()+$nodeB.getAlarm().longValue());
		#System.out.println($nodeB.getAlarm());
		$nodeA.setStatus("-1");
		myGlobalList.add($nodeA);
		update($nodeA);
		$nodeB.setStatus("0");
		insert($nodeB);

		
end


function Node getNodeById(String nodeId) {
	return service.getNodeById(nodeId);
}

我以全局变量的形式传进来一个hibernate服务类型的实例。通过该实例的getNodeById可以取得节点信息。
我再drl文件中定义了这个function。可是在使用时这个地方的service报错。
还有就是$nodeB:(getNodeById($temp.getId()));这个写法好像不合法。不知道我如何表达将临时取得的节点起一个别名,这个意思。
分享到:
评论

相关推荐

    Drools规则引擎介绍

    规则可以存储在文本文件(如DRL语言)或数据库中,便于管理和维护。 工作流则提供了更复杂的流程管理能力,允许在规则执行过程中插入逻辑步骤,比如任务分配、审批等。这使得Drools不仅仅是一个简单的规则执行器,...

    drools从字符串中动态加载规则

    在传统的Drools规则加载方式中,规则通常是从`.drl`文件中读取的。而动态加载规则则是通过将规则文本转化为字符串,再将该字符串转换为Drools能够识别的资源格式(Resource)。 具体步骤如下: 1. **构建规则字符串*...

    Drools7 + Springboot2 动态更新规则

    该服务类应包含一个方法,用于从数据库中读取DRL内容,然后使用`KieServices`的`KieFileSystem`、`KieBuilder`和`KieContainer`接口将DRL编译为KieSession。KieSession是Drools执行规则的核心对象,它可以管理和执行...

    springboot集成drools实现重新加载规则

    接下来,我们需要创建Drools的规则文件(`.drl`),该文件包含了业务规则的定义。例如: ```drl package com.example.rules import com.example.model.MyObject; rule "Example Rule" when $myObject : MyObject...

    ssm的rule engine实例

    在运行项目后,你可以通过修改DRL文件或数据库中的规则,观察应用程序如何根据新的规则进行响应。 在实际开发中,Drools还可以与工作流引擎(如jbpm)结合,实现更复杂的业务流程。对于初学者,这个实例提供了很好...

    drools的使用.pdf

    5. **具体模板生成器实现类**:`com.github.xiaoy.droolrule.gen.impl.DeveloperSettlementRuleGenImpl`,调用`com.github.xiaoy.droolrule.gen.RuleGen.generateRule`方法生成DRL文件,并保存到数据库中。...

    drools_jdbc_mybatis_mysql.rar

    3. **编写 MyBatis 映射器**:定义 SQL 映射文件,用以查询数据库中的数据,将其转化为 Java 对象。 4. **配置 SpringBoot**:整合 SpringBoot 与 MyBatis,设置数据源,并配置 SqlSessionFactory。 5. **创建 ...

    drools的使用示例代码

    2. `src/main/resources`:存放DRL文件的目录,这些文件包含了业务规则的定义。 3. `src/main/java`:Java源代码,包括配置类、Drools服务、控制器等,展示了如何集成Drools和SpringBoot。 4. `src/main/resources/...

    drools语法参考和性能优化技巧

    - **规则文件格式**:通常使用`.drl`扩展名,可以在其中编写多个规则、查询函数等。 - **规则文件结构**: - `package`: 定义规则所在的逻辑包。 - `imports`: 导入所需的类或静态方法。 - `globals`: 定义全局...

    droolsdemo跟exceldemo写法

    在droolsdemo中,规则可能被存储在.drl文件中,或者如描述中提到的,通过Excel文件(.xls)转换而来。使用Excel的好处是可以让非技术人员以表格形式编辑规则,便于理解和维护。 2. **Excel到DRL转换**:这个过程...

    hibernate和drools的一些个人总结

    它允许开发者将业务逻辑以规则的形式编写,存储在数据库中,然后在运行时动态地执行这些规则。Drools提供了一套强大的规则语言(DRL),使得非技术人员也能理解和修改业务逻辑,从而实现业务规则的灵活管理。 ...

    SpringBoot集成 Activiti6 Drools.docx

    在项目结构中,我们需要创建一个DRL文件来定义审批级别的规则。DRL文件是Drools规则的文本表示,类似于以下内容: ```drl rule "审批级别规则" when $approvalLevel : ApprovalLevel(level == 0) then System....

    drools实现demo

    这通常意味着规则不再硬编码在DRL文件中,而是可以从数据库中读取。这样,业务人员就可以通过数据库操作来修改规则,而无需程序员介入。这种灵活性对于快速响应业务变化非常有用。 5. **数据模型和事实**:在Drools...

    Allegro16.6培训教程(中文版)

    - .drl:包含NC钻孔数据的输出文本文件。 - .txt:如参数等使用的文本文件。 - .scr:脚本和宏文件。 - .log:记录过程数据的日志文件。 - .art:艺术作品文件。 - .dat:数据文件。 - .jrl:事件记录的日记文件。 ...

    drools动态增加、修改、删除规则.doc

    kmodule.xml中的package名需要与DRL文件所在的路径相对应,例如"rules/rule01",这将决定规则所属的kieBase。 2、加载DRL规则内容 DRL规则内容的加载是通过KieFileSystem完成的。首先创建KieFileSystem实例,然后...

    Allegro 16.6 培训教程(中文)

    - **.drl**:包含NC钻孔数据的输出文本文件。 - **.txt**:文本文件,常用于参数设置。 - **.scr**:脚本和宏文件。 - **.log**:日志文件,记录过程数据。 - **.art**:艺术文件。 - **.dat**:数据文件。 - **.jrl...

    spring boot 集成十几种demo

    在Spring Boot中使用Drools,我们需要添加Drools的依赖,创建DRL(Drools Rule Language)规则文件(如`student.drl`),然后通过KieServices加载规则,并在代码中执行规则引擎。 至于其他文件,`mvnw`和`mvnw.cmd`...

    shourtcut调用_ep面板_nationaldrl_

    1. **Shortcut(快捷方式)**:在计算机操作系统中,快捷方式是一种指向其他文件或程序的指针,通常带有特殊的图标,方便用户快速访问目标资源,而无需查找其实际位置。 2. **EP面板**:这里的"EP"很可能指的是...

    Allegro16.6培训教程(中文版)简体.pdf

    .drl、.txt、.scr、.log、.art、.dat、.jrl是各种功能文件,如输出文本文件,包含NC钻孔数据,用于存储参数的脚本和宏文件,记录进程的日记文件等。 此外,掌握Allegro的目录结构对于用户来说也是十分重要的。...

Global site tag (gtag.js) - Google Analytics