同步不会覆盖目标目录更改

2020-09-18 13:58发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们有一个业务需求,我们需要自定...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们有一个业务需求,我们需要自定义同步过程。 我们遵循以下步骤:** https://wiki.hybris.com/display/forum/Customize+sync+process+to+modify+attribute+copy+processing**。

如果我们对"源"目录进行更改,那么一切都会正常运行。 但是只要目标目录中发生更改并且我们运行同步,目标目录就不会被源目录覆盖。

我们在定制同步时遵循的步骤是:

  1. 创建了一个CustomSyncJob项,扩展了'CatalogVersionSyncJob'

  2. 扩展了CustomSyncJob的生成Jalo,即GeneratedCustomSyncJob。

  3. 重写createCopyContext()方法以调用我们自己的称为" MyCopyContext"的副本上下文。

  4. 'MyCopyContext'类具有一个构造函数,该构造函数调用super()以及从SyncJob获取国家/地区的逻辑。

  5. 在同一类'MyCopyContext'中,我们将重写finishCopying()方法,该方法具有自定义逻辑,可以根据在步骤4中获取的国家/地区来修改目标项目。

在通过OOTB Hybris同步进行调试时,我们分析了每次进行同步时都会创建调度媒体,并且基于此" CatalogVersionSyncScheduleMedia",同步知道在目标目录中要更新/删除的内容。

问题是,当仅目标目录发生更改时,计划介质没有应有的这些更改的条目,因此目标目录中没有任何更改。

我不知道这是一个限制,如果我们自定义同步过程,或者我们需要重写任何其他方法才能使它工作。

我们还通过普通的CronJob运行SyncJob,这些CronJob获取SyncJob并启动它们。 但是在启动之前,我们将SyncJob的日程表媒体设置为" null",以便每次运行时都会创建一个新的日程表媒体。

5条回答
spaceman01
2020-09-18 14:48

嗨Bhanu,

不应通过cronjob安排同步作业。 Cronjob使用相同的同步媒体,并且每次执行时仅更新这些项目。

改为转到同步作业,然后在同步作业上设置触发器。 这将为每个触发器创建一个新的cronjob实例。

有关如何完成此操作的屏幕截图。

替代文字

这也可以使用impex完成。 在触发器impex中使用job(code)而不是cronjob(code)。

INSERT_UPDATE触发器; job(code)[unique = true]; cronExpression; active;

; GeneratedCustomSyncJob; Yourpriggerhere;

一周热门 更多>