2

不久前,在记录遗留代码的过程中,我发现有一个工具可以显示任何标准程序的调用图(调用堆栈)。荒谬的是,我多年来都不知道这个工具:D

在此处输入图像描述

它提供了程序调用的精美列表/层次结构,虽然它不是完整意义上的调用图,但在某些情况下非常有用。

在此处输入图像描述

问题是这个工具只链接到 SE93,所以它只能用于交易。我试图搜索但没有找到任何类似的报告或功能模块工具。是的,我可以为报告创建一个 tcode,但是对于功能模块,这种方法不起作用。

如果我将 FM 调用放在报告中并使用此工具构建图表,它会将此调用包装为一个单元,并且不会进行更深入的分析。就是这样

在此处输入图像描述

任何人都知道一种解决方法,除了事务之外,我们如何为 smth 构建图形?

4

2 回答 2

2

我的愤世嫉俗者认为 RS_CALL_HIERARCHY 已经腐烂了。桑德拉是对的,它确实曾经有效。一旦 OO 来到 abap,接口和动态/通用代码就成为可能。因此,基于静态代码分析的调用层次结构正在将众所周知的推向山峰。

IMO 解决此问题的最佳方法是完整跟踪,然后从跟踪中提取数据。甚至有外部工具可以做到这一点。当然,这仍然是有限的,因为在每个执行路径上运行跟踪可能非常耗时。请问有人说小班吗?

跨 SAT。 确保您使用的配置文件没有聚合,并测量您感兴趣的块。

跟踪配置文件 确保配置文件没有聚合调用 并设置测量相关的可调用块

现在让你穿过踪迹。 https://help.sap.com/doc/saphelp_ewm93/9.3/en-US/4e/c3e66b6e391014adc9fffe4e204223/content.htm?no_cache=true

玩得开心 :)

于 2020-04-13T23:04:37.197 回答
1

调用层次结构显示也适用于程序和功能模块。

在我的 S/4HANA 系统中,对于VA01,它显示: 在此处输入图像描述

点击功能模块层次结构CJWI_INIT显示: 在此处输入图像描述

通过以这种方式调用函数模块,我得到了完全相同的结果RS_CALL_HIERARCHY在此处输入图像描述

该参数OBJECT_TYPE可能具有以下值:

  • P:程序
  • FF : 功能模块

至少从 Basis 4.6 开始,“调用图”就不再维护了,并且它不适用于类和方法。

但是该工具有问题:在某些情况下,在第一行包含 PERFORM 的功能模块可能不会显示,无论调用图是SE93RS_CALL_HIERARCHY.

于 2020-04-14T08:41:18.350 回答