我们正在执行目录清理任务,并要求将所有没有 super 类别的产品标记为非事件状态。可以看到此类产品直接位于 PCM 的目录根下,而不是任何父类(super class)别下。
我想获取所有此类产品的列表,并且通过 impex 我可以将所有此类产品的审批状态更新为“检查”,以便用户在店面不再看到它们。
非常感谢任何帮助!
最佳答案
获取您的目标产品
这一想法是从“YOUR_CATALOG_ID”中提取除(不在)至少具有一个类别的所有产品之外的所有产品。 您可以使用这种灵活的搜索:
select {p.pk}
from { Product as p join CatalogVersion as cv on {p.catalogversion}={cv.pk}
join Catalog as catalog on {cv.catalog}={catalog.pk} }
where {catalog.id}='YOUR_CATALOG_ID'
and {cv.version}='Staged'
and {p.pk} not in ({{
select {p.pk}
from {Product as p join CategoryProductRelation as pc on {p.pk}={pc.target}
join Category as c on {pc.source}={c.pk}
join CatalogVersion as cv on {p.catalogversion}={cv.pk}
join catalog as catalog on {cv.catalog}={catalog.pk}}
where {catalog.id}='YOUR_CATALOG_ID'
and {cv.version}='Staged'
}})
如果您的数据模型已自定义,则应将“产品”替换为您的自定义产品类型。
更新产品审批状态
第二步,您可以创建一个 impex 来更改approvalStatus:
INSERT_UPDATE Product;code[unique=true];approvalstatus(code);
;target_product_pk;check;
关于sap-commerce-cloud - 杂交 : Mark products with no super-category as inactive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40418318/