【问题标题】:Hybris Delete Duplicate Product DataHybris 删除重复的产品数据
【发布时间】:2018-03-16 05:50:33
【问题描述】:

有人知道如何创建代码来删除 Hybris 中的重复产品数据吗?使用 impex 脚本还是修改代码?

【问题讨论】:

  • 同一目录(阶段版)中的产品(货号)重复?或者您的意思是说具有不同货号的重复产品数据
  • 同一目录版本中产品名称相同的重复产品,希望您能帮忙,谢谢
  • 在下面找到我的答案

标签: duplicates hybris impex


【解决方案1】:

问题:如何删除重名的 Hybris 产品?

您可以运行SQL/灵活查询来查找重复的产品,然后使用SQL查询删除那些pk列表。

要删除的 pk 列表

select MIN({p.pk}) as pks
 from {Product! as p

 JOIN CatalogVersion as CV on {p.catalogversion}={CV:PK} and {CV:version} = 'Online' 
 JOIN Catalog as C on {CV:catalog}={C:PK} and {C:id}='myProductCatalog'
 } 
 group by {p:name}
 having 
   count(*) > 1

运行删除查询

删除从上述查询中获取的所有 pks。对Online 版本也重复此操作。


你可以找到detail steps here

【讨论】:

  • 我相信,在找出要删除的 PK 列表后,应该使用 groovy 脚本执行删除,该脚本将执行以下操作:ProductModel product = modelService.get(PK .fromLong(pkLong)); modelService.remove(product); 通过直接从数据库中删除项目,拦截器(例如 ValidateInterceptor)被绕过。此外,通过使用 ModelService,partOf 在删除过程中被考虑在内,这就是我认为这是一个更干净的删除解决方案的原因
  • @dj_frunza 是的,真的说过!应该通过modelservice删除Hybris项目,您可以在我的帖子中找到groovy删除重复产品的脚本(详细步骤)
【解决方案2】:

首先,使用以下灵活搜索找到重复的 CMSItems

SELECT {UID} as uid,{CatalogVersion} as CatalogVersion , count(1) as cnt from {CMSItem} GROUP BY {UID},{CatalogVersion} HAVING COUNT(1) > 1

然后删除重复的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 2021-02-25
    • 1970-01-01
    相关资源
    最近更新 更多