如何在Hybris中创建新的限制类型?

2020-09-01 18:19发布

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

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


嗨!

使用限制类型-本文不完整,不能帮助我完成从0到100的过程。我需要帮助,我将详细描述我的问题。

目标:按地区创建一种新的限制类型。

我所做的事情:

1。 创建了新类型的记录

2。 以这种方式配置

 
 

3。 现在我有问题。 需要创建什么属性才能使类型工作,并在Smartedit中显示其值列表?

4。 我知道没有足够的属性,并且在这些属性中没有正确地配置了区域的本质。 这是如何配置它们的问题? 我对彼此之间在何处和彼此之间感到困惑。 我尝试根据类别的框限制进行操作,并看到在类别模型中您需要创建一个附加属性,该属性用作捆绑。 是真的吗?

5。 我找不到有关创建新连接的文章,也完全不理解在指示的字段中选择什么,并且是否有必要像我上面所写的那样首先创建一些有关类别中其他属性的内容? 请简单说明这些字段的含义。

如果我在提出问题时错过了一些东西,或者在创建限制类型时错过了一步,请告诉我。 预先谢谢你!

(8.0 kB)

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

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


嗨!

使用限制类型-本文不完整,不能帮助我完成从0到100的过程。我需要帮助,我将详细描述我的问题。

目标:按地区创建一种新的限制类型。

我所做的事情:

1。 创建了新类型的记录

2。 以这种方式配置

 
 

3。 现在我有问题。 需要创建什么属性才能使类型工作,并在Smartedit中显示其值列表?

4。 我知道没有足够的属性,并且在这些属性中没有正确地配置了区域的本质。 这是如何配置它们的问题? 我对彼此之间在何处和彼此之间感到困惑。 我尝试根据类别的框限制进行操作,并看到在类别模型中您需要创建一个附加属性,该属性用作捆绑。 是真的吗?

5。 我找不到有关创建新连接的文章,也完全不理解在指示的字段中选择什么,并且是否有必要像我上面所写的那样首先创建一些有关类别中其他属性的内容? 请简单说明这些字段的含义。

如果我在提出问题时错过了一些东西,或者在创建限制类型时错过了一步,请告诉我。 预先谢谢你!

(8.0 kB)
付费偷看设置
发送
1条回答
lukcy2020
1楼-- · 2020-09-01 18:40

嗨,奥列格,

要创建一种新的地区限制类型,您需要:

  1. 通过扩展AbstractRestriction(不要忘记在您的extensioninfo.xml中将cms2指定为require-extension)来创建新的限制类型。
  2. 通过实现" CMSRestrictionEvaluator"接口来创建自定义评估器,并覆盖评估方法,您可以在其中编写用于限制的自定义逻辑。
  3. 在yourextension-spring.xml文件中创建一个采用此模型并计算CMS组件是否必须可见的bean。
  4. 通过impex或直接应用限制。

示例:

  • regionRestriction-items.xml
 
     <项目类型>
        
            <属性>
               
                  禁区
                  
                  
               
            
         
      
  
  • RegionRestrictionEvaluator.java
 @Component
 公共类RegionRestrictionEvaluator实现CMSRestrictionEvaluator  {
     @Autowired
     私人UserService userService;

     @Override
     公共布尔评估(RegionRestrictionModel regionRestrictionModel,RestrictionDatastrictData){
         最终的UserModel currentUser = userService.getCurrentUser();
         最终的RegionModel限制区域= regionRestrictionModel.getRegion();
         最终List  usersRegions = Lists.newArrayList();

         如果(!Collections.isEmpty(currentUser.getAddresses())){
             usersRegions.addAll(currentUser.getAddresses()。stream()。map(AddressModel :: getRegion).collect(Collectors.toList()));
         }

         返回usersRegions.contains(restrictedRegion);
     }
 } 
  • regionRestriction-spring.xml
 
     
     
 
 
  • restriction.impex
 INSERT_UPDATE RegionRestriction; $ contentCV [unique = true]; uid [unique = true]; name; region(isocode); components(uid);∁onentRef
 ;; TestRegionRestriction;测试区域限制; JP-16; AddToCart; TestRegionRestriction 

希望这会有所帮助。

一周热门 更多>