进入新公司新项目, 新公司更变态很多网站都没有办法用,youdao note 就是其一。 唯一的好处就是现在上网不需要翻那堵墙, 在看某些技术博客的时候爽些。 闲话少说,目前项目需要用到Drools and JBPM. 所以从现在开始学习Drools and jBPM.
我们在项目里用到的 Drools and jBPM 其实可以分为两部分: Drools Expert 它是一个rule engine, 我们根据Drools 的drl 语法来定义N 多的rules, 然后 这个rule engine 来 驱动这些rules。
另外一块就是jBPM 其实它可以看成Workflow , 在项目里面每一个use case 可以看成是我rkflow 的 一个step。最主要的是工作流引擎(在项目中用作Execution Controller ) 来决定下一个step。
现在还没有自己的机器,也就没有开发环境,只有纸上谈兵了,到官方网站瞅瞅Drools Expert。从最基本的dlr 语法看起吧, 一个drl 文件由下面部分组成:
package package-name
imports
globals
functions
queries
rules
其中每一部分都是optional 的。顺序的话除了package 必须要在第一位, 其它部分都不重要的。
1, Rule 。 每一个rule 的组成部分又是:
rule "name"
attributes
when
LHS
then
RHS
end
其中LHS 又叫条件, RHS 又叫Action 可以由具体的方言组成的。比如我们的dialect 是Java, 这Action 部分我们就可以写Java语法的语句。
2, Drools 5 的关键字 分为 :soft 和 hard 关键字。
hard 关键字是保留的, 不能用它们来命名我们自己的domain object 。hard 关键字只有3个:
true
false
null
soft 关键字 是在上下文中被识别出来的。 建议是避免混淆不要用它们来命名自己的domain object。 soft 关键字 就比较多聊:
-
lock-on-active
-
date-effective
-
date-expires
-
no-loop
-
auto-focus
-
activation-group
-
agenda-group
-
ruleflow-group
-
entry-point
-
duration
-
package
-
import
-
dialect
-
salience
-
enabled
-
attributes
-
rule
-
extend
-
when
-
then
-
template
-
query
-
declare
-
function
-
global
-
eval
-
not
-
in
-
or
-
and
-
exists
-
forall
-
accumulate
-
collect
-
from
-
action
-
reverse
-
result
-
end
-
over
-
init
3, Drools 的 注释分为 single line (由 # 或 // 开始)和 multi line ( /* */ )
4, Drools 的 Error message 的 格式 比较严格:
由左至右分为 5 部分:
1st Block: This area identifies the error code.
2nd Block: Line and column information.
3rd Block: Some text describing the problem.
4th Block: This is the first context. Usually indicates the rule, function, template or query where the error occurred. This block is not mandatory.
5th Block: Identifies the pattern where the error occurred. This block is not mandatory.
5, Drools 的 function 定义:
function String hello(String name) {
return "Hello "+name+"!";
}
function 返回类型 function name 参数 {
body
}
定义好了function, 我们可以在其它地方来 import function . 比如:
import function my.package.Foo.hello
6, 定义新类型
6.1 Drools 天生支持Java 类型, 我们也可以在Drools 自己来定义新的类型。比如:
import java.util.Date
declare Person
name : String
dateOfBirth : Date
address : Address
end
一旦定义 我们就可以在rule 中来使用它们:
rule "Using a declared Type"
when
$p : Person( name == "Bob" )
then
// Insert Mark, who is Bob's mate.
Person mark = new Person();
mark.setName("Mark");
insert( mark );
end
7, rule 的 属性: salience
这个rule 最重要的属性是用来表示rule 的优先级, 值越大优先级越高。
8, Timers and Calendars
Drools 现在支持基于cron 的 timer
timer ( int: <initial delay> <repeat interval>? )
timer ( int: 30s )
timer ( int: 30s 5m )
timer ( cron: <cron expression> )
timer ( cron:* 0/15 * * * ? )
9, Pattern
Pattern 是最重要的 condition 元素,它用来匹配工作内存中的所有fact。
$pattern Binding : pattern type ( contraints )
rule ...
when
$p : Person(age < 18)
then
System.out.println( "Person " + $p );
end
简单的就这么多, 剩下的就是 rule 里面的条件的一些 复杂的用法了。 可以参见 http://docs.jboss.org/drools/release/5.2.0.Final/drools-expert-docs/html/ch05.html#d0e3719
分享到:
相关推荐
drools+jbpm 的简单demo模板,可以根据模板来扩展真正的实际开发业务
droolsjbpm-integration, Drools和jBPM与 seam,spring,camel的集成. . 开发口水和 jBPM如果你想要构建或者贡献到一个项目,则阅读这里文档 。 我们将通过正确设置开发环境来节省你和我们大量的时间。 它解决了所有...
kie workbench使用视频教程(Drools,jBPM),不含安装,安装请参考本人上传的另一份资料。主要描述了3个小案例,以及使用过程的视频,含案例网址,文件。
jbpm开发指南!!!!!!!!!很好的教材!!!!!
This book will also cover the relationship between Drools and jBPM, which allows you to enrich your applications by using Business Processes. You will be briefly introduced to the concept of complex ...
开发Drools和jBPM 如果要构建或参与kiegroup项目,请。 通过正确设置您的开发环境,它将为您和我们节省大量时间。 它解决了可能会破坏您的开发的所有已知陷阱。 它还描述了所有准则,技巧和窍门。 如果您希望将...
Red Hat JBOSS KIE Workbench 含Drools规则引擎、jBPM业务流程模块的完整版安装部署方法,以及异常解决。 含process management, dashboard等menu。
开发Drools和jBPM 如果要构建或参与kiegroup项目,请。 通过正确设置您的开发环境,它将为您和我们节省大量时间。 它解决了可能会破坏您的开发的所有已知陷阱。 它还描述了所有准则,技巧和窍门。 如果您希望将拉取...
drools drools drools drools drools
很不错的drools6学习的例子 里面有入门的实例及一些语法的例子。
规则引擎drools的学习文档,上手教程
Drools安装配置学习笔记
纯属个人学习笔记,主要记录了drools的规则语言部分的内容。初学者可以看一下。
3.5 学习使用drools-guvnor设计器 13 4 用TOMCAT+SSH+JOTM+MYSQL+JBPM移植DEMO 14 4.1 环境准备 14 4.1.1 安装JDK 14 4.1.2 安装Ant 14 4.1.3 安装Eclipse 15 4.1.4 安装Tomcat 15 4.1.5 安装MySql 15 4.1.6 下载...
jBPM4+drools实战_1_课程介绍及项目需求.ppt
drools最新版本学习资料,里面系统的介绍了drools规则引擎的简介以及集成到项目的教程内容。欢迎下载,收集不易,欢迎点赞。
非常好的业务规则引擎drools的学习文档。
drools
Drools简介Drools(JBossRules)具有一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高