2020-09-25 08:13发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,我们尝试通过复合cronjob来同步目录,但似乎什么也没有发生。复合cronjobs是否存在问题,我们可以深入研究。 谢谢您的帮助
我将其添加为新答案,因为对上一篇文章发表评论的时间太长。 我只是要发送此示例impex:
INSERT_UPDATE CatalogVersionSyncJob; code [unique = true]; sourceVersion(catalog(id),version); targetVersion(catalog(id),version) ; sync Catalog1暂存->在线; Catalog1:暂存; Catalog1:在线 ; sync Catalog2暂存->在线; Catalog2:暂存; Catalog2:在线 INSERT_UPDATE CompositeCronJob; code [unique = true]; job(code) ;同步两个目录; compositeJobPerformable INSERT_UPDATE CompositeEntry; code [unique = true]; compositeCronJob(code)[unique = true]; triggerableJob(code) ; Catalog1;同步两个目录;"同步Catalog1暂存->在线" ; Catalog2;同步两个目录;"同步Catalog2暂存->在线" INSERT_UPDATE触发器; cronJob(code)[unique = true]; cronExpression ;同步两个目录; 0 0 0? * *
但是当我尝试运行它时,它无法将 CatalogVersionSyncJob 分配给 CompositeEntry ,因为根据验证器,它不是 TriggerableJob 。 但这是...
CatalogVersionSyncJob
CompositeEntry
TriggerableJob
CatalogVersionSyncJob 扩展了 SyncItemJob 实现 TriggerableJob
SyncItemJob
默认的 CompositeEntryJobValidateInterceptor 中存在一个错误,可以对其进行检查
CompositeEntryJobValidateInterceptor
CompositeModel.getTriggerableJob()实例TriggerableJob
这试图将服务层对象与Jalo类进行比较。 它必须是:
modelService.getSource(compositeModel.getTriggerableJob())实例TriggerableJob
我已经在上一个项目中使用我们自己的验证器实现对此进行了修补,然后您可以 安排 CatalogVersionSyncJob ,如我在impex中详细介绍的那样。
例如
<!-用我们自己的默认Hybris拦截器->
和Java
包my.package.name; 导入de.hybris.platform.cronjob.jalo.Job; 导入de.hybris.platform.cronjob.jalo.TriggerableJob; 导入de.hybris.platform.cronjob.model.CompositeEntryModel; 导入de.hybris.platform.servicelayer.interceptor.InterceptorContext; 导入de.hybris.platform.servicelayer.interceptor.InterceptorException; 导入de.hybris.platform.servicelayer.interceptor.ValidateInterceptor; 导入de.hybris.platform.servicelayer.internal.model.ServicelayerJobModel; 导入de.hybris.platform.servicelayer.model.ModelService; 导入org.springframework.beans.factory.annotation.Autowired; /** * Hybris的替代实现默认可修复错误。 * * Hybris默认拦截器错误地无法将模型转换为 *项目类似于CompositeJobPerformable。 * * @作者andrew.fletcher * */ 公共类CompositeEntryJobValidateInterceptor实现ValidateInterceptor { @Autowired 私有ModelService modelService; @Override 公共无效onValidate(CompositeEntryModel模型,InterceptorContext ctx)引发InterceptorException { 如果(model.getTriggerableJob()!= null){ //这是重要的一行 作业= modelService.getSource(model.getTriggerableJob()); 如果((!(TriggerableJob的工作实例)) &&(!(ServicelayerJobModel的model.getTriggerableJob()实例))){ 抛出新的InterceptorException( "分配的作业未实现de.hybris.platform.cronjob.jalo.TriggerableJob或不是"的实例 + ServicelayerJobModel.class.getName()+"!"); } } } }
谢谢您的帮助,能否请您举例说一下。 最好的问候
复合作业本身不是问题,但我怀疑您是在添加 CronJob 而不是 Job >
CronJob
Job
在此处查看说明 https://answers.sap.com/questions/12761128/calatlog-sync-not-working-after-first-cycle.html?childToView=12792047#answer-12792047
安排 CatalogVersionSyncJob 时,它将在每次运行时创建一个新的 CatalogVersionSyncCronJob ,并正确检查更改。
CatalogVersionSyncCronJob
最多设置5个标签!
我将其添加为新答案,因为对上一篇文章发表评论的时间太长。 我只是要发送此示例impex:
但是当我尝试运行它时,它无法将
CatalogVersionSyncJob
分配给CompositeEntry
,因为根据验证器,它不是TriggerableJob
。 但这是...CatalogVersionSyncJob
扩展了SyncItemJob
实现TriggerableJob
默认的
CompositeEntryJobValidateInterceptor
中存在一个错误,可以对其进行检查这试图将服务层对象与Jalo类进行比较。 它必须是:
我已经在上一个项目中使用我们自己的验证器实现对此进行了修补,然后您可以 安排
CatalogVersionSyncJob
,如我在impex中详细介绍的那样。例如
和Java
谢谢您的帮助,能否请您举例说一下。 最好的问候
复合作业本身不是问题,但我怀疑您是在添加
CronJob
而不是Job
>在此处查看说明 https://answers.sap.com/questions/12761128/calatlog-sync-not-working-after-first-cycle.html?childToView=12792047#answer-12792047
安排
CatalogVersionSyncJob
时,它将在每次运行时创建一个新的CatalogVersionSyncCronJob
,并正确检查更改。一周热门 更多>