PEGA之Declare-Expression 与Forward-Chaining/Backward-Chaining ---- RichardLu

Declare-Expression 与Forward-Chaining /Backward-Chaining 

先举一个例子:Declare-Expression 中表达式是C = A+B。

当A和B的值确定的时候,C的值会自动计算出来,大家都会说这个是Forward-Chaining。

然而Backward-Chaining是怎么样的运算规则呢?

有一种理解是:如果A和C的值确定了,B的值能自动计算出来,这样就是Backward-Chaining。对于这种理解,我去做过试验,因为C是target property,不能对C直接进行赋值,那这种说法也就不成立了。

对于这2个概念,我的理解是:

Forward-Chaining的运算规则是:当改变A和B的值的时候,立刻就能计算出C的值,并且Declare-Expression的Calculate Value应该选择“Whenever inputs change”,这种即时运算规则就叫Forward-Chaining 。

Backward-Chaining的目的其实也是对结果C进行重新计算,而不是我们以前所理解的反向运算A或B。只是对表达式进行有条件的,延后的运算,也就是说当我们需要用到C的时候,系统才运算表达式得出C的值。Pega的解释是这样能够节省系统资源,只有Calculate Value选以下几个选项的时候才是Backward-Chaining:

1) When used, if no value present

2) When used, if property is missing

3) Whenever used

下面是我结合Declare-Expression的Calculate Value选项所做的几个试验:

         运算表达式:testC  =  testA  +  testB

Activity:

https://p-blog.csdn.net/images/p_blog_csdn_net/bpman/EntryImages/20090728/image001.png

1) 修改Declare-Expression的配置如图:

https://p-blog.csdn.net/images/p_blog_csdn_net/bpman/EntryImages/20090728/image003.png

 

这种配置下运行测试Activity,需要满足以下2个条件,Target property才会有结果值:

① testC要被使用到(比如Show-property) 

②testC不能存在于Clipborad中

也就是说,这种条件下,Target Property只能被执行一次。除非你把testC从Page中Remove掉。

 

2) 修改Declare-expression的配置如图:

 

https://p-blog.csdn.net/images/p_blog_csdn_net/bpman/EntryImages/20090728/image005.png

这种配置下运行测试Activity,需要满足以下2个条件,Target property才会有结果值:

①testC要被使用到(比如Show-property) 

②testC在运算前要是空,并且计算出的结果值不能为空。

比如两个空字符串””+”” = testC, 这样是无法得出testC的值的。

 

 

3) 修改Declare-expression的配置如图:

 

https://p-blog.csdn.net/images/p_blog_csdn_net/bpman/EntryImages/20090728/image007.png

这种情况下,如果想要表达式能被触发,要求Target property至少被使用一次。

如果Target Property 没有在任何地方(包括UI显示)使用过,这个表达式永远不会被触发。

也就是说一旦Clipborad中有testC这个property之后,这个表达式就会进行即时Forward-Chaning运算。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值