SAP CRM Product category的决定逻辑

时间:2020-02-16 10:35:57   收藏:0   阅读:48

(1) UI上我们可以看到Category AB里面有一个indicator叫”Base Category”.

技术分享图片

(2)在GenIL这层我们也可以看到Product有两个relation,一个”ProductBaseCategory”,一个”ProductCategory”. 这两个relation共享的一个object(表),也就是”COMM_PRPRDCATR”.

技术分享图片

(3)但是我们发现其实这张表里面并没有存”Is_Base_Category”这个字段。也就是这个字段是在runtime时候determine出来的。

技术分享图片

(4)从下图可以看出这个字段是在MAP_TO_UI_STRUCTURE这个接口里面实现的,这个接口在GenIL API里面用来实现将Native API layer的数据转换成GenIL layer的数据格式的作用。(由此可以看出这个接口可以用来实现一个GenIL layer的transformation field的功能)

技术分享图片

(5) 从上面的代码中可以看出一个category assignment是不是base category,是通过看这个category对应的hierarchy id是不是与product的hierarchy id相同来判断的。而在建立Product时候,第一次选择的category的hierarchy id将会赋给product的hierarchy id。
而之后在选择category的时候就不能选择与第一个category相同的hierarchy了。

技术分享图片

上图可以看出当你选择category时候,已有的category对应的hierarchy将会被作为”Is Not”的查询参数被默认生成出来。
如果你强行删除这些限制条件,选择一个不正确的category,如下error message将会触发。

技术分享图片

要获取更多Jerry的原创文章,请关注公众号"汪子熙":
技术分享图片

原文:https://www.cnblogs.com/sap-jerry/p/12315730.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!