规则引挚NxBRE文档纪要--流引挚简介(一)

http://www.cnblogs.com/linbc/archive/2008/06/19/1224373.html

作为程序员的我们,直奔主题吧,看看流引挚是怎么工作的,至少总体上有一个认识


  1. 将规则载入流引挚
  2. 设置规则文件里用到的一些变量
  3. 执行规则,并保存执行结果在上下文中(Context)
再来看看流引挚规则文件的组成吧
规则文件是通过xml来定义的,规则文件主要包含以下这三部分
  • rules
  • logic tests
  • structure
就我目前的理解,表达出来,这个规则文件可以定义变量
< Integer  id ="10i"  value ="10" />
< Integer  id ="40i"  value ="40" />
相当于
int  10i  =   10 ;
int  40i  =   40 ;
还可以引用到外部变量
< ObjectLookup  id ="QuantityOrdered"  objectId ="CurrentOrder"  member =" " />
相当于
  // 前提是CurrentOrder作为一个类的实例已经被增加到上下文中,当然,这里是弱类型的
object  QuantityOrdered  =  CurrentOrder.QuantityOrdered;
逻辑块
复制代码
             < Logic >
                
< If >
                    
< And >
                        
< GreaterThan  leftId ="QuantityOrdered"  rightId ="40i" />
                    
</ And >
                    
< Do >
                        
< Evaluate  id ="AppliedDiscount" >
                            
< Parameter  name ="Percent"  value =".9" />
                        
</ Evaluate >
                    
</ Do >
                
</ If >
                
< Else >
                    
< Evaluate  id ="AppliedDiscount" >
                        
< Parameter  name ="Percent"  value ="1" />
                    
</ Evaluate >
                
</ Else >
            
</ Logic >
复制代码
伪码是
复制代码
if (QuantityOrdered > 40i)
{
    Percent 
= 0.9;//这里可以被规则以外的程序访问到,是规则的执行结果
}

else
{
    Percent 
= 1;
}
复制代码

流引挚的实现中基本上都合理的定义和使用接口,看看这几个比较重要的接口

Process方法,不用说了,最重要的,执行规则的开关
RuleContext属性,就更不用说了,规则定义文件的所有变量,以及引用到的外部变量,甚至是执行结果都存放在这里


命名空间 NxBRE.FlowEngine.Rules 描述
 Decrement*  自减整数
 Exception  抛出异常
 False,True  
 FatalException  重大异常
 Increment  自增整数
 IncrementInit*  Incrementor or Decrementor reset.
 ObjectLookup  通过反射映射到ruleContext中的类或者实例
 Value  任何类型的变量

哎,这个表格真是不好整啊,凑合着吧,虽然是丑了点,不过符合自己的美工表现...

上面这些就不用注释了,看字面都知道是什么意思了,强调一下,正则表达式的支持,将给扩展留下巨大的空间

载入规则文件的时候要用到这些东东,比如xbre文件就要用到XBusinessRulesFileDriver


工厂,创建IFlowEngine实例

好了,说了一堆,看起来好像没什么用...
来个HelloWorld,至少让我知道这是个什么东西
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值