PPR 搜索里max hit不起作用

90 阅读1分钟

Created by Jerry Wang, last modified on Apr 12, 2014

issue: PPR search的behavior是如果search parameter包含product ID,则无论max hit维护多大的值,search出来始终小于100条。例如下面搜索期望的结果是338条,但是只有25条返回.

 

clip_image010

 

 

 

原因分析:

 

1. 当搜索条件里包含product_id时,入口函数iv_restrict_up_to hard code成0:

 

clip_image010

 

 

进去后会根据product id做一次pre-selection, 找到所有包含输入product的PPR guid (crmm_prp_prod_i inner join crmm_prpadm_i)。

 

clip_image010

 

 

2. 这里restrict_up_to被hard code 成100,

 

clip_image010

 

 

所以接下来取header data的时候,只能从429行里面取出101行。

 

clip_image010

 

 

 

clip_image010

 

 

这里把多取出来的1行删除了。

 

clip_image010

 

 

3. 最后这100条作为输入传到API里去,maxhit也传进去了,但是不会起作用了。

 

clip_image010

 

 

虽然up to 的值是max hit,但是是在一个100行的internal table上做join,最后的结果永远<= 100.

 

clip_image010

 

 

在后台使用 transaction CRMM_PPR搜索, 发现max hit也被hardcode成100了:

 

clip_image010

 

 

 

clip_image010

 

 

参考下面SAP对此behavior的说明:

 

clip_image010

 

 

另一个相关note:

 

clip_image010