宣传活动6.6问题

2020-09-23 03:48发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我根据文档设置了6.6的...

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

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


你好

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

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

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

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

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

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

其他人有同样的问题吗?

9条回答
nice_wp
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 后,确实是问题 解决了。

一周热门 更多>