怎么来判断一个问题是由于sap标准code引起的,还是由于客户自己在customer enhancement中写的z-code或者z-field造成的。下面介绍两个简单的方法。
第一种方法:如SAP Note 1311966中介绍的一样,我们可以run T-code: Su3 然后添加用户参数WCF_IGNORE_ENHANCEMT并设定其值为A.如下图:

上面的user parameter 会无效化所有的customer enhancements 使得系统在标准code状态下运行。
但是同时这个user parameter 会无效化所有的UI Configurations和UI Personalizations(UI配置和设定),这使得在我们设定这个参数后,我们在WebUI上有可能会看不见我们所要分析的一些fields或者assignment blocks。进而造成我们无法进一步分析问题。
那么怎么既能无效化所有的customer enhancements 使得系统在标准状态下运行,又不去无效化UI Configurations和UI Personalizations呢(UI配置和设定)?我们可以尝试下面的第二种方法。
第二种方法:
1.运行 t-code: se18并显示 badi component_loading

2.展开 badi definitions 并双击确认所有的 implementations, 如果没有z的,请选择DEFAULT。如果有Z的,则系统只会走Z的,所有如下图请选择z的Enhancement Implementation。

3.双击 implementing class

4.双击对应的 method

5.在此method的最后一行设定断点。

6.然后请用对应的业务角色business role去登陆WebUI,例如 IC_AGENT. 则在Debugger中断点会停在上述步骤5中我们所设的地方。请把RV_RESULT的值清空,然后点击 F8。断点会停几次,每次请重复相同操作。

7. 最后webui会出现

8.现在webui运行在标准状态下,没有customer enhancement,但是customer configuration和personalization仍然存在,所以你可以去测试对应的field或者assignment block是否在标准状态下也能再现。如果也能再现,说明在标准状态下也能发生同样问题,则此问题于customer enhancement无关。如果不能再现,说明标准状态下没有问题,问题出于您的customer enhancement。您需要调查自己的customer enhancement。