0

我正在尝试仅同步已批准的产品,不幸的是,以下创建的限制完全被同步忽略。

INSERT_UPDATE CatalogVersionSyncJob;code[unique=true];sourceVersion(catalog(id),version)[unique=true];targetVersion(catalog(id),version)[unique=true];syncPrincipals(uid);sessionUser(uid)
 ;testSyncJob;Default:Staged;Default:Online;syncUserGroup;syncUser



 INSERT_UPDATE JobSearchRestriction; code[unique = true] ; job(code) ; query ; type(code)
; syncuser_restriction ; mySyncJob ; {approvalStatus} IN ({{ SELECT {pk} FROM {ArticleApprovalStatus} WHERE {code}= 'approved'}}) ; Product


INSERT_UPDATE SearchRestriction;code[unique=true];name[lang=en];query;principal(UID);restrictedType(code);active;generate
;syncuser_restriction;Sync Only Approved Products;{approvalStatus} IN ({{ SELECT {pk} FROM {ArticleApprovalStatus} WHERE {code}= 'approved'}});syncUserGroup;Product;true;true

我可以知道同步忽略上述限制的原因吗?以及如何解决?

4

1 回答 1

0

不建议使用approvalStatus

请参阅SAP的这篇文章

您可以在下面找到复制粘贴

哪些项目将被同步?

同步可以在整个目录版本(最简单的选项)上完成,也可以在选定的一组项目上完成。

过滤要同步的项目有两个典型用例:

要求仅同步已批准的产品。建议的做法是避免使用开箱即用的“approvalStatus”属性,因为您可能希望同步未获批准的产品。推荐的做法是引入一个新属性“readyForSync”作为布尔类型。业务用户或业务逻辑将负责将该属性设置为 TRUE。限制将保证仅同步确认的产品。将项目的子集(例如特定类别的产品)同步到指定的目标目录版本。

在有许多并发产品经理的企业环境中,一个重要的考虑因素是同步的协调。“readyForSync”标志有助于为下一次同步运行安排产品。但是,在有多个团队管理自己的产品线的环境中,它提供了有限的控制粒度。为了提供更精细的协调,建议使用混合方法,其中“readyForSync”标志和特定类别的同步一起使用。这样,管理不同品牌或类别的不同团队不会以意想不到的方式相互影响,并且在何时可以运行同步方面提供了更大的灵活性。

如果您使用计划的 cron 作业进行同步,则可以对专用同步用户使用搜索限制:

INSERT_UPDATE SearchRestriction|code[unique=true]|name[lang=en]|query|principal(UID)|restrictedType(code)|active|generate|Backend_Sync_Product|Sync|{item.readyForSync}=1|syncgroup|Product|true|true


作为旁注,我不知道您正在使用哪个版本。它曾经在旧版本中无法正常工作。(在这个旧页面上提到可能会被删除)

如果您手动同步,那么事情会再次变得棘手:

Concurrent invocations from more than one business users result in some of the attempts aborting without an informative error message.
References to items in the same catalog version will not be synchronized unless marked as "copy by value" or "part-of".
Restrictions used for scheduled cron job synchronization do not work. Everything gets synchronized.
于 2021-11-04T17:05:02.173 回答