近期业务有一个需求,希望在KOB1报表中增加自定义的字段显示。网上检索后发现可以通过增强COOMEP01实现。
1、创建CI_RKROS 字段,添加需要显示的字段
2、EXIT_SAPLKAEP_001 函数模块中处理字段显示逻辑
但是通过以上方法发现,此增强是一行一行处理ALV数据。如果数据量很大会严重影响报表执行效率。此时需要考虑是否有其他方式可以实现。以下是我处理的思路。
前提:CI_RKPOS 结构已创建。
1、首先通过COOMEP01 增强 函数出口 EXIT_SAPLKAEP_001 知道此增强在SAPLKAEP 中。
2、SE38 打开 SAPLKAEP,使用检索功能检索 CALL CUSTOMER-FUNCTION '001' 字符串
3、找到 字符串所在位置发现在方法 extend_covp 中触发此增强。
4、重新检索 extend_covp 方法 发现此方法 在fill_result_covp 方法中被调用
5、至此 我们可以知道 可以在此方法最后进行隐士增强处理ALV 报表的取值逻辑
注意:有一个比较有意思的点就是增强完成后发现 ALV 不显示增强的字段。此处是因为ALV显示之前SAP会校验ALV列是否有值,如果全部数据都没有值则会将字段设置隐藏。