在新促销引擎中,可以识别出已应用哪个RAOAction触发该促销

2020-09-12 10:22发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)在新促销引擎中,可以使用Calc...

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

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


在新促销引擎中,可以使用CalculationService方法来标识已应用了哪些RAOAction来触发该促销(根据新促销引擎),我们只能在规则引擎层中看到RAOAction,而对于CalculationService/Strategy而言并不持久。 是否可以使用任何属性(在PromotionOrderResults/PromotionResultModel中)进行标识,该属性可以定义促销是否具有某些条件/动作(例如,几乎等于旧版ProductBOGOFPromotion)。 我们没有任何剩余的旧促销类型的商品,那么如何迁移专门针对那些PromotionType编写的代码。 任何想法都会有所帮助

非常感谢Manushi

2条回答
绿领巾童鞋
2020-09-12 11:06

我已使用以下代码来了解我的晋升行动已被取消,我不确定是否建议这样做,但无论如何我已经在专家中发布了替代方案。 请使用此解决方法。 另一种方法是重写侦听器PromotionRuleCompilerListener。

请告知我您是否还有其他选择。

PromotionOrderResults promoOrderResults = promotionsService.getPromotionResults(cartModel); if(CollectionUtils.isNotEmpty(promoOrderResults.getAppliedOrderPromotions())){for(PromotionResult promoResults:promoOrderResults.getAppliedOrderPromotions()){this.updateDeliveryCostAtOrder(promoResults,cartModel); }

Collection PromotionActions = promoOrderResults.getActions(); if(CollectionUtils.isNotEmpty(promotionActions)){for(AbstractPromotionAction PromotionAction:PromotionActions){if(promotionAction.getComposedType()。getCode()。equals(RuleBasedOrderShippingGroupActionModel._TYPECODE)){//您的逻辑。 }}}

一周热门 更多>