0

HMC から行うのではなく、機能プロパティを動的に追加する必要があるため、hybris で Java から impex を作成したいと考えています。

私はコードから impex を実行したことがなく、参照用のインターネット上の例も見たことがありません。java から impex を実行できない場合、それを動的にするための最善の策は何ですか。ハイブリス初心者です。どんな参照やヒントでも構いません。助けてください、ありがとう

4

2 に答える 2

2

Impex は、データのインポートとエクスポートに使用されます。Impex ファイルを使用してデータをインポートするには、複数のオプションがあります。

  • 初期化/更新プロセス中の手動インポート

初期化/更新プロセスは、プラットフォームの起動に必要なすべてのデータを作成するために使用されます。このプロセス中に、hybris はデータベース、タイプ システムにテーブル/列を作成し、データもインポートします。このデータは、システムの起動に不可欠な「必須データ」(通貨、言語、ユーザーなど) と、特定の拡張機能を実行するために必要なプロジェクト データに分類されます。アクセラレータを使用する場合、必要なすべてのデータは myacceleratorinitialdata 拡張で作成されます。この拡張機能を使用すると、基本的な Web ショップ (Web サイト、ストア、カタログなど) とサンプル データ (サンプルの製品/価格/在庫、サンプルの CMS ページ/コンポーネント、サンプルのメディア アイテムなど) を作成できます。

  • ホットフォルダーを利用する

ホット フォルダは、データの自動/定期的なインポートによく使用されます。サーバーのハード ドライブには、変更を監視するフォルダーがあります。このフォルダに CSV ファイルを配置すると、このフォルダ内のデータがデータベースにインポートされます。ただし、インポート方法を構成する必要があります。製品、価格、または在庫データの更新をインポートするためによく使用されます。

  • hybris 管理コンソールでファイルをアップロードすることによる手動インポート

hybris 管理コンソールには、impex コンテンツのスニペットをインポートできるページがあります。多くの場合、保守作業を行うために使用されます (多数の製品を手動で無効にするなど)。そのサービスを指すデフォルトの URL は、 https://localhost:9002/console/impex/import です。

  • Impex API

本当に Java コードを介して Impex データをインポートする必要がある場合は、API があります: https://help.hybris.com/6.5.0/hcd/8bee24e986691014b97bcd2c7e6ff732.html

長年 hybris アプリケーションを作成してきましたが、この API を使用する必要はありませんでした。多くの場合、上記のメカニズムまたは ModelService のいずれかを使用する方が適切です (以下を参照)。


作成するすべてのデータ項目は、ModelService を使用して作成できることに注意してください。ModelService を使用してデータベースにデータを書き込むのは非常に簡単です。ModelService を使用して新しい製品を作成する方法の簡単な例を次に示します。

ProductModel product = modelService.create(ProductModel.class);
product.setCode("123");
product.setDescription("A product imported using ModelService");
product.setCatalogVersion(catalogVersion);
modelService.save(product);

すべてのデータ タイプに対して、"Model" という接尾辞が付いた Java クラスがあります (例: ProductModel、StockLevelModel、PriceRowModel、MediaModel)。これらのモデル クラスには、そのデータ型のすべての属性に対する getter メソッドと setter メソッドがあります (product.setCode(...) など)。getter/setter メソッド (product.setCatalogVersion(...) など) を使用して、他のデータ型との関係を取得/保存することもできます。

于 2017-10-24T16:55:21.143 に答える