宣传活动6.6问题

2020-09-23 03:48发布

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

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


你好

我根据文档设置了6.6的踪迹

在构建时或在更新/初始化之后均没有错误。

我以内置用户之一的身份登录,并对电子商店中的商品添加了评论。

我以管理员身份登录到后台,并批准了审核。

然后以电子商店中的用户身份将商品添加到cnd单击结帐

升级不会触发,用户也不会添加到相关组中。

其他人有同样的问题吗?

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

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


你好

我根据文档设置了6.6的踪迹

在构建时或在更新/初始化之后均没有错误。

我以内置用户之一的身份登录,并对电子商店中的商品添加了评论。

我以管理员身份登录到后台,并批准了审核。

然后以电子商店中的用户身份将商品添加到cnd单击结帐

升级不会触发,用户也不会添加到相关组中。

其他人有同样的问题吗?

付费偷看设置
发送
9条回答
nice_wp
1楼-- · 2020-09-23 04:32

我能够通过更新 AddUserToUserGroupRAOAction 以覆盖 performActionInternal(RuleActionContext)而不是已弃用的 performAction(RuleActionContext,Map

下面提供了完整的源代码:

 软件包de.hybris.promotionenginetrail.rule.action.impl;
 
  导入静态com.google.common.base.Preconditions.checkArgument;
  导入静态de.hybris.platform.ruleengineservices.util.RAOConstants.VALUE_PARAM;
  导入静态org.apache.commons.collections.MapUtils.isNotEmpty;
 
  导入de.hybris.platform.ruleengineservices.rao.CartRAO;
  导入de.hybris.platform.ruleengineservices.rao.ChangeUserGroupRAO;
  导入de.hybris.platform.ruleengineservices.rao.RuleEngineResultRAO;
  导入de.hybris.platform.ruleengineservices.rao.UserGroupRAO;
  导入de.hybris.platform.ruleengineservices.rao.UserRAO;
  导入de.hybris.platform.ruleengineservices.rule.evaluation.RuleActionContext;
  导入de.hybris.platform.ruleengineservices.rule.evaluation.actions.AbstractRuleExecutableSupport;
  导入de.hybris.platform.ruleengineservices.rule.evaluation.actions.RAOAction;
 
  导入java.util.Map;
 
 
  公共类AddUserToUserGroupRAOAction扩展AbstractRuleExecutableSupport实现RAOAction {
 
      @Override
      受保护的布尔型performActionInternal(RuleActionContext上下文){
          字符串userGroupCode = context.getParameter(VALUE_PARAM,String.class);
 
          最后的CartRAO cartRao = context.getCartRao();
          最终RuleEngineResultRAO结果= context.getRuleEngineResultRao();
 
          最后的ChangeUserGroupRAO changeUserGroupRAO = new ChangeUserGroupRAO();
          getRaoUtils()。addAction(cartRao,changeUserGroupRAO);
          changeUserGroupRAO.setUserGroupId(userGroupCode);
          result.getActions()。add(changeUserGroupRAO);
 
          最终的UserGroupRAO userGroupRAO =新的UserGroupRAO();
          userGroupRAO.setId(userGroupCode);
          最终的UserRAO用户= cartRao.getUser();
          user.getGroups()。add(userGroupRAO);
 
          setRAOMetaData(context,changeUserGroupRAO);
          context.insertFacts(context,changeUserGroupRAO,userGroupRAO);
          context.updateFacts(context,user);
 
          返回true;
      }
  }
 
  

我找到了解决方案,方法是使用调试器并将断点放在 AddUserToUserGroupRAOAction 超类 AbstractRuleExecutableSupport 中。 将评论项目添加到购物车时,我发现调用了 performAction(RuleActionContext)方法,而不是已弃用的 performAction(RuleActionContext,Map 方法

除了一些保留 performAction(RuleActionContext)方法的书外,还调用了 performActionInternal(RuleActionContext)方法。 进一步的检查显示,除 AddUserToUserGroupRAOAction 之外, AbstractRuleExecutableSupport 的所有子类都将覆盖此方法。 这有力的证据表明 AddUserToUserGroupRAOAction 需要重写所述方法而不是已弃用的方法。

实际上,在更改 AddUserToUserGroupRAOAction 以覆盖 performActionInternal(RuleActionContext)而不是 performAction(RuleActionContext,Map 后,确实是问题 解决了。

Haoba3210
2楼-- · 2020-09-23 04:42

另一个有趣的发现是,当我使用两个动作时,例如 无论是"将客户添加到组"还是"购物车上的折扣百分比",则仅在该规则的第一项操作中应用折扣百分比。 当我将"将客户添加到组"操作放在"购物车折扣百分比"操作之前时,则更新购物车时不应用折扣。

3楼-- · 2020-09-23 04:40

你好Stelios,

我们可能需要更多有关此的信息。

  1. 促销创建后是否发布了?

  2. 请确保在Rule Engine-> Drools Rules中可以找到reviewed_product_add_customer_to_group。 如果是这样,请在此处发布。

  3. 请确保将在跟踪中创建的所有类都添加到适当的* -spring.xml文件中,并生成CustomerReviewRAO类,UserRAO类具有新字段,生成RuleBasedAddUserToUserGroupAction项类型,并验证PromotionEnginetrail/资源/impex/projectdata-promotiontrail.impex文件已成功导入

亲切的问候,

风早神人
4楼-- · 2020-09-23 04:26

这是我在更新购物车后在Tomcat控制台日志中看到的内容:

 信息|  jvm 1 | 主|  2018/03/21 15:44:07.654 |  INFO [hybrisHTTP32] [AbstractOrderRaoPopulator]订单折扣列表为空,跳过转换
  信息|  jvm 1 | 主|  2018/03/21 15:44:07.655 |  INFO [hybrisHTTP32] [DefaultPlatformRuleEngineService]添加命令[session.fireAllRules();]
  信息|  jvm 1 | 主|  2018/03/21 15:44:07.655 |  INFO [hybrisHTTP32] [DefaultPlatformRuleEngineService]处置会话:KieSession [6]
  
Doze时光
5楼-- · 2020-09-23 04:25

谢谢Bartosz,

是,规则已发布,没有错误。 这是Drules代码:

软件包de.hybris.platform.droolsruleengine;

导入de.hybris.platform.droolsruleengineservices.compiler.impl.DefaultDroolsRuleActionContext; 导入de.hybris.platform.ruleengineservices.rao.CartRAO; 导入de.hybris.platform.ruleengineservices.rao.UserRAO; 导入de.hybris.platform.ruleengineservices.rrd.RuleConfigurationRRD; 导入de.hybris.platform.promotionenginetrail.rao.CustomerReviewRAO; 导入de.hybris.platform.ruleengineservices.rao.RuleEngineResultRAO; 导入de.hybris.platform.ruleengineservices.rao.WebsiteGroupRAO; 导入java.util.Map; 导入de.hybris.platform.ruleengineservices.rao.OrderEntryRAO; 导入de.hybris.platform.ruleengineservices.rao.ProductRAO;

global de.hybris.platform.ruleengineservices.rule.evaluation.RuleExecutableAction addUserToUserGroupAction;

query rule_f1ae1a09c409405cad753deea366d9dd_query(CustomerReviewRAO $ v6,UserRAO $ v7,CartRAO $ v1,RuleEngineResultRAO $ v2,WebsiteGroupRAO $ v3,ProductRAO $ v4,OrderEntryRAO $ v5)($ v1:= CartRAO()和$ 2 和$ v3:= WebsiteGroupRAO(id ==" electronicsPromoGrp")和($ v4:= ProductRAO()和$ v5:= OrderEntryRAO(产品== $ v4)和$ v6:= CustomerReviewRAO(产品== $ v4)和 $ v7:= UserRAO(customerReviews包含$ v6,id不在(" anonymous")中)和$ v1:= CartRAO(条目包含$ v5,用户== $ v7))))

规则" f1ae1a09-c409-405c-ad75-3deea366d9dd" @ruleCode(" reviewed_product_add_customer_to_group")@moduleName(" promotions-module")方言" mvel"显着性500存在时(RuleConfigurationRRD(ruleCode ==" reviewed_product_add_customer_to_group") 和(存在(CartRAO())和存在(RuleEngineResultRAO())和存在(WebsiteGroupRAO(id ==" electronicsPromoGrp"))和($ rao_v4:= ProductRAO()和$ rao_v5:= OrderEntryRAO(product == $ rao_v4) 和$ rao_v6:= CustomerReviewRAO(产品== $ rao_v4)和$ rao_v7:= UserRAO(customerReviews包含$ rao_v6,id不在(" anonymous")中)并且存在(CartRAO(条目包含$ rao_v5,用户== $ rao_v7) )))累积(rule_f1ae1a09c409405cad753deea366d9dd_query($ v6,$ v7,$ v1,$ v2,$ v3,$ v4,$ v5;); $ v6_set:collectSet($ v6),$ v7_set:collectSet($ v7),$ v1_set :collectSet($ v1),$ v2_set:collectSet($ v2),$ v3_set:collectSet($ v3),$ v4_set:collectSet($ v4),$ v5_set:collectSet($ v5),$ result_count:count(1) )eval($ result_count> 0)然后映射variabl es = [" de.hybris.platform.promotionenginetrail.rao.CustomerReviewRAO":$ v6_set," de.hybris.platform.ruleengineservices.rao.UserRAO":$ v7_set," de.hybris.platform.ruleengineservices.rao.CartRAO" :$ v1_set," de.hybris.platform.ruleengineservices.rao.RuleEngineResultRAO":$ v2_set," de.hybris.platform.ruleengineservices.rao.WebsiteGroupRAO":$ v3_set," de.hybris.platform.ruleengineservices.rao.ProductRAO ":$ v4_set," de.hybris.platform.ruleengineservices.rao.OrderEntryRAO":$ v5_set]; addUserToUserGroupAction.executeAction(new DefaultDroolsRuleActionContext(variables,kcontext),[" stackable":Boolean.TRUE," value_uuid":" fd7412ad-c433-43a2-89e8-086852673814"," value":" reviewedProductsCustomerGroup"]); 结束

宇峰Kouji
6楼-- · 2020-09-23 04:32

有人可以在上述日志消息中看到相关问题吗? 我不能 是否还有其他相关日志要检查?

一周热门 更多>