如何重新声明核心模型属性类型而不在Hybris中扩展它

时间:2014-08-23 19:23:07

标签: hybris

默认情况下,Hybtis将CreditCardType作为强制属性。我希望使用redeclare=true使其成为可选项(不使用新模型扩展它)。我想知道它为什么不更新CreditCardPaymentInfo模型。我这样做

<itemtype code="CreditCardPaymentInfo" autocreate="false" generate="false" >
        <attributes>
            <attribute qualifier="type" type="CreditCardType" redeclare="true" autocreate="false" generate="true">
                <modifiers read="true" write="true" search="true" optional="true" />
                <persistence type="property"/>
            </attribute>
       </attributes>        
    </itemtype>

我的蚂蚁构建工作正常。但每当我更新运行系统时,Hybris都没有强制要求这个属性。

如果我使用我的自定义模型扩展它并重新声明它然后它的工作,但这是我不需要的。我只是想在没有扩展的情况下使其成为可选项。

我认为它可能与Impex一起,但我不知道如何。请帮忙。

1 个答案:

答案 0 :(得分:5)

如果不扩展类型,则无法重新声明属性。 重新声明的文件清楚地说明了:

  

允许您从继承的类型重新定义属性定义。在   本质上,你可以使用不同类型的属性   不同的修饰符组合而不是超类型。

Impex救援。您可以在之后使用impex更改属性修饰符。 放置以下impex脚本

update AttributeDescriptor;enclosingType(code)[unique=true];qualifier[unique=true];optional
;CreditCardPaymentInfo;type;true
<{1>}下的

在每个类型系统更新(或初始化)上,执行此impex并将<your-extension>/resources/impex/essentialdata-<chosse-a-name>.impex标记为可选。出于测试目的,您也可以在CreditCardPaymentInfo.type内运行此脚本。