案例分析: SAP BRF+ rule不工作的原因

Created by Jerry Wang, last modified on Nov 01, 2014

有这么一个简单的BRF+ rule:

如果customer name 等于“sap”,则final price为1,否则为2:
案例分析: SAP BRF+ rule不工作的原因
在simulation mode里将sap传入customer,
案例分析: SAP BRF+ rule不工作的原因
然而最后计算结果既不是1也不是2,而为0:
案例分析: SAP BRF+ rule不工作的原因
debug该BRF+ function对应的generation class process method:
案例分析: SAP BRF+ rule不工作的原因
lr_data为0:
案例分析: SAP BRF+ rule不工作的原因

通过where use list查询FINAL_PRICE,发现该generation class里没有任何一处代码对其赋值:
案例分析: SAP BRF+ rule不工作的原因
对比另一个正常工作的rule,发现赋值是在process_pure方法里完成:
案例分析: SAP BRF+ rule不工作的原因
检查rule发现其状态是inactive的:
案例分析: SAP BRF+ rule不工作的原因

将其**后:
案例分析: SAP BRF+ rule不工作的原因
process_pure的方法就自动生成了rule calculation 逻辑:
案例分析: SAP BRF+ rule不工作的原因
传入sap,得到了期望的结果1:
案例分析: SAP BRF+ rule不工作的原因