1

私は SAP Commerce (Hybris) 1811 に取り組んでおり、Producttype への参照を使用して typeを拡張しようとしProductSalesています。これには、製品の販売データが含まれ、cronjob を介して入力されます。

ただし、すべての新規および既存の製品に対してこの新しい型を初期化する適切な方法が見つかりません。システムの更新後も、この参照は初期化されていません (null)。

Productと の間には 1 対 1 の関係がなければなりませんProductSales

この参照型を初期化したいと思います。

  1. まだリファレンスがないすべての既存製品のシステム アップデート中
  2. 新しく作成されたすべての製品のインスタンスを作成します

私のitems.xml定義:

<itemtype code="ProductSales" autocreate="true" generate="true" >
    <deployment table="productsales" typecode="15011" />
    <attributes>
        <attribute qualifier="unitsSold" type="localized:java.lang.Long">
            <description>Amount of units sold</description>
            <persistence type="property"/>
        </attribute>
        <attribute qualifier="ordersCount" type="localized:java.lang.Long">
            <description>Count of how many orders contained this product</description>
            <persistence type="property"/>
        </attribute>
    </attributes>
</itemtype>

<itemtype code="Product" autocreate="false" generate="false">
   ...
    <attribute qualifier="productSales" type="ProductSales">
        <description>Product Sales</description>
        <modifiers partof="true" optional="false" initial="true" />
        <persistence type="property"/>
    </attribute>
   ...
</itemtype>

データをテーブルに直接格納しているのではなくProduct参照として格納している理由は、カタログの同期中にこれらのデータを同期させたくないからです。

すべての製品でこの新しい型を初期化する最善の方法は何でしょうか?

ヒントをありがとう。

4

3 に答える 3

1

最後に、cronjob 自体に不足している参照を作成することで、これを解決しました。後で同期するために、ステージングされたカタログにこのラッパー オブジェクトを作成するだけです。

ところで、同期ジョブを変更する以外に、ラッパー オブジェクトを作成し、その参照をカタログ間で同期させておくことが、SAP が推奨する解決策であることがわかりました。

于 2020-08-21T13:54:18.013 に答える
0

あなたの質問を読み直して、新しい回答を作成しました。

Productに属性を追加するだけの方が簡単だと思います。その後、以下の impex をインポートして、同期したくない属性の同期を無効にします。「MySyncJob」を、同期ジョブに使用するコードに置き換える必要があります。

INSERT_UPDATE SyncAttributeDescriptorConfig;syncJob(code)[unique=true][path-delimiter=!];attributeDescriptor(enclosingType(code), qualifier)[unique=true];includedInSync;copyByValue
;MySyncJob;Product:unitsSold;false;false
;MySyncJob;Product:ordersCount;false;false
于 2020-08-10T14:13:21.623 に答える