ABAP RTTS / RTTI - 确定类继承层次结构

时间:2015-03-19 08:01:26

标签: abap rtti class-hierarchy

我们公司离线提供ABAP系统分析服务。也就是说,系统的ABAP代码被提取并作为XML发送给我们。我们使用Java编写的工具分析系统。就个人而言,我不是ABAP专家。

即将开展的一项任务是构建一个类继承图。人们当然可以基于XML来做到这一点。但是,由于ABAP提供RTTS / RTTI,为什么不使用它呢?我的想法是:

  • 编写一个查询RTTI的ABAP程序并提取完整的类层次结构
  • 以XML格式发送结果并提供访问该信息的界面(不是此问题的一部分)

现在我的问题:第一点听起来像是一个好/可行的想法吗?有没有任何陷阱,例如性能瓶颈?

2 个答案:

答案 0 :(得分:2)

只要将分析限制为全局类,这应该很简单。本地类和类层次结构提出了一个挑战:它们可以是任何类型程序的一部分,并且不容易被发现。您必须为潜在候选人检查大量计划,这可能非常耗时。除此之外,它是一个非常可行的想法。

答案 1 :(得分:1)

正如vwegert所指出的,只要您的类在对象存储库中设计,使用se80 / se24等工具,这将相对容易,RTT服务提供了所有必要的方法来内省层次结构,继承,以及IIRC,接口实现。报告/类方法,函数模块或接口方法实现中的本地类,从上到下简单地编码,将导致更多的努力。但它也可以做到。怎么样 ?请参阅包SFUNC。那里进行了代码检查,你肯定可以提取那些逻辑,这是由control-F2触发的代码检查完成的。 顺便说一下,您想要创建的图表也可能已由您的ABAP伙伴创建。他们似乎已经提供了XML,所以也许他们可以在这里调用它:  “ATRA_SHOW_UML_DIAGRAM_JNET”并将图表发送给您。全部完成和已发送。 :-D。 还有其他方法可以将ABAP中的内容可视化,并将其放到hd中,可以通过电子邮件发送。一种方法是模块“RS_DD_GRAPHIC”,我们相对经常使用它。功能组“SDG1”也提供了其他功能。

我的tipp是:如果你可以在一个系统中完成所有要求,结果是一个文件(位图,.pdf,任何只显示层次结构图的东西,所以在END中,如果目标是唯一的可视化),您确定只反映存在于对象存储库中的类,然后尝试SAP-Stuff-ONLY。它拥有您或您的团队需要的所有方法,并且您在一个系统中执行操作。让它称之为一种职责分离。