无法覆盖ImportCockpit的Perform方法

2020-09-20 09:56发布

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

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


大家好,

我需要重写ImportCockpitJob中的perform方法并编写自己的逻辑。 由于ImportCockpitJob类未注册为Spring Bean,因此无法进行Bean覆盖。 因此,我创建了一个商品类型来扩展商品ImportCockpitJob,然后定义了一个Jalo类ImportCockpitJobSession。 在此类中,我必须重写performCronJob方法。 但是我的工作代码无法执行! 任何帮助表示高度赞赏。 谢谢!!!!!

项目类型定义:

itemtype code =" ImportCockpitJobSession" autocreate =" true" generate =" true" jaloclass =" de.valtech.henkel.cronjob.jalo.ImportCockpitJobSession" extended =" ImportCockpitCronJob">

覆盖方法:

 公共类ImportCockpitJobSession扩展了ImportCockpitJob
   {

  公共ImportCockpitJobSession()
  {
     //
  }

  公共静态最终字符串INSTANCE_NAME =" ImportCockpit-ImportJob";
  私有静态最终Logger LOG = Logger.getLogger(ImportCockpitJob.class);
  私有最终瞬态ModelService modelService =(ModelService)Registry.getApplicationContext()。getBean(" modelService");
  私有最终临时ImportCockpitCronJobService importCockpitService =(ImportCockpitCronJobService)注册表
          .getApplicationContext()。getBean(" importCockpitCronJobService");

  @Override
  公共CronJob.CronJobResult performCronJob(final CronJob cronJob)引发AbortCronJobException
  {
      super.performCronJob(cronJob);
      System.out.println(" !!!!!!!!!!!!!在我班上!!!!!!!!!!!!!!!!");
      最后的CronJob.CronJobResult结果= null;
      最后的ImportCockpitCronJobModel cronJobModel =(ImportCockpitCronJobModel)this.modelService.get(cronJob);

      最终字符串mySession = cronJobModel.getSessionUser()。getUid();
      System.out.println(" !!!!!!!!!!!!!! + mySession);
      cronJobModel.setLastRun(mySession);
      cronJobModel.setSessionUser(cronJobModel.getSessionUser());

      返回结果;
  }
  

}

我也为此类声明了一个bean:

  
  

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

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


大家好,

我需要重写ImportCockpitJob中的perform方法并编写自己的逻辑。 由于ImportCockpitJob类未注册为Spring Bean,因此无法进行Bean覆盖。 因此,我创建了一个商品类型来扩展商品ImportCockpitJob,然后定义了一个Jalo类ImportCockpitJobSession。 在此类中,我必须重写performCronJob方法。 但是我的工作代码无法执行! 任何帮助表示高度赞赏。 谢谢!!!!!

项目类型定义:

itemtype code =" ImportCockpitJobSession" autocreate =" true" generate =" true" jaloclass =" de.valtech.henkel.cronjob.jalo.ImportCockpitJobSession" extended =" ImportCockpitCronJob">

覆盖方法:

 公共类ImportCockpitJobSession扩展了ImportCockpitJob
   {

  公共ImportCockpitJobSession()
  {
     //
  }

  公共静态最终字符串INSTANCE_NAME =" ImportCockpit-ImportJob";
  私有静态最终Logger LOG = Logger.getLogger(ImportCockpitJob.class);
  私有最终瞬态ModelService modelService =(ModelService)Registry.getApplicationContext()。getBean(" modelService");
  私有最终临时ImportCockpitCronJobService importCockpitService =(ImportCockpitCronJobService)注册表
          .getApplicationContext()。getBean(" importCockpitCronJobService");

  @Override
  公共CronJob.CronJobResult performCronJob(final CronJob cronJob)引发AbortCronJobException
  {
      super.performCronJob(cronJob);
      System.out.println(" !!!!!!!!!!!!!在我班上!!!!!!!!!!!!!!!!");
      最后的CronJob.CronJobResult结果= null;
      最后的ImportCockpitCronJobModel cronJobModel =(ImportCockpitCronJobModel)this.modelService.get(cronJob);

      最终字符串mySession = cronJobModel.getSessionUser()。getUid();
      System.out.println(" !!!!!!!!!!!!!! + mySession);
      cronJobModel.setLastRun(mySession);
      cronJobModel.setSessionUser(cronJobModel.getSessionUser());

      返回结果;
  }
  

}

我也为此类声明了一个bean:

  
  
付费偷看设置
发送
2条回答
lukcy2020
1楼-- · 2020-09-20 10:06

您好Vinay,

您需要创建一个ImportCockpitCronJob实例,该实例使用您的自定义导入作业。

例如(通过Impex):

  INSERT_UPDATE ImportCockpitJobLastSessionUser; code [unique = true,allownull = true];有效
  ; importCockpitJobSession; TRUE
 
  INSERT_UPDATE ImportCockpitCronJob; code [forceWrite = true,unique = true]; job(code)[allownull = true]; mapping(code)[forceWrite = true]; inputMedia(code)[forceWrite = true,allownull = true]; locale( 代码); sessionCurrency(isocode); sessionLanguage(isocode); sessionUser(uid)
  ; Product Import; importCockpitJobSession; Product_Mapping; ProductMediaFile; en; USD; en; importmanager
  
梦想连接
2楼-- · 2020-09-20 10:05

Hello Pablo,

感谢您的回复! 我创建了一个新实例,但是当我尝试通过导入座舱运行cronjob时,出现以下错误。 您对可能出什么问题有任何想法吗?

[de.hybris.platform.servicelayer.cronjob.impl.JobPerformableGenericTypeValidator@576fd071]:意外的验证器错误:de.valtech.henkel.cronjob.model.ImportCockpitJobSessionModel无法转换为de.hybris.platform.cronjob.model。 JobModel

谢谢/

一周热门 更多>