在 SAP 项目里给 VA05 增加几个自定义字段,看上去像是一件很传统的 ABAP 增强工作。找到一个 BAdI,在结果结构里塞进字段,在后处理方法里给字段赋值,保存、激活,再打开 VA05 看结果。真正麻烦的地方往往出现在这些步骤都做完以后。字段明明已经定义了,为什么默认列表里看不到。字段隐藏以后,为什么相关计算似乎根本没有执行。为什么同样的代码在一个 S/4HANA 版本里工作正常,换到另一个版本以后 ALV Filter 的行为发生了变化。为什么系统里存在两个已经激活的 BAdI implementation,结果反而一个都没有执行,而且既没有 dump,也没有明显报错。
这些现象靠记住 BADI_SDOC_WRAPPER 这个名字解释不了,必须沿着 VA05 的标准程序一路往下读。
这次代码验证覆盖了两个实验系统,一个是 S/4HANA 2020,对应 SAP_BASIS 755,另一个是 S/4HANA 2023,对应 SAP_BASIS 758。从 VA05 一直追到真正执行 SELECT 和调用客户 BAdI 的位置,可以得到下面这条调用链。Pasted text
| 层次 | 标准对象 |
|---|---|
| Transaction | VA05 调用 report SD_SALES_DOCUMENT_VIEW,ap |
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/i042416/article/details/168434596




