默认情况下,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一起,但我不知道如何。请帮忙。
答案 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
内运行此脚本。