如何从Java代码同步产品?

2020-09-15 17:36发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,专家! 我们想通过模型层(...

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

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


嗨,专家!

我们想通过模型层(而不是Jalo)同步Java代码中的某些产品。 我们为所有目录建立了解决方案:

 最终CatalogVersionModel catalogVersion = catalogVersionService.getCatalogVersion(fromCatalog,STAGED);
          最终List 同步= catalogVersion.getSynchronizations();
          for(最终SyncItemJobModel syncItemJob:同步){
              最终SyncItemCronJobModel cronJob = modelService.create(CatalogVersionSyncCronJobModel.class);
              cronJob.setLogToDatabase(Boolean.FALSE);
              cronJob.setLogToFile(Boolean.FALSE);
              cronJob.setForceUpdate(Boolean.FALSE);
              cronJob.setJob(syncItemJob);
              modelService.save(cronJob);
              modelService.refresh(cronJob);
              LOGGER.info("正在生成cronjob:" + cronJob.getCode()+"以同步目录:" + fromCatalog);
              cronJobService.performCronJob(cronJob,true);

  

但是我们需要同步某些产品,而不是所有目录版本。 可能吗? 我们该怎么做?

谢谢。

8条回答
宇峰Kouji
2020-09-15 17:55

我尝试了两种方法:

1通过Jalo层进行同步:

 最终CatalogVersion源= modelService.getSource(stagedCatalogVersionModel);
      最终CatalogVersion目标= modelService.getSource(onlineCatalogVersionModel);
      最终SyncItemJob syncJob = CatalogManager.getInstance()。getSyncJob(源,目标);
      最后的SyncItemCronJob syncnizeJob = syncJob.newExecution();
      最终产品sourceProduct = modelService.getSource(sourceproductModel);
      最终产品targetProduct = modelService.getSource(targetProductModel);
      syncnizeJob.addPendingItem(sourceProduct,targetProduct);
      syncJob.perform(synchronizeJob,true);

  

结果:同步更新所有产品(不是sourceProduct)

2通过SynchronizationServiceImpl进行同步:

 最终CatalogVersion目标= modelService.getSource(onlineCatalogVersionModel);
      最终SyncItemJob syncJob = CatalogManager.getInstance()。getSyncJob(源,目标);
      最终List  synkPkJobs = new ArrayList ();
      synkPkJobs.add(syncJob.getPK()。toString());
      最后的SynchronizationServiceImpl同步服务=新的SynchronizationServiceImpl();
      syncService.performSynchronization(productModels,synkPkJobs,onlineCatalogVersionModel,syncJob.getCode());

  

结果:de.hybris.platform.cockpit.services.sync.impl.SynchronizationServiceImpl.performSynchronization(SynchronizationServiceImpl.java:242)处的异常java.lang.NullPointerException

有人可以分享工作示例中的一项产品吗?

谢谢。

一周热门 更多>