使用昨天report 创建的ruleset,里面包含了两个ruleset variable, 这两个rule variable的初始化分别由calc. cust. discount和calc. pro. discount这两个decision table来完成。

Decision table的rule 维护如下:
如果customer是“sap”,item是“ballpen”,则customer discount值为0.15
如果customer是“sap”,item是“pencil”,则customer discount值为0.12
如果不满足以上两个条件,则无discount
这里的column customer, item和Customer Discount都是function的context里定义的变量。
点击Simulation button:
选择Interpretation Mode:
点Execute button.
因为customer=sap, item=pencil, 满足decision table里的entry,因此customer_discount为0.12
promotion=sun, item = pencil, 不满足decision table里的任何一条entry,因此promotion_discount为0.
所以rule里的if 条件不满足,因此price将按照customer discount进行计算: final price = 10 / ( 1 + 0.12 ) = 8.93
如果使用"Execute and Display Processing Steps", 能够看到BRF+ 每一步具体的执行步骤: