2015-03-19 153 views
1

我公司离线提供ABAP系统分析服务。也就是说,系统的ABAP代码被提取并作为XML发送给我们。我们用一个用Java编写的工具来分析系统。就我个人而言,我不是ABAP专家。ABAP RTTS/RTTI - 确定类继承层次结构

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

  • 编写查询RTTI并提取完整的类层次结构
  • 的ABAP程序发送的结果作为XML,并提供访问该信息(不是这个问题的一部分)
接口

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

回答

2

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

+0

从你说的我猜,本地类不被RTTS观察到,对吧?但是全球课堂层级的问题是什么?如果我分别获得每个全球课程的信息,则构建图表应该很容易。 – 2015-03-19 09:04:52

+0

你可以使用RTTS检查本地类,但你首先需要知道它们在那里。 RTTS对于使用'GET_SUPER_CLASS_TYPE'工作的继承树是有用的,但是没有办法在继承树上导航。 – vwegert 2015-03-19 11:40:22

1

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

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

+0

实际上,目标是我们的Java工具中的一个接口,可以以任意方式查询 – 2015-03-19 12:51:26

+0

然后,您拥有的是已经正确的方向。设计适当的分层XML方案。设计一个Z函数模块,从java中调用它,反映其中的类,填充它的xml并将xml结果返回给java调用方。我们一直用.net来做这件事。 – icbytes 2015-03-31 13:59:17