有人可以帮我使用转换器创建像这样的流口水表达式吗。productCode == $ v4.productCode。 简而言之,这个流口水表情的翻译代码是什么。

2020-09-27 23:56发布

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

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


有人可以帮我用转换器创建像这样的流口水表达式吗。productCode == $ v4.productCode。 简而言之,这个流口水表情的翻译代码是什么。

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

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


有人可以帮我用转换器创建像这样的流口水表达式吗。productCode == $ v4.productCode。 简而言之,这个流口水表情的翻译代码是什么。

付费偷看设置
发送
1条回答
xfwsx85
1楼-- · 2020-09-28 00:15

我们遇到了同样的问题。 试试这个:

  com.yourcompany.hybris.promotions.compiler.impl;
 
  导入de.hybris.platform.droolsruleengineservices.compiler.DroolsRuleGeneratorContext;
  导入de.hybris.platform.droolsruleengineservices.compiler.impl.DefaultDroolsRuleConditionsGenerator;
  导入de.hybris.platform.ruleengineservices.compiler.AbstractRuleIrPatternCondition;
  导入de.hybris.platform.ruleengineservices.compiler.RuleCompilerRuntimeException;
  导入de.hybris.platform.ruleengineservices.compiler.RuleIrAttributeCondition;
  导入de.hybris.platform.ruleengineservices.compiler.RuleIrAttributeRelCondition;
 
  导入java.util.Objects;
 
  导入org.apache.commons.lang.StringUtils;
 
 
  公共类CustomDroolsRuleConditionsGenerator扩展DefaultDroolsRuleConditionsGenerator
  {
 
      @Override
      受保护的String validatePatternConditionType(最终DroolsRuleGeneratorContext上下文,
              最终的AbstractRuleIrPatternCondition patternCondition)
      {
          if(RuleIrAttributeCondition的patternCondition实例)
          {
 
              最后的RuleIrAttributeCondition attributeRelCondition1 =(RuleIrAttributeCondition)patternCondition;
              返回getDroolsRuleValueFormatter()。formatValue(context,attributeRelCondition1.getValue());
 
          }
          否则,如果(RuleIrAttributeRelCondition的patternCondition实例)
          {
 
              最终RuleIrAttributeRelCondition attributeRelCondition =(RuleIrAttributeRelCondition)patternCondition;
 
              最终字符串targetVariableName = attributeRelCondition.getTargetVariable();

 //这是重要的部分,我们拆分" object.property",仅在变量范围内查找对象
              最后的String [] splitTargetVariableName = StringUtils.split(targetVariableName,'。');
 
              如果(Objects.isNull(this.findVariable(context,splitTargetVariableName [0])))
              {
 
                  抛出新的RuleCompilerRuntimeException("具有名称\'"的变量+ splitTargetVariableName [0] +"未找到\"");
 
              }
              其他
              {
                  返回context.getVariablePrefix()+ targetVariableName;
              }
          }
          其他
          {
              抛出新的RuleCompilerRuntimeException("不支持RuleIrCondition");
          }
      }
 
  }

  

请参阅代码中间的注释。

一周热门 更多>