RuleActionContext中缺少RuleEngineResultRao

2020-09-05 22:14发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


创建新的规则引擎,并在执行任何满足条件的规则时在该引擎上发布新规则。 在对该规则执行操作时,它会尝试从ruleActionContext中获取RuleEngineResultRAO。 并返回null。

由于我是规则引擎的新手,因此不确定在哪里创建RuleActionContext。 尽管ruleActionContext中提供了其他事实(RAO),但RuleEngineResultRAO中提供了其他信息。

在promotionEngine上执行相同规则时没有错误。

提前感谢您的帮助:)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


创建新的规则引擎,并在执行任何满足条件的规则时在该引擎上发布新规则。 在对该规则执行操作时,它会尝试从ruleActionContext中获取RuleEngineResultRAO。 并返回null。

由于我是规则引擎的新手,因此不确定在哪里创建RuleActionContext。 尽管ruleActionContext中提供了其他事实(RAO),但RuleEngineResultRAO中提供了其他信息。

在promotionEngine上执行相同规则时没有错误。

提前感谢您的帮助:)

付费偷看设置
发送
3条回答
葫芦娃快救爷爷
1楼-- · 2020-09-05 22:55

嗨,RuleActionContext将在RAOAction类中设置。

您必须在RuleActionContext(具有提升结果值的Rao对象)中插入结果子Rao。

您可以参考OOB可用的RAOAction。 我正在为您的推荐从RuleAddCouponRAOAction添加示例。

 alt text在这里,如果您看到AddCouponRAO是具有优惠券ID的结果RAO对象,请接收 您需要在RuleActionContext中将其设置为Action Strategy中的值。 参考行号60

但是,如果事实中已经存在RAO,则只需要更新更新即可。 请参阅第59行。

在这方面是否需要帮助,请告诉我。

lukcy2020
2楼-- · 2020-09-05 22:51

您好,非常感谢您的答复,

但是我在这里面临另一个问题,我试图从ruleActionContext(第56行)中获取RuleEngineResultRao,并在响应中获取null。

这与规则发布有关,因为当我查看规则的生成的DRL时,"变量"中缺少RuleEngineResultRao。 看一下DRL:替代文字

注意:我创建了一个新的规则模块,并仅在该模块上发布了规则,而不是在促销模块上发布规则。

谢谢

悠然的二货
3楼-- · 2020-09-05 22:57

:您的规则生成器存在问题,请检查我们设置这些值的DroolsTargetCodeGenerator的generateRuleContentRule()。

一周热门 更多>