java - SAP Hybris Commerce - 更改在线和离线目录会导致不同步
问题描述
我正在尝试在 Hybris 1811 中创建一个 cronjob,它更新了分阶段和在线目录版本中某些产品的属性。
但是,即使我在目录的两个版本中对产品进行了完全相同的更改,该产品也会在 Backoffice 中的版本之间被标记为不同步。
当我仅在在线目录中进行更改时,产品不会取消同步,但是从暂存到在线的任何同步都会覆盖更改的内容。
代码:
productStaged = productService.getProductForCode(stagedCatalog, productCode);
productOnline = productService.getProductForCode(onlineCatalog, productCode);
if (productStaged != null) {
productStaged.setMargin(margin, locale);
modelService.save(productStaged);
}
if (productOnline != null) {
productOnline.setMargin(margin, locale);
modelService.save(productOnline);
}
有没有办法使这项工作成为可能,而不会导致产品在 Backoffice 中看起来不同步?
谢谢!
解决方案
正确的方法是在 Staged 中进行更改,并从 Staged 同步到 Online。您不应该同时编辑两个目录版本。理想情况下,在线是只读的。
要同步项目列表,请查看 CatalogSynchronizationService API: https://help.sap.com/doc/02d5152884b34821a06408495ba0b771/1905/en-US/de/hybris/platform/catalog/synchronization/CatalogSynchronizationService.html#performSynchronization(java. util.List,de.hybris.platform.catalog.model.SyncItemJobModel,de.hybris.platform.catalog.synchronization.SyncConfig)
推荐阅读
- c# - 我可以绑定到每个 DataGridRow 的背景颜色吗?
- django - 如何在 Django 上为视频文件创建一次性链接
- visual-studio - 与 Visual Studio 相比,VS Code 中的字体看起来更清晰
- ruby - 将尽可能多的代码行移出 main 尽可能
- javascript - 如何控制“插入符号导航/文本插入光标”在可编辑 div 中的文本内的位置?
- javascript - 如何用 pug 设置句子中的一些单词粗体/强烈?
- javascript - 使用 javascript 中的 RegExp 对象将字符串替换为值
- python-3.x - Python中的颜色检测和比较
- java - Java中的功能等价
- python-3.x - 如何检查小数点后的数字?