我是Hybris的新手。需要从Hybris导出完整/增量目录数据,并将Web服务发送到外部系统。目前,我已经创建了一个新的CronJob,它每天都会运行以执行此操作。请让我知道我们如何实现这一目标。
我已经提到了各种博客,但所有人都提到了FlexibleSearchQuery。是否有任何开箱即用的方法来实现该功能。
hybris datahub具有SAP ERP的一些同步功能。也许你可以使用它。
如果您的第三方系统可以从REST服务提取数据,则可以使用OCC GET /{baseSiteId}/export/products
端点。
端点生成所有产品,或自timestamp
以来更改的所有产品
完整的文档可以在这里找到:https://help.hybris.com/1808/api/ycommercewebservices/index.html#_exportproductsusingget
从良好的解决方案架构角度出发,从根本上讲。我建议探索一个选项,该选项不要求Hybris通过服务调用将数据主动发送到第三方系统。 Hybris应该关注商业。除非您也将它用作PIM。
此外,您没有提到服务所期望的协议或有效负载类型。无论如何,假设您将为产品和产品介质提供包含CSV / XML的zip文件。我就是这样做的。
1)定义作业:您可以动态地在Groovy中编写Cronjonb(无需部署)和/或以标准方式在Java中编写(需要部署)。
2)获取数据和导出的逻辑使用FlexibleQuery从您需要的目录版本中获取产品,然后将批量压缩成zip文件(例如mediaService.setStreamForMedia(media,new ByteArrayInputStream(products.toByteArray()),“mystore- mycatalog-export.zip“,”application / zip“)。这会将文件写入zip并给你一个可以放入事件的URL,它可以触发另一个cronjob来实际进行服务调用并发送该文件。
3)写一个cleanupjob来摆脱已经发送的负载。由于大小的原因,您的磁盘将快速填充到系统失败的程度。