0

我想在 hybris 中从 java 创建一个 impex,因为我的要求是动态添加 featureproperty,而不是从 HMC 中添加。

我从来没有从代码中完成过 impex,我在互联网上也没有看到任何示例可供参考,如果 impex 不能从 java 中完成,那么让我动态化的最佳选择是什么。我是 hybris 的新手。任何参考或提示都对我有用。请帮忙,谢谢

4

2 回答 2

2

Impex 用于导入和导出数据。您有多种使用 Impex 文件导入数据的选项。

  • 在初始化/更新过程中手动导入

初始化/更新过程用于创建启动平台所需的所有数据。在此过程中,hybris 在数据库、类型系统和导入数据中创建表/列。这些数据被归类为系统启动所必需的“基本数据”(如货币、语言、用户)和特定扩展运行所必需的项目数据。当您想使用加速器时,需要的所有数据都在 myacceleratorinitialdata 扩展中创建。使用此扩展程序,您可以创建一个基本的网上商店(如网站、商店、目录)甚至示例数据(如示例产品/价格/库存、示例 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 回答
0

我们可以使用 Java springs 创建 impex。您可以检查通过 OOTB java 类生成 impex 的热文件夹实现。

您可以签入 yaccelerator 核心集成 spring 文件以更好地理解。

于 2017-10-24T05:15:39.817 回答