如何从Many2Many关系中删除项目

2020-09-29 19:21发布

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

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


我有一个cronjob,它将从ProductsForProductCarouselComponent关系中删除项目,该关系在cms2lib-items.xml中定义

这里的想法是从CMS轮播组件中移除没有库存的产品。

我面临的问题是该关系永远不会删除,我现在正在使用以下方法(我尝试了几种方法来完成,而这是我的最后尝试):

  Cms2LibManager.getInstance()。removeFromProductCarouselComponents(product,carousel);

  

通过impex设置Cronjob:

  INSERT_UPDATE ProductCarouselCleanupJob; code [unique = true]; job(code); sessionUser(uid)
  ; productCarouselCleanup; productCarouselCleanupJobPerformable; admin

  

没有异常也没有错误消息,它只是执行并且不起作用,关系仍然存在。

这是平台错误吗? 有服务层解决方案吗?

我以前在Hybris 3和4版本中执行过此类任务,这是我第一次遇到此问题。

环境:版本:5.1.0.0

提前谢谢!

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

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


我有一个cronjob,它将从ProductsForProductCarouselComponent关系中删除项目,该关系在cms2lib-items.xml中定义

这里的想法是从CMS轮播组件中移除没有库存的产品。

我面临的问题是该关系永远不会删除,我现在正在使用以下方法(我尝试了几种方法来完成,而这是我的最后尝试):

  Cms2LibManager.getInstance()。removeFromProductCarouselComponents(product,carousel);

  

通过impex设置Cronjob:

  INSERT_UPDATE ProductCarouselCleanupJob; code [unique = true]; job(code); sessionUser(uid)
  ; productCarouselCleanup; productCarouselCleanupJobPerformable; admin

  

没有异常也没有错误消息,它只是执行并且不起作用,关系仍然存在。

这是平台错误吗? 有服务层解决方案吗?

我以前在Hybris 3和4版本中执行过此类任务,这是我第一次遇到此问题。

环境:版本:5.1.0.0

提前谢谢!

付费偷看设置
发送
8条回答
Baoming ROSE
1楼 · 2020-09-29 20:19.采纳回答

您可以尝试删除CronJob,然后再通过hMC手动重新创建它吗? 您可能会受到 PLA-13735 的影响。

干净的解决方案是更新到Hybris 5.1.1(据我所知)。 否则,您可以尝试以下方法(将其放在cronjob的perform()的开头):

  sessionService.setAttribute(" dont.change.existing.links",Boolean.FALSE);


  
一只江湖小虾
2楼-- · 2020-09-29 20:01

谢谢马丁!!!!

您的解决方案有效,我尝试将session属性设置为false,现在我可以从Carousel组件中添加和删除项目了。

我将尝试更新为Hybris 5.1.1。

再次感谢,

干杯!

3楼-- · 2020-09-29 20:09

carouselModel.setProducts(productsWithStock); 将工作。 只需从组件中获取现有产品列表的副本,删除不需要的内容,进行设置并保存即可。

Baoming ROSE
4楼-- · 2020-09-29 20:03

谢谢克里斯托夫,但这实际上是我的第一次尝试,它不起作用,没有任何变化。

你好,

如果您仍在使用jalo,请尝试使用LinkManager.getInstance()。removeLinkedItems(..)`方法。

关于

Lin

何必丶何苦呢
6楼-- · 2020-09-29 20:12

您好@Brendan-在这种情况下,是否可以在"模型"层中执行此操作?

梦想连接
7楼-- · 2020-09-29 20:22

忘了删除旧链接并进行设置,该怎么办? 您可以执行此操作,该集合将使用setLinkedItems为您清除旧链接:

使用提供的qualifier和

值在指定项目和指定项目列表之间创建新链接。

语言并删除所有与指定的限定词,项目和语言匹配的旧链接。

hybris 5.1 API setLinkedItems

一周热门 更多>