4

デフォルトでは、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>

私のantビルドは正常に動作しています。ただし、実行中のシステムを更新するたびに、Hybris はこの属性を必須ではありません。

カスタムモデルで拡張して再宣言すると動作しますが、それは必要ありません。拡張せずにオプションにしたいだけです。

Impexでも可能だと思いますが、方法がわかりません。助けてください。

4

1 に答える 1

6

型を拡張せずに属性を再宣言することはできません。再宣言のドキュメントには、次のように明確に記載されています。

継承されたタイプから属性定義を再定義できます。基本的に、スーパータイプとは異なるタイプの属性と異なる修飾子の組み合わせを使用できます。

救助へのImpex。後で impex を使用して属性修飾子を変更できます。次の impex スクリプトを配置します

update AttributeDescriptor;enclosingType(code)[unique=true];qualifier[unique=true];optional
;CreditCardPaymentInfo;type;true

下に<your-extension>/resources/impex/essentialdata-<chosse-a-name>.impex

型システムの更新 (または初期化) ごとに、この impex が実行され、CreditCardPaymentInfo.typeオプションとしてマークされます。テスト目的で、このスクリプトを 内でも実行できますhac

于 2014-08-24T09:39:30.667 に答える